{"version":3,"sources":["components/Shared/CustomSelect.js","utils/FormatDate.js","constants/Permissions.js","components/ItemCard/WebOrdersModal.js","components/Shared/Loading.js","assets/img/background.jpg","assets/img/logo.png","components/Shared/CustomAutoComplete.js","utils/Permissions.js","views/Elysium/PurchaseOrder.js","components/Shared/CustomAlert.js","components/Stocktake/StocktakeLinesTable.js","assets/svg/angle-left-thin.svg","components/Orders/FulfillmentOrderLinesTable.js","../node_modules/typescript/lib sync","components/Shared/CustomModal.js","views/Elysium/Products.js","components/Products/ProductsTable.js","components/PurchaseOrder/PurchaseOrderTable.js","components/PurchaseOrder/AddEditPurchaseOrderLineModal.js","components/PurchaseOrder/AddEditPurchaseOrderModal.js","views/Elysium/Movements.js","components/Movements/MovementsTable.js","components/Movements/AddEditMovementsModal.js","components/Movements/AddEditMovementProduct.js","views/Elysium/Orders.js","components/Orders/OrdersTable.js","components/Orders/EditOrderLocationModal.js","views/Elysium/Labels.js","components/Labels/LabelsTable.js","views/Elysium/Buyers.js","components/Buyers/BuyersTable.js","components/Buyers/AddEditBuyersCollection.js","components/Buyers/BuyersCollectionProductAddModal.js","components/Buyers/BuyersCollectionProductDetailModal.js","components/Buyers/ApprovalCommentsInput.js","components/Buyers/BuyersCollectionSizeModal.js","views/Elysium/BulkUpdate.js","components/Buyers/BuyerCollectionProductList.js","components/Buyers/BuyersCollectionImageGallery.js","components/React-dnd/Box.js","components/React-dnd/Dustbin.js","components/React-dnd/ItemTypes.js","components/React-dnd/Container.js","components/Buyers/BuyersCollectionDetailModal.js","components/PurchaseOrder/PurchaseOrderLineTable.js","components/PurchaseOrder/PurchaseOrderModal.js","components/Movements/MovementsProductTable.js","components/Movements/MovementsModal.js","components/Orders/OrderLinesTable.js","components/Orders/OrdersModal.js","assets/img-ct/full-screen-image-3.jpg","assets/img-ct/default-avatar.png","utils/FormatCurrency.js","components/Shared/CustomAsyncSelect.js","components/Shared/CustomSearchBox.js","assets/img/no-image.jpg","assets/img/wrapper-logo.png","serviceWorkerRegistration.js","reportWebVitals.js","store.js","components/Footers/Footer.js","views/Pages/UserPage.js","views/Pages/LoginPage.js","components/Suppliers/SupplierTable.js","components/Suppliers/AddEditSupplier.js","views/Elysium/Suppliers.js","components/Locations/UpdateLocationPriorityModal.js","components/Locations/LocationTable.js","components/Locations/AddEditLocation.js","views/Elysium/Locations.js","components/UserManagement/UserTable.js","components/UserManagement/UserPage.js","views/Elysium/UserManagement.js","components/UserManagement/ChangePassword.js","views/Elysium/AccountManagement.js","components/AuditLog/AuditLogTable.js","views/Elysium/AuditLog.js","components/Category/CategoryTable.js","components/Category/CategoryGroups.js","components/Category/CategoryValues.js","components/Category/AddEditCategoryModal.js","components/Category/AddEditCategoryGroupModal.js","components/Category/AddEditCategoryValueModal.js","views/Elysium/Category.js","views/Pages/ResetPasswordPage.js","components/PurchaseOrderMapping/PurchaseOrderMappingTable.js","components/PurchaseOrderMapping/AddEditPurchaseOrderMappingModal.js","views/Elysium/PurchaseOrderMapping.js","views/Elysium/AutoReplenishment.js","components/SpecialOrders/SpecialOrdersTable.js","components/SpecialOrders/SpecialOrderProductsTable.js","components/SpecialOrders/RequestSpecialOrder.js","components/SpecialOrders/SpecialOrderNotes.js","components/SpecialOrders/UpdateSpecialOrder.js","components/SpecialOrders/RejectionReasonModal.js","views/Elysium/SpecialOrders.js","components/Stocktake/StocktakeLineModal.js","components/Stocktake/StocktakeTable.js","components/Stocktake/CreateStocktakeModal.js","components/Stocktake/StocktakeAnalysisModal.js","components/Stocktake/ApproveAdjustmentsModal.js","views/Elysium/Stocktake.js","routes.js","layouts/Auth.js","components/Sidebar/Sidebar.js","components/Navbars/AdminNavbar.js","authProvider.js","layouts/Admin.js","index.js","components/Shared/DateRange.js","components/ItemCard/AuditLog.js","components/ItemCard/SalesAndInventory.js","components/ItemCard/DraggableImage.js","utils/ParseCurrency.js","assets/img/NoImage.jpg","components/ItemCard/ItemCard.js","components/ItemCard/InventoryModal.js","components/Shared/CustomTable.js"],"names":["CustomSelect","props","id","data","withAll","withBlank","selectOptions","useMemo","options","map","e","value","label","concat","val","filter","length","_jsxs","_Fragment","children","title","_jsx","className","Select","classNamePrefix","name","closeMenuOnSelect","onChange","handleChange","placeholder","isDisabled","formatDate","undefined","moment","format","ADMIN_USERMANAGEMENT_VIEW","ADMIN_USERMANAGEMENT_EDIT","ADMIN_USERMANAGEMENT_DELETE","AUDITLOG_VIEW","SUPPLIER_VIEW","SUPPLIER_EDIT","SUPPLIER_DELETE","LABELS_VIEW","LOCATION_VIEW","LOCATION_EDIT","LOCATION_DELETE","PRODUCTS_VIEW","PRODUCTS_EDIT","PRODUCTS_FULL_VIEW","PRODUCTS_WEB","CATEGORIES_VIEW","MOVEMENTS_VIEW","MOVEMENTS_EDIT","MOVEMENTS_MASS_BOOK_IN","SPECIALORDERS_EDIT","SPECIALORDERS_VIEW","ORDERS_VIEW","BUYERS_VIEW","BULKUPDATE_VIEW","PURCHASEORDER_VIEW","PURCHASEORDER_EDIT","STOCKTAKE_VIEW","WebOrdersModal","useEffect","document","documentElement","style","setProperty","history","useHistory","Card","Header","Title","as","itemCardWebOrderInfoType","Body","returnMovementsTable","returnStatusName","statusId","Table","responsive","itemCardWebOrderInfo","order","index","_order$batchName","_order$fromLocationNa","_order$toLocationName","_order$typeName","console","log","onClick","push","pathname","state","navigateToManageMovements","cursor","href","batchName","fromLocationName","toLocationName","typeName","units","unitsBookedIn","dateCreated","OverlayTrigger","preventDefault","overlay","Tooltip","Button","async","batchId","url","localStorage","getItem","response","fetch","status","base64String","text","decodedData","Buffer","from","toString","dataArray","Uint8Array","Array","char","charCodeAt","blob","Blob","type","blobUrl","window","URL","createObjectURL","iframe","createElement","display","src","body","appendChild","onload","contentWindow","print","printError","error","showSweetAlert","handlePrintBatchLabel","variant","handleGetLabelPDF","selectedProductId","_order$orderNumber","_ref","_order$totalPrice","_ref2","_order$subtotal","_ref3","_order$totalTax","_order$quantity","_order$fulfillmentSta","_order$location","navigateToOrders","orderNumber","totalPrice","toFixed","subtotal","totalTax","quantity","fulfillmentStatus","locationId","location","Loading","Lottie","animationData","loop","autoplay","CustomAutoComplete","_props$selectedItems","marginBottom","items","handleAddItem","disabled","selectedItems","item","Badge","marginTop","handleRemoveItem","getPermission","userPermissons","permission","PurchaseOrder","user","useSelector","originPurchaseOrder","setOriginPurchaseOrder","useState","showModal","setShowModal","showPurchaseOrderLineModal","setPurchaseOrderLineModal","handleCloseModal","handleShowModal","handleClosePurchaseOrderLineModal","handleShowPurchaseOrderLineModal","setStatus","setStatusId","showAddModal","setShowAddModal","handleCloseAddModal","handleShowAddModal","itemCardSelectedTab","setItemCardSelectedTab","isLoading","setIsLoading","PurchaseOrderLine","setPurchaseOrderLine","page","setPage","skip","setSkip","take","setTake","defaultDate","Date","dateRange","setDateRange","setMonth","getMonth","suppliers","setSuppliers","supplierId","setSupplierId","season","setSeason","brands","setBrands","seasonId","setseasonId","brandId","setBrandId","purchaseOrderSearch","setPurchaseOrderSearch","purchaseOrderLineSearch","setPurchaseOrderLineSearch","orderBy","setOrderBy","descending","setDescending","originData","setOriginData","setData","currentEstimatedDeliveryDate","setCurrentEstimatedDeliveryDate","purchaseOrderLineChange","setPurchaseOrderLineChange","products","setProducts","purchaseOrderLineId","setPurchaseOrderLineId","editPurchaseOrderLineId","setEditPurchaseOrderLineId","isEdit","setIsEdit","setError","productId","quantityValidate","setQuantityValidate","isImportLoading","setIsImportLoading","selectedPurchaseOrder","setSelectedPurchaseOrder","setSelectedProductId","selectedInventory","setSelectedInventory","showItemCardModal","setShowItemCardModal","showInventoryModal","setShowInventoryViewModal","fileInputRef","useRef","files","validation","setvalidation","purchaseOrderNumber","estimatedDeliveryDate","selectedDate","setSelectedDate","locations","setLocations","clearPurchaseOrderValidation","clearPurchaseOrderLineValidation","validateInput","prev","stateObj","saveFile","payload","method","headers","JSON","stringify","json","handlePurchaseOrderReallocation","split","line","join","fetchPurchaseOrderData","reallocatePurchaseOrder","validatePurchaseOrderLineInput","allocated","isArchived","deletePurchaseOrderLine","fetchPurchaseOrderLine","handleHideInventoryModal","isEmpty","trim","handleSavePurchaseOrder","validationErrors","Object","keys","fetchProduct","cost","err","fetchSeason","seasonUrl","seasonResponse","seasonBody","seasonData","fetchBrands","brandUrl","brandResponse","brandBody","brandData","sku","deletePurchaseOrder","closePurchaseOrder","reopenPurchaseOrder","handleSaveChangesPurchaseOrderLine","values","handleUpdateChangesPurchaseOrderLine","purchaseOrderId","fetchSelectedPurchaseOrder","fetchProductDropdown","Url","Response","fetchStatusDropdownList","_globalDropdownsBody$","globalDropdownsUrl","globalDropdownsResponse","globalDropdownsBody","locationData","fetchLocations","CustomModal","show","handleClose","PurchaseOrderModal","PurchaseOrderLineData","handleEditModelPurchaseOrder","search","handleSearchChange","handleAddPurchaseOrderLine","costPrice","discountPercentage","discount","locationName","SeasonId","SeasonName","SupplierBarcode","BrandCode","productName","tax","size","colour","warehouseAllocation","statusName","allocations","handleEditPurchaseOrderLine","PurchaseOrderValue","x","handleDeletePurchaseOrderLine","handleGetItemCard","handleItemCardCloseModal","backdrop","ItemCard","handleShowInventoryModal","InventoryModal","AddEditPurchaseOrderLineModal","handleAllocationChange","event","target","parseInt","handleLineChange","handleProductLineChange","handleSavePurchaseOrderLine","handleUpdatePurchaseOrderLine","handleCancel","AddEditPurchaseOrderModal","handleAddPurchaseOrder","handleUpdatePurchaseOrder","handleChangePurchaseOrder","handleDropDownChange","idName","selectedLocation","handleDateChange","date","handlePurchaseOrderCancel","permissions","Container","fluid","Row","Col","md","DateRange","startDate","endDate","range","dates","filterData","timestamp","isBetween","Form","Check","checked","width","binaryData","Newurl","link","setAttribute","click","download","handleSubmit","current","Control","accept","ref","file","reader","FileReader","binaryString","result","btoa","readAsBinaryString","marginleft","supplierName","supplierAddress","buyerName","buyerAddress","shippingAddress","userId","userFullName","total","totalQuantity","brandName","createdDate","PurchaseOrderTable","updateData","setTimeout","PurchaseOrderLines","handleGetExportPDF","downloadPdf","filename","handleGetExportExcel","handleDeletePurchaseOrder","handleClosePurchaseOrder","handleReopenPurchaseOrder","confirmCallback","Swal","fire","icon","showDenyButton","denyButtonText","denyButtonColor","confirmButtonColor","confirmButtonText","then","isConfirmed","position","showConfirmButton","timer","html","StocktakeLinesTable","stocktakeId","stocktakeLines","setStocktakeLines","originalStocktakeLines","selectedStatusId","setSelectedStatusId","statusList","updatedPage","setUpdatedPage","show0Variance","setShow0Variance","showUnscannedProducts","setShowUnscannedProducts","showSoldProducts","setShowSoldProducts","showIntransitProducts","setShowIntransitProducts","_statusList$filter$","toLowerCase","_item$statusName","recalculateStocktakeLines","newLines","onHand","sold","totalStock","scanned","inTransit","maxWidth","Label","Input","defaultValue","stocktakeStatus","handleConfirmStocktake","height","InfiniteScroll","dataLength","zIndex","stocktake","checkRequired","checkNotes","variance","adjustment","committed","brandCode","barcode","adjustmentAction","adjustmentCost","difference","handleInTransitClick","stocktakeLocationId","opacity","handleAdjustTotal","Math","abs","Footer","handleSaveVariances","webpackEmptyContext","req","Error","code","resolve","module","exports","Modal","onHide","animation","closeButton","Products","IsChecked","setCheck","hasMore","setHasMore","types","setTypes","setType","genders","setGenders","seasons","setSeasons","categories","setCategories","statuses","setStatuses","setLocation","brand","setBrand","setSearch","gender","setGender","category","setCategory","includeArchived","setIncludeArchived","salesData","setSalesData","auditLogs","setAuditLogs","webDetails","setWebDetails","setProductId","setProductName","inventory","setInventory","sales","setSales","audit","setAudit","details","setDetails","isValidation","setIsValidation","oldQuantity","setoldQuantity","handleProductSearchChange","handlePageChange","pageRef","setItemCardWebOrderInfoType","setItemCardWebOrderInfo","showWebOrdersModal","setShowWebOrdersModal","isNavBack","setIsNavBack","newPage","_filterDropdownBody$l","_filterDropdownBody$b","_filterDropdownBody$s","_filterDropdownBody$g","_filterDropdownBody$c","_filterDropdownBody$s2","filters","filterDropdownUrl","filterDropdownResponse","filterDropdownBody","genderData","categoryData","statusData","fetchDropdowns","alert","handleShowWebOrdersModal","handleGetItemCardWebOrderInfo","handleGetItemCardCommittedList","handleGetItemCardInTransitList","handleGetItemCardSoldList","handleHideWebOrdersModal","marginLeft","ProductTable","CustomSearchBox","handleClear","Spinner","next","loader","productCategory","totalAvailableStock","convertDate","useDispatch","dateTime","getDate","padStart","getFullYear","totalAllocated","formatCurrency","validationSchema","Yup","required","min","of","shape","integer","test","isArray","every","allocation","totalAllocation","this","parent","reduce","AddEditPurchaseOrderLineModalForm","formik","onSubmit","Group","htmlFor","handleProductChange","initialValues","ErrorMessage","component","onBlur","handleBlur","locationCode","newAllocations","setFieldValue","errors","Formik","enableReinitialize","actions","setSubmitting","_props$selectedPurcha","_props$selectedPurcha2","_props$selectedPurcha3","_props$selectedPurcha4","_props$selectedPurcha5","action","paddingLeft","color","Movements","movementSearch","Search","locationFromId","setLocationFromId","locationToId","setLocationToId","setstatusId","typeId","settypeId","getLocationDropdown","setLocationDropdown","filterDateData","setfilterDateData","originBatchData","setOriginBatchData","singleMovement","setsingleMovement","showBatchModal","setShowBatchModal","handleCloseBatchModal","showMovementProductModal","setShowMovementProductModal","handleCloseMovementProductModal","movementId","setMovementId","MovementsProductData","setMovementsProductData","originMovementsProducts","setoriginMovementsProducts","productData","setProductdata","productValue","setProductValue","quantityInStock","setQuantityInStock","movementChangedValue","setMovementChangedValue","setStatusData","fromLocationId","toLocationId","movementsModel","fetchSingleMovement","fetchMovementProducts","fetchGetallpaged","getLocationName","find","saveMovement","updateMovementStatus","SaveProduct","fetchLocationDropdown","setItem","fetchData","fetchStatusData","product","qty","fetchProductsDropdown","isEditMovement","setIsEditMovement","selectedFromLocation","setSelectedFromLocation","selectedToLocation","setSelectedToLocation","useLocation","showMovementsModalWebOrder","orderId","confirmRemoveMovementProductLine","MovementsModal","SingleMovement","includes","handleAddMovementProduct","sent","received","handleEditMovement","handleSaveChangeLocations","_response$statusText","statusText","handleMassBookIn","forEach","movement","massBookIn","userPermissions","handleRemoveMovementProductLine","AddEditMovementsModal","handleChangeLocation","handleSaveMovement","newErrors","AddEditMovementProduct","handleChangeProduct","updatedProductValue","productWithId","handleSaveProduct","handleLocationFromChange","handleLocationToChange","handleTypeChange","handleStatusChange","MovementsTable","handleAdd","fromNotes","toNotes","hasCreatedBatch","handleBatchProductLabelPDF","handleArchiveMovement","handleInTransitMovement","handleReopenMovement","SearchStyle","dispatch","archived","roleId","_props$movementChange","_props$movementChange2","Orders","orderSearch","setLocationId","locationDropdown","singleOrder","setSingleOrder","selectedOrderId","setSelectedOrderId","selectedOrderLine","setSelectedOrderLine","showEditOrderLocationModal","setShowEditOrderLocationModal","showOrderModal","setShowOrderModal","setOrderId","orderLinesData","setOrderLinesData","showFulfillmentOrders","setShowFulfillmentOrders","fulfillmentOrdersData","setFulfillmentOrdersData","isChangeFulfillmentOrderLocation","setIsChangeFulfillmentOrderLocation","checkedLineItems","setCheckedLineItems","handleCancelChangeFulfillmentOrderLocation","isCancelAll","pickedStatusDropdownOptions","setPickedStatusDropdownOptions","sendEmailOnPickedStatusChange","pickedStatus","lineItem","handleConfirmStatusChange","handlePicked","showCancelButton","cancelButtonText","sanitize","handleConfirm","fulfilmentLineId","fetchFulfillmentOrderLines","fulfillmentOrderLines","setFulfillmentOrderLines","userToken","dateFrom","toISOString","dateTo","fetchSingleOrder","routerLocation","showOrdersModalWebOrder","handleHideEditOrderLocationModal","EditOrderLocationModal","handleUpdateOrderLocation","OrdersModal","SingleOrder","handleShowEditOrderLocationModal","orderLine","handleToggleShowFulfillmentOrders","isShowFulfillmentOrders","handleChangeFulfillmentOrderLocation","updatedCheckedLineItems","handlePickedStatusChange","handleConfirmChangeFulfillmentOrderLocation","selectedLocations","_selectedLocations$fi","selectedFulfillmentLines","fulfillmentLines","some","y","newLocationId","itemId","fulfillmentOrderId","fulfillmentId","lineIds","OrdersTable","ordersModal","orderLines","customerId","customerName","subTotal","totalDiscount","financialStatus","refundAmount","createdAt","shopifyId","confirmed","orderDate","toLocaleDateString","day","month","year","_props$SingleOrder","Labels","labels","setLabels","handleDeleteCall","fetchLabels","LabelsTable","handleDelete","handlePrintLabel","productDescription","Buyers","buyers","setBuyers","setProductCategory","buyersCollection","setBuyersCollection","buyersCollectionProductId","setBuyersCollectionProductId","buyersCollectionData","setBuyersCollectionData","buyerId","setBuyerId","buyerCollectionLocations","setBuyerCollectionLocation","overwrite","setOverwrite","categoryGroups","setCategoryGroups","categorySizes","setCategorySizes","vat","setVat","selectedSizes","setSelectedSizes","buyersCollectionProduct","setBuyersCollectionProduct","updatedSize","setUpdatedSizes","selectedSizeScale","setSelectedSizeScale","sizeSelectAll","setSizeSelectAll","selectedImage","setSelectedImage","approvalProductId","setApprovalProductId","approvalState","setApprovalState","showDetails","setShowDetails","collectionLocationDetails","setCollectionLocationDetails","showCollectionDetailModal","setShowCollectionDetailModal","handleCloseCollectionDetailModal","handleShowCollectionDetailModal","showBuyersCollectionProductAddModal","setShowBuyersCollectionProductAddModal","handleCloseBuyersCollectionProductAddModal","showBuyersCollectionProductDetailModal","setBuyersCollectionProductDetailModal","handleCloseBuyersCollectionProductDetailModal","handleShowBuyersCollectionProductDetailModal","showSizeModal","setSizeModal","handleCloseSizeModal","showCommentsModal","setShowCommentsModal","isSameDetailsChecked","setIsSameDetailsChecked","buyersCollectionProductSaving","setBuyersCollectionProductSaving","setSeasonId","genderId","setGenderId","setSelectedLocation","openWithInput","setOpenWithInput","allocationMessage","setAllocationMessage","addOverriteBuyersCollectionAllocation","loc","fetchBuyersCollectionProducts","Buyersvalues","handleChangeImage","imagesArray","images","image","readFileAsync","substring","indexOf","prevProduct","Promise","reject","onloadend","onerror","readAsDataURL","handleClickImage","stopPropagation","getElementById","collectionId","allocatedStyles","fetchBuyers","fetchBuyersCollectionProduct","sizeScaleId","getAllSizesBySizeScaleId","productVariants","sizeId","handleSaveBuyersCollection","updateBuyersCollection","deleteBuyersCollection","deleteBuyersCollectionProduct","handleSameDetailsDropdownChange","updatedProductVariants","categoryGroupId","closeProductDetailModal","updateProductDetail","buyersCollectionId","handleAddProductDetail","openFileBrowser","productCategoryId","sizeScale","itemCostsMatch","saveProductDetail","updateAvailableSizes","ok","prevState","rate","vatRates","getIsetBuyersCollectionProducttem","fetchSatus","fetchGender","getBuyerCollectionLocationList","fetchProductCategoryList","fetchCategoryGroups","getVAT","AddEditBuyersCollection","handleAddBuyersCollection","handleUpdateBuyersCollection","BuyersCollectionDetailModal","buyersCollectionProductAddModal","addBuyersCollectionAllocation","handleEditBuyersCollectionProductDetailModal","handleApprovalChange","findIndex","handleDeleteBuyersCollectionProduct","handleDownloadImages","handleExportPDF","BuyersCollectionProductAddModal","ApprovalCommentsInput","handleCommentConfirm","comment","updatedProducts","approved","handleCancelApprovalComments","BuyersCollectionProductDetailModal","handleBuyersCollectionSizeModal","currentSizes","sizeIds","handleDetailChange","buyersValues","handleCloseProductDetailModal","handleSaveProductDetail","_updatedBuyersCollect","updatedBuyersCollectionProduct","parse","sumAllocations","sum","handleLocationAllocationChange","newQuantity","handleProductVariantsChange","handleProductVariantsCurrencyChange","handleUpdateProductDetail","handleDeleteImage","splice","handleProductVariantsDropdownChange","handleSameDetailsCheckboxChange","rrp","handleSameDetailsChange","handleUpdateOpenWithInput","input","BuyersCollectionSizeModal","handleSizeScaleDropDownChange","handleCheckboxChange","prevSelectedSizes","updatedList","prevSizes","handleSelectAllChange","handleUpdateAvailableSizes","BuyersTable","handleShowAddBuyersCollection","handleEdit","buyersvalue","handleDeleteBuyersCollection","handleCollectionProductDetailModal","handleExportTemplate","itemCount","totalValue","totalRrp","navigator","userAgent","_props$buyersCollecti","_props$buyersCollecti2","_props$buyersCollecti3","_props$buyersCollecti4","_props$buyersCollecti5","_props$buyersCollecti6","_props$buyersCollecti7","_props$buyersCollecti8","_props$buyersCollecti9","_props$buyersCollecti10","localValue","setLocalValue","isTablet","handleFocus","select","productVarient","alt","hidden","top","right","fontSize","upperCaseValue","toUpperCase","flexDirection","paddingRight","CurrencyInput","decimalsLimit","onValueChange","prefix","vatRateId","onFocus","sizeName","acc","padding","backgroundColor","allocationIndex","setComment","itemsPerColumn","ceil","columnOne","slice","columnTwo","columnThree","ListGroup","gridTemplateColumns","Item","border","BulkUpdate","categoryId","setCategoryId","selectAll","setSelectAll","setIsArchived","isExportLoading","setIsExportLoading","exportFields","setExportFields","price","salePrice","supplierBarcode","supplier","tags","setSelectedLocations","marginCheck","importFile","errorMessages","message","successfulImportCount","exportBulkUpdate","productExcelExportModel","fields","fetchSeasonDropdownList","fetchBrandDropdownList","categoryUrl","categoryResponse","categoryBody","fetchCategoriesDropdownList","locationUrl","locationResponse","locationBody","fetchLocationDropdownList","handleImport","handleSelectAll","updatedFields","key","prevSelectAll","prevFilters","updatedLocations","handleLocationChange","handleExport","BuyerCollectionProductList","BuyersCollectionImageGallery","base64Image","original","originalHeight","handleNavigation","direction","getAttribute","imageGalleryRef","slideToIndex","getCurrentIndex","React","ImageGallery","showFullscreenButton","showPlayButton","renderItem","originalAlt","showNav","Box","memo","_productData$images","drag","useDrag","collect","monitor","isDragging","itemCardColumns","require","default","flex","totalLocations","justifyContent","String","margin","textAlign","lineHeight","float","Dustbin","onDrop","isOver","canDrop","drop","useDrop","isActive","ItemTypes","visible","setVisible","setItemCardColumns","clearTimeout","handleDrop","useCallback","handleItemCardColumnChange","isNaN","parseFloat","max","overflowY","flexGrow","backend","TouchBackend","HTML5Backend","DndProvider","PurchaseOrderLineTable","renderTableData","isLodaing","MovementsProductTable","_props$SingleMovement","_props$SingleMovement2","bookedInUserName","bookedOutUserName","_props$getLocationDro","_props$getLocationDro2","dateAmended","OrderLinesTable","_props$orderLinesData","refunded","refundLocationId","_props$SingleOrder2","_props$SingleOrder2$d","_props$SingleOrder3","_props$SingleOrder3$t","Tabs","defaultActiveKey","transition","Tab","eventKey","toLocaleString","currency","inputValue","setInputValue","setTimer","newValue","newTimer","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","initialState","username","firstName","lastName","email","avatar","roleName","isFavourites","isSideBarMini","IsUserNameValid","IsEmailValid","store","createStore","arguments","rest","UserPage","sm","cols","rows","LoginPage","cardClasses","setCardClasses","setUsername","password","setPassword","google2FAPin","setGoogle2FAPin","onLogin","auth","Username","Password","Google2FAPin","login","appName","onKeyDown","keyCode","showPassword","setShowPassword","handleMouseUp","backgroundImage","lg","on","onMouseDown","handleMouseDown","onMouseUp","onMouseLeave","SupplierTable","handlePermission","permissionEdit","permissionDelete","contactName","contactNumber","addressLine1","addressLine2","city","county","postcode","salesEmail","customerServiceEmail","AddEditSupplier","handleAddSupplier","Suppliers","showAddEditModal","setShowAddEditModal","selectedSupplier","setSelectedSupplier","handleCloseAddEditModal","handleSave","successDelete","clearSupplierValidation","UpdateLocationPriorityModal","reorderedPriorityLocations","setReorderedPriorityLocations","priorityLocations","DragDropContext","onDragEnd","handleDragEnd","Droppable","droppableId","provided","snapshot","innerRef","getListStyle","isDraggingOver","droppableProps","Draggable","draggableId","draggableProps","dragHandleProps","getItemStyle","handleCancelPriority","handleSaveLocationPriority","LocationsTable","handleLocationPriorityButtonClick","handleLocationOrderButtonClick","itemType","managerEmail","assistantManagerEmail","ignoreImportExport","has4by4Printer","has2by1Printer","priorityOrder","sortOrder","AddEditLocation","handleAddLocation","Location","setPriorityLocations","DataChanged","setDataChanged","showLocationPriorityModal","setShowLocationPriorityModal","isPrioritySort","setIsPrioritySort","handleLocationPriorityViewModelHide","setLocationState","isChecked","setIsChecked","handleUpdatePriorities","cancelPriority","fetchLocationPriority","destination","sourceIndex","source","destinationIndex","updatedPriorityLocations","reorderedItem","Priorities","clearLocationValidation","draggableStyle","userSelect","grid","background","LocationTable","showLocationPriorityViewModel","setShowLocationPriorityViewModel","UserTable","account","userDelete","phoneNumber","handleShow","handlePasswordConfirm","onResetPassword","handlePinConfirm","handlePin","hideAlert","minHeight","selected","roles","role","setShowChangePassword","handleShowResetPassword","handleShowPin","handleShowSave","handleShowCancel","handleConfirmCancel","UserManagement","setRoles","setUserId","selectedUser","setSelectedUser","isUsername","isEmail","setIsEmail","isPhoneNumber","setIsPhoneNumber","clearAddUserValidation","hideSave","resUsername","resEmail","resPhone","users","fetchRoles","replace","handleQr","ChangePassword","setInput","currentPassword","confirmPassword","onInputChange","validPassword","RegExp","handleSavePasswordSuccess","AccountManagement","setAccount","showChangePassword","fetchUser","reload","AuditLogTable","prodcutId","description","AuditLog","setUsers","fetchUsers","fetchTypes","CategoryTable","handleDefaultCategory","isSystemCategory","handleSelectCategory","CategoryGroups","_props$selected","_props$selected2","_props$selected3","_props$selected4","handleSelect","CategoryValues","_props$data$","searchKey","setSearchKey","originalData","setOriginalData","handleSearchKey","cellWidth","count","requiresSupplierId","requiresSizeGroupId","categoryValue","sizeGroupId","sizeGroupName","AddEditCategoryModal","AddEditCategoryGroupModal","AddEditCategoryValueModal","handleChangeCategoryDropdown","catrgorySize","Category","showCategoryDetails","setShowCategoryDetails","showCategoryModal","setShowCategoryModal","showCategoryGroupModal","setShowCategoryGroupModal","showCategoryValueModal","setShowCategoryValueModal","searchCategories","setSearchCategories","selectedCategory","setSelectedCategory","setCategoryGroupId","selectedCategoryGroup","setSelectedCategoryGroup","originCategories","setOriginCategories","categoryValues","setCategoryValues","selectedCategoryValues","setSelectedCategoryValues","categoryValueId","setCategoryValueId","selectedCategoryValue","setSelectedCategoryValue","setSupplier","setCategorySize","handleCategoryModalHide","handleCategoryGroupModalHide","handleCategoryValueModalHide","clearCategoryValidation","deleteCategoryHandler","fetchCategories","deleteCategoryGroupHandler","deleteCategoryValueHandler","fetchCategoryValues","fetchCategorSize","Data","handleGetSupplier","handleChangeCategory","handleChangeCategoryGroup","handleChangeCategoryValue","saveCategoryValueHandler","labelName","handleAddCategory","valueType","categoryGroupIds","handleDeleteCategory","handleAddCategoryGroup","handleEditCategoryGroup","handleDeleteCategoryGroup","handleAddCategoryValue","categoryGroupName","handleDeleteCategoryValue","ResetPasswordPage","setEmail","setPhoneNumber","passwordReset","setPasswordReset","Link","to","PurchaseOrderMappingTable","purchaseOrderMappingData","PurchaseOrderMapping","columnStart","formula","handleEditPurchaseOrder","AddEditPurchaseOrderMappingModal","GetDropdownList","categoriesDropdown","showEdit","PurchaseOrderId","setpurchaseOrderMappingData","SetShowEdit","setPurchaseOrderId","changePurchaseOrderMappingData","setChangePurchaseOrderMappingData","setCategoriesDropdown","addPurchaseOrder","fetchPurchaseOrderMapping","UpdatePurchaseOrder","deleteDeletePurchaseOrder","unshift","AutoReplenishment","SpecialOrdersTable","returnStatus","returnEmployeeDetails","handleOpenSpecialOrderModal","_props$locations$find","_props$locations$find2","approvedByID","productLink","requestedById","handleOpenUpdateSpecialOrderModal","returnSpecialOrderSingle","SpecialOrderProductsTable","setSelectedProduct","RequestSpecialOrder","_props$selectedProduc","_props$selectedProduc2","_props$selectedProduc3","_props$selectedProduc4","_props$selectedProduc5","_props$newSpecialOrde","_props$locations","_props$newSpecialOrde2","_props$newSpecialOrde3","_props$newSpecialOrde4","_props$newSpecialOrde5","_props$newSpecialOrde6","_props$newSpecialOrde7","_props$newSpecialOrde8","_props$newSpecialOrde9","_props$locations2","_props$newSpecialOrde10","showEnterNewProduct","setShowEnterNewProduct","handleToggleEnterNewProduct","setNewSpecialOrder","cleanSpecialOrder","newSpecialOrder","selectedProduct","requestSpecialOrder","isLoadingSpecialOrder","handleCloseSpecialOrderModal","SpecialOrderNotes","_props$data2","returnUser","toggleEditSpecialOrderNote","setSelectedNote","note","setIsEditNote","isAddNote","isEditNote","returnInput","InputGroup","FormControl","selectedNote","_props$selectedNote","specialOrderId","_props$data","deleteSpecialOrderNote","handleAddSpecialOrderNote","UpdateSpecialOrder","_props$data3","_props$data4","_props$data5","_props$data6","_props$data7","_props$data8","_props$data9","_props$data10","_props$data11","_props$data12","handleSpecialOrderInputChange","returnLocation","returnRequestedBy","specialOrderNotes","setSpecialOrderNotes","addSpecialOrderNote","isAdmin","handleApproveSpecialOrder","handleOpenRejectionReasonModal","updateSpecialOrderNote","handleUpdateSpecialOrder","handleCloseUpdateSpecialOrderModal","RejectionReasonModal","setSelectedSpecialOrder","selectedSpecialOrder","rejectionReason","handleRejectSpecialOrder","handleCloseRejectionReasonModal","SpecialOrders","setIsAdmin","specialOrdersData","setSpecialOrdersData","productsData","setProductsData","showSpecialOrderNotes","setShowSpecialOrderNotes","setIsAddNote","approvedById","rejectedReason","showRequestSpecialOrderModal","setShowRequestSpecialOrderModal","showUpdateSpecialOrderModal","setShowUpdateSpecialOrderModal","fetchAllUsers","fetchAllSpecialOrders","fetchProducts","setIsLoadingSpecialOrder","isExisting","_selectedProduct$id","_selectedProduct$name","_selectedProduct$prod","_selectedProduct$desc","_newSpecialOrder$quan","_selectedProduct$purc","_selectedProduct$bran","_selectedProduct$colo","_selectedProduct$size","fetchSpecialOrderNotes","confirmDeleteSpecialOrderNote","showRejectionReasonModal","setShowRejectionReasonModal","isConfirm","_locations$find$value","StocktakeLineModal","checkedItems","setCheckedItems","handleShowApproveAdjustmentsModal","StocktakeTable","handleShowCreateStocktakeModal","SKU","dateOpened","dateCompleted","dateClosed","varianceCost","startingStockOnHand","stocktakeNumber","accuracyRate","getStocktakeLine","getUserName","handleDeleteStocktake","CreateStocktakeModal","newStocktake","setNewStocktake","brandsDropdown","brandIds","newItem","i","gendersDropdown","handleCreateStocktake","StocktakeAnalysisModal","lastScannedDate","formattedDate","ApproveAdjustmentsModal","additionalCost","additionalUnits","writeOffCost","writeOffUnits","adjustmentCalculationsData","stocktakeConfirming","adjustmentNotes","setAdjustmentNotes","hasConsentedToAdjustments","handleConsentApproveAdjustments","handleConfirmApproveAdjustments","Stocktake","stocktakeData","setStockTakeData","selectedStocktakeId","setSelectedStocktakeId","selectedStocktake","setSelectedStocktake","selectedStocktakeStatus","setSelectedStocktakeStatus","selectedStocktakeLocationId","setSelectedStocktakeLocationId","setBrandsDropdown","setGendersDropdown","statusDropdown","setStatusDropdown","allChecked","setAllChecked","showStocktakeLinesModal","setShowStocktakeLinesModal","handleShowStocktakeLinesModal","handleCloseStocktakeLinesModal","showCreateStocktakeModal","setShowCreateStocktakeModal","handleCloseCreateStocktakeModal","showStocktakeAnalysisModal","setShowStocktakeAnalysisModal","stocktakeAnalysisData","setStocktakeAnalysisData","fetchStocktakeAnalysisData","showApproveAdjustmentsModal","setShowApproveAdjustmentsModal","setStocktakeConfirming","setHasConsentedToAdjustments","handleCloseApproveAdjustmentsModal","setAdjustmentCalculationsData","adjustmentMade","setAdjustmentMade","fetchStatusDropdown","fetchGenderDropdownList","fetchStockTakeData","genderUrl","genderResponse","genderBody","fromDate","toDate","getStocktakeLines","s","confirmDeleteStocktake","confirmCreateStocktake","handleFetchConfirmationCalculations","handleCloseStocktakeAnalysisModal","newCheckedItems","stocktakeLineId","variancesArray","confirmSave","handleSelectLocation","handleSelectBrand","handleShowStocktakeAnalysisModal","routes","path","PurchaseOrders","Categories","Locations","layout","Auth","getRoutes","prop","collapse","views","Route","Switch","Sidebar","userCollapseState","setUserCollapseState","setState","getCollapseStates","getCollapseInitialState","createLinks","redirect","st","Nav","Collapse","in","activeRoute","routeName","defaultProps","AdminNavbar","showAccountModal","setShowAccountModal","showPasswordModal","setShowPasswordModal","collapseOpen","setCollapseOpen","Navbar","expand","classList","toggle","navbar","Dropdown","Toggle","Menu","alignRight","removeItem","handleCloseAccountModal","handleClosePasswordModal","MsalAuthProvider","clientId","authority","cache","cacheLocation","storeAuthStateInCookie","scopes","LoginType","Redirect","Admin","startsWith","originalConsoleError","adAccount","setADAccount","sideRoutes","route","exact","ReactDOM","createRoot","render","Provider","BrowserRouter","AuthLayout","AdminLayout","serviceWorker","ready","registration","unregister","catch","DatePicker","dateFormat","selectsRange","d","renderAuditTable","SalesAndInventory","selectedSeasonId","handleSeasonChange","hasFullViewPermission","profit","maxHeight","overflowX","renderInventoryTable","inventoryData","left","sizesInStockAndSold","handleGetWebOrdersInformation","minWidth","inStock","canEdit","ItemType","DraggableImage","img","moveImage","showDelete","draggedItem","node","objectFit","ImageComponent","updateProductImageOrder","fromIndex","toIndex","parseCurrency","numericValue","isOnEditingDetails","setIsOnEditingDetails","setInventoryData","sizes","setSizes","colours","setColours","googleColours","setGoogleColours","setTags","productTags","setProductTags","invSeasons","setInvSeasons","setSelectedSeasonId","isItemCardLoading","setIsItemCardLoading","isSaving","setIsSaving","isUploading","setIsUploading","NoImage","canEditFull","canEditWeb","setValue","handleTabSelect","handlePublishProduct","shopifyProductId","handleUnpublishProduct","handleUpdateDetails","formatedPriceDetails","_globalDropdownsBody$2","_globalDropdownsBody$3","_globalDropdownsBody$4","_globalDropdownsBody$5","_globalDropdownsBody$6","_globalDropdownsBody$7","_globalDropdownsBody$8","_googleColourData$fin","_googleColourData$fin2","_globalDropdownsBody$9","_globalDropdownsBody$10","productDetails","webDetailsUrl","webDetailsResponse","webDetailsBody","genderdata","maxId","sizesData","colourData","googleColourData","metaGoogleColorId","metaGoogleColor","tagsData","productTagsUrl","productTagsRes","productTagsBody","productTagsData","handlePaste","clipboardData","originalEvent","kind","getAsFile","deletProductImage","imageIndex","updatedImages","_","addEventListener","removeEventListener","fetchInventorySeasons","getSalesAndInventoryData","getAuditLogs","InventoryUrl","Inventoryresponse","InventoryDetails","shopifyLink","onSelect","hF","colourId","published","ReactQuill","htmlBody","content","modules","toolbar","list","formats","readOnly","metaProductSummary","metaGender","metaProductSubtitle","metaProductCustomDescription","rel","newArray","movedItem","reason","setReason","handleUpdateInventory","updatedSizes","handleInventoryChange","handleSaveAlert"],"mappings":"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","file":"static/js/main.9a785abc.chunk.js","sourcesContent":["import React from \"react\";\nimport { useMemo } from \"react\";\n// react plugin used to create DropdownMenu for selecting items\nimport Select from \"react-select\";\n// react-bootstrap components\n\nexport default function CustomSelect(props) {\n const { id, data, withAll, withBlank } = props;\n\n const selectOptions = useMemo(() => {\n const options = data.map((e) => {\n return {\n value: e.id,\n label: e.value,\n };\n });\n\n if (withAll)\n return [\n {\n value: 0,\n label: \"ALL\",\n },\n ].concat(options);\n\n if (withBlank)\n return [\n {\n value: 0,\n label: \"\",\n },\n ].concat(options);\n\n return options;\n }, [data]);\n\n const value = useMemo(() => {\n if (selectOptions) {\n const val = selectOptions.filter((e) => e.value === (props.value || id));\n if (val && val.length > 0) {\n return val[0];\n } else {\n return {\n value: null,\n label: \"\",\n };\n }\n\n // Just in case\n //if (props.tab === \"manage-category\" || props.placeholder === \"Category Value\" || props.placeholder === \"Supplier\" || props.placeholder === \"Size Group\" || props.placeholder === \"Category Name\" || props.placeholder === \"Brand\" || props.placeholder === \"Season\" || props.placeholder === \"VAT Rate\") {\n // const val = selectOptions.filter((e) => e.value === (props.value || id));\n // if (val)\n // return val[0];\n //} else {\n // const val = selectOptions.filter((e) => e.value === (id || props.value));\n // if (val)\n // return val[0];\n //}\n }\n return null;\n }, [selectOptions, id, props.value]);\n\n return (\n <>\n {props.title &&
{props.title}
}\n props.handleChange(value)}\n options={selectOptions}\n placeholder={props.placeholder ? props.placeholder + \" select\" : \"\"}\n isDisabled={props.isDisabled ? props.isDisabled : false}\n />\n \n );\n}\n","import moment from \"moment\";\n\nexport const formatDate = (value) => {\n if (value !== undefined) {\n const formattedValue = moment(value).format(\"DD/MM/YYYY hh:mm\")\n\n return formattedValue;\n }\n return null;\n}","// User Management\nexport const ADMIN_USERMANAGEMENT_VIEW = \"UserManagement.View\";\nexport const ADMIN_USERMANAGEMENT_EDIT = \"UserManagement.Edit\";\nexport const ADMIN_USERMANAGEMENT_DELETE = \"UserManagement.Delete\";\n\n// Audit Log\nexport const AUDITLOG_VIEW = \"AuditLog.View\";\n\n// Supplier\nexport const SUPPLIER_VIEW = \"Suppliers.View\";\nexport const SUPPLIER_EDIT = \"Suppliers.Edit\";\nexport const SUPPLIER_DELETE = \"Suppliers.Delete\";\n\n// Labels\nexport const LABELS_VIEW = \"Labels.View\";\n\n// Location\nexport const LOCATION_VIEW = \"Locations.View\";\nexport const LOCATION_EDIT = \"Locations.Edit\";\nexport const LOCATION_DELETE = \"Locations.Delete\";\n\n// Products\nexport const PRODUCTS_VIEW = \"Products.View\";\nexport const PRODUCTS_EDIT = \"Products.Edit\";\nexport const PRODUCTS_DELETE = \"Products.Delete\";\nexport const PRODUCTS_FULL_VIEW = \"Products.FullView\";\nexport const PRODUCTS_WEB = \"Products.Web\";\n\n// Categories\nexport const CATEGORIES_VIEW = \"Categories.View\";\nexport const CATEGORIES_EDIT = \"Categories.Edit\";\nexport const CATEGORIES_DELETE = \"Categories.Delete\";\n\n// Movements\nexport const MOVEMENTS_VIEW = \"Movements.View\";\nexport const MOVEMENTS_EDIT = \"Movements.Edit\";\nexport const MOVEMENTS_DELETE = \"Movements.Delete\";\nexport const MOVEMENTS_MASS_BOOK_IN = \"Movements.MassBookIn\";\n\n// Special Orders\nexport const SPECIALORDERS_EDIT = \"SpecialOrders.Edit\";\nexport const SPECIALORDERS_DELETE = \"SpecialOrders.Delete\";\nexport const SPECIALORDERS_VIEW = \"SpecialOrders.View\";\n\n// Orders\nexport const ORDERS_VIEW = \"Orders.View\";\n\n// Buyers\nexport const BUYERS_VIEW = \"Buyers.View\";\nexport const BUYERS_EDIT = \"Buyers.Edit\";\nexport const BUYERS_DELETE = \"Buyers.Delete\";\n\n// BulkUpdate\nexport const BULKUPDATE_VIEW = \"BulkUpdate.View\";\nexport const BULKUPDATE_EXPORT = \"BulkUpdate.Export\";\nexport const BULKUPDATE_IMPORT = \"BulkUpdate.Import\";\n\n// Purchase Order\nexport const PURCHASEORDER_VIEW = \"PurchaseOrder.View\";\nexport const PURCHASEORDER_EDIT = \"PurchaseOrder.Edit\";\nexport const PURCHASEORDER_DELETE = \"PurchaseOrder.Delete\";\n\n// Orders\nexport const ORDERS_EDIT = \"Orders.Edit\";\nexport const ORDERS_DELETE = \"Orders.Delete\";\n\n//stocktake\nexport const STOCKTAKE_VIEW = \"Stocktake.View\";\n","import React, { useState, useEffect } from \"react\";\n// react-bootstrap components\nimport {\n Form,\n Card,\n Col,\n Button,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Dropdown,\n} from \"react-bootstrap\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport { useHistory } from \"react-router-dom\";\nimport { formatDate } from \"../../utils/FormatDate\";\n\nfunction WebOrdersModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1200px\");\n }, []);\n\n const history = useHistory();\n\n const navigateToManageMovements = (order) => {\n history.push({\n pathname: \"/manage-movements\", // the path of the new page\n state: { order: order }, // the state you want to pass\n });\n };\n\n const navigateToOrders = (order) => {\n history.push({\n pathname: \"/orders\", // the path of the new page\n state: { order: order }, // the state you want to pass\n });\n };\n\n //Print batch in pdf\n const handlePrintBatchLabel = async (batchId, batchName) => {\n try {\n const url = `Movement/PrintBatchLabel?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&batchId=${batchId}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n //Print batch labels to pdf\n const handleGetLabelPDF = async (id) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n\n // Movements table\n const returnMovementsTable = () => {\n const returnStatusName = (statusId) => {\n switch (statusId) {\n case 1:\n return \"Open\";\n case 2:\n return \"Open\";\n case 3:\n return \"In Transit\";\n default:\n return \"N/A\";\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {props.itemCardWebOrderInfo.map((order, index) => {\n console.log(\"order\", order);\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n
IdBatchNameFrom LocationTo LocationType NameUnitsStatusDate Created
navigateToManageMovements(order)}\n style={{cursor: \"pointer\"}}>\n {order.id}\n {order.batchName ?? \"N/A\"}{order.fromLocationName ?? \"N/A\"}{order.toLocationName ?? \"N/A\"}{order.typeName ?? \"N/A\"}{order.units} ({order.unitsBookedIn}){returnStatusName(order.statusId)}{formatDate(order.dateCreated)}\n e.preventDefault()}\n overlay={\n Download Batch Label\n }\n >\n handlePrintBatchLabel(order.id, order.batchName)}\n variant=\"link\"\n >\n \n \n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n \n handleGetLabelPDF(props.selectedProductId, null)\n }\n variant=\"link\"\n >\n \n \n \n
\n );\n };\n\n // // orders table\n const returnOrdersTable = () => {\n return (\n \n \n \n \n \n \n \n {props.itemCardWebOrderInfoType !== \"Sold\" && }\n \n \n \n \n \n {props.itemCardWebOrderInfo.map((order, index) => {\n return (\n navigateToOrders(order)}\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n \n {props.itemCardWebOrderInfoType !== \"Sold\" && (\n \n )}\n \n \n \n );\n })}\n \n
OrderTotal PriceSub TotalTotal TaxQuantityFulfillment StatusLocation
\n {order.orderNumber ?? \"N/A\"}\n {`£${order?.totalPrice?.toFixed(2)}` ?? \"N/A\"}{`£${order?.subtotal?.toFixed(2)}` ?? \"N/A\"}{`£${order?.totalTax?.toFixed(2)}` ?? \"N/A\"}{order.quantity ?? \"N/A\"}{order.fulfillmentStatus ?? \"N/A\"}\n {order.locationId === 0 ? \"Web\" : order.location ?? \"N/A\"}\n
\n );\n };\n\n return (\n \n \n {props.itemCardWebOrderInfoType}\n {/* \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n */}\n \n \n {props.itemCardWebOrderInfoType === \"In Transit\"\n ? returnMovementsTable()\n : returnOrdersTable()}\n \n \n );\n}\nexport default WebOrdersModal;\n","import React, { useEffect } from 'react';\nimport Lottie from 'lottie-react';\n\nexport default function Loading(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, [])\n\n return (\n <>\n \n

{props.title}

\n \n );\n}","export default __webpack_public_path__ + \"static/media/background.b886d43c.jpg\";","export default __webpack_public_path__ + \"static/media/logo.13d2cfe3.png\";","import React from \"react\";\nimport { Badge, Form } from \"react-bootstrap\";\nimport TextField from \"@mui/material/TextField\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\nimport CustomSelect from \"./CustomSelect\";\nimport { useEffect, useState } from \"react\";\n\nfunction CustomAutoComplete(props) {\n return (\n
\n
\n props.handleAddItem(e)}\n isDisabled={props.disabled}\n withAll={props.label === \"Add Brands\" ? true : false}\n />\n
\n
\n {props.selectedItems?.map((item) => (\n \n !props.disabled ? props.handleRemoveItem(item) : \"\"\n }\n >\n {item.value}\n \n \n ))}\n
\n
\n );\n}\n\nexport default CustomAutoComplete;\n","export const getPermission = (userPermissons, permission) => {\n const data = userPermissons?.filter((item) => item === permission);\n\n if (data?.length > 0) return data;\n\n return null;\n};\n","import React, {useState, useEffect, useMemo, useRef} from \"react\";\nimport moment from \"moment\";\nimport CustomModal from \"components/Shared/CustomModal\";\n\nimport {\n Card,\n Container,\n Row,\n Col,\n Button,\n Form,\n Tooltip,\n OverlayTrigger,\n} from \"react-bootstrap\";\nimport {useSelector} from \"react-redux\";\n\nimport DateRange from \"../../components/Shared/DateRange\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport PurchaseOrderTable from \"components/PurchaseOrder/PurchaseOrderTable\";\nimport PurchaseOrderModal from \"components/PurchaseOrder/PurchaseOrderModal\";\nimport AddEditPurchaseOrderLineModal from \"components/PurchaseOrder/AddEditPurchaseOrderLineModal\";\nimport {showSweetAlert} from \"components/Shared/CustomAlert\";\nimport Loading from \"components/Shared/Loading\";\nimport AddEditPurchaseOrderModal from \"components/PurchaseOrder/AddEditPurchaseOrderModal\";\nimport {propTypes} from \"react-bootstrap/esm/Image\";\nimport animationData from \"../../assets/animations/orange-square.json\";\nimport ItemCard from \"../../components/ItemCard/ItemCard\";\nimport InventoryModal from \"../../components/ItemCard/InventoryModal\";\n\nimport {\n PURCHASEORDER_VIEW,\n PURCHASEORDER_EDIT,\n PURCHASEORDER_DELETE,\n} from \"constants/Permissions.js\";\nimport {getPermission} from \"utils/Permissions.js\";\n\nfunction PurchaseOrder() {\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n const [originPurchaseOrder, setOriginPurchaseOrder] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [showPurchaseOrderLineModal, setPurchaseOrderLineModal] =\n useState(false);\n const handleCloseModal = () => setShowModal(false);\n const handleShowModal = () => setShowModal(true);\n const handleClosePurchaseOrderLineModal = () =>\n setPurchaseOrderLineModal(false);\n const handleShowPurchaseOrderLineModal = () =>\n setPurchaseOrderLineModal(true);\n const [status, setStatus] = useState([]);\n const [statusId, setStatusId] = useState(0);\n const [showAddModal, setShowAddModal] = useState(false);\n const handleCloseAddModal = () => setShowAddModal(false);\n const handleShowAddModal = () => setShowAddModal(true);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState(\"Detail\");\n\n const [isLoading, setIsLoading] = useState(true);\n const [PurchaseOrderLine, setPurchaseOrderLine] = useState([]);\n const [page, setPage] = useState(1);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(500);\n const defaultDate = new Date();\n const [dateRange, setDateRange] = useState([\n defaultDate.setMonth(defaultDate.getMonth() - 3),\n new Date(),\n ]);\n const [suppliers, setSuppliers] = useState([]);\n const [supplierId, setSupplierId] = useState(0);\n const [season, setSeason] = useState([]);\n const [brands, setBrands] = useState([]);\n const [seasonId, setseasonId] = useState(0);\n const [brandId, setBrandId] = useState(0);\n const [purchaseOrderSearch, setPurchaseOrderSearch] = useState(\"\");\n const [purchaseOrderLineSearch, setPurchaseOrderLineSearch] = useState(\"\");\n const [orderBy, setOrderBy] = useState(\"DateCreated\");\n const [descending, setDescending] = useState(true);\n const [originData, setOriginData] = useState([]);\n const [data, setData] = useState([]);\n const [currentEstimatedDeliveryDate, setCurrentEstimatedDeliveryDate] =\n useState([new Date()]);\n\n const [purchaseOrderLineChange, setPurchaseOrderLineChange] = useState([]);\n const [products, setProducts] = useState([]);\n const [purchaseOrderLineId, setPurchaseOrderLineId] = useState(0);\n const [editPurchaseOrderLineId, setEditPurchaseOrderLineId] = useState();\n const [isEdit, setIsEdit] = useState(false);\n const [error, setError] = useState({\n productId: \"\",\n quantity: \"\",\n });\n const [quantityValidate, setQuantityValidate] = useState(true);\n const [isImportLoading, setIsImportLoading] = useState(false);\n\n const [selectedPurchaseOrder, setSelectedPurchaseOrder] = useState([]);\n\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n\n const fileInputRef = useRef(null);\n let files = \"\";\n const [validation, setvalidation] = useState({\n purchaseOrderNumber: \"\",\n brandId: \"\",\n seasonId: \"\",\n estimatedDeliveryDate: \"\",\n });\n // ### HANDLERS ###\n const [selectedDate, setSelectedDate] = useState(null);\n const [locations, setLocations] = useState([]);\n\n const handlePurchaseOrderSearchChange = (value) => {\n setPurchaseOrderSearch(value);\n };\n\n const handlePurchaseOrderLineSearchChange = (value) => {\n setPurchaseOrderLineSearch(value);\n };\n\n const clearPurchaseOrderValidation = () => {\n setvalidation({\n purchaseOrderNumber: \"\",\n brandId: \"\",\n seasonId: \"\",\n estimatedDeliveryDate: \"\",\n });\n };\n\n const clearPurchaseOrderLineValidation = () => {\n setError({\n productId: \"\",\n quantity: \"\",\n });\n };\n\n const handleDateChange = (date) => {\n validation.estimatedDeliveryDate = \"\";\n setSelectedPurchaseOrder({\n ...selectedPurchaseOrder,\n [\"estimatedDeliveryDate\"]: date,\n });\n };\n\n const handleFileUpload = (event) => {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (event) => {\n const binaryString = event.target.result;\n const base64String = btoa(binaryString);\n files = base64String;\n saveFile();\n };\n reader.readAsBinaryString(file);\n };\n\n const handleSubmit = () => {\n fileInputRef.current.click();\n };\n\n const handleExportTemplate = async () => {\n setIsLoading(true);\n try {\n const url = `PurchaseOrder/GetExportTemplate?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, \"base64\");\n const blob = new Blob([binaryData], {\n type: \"application/vnd.ms-excel.sheet.macroEnabled.12\",\n });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = Newurl;\n link.setAttribute(\"download\", \"Export.xlsm\");\n link.click();\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetExportExcel = async (id, name) => {\n setIsLoading(true);\n try {\n const url = `PurchaseOrder/GetExportExcel?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, \"base64\");\n const blob = new Blob([binaryData], {\n type: \"application/vnd.ms-excel.sheet.macroEnabled.12\",\n });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = Newurl;\n link.setAttribute(\"download\", name + \".xlsm\");\n link.click();\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const validateInput = (name, value) => {\n setvalidation((prev) => {\n const stateObj = {...prev, [name]: \"\"};\n switch (name) {\n case \"purchaseOrderNumber\":\n if (!value) {\n stateObj[name] = \"Please enter an purchaseOrder Number.\";\n }\n break;\n case \"brandId\":\n if (!value) {\n stateObj[name] = \"Please select a brand.\";\n }\n break;\n case \"seasonId\":\n if (!value) {\n stateObj[name] = \"Please select a season.\";\n }\n break;\n case \"estimatedDeliveryDate\":\n if (!value) {\n stateObj[name] = \"Please enter an estimated delivery date.\";\n }\n break;\n case \"locationId\":\n if (!value) {\n stateObj[name] = \"Please select a location.\";\n }\n break;\n default:\n break;\n }\n return stateObj;\n });\n };\n\n const saveFile = async () => {\n // Send the base64 string to the API using fetch or axios\n try {\n setIsImportLoading(true);\n const payload = files;\n const response = await fetch(\n `PurchaseOrder/Import?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(payload),\n }\n );\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert(\"saveSuccess\", `Purchase Order`);\n } else {\n if (\n body ==\n \"A purchase order reference as specified in this document already exists.\"\n ) {\n showSweetAlert(\n \"warningCustomMessage\",\n `This purchase order reference already exists. Importing this sheet will update the allocations against this purchase order. Are you sure you wish to continue?`,\n () => {\n handlePurchaseOrderReallocation();\n }\n );\n } else {\n showSweetAlert(\n \"warningOkOnly\",\n body\n .split(\"\\n\")\n .map((line) => `
${line}
`)\n .join(\"
\")\n );\n }\n }\n } catch {\n } finally {\n setIsImportLoading(false);\n fetchPurchaseOrderData();\n }\n };\n\n const handlePurchaseOrderReallocation = () => {\n reallocatePurchaseOrder();\n };\n\n const reallocatePurchaseOrder = async () => {\n // Send the base64 string to the API using fetch or axios\n try {\n setIsImportLoading(true);\n const payload = files;\n const response = await fetch(\n `PurchaseOrder/ImportReallocation?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(payload),\n }\n );\n const body = await response.json();\n if (response.status === 200) {\n if (body == \"\") {\n showSweetAlert(\"saveSuccess\", `Purchase Order`);\n } else {\n showSweetAlert(\n \"saveSuccessCustomMessage\",\n `Import complete with the following errors:

${body}`\n );\n }\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch {\n } finally {\n setIsImportLoading(false);\n fetchPurchaseOrderData();\n }\n };\n\n const handlePurchaseOrderCancel = () => {\n handleCloseAddModal();\n\n if (selectedPurchaseOrder.id != 0) {\n setSelectedPurchaseOrder({\n ...selectedPurchaseOrder,\n [\"estimatedDeliveryDate\"]: currentEstimatedDeliveryDate,\n });\n handleShowModal();\n }\n };\n\n const handleDatesChange = (dates) => {\n setDateRange(dates);\n if (dates[0] && dates[1]) {\n const filterData = originData.filter((item) => {\n return moment(item.timestamp).isBetween(\n moment(dates[0], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n moment(dates[1], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n null,\n \"[]\"\n );\n });\n setData(filterData);\n }\n };\n\n const handleLineChange = (name, value) => {\n let item = {\n ...purchaseOrderLineChange,\n [name]: value,\n };\n setPurchaseOrderLineChange(item);\n validatePurchaseOrderLineInput(name, value);\n };\n\n const handleProductLineChange = async (name, event) => {\n // if productId is changed (Add only) autofill cost price\n if (name == \"productId\") {\n validatePurchaseOrderLineInput(name, event.value);\n let cost = await fetchProduct(event.value);\n let item = {\n ...purchaseOrderLineChange,\n [name]: event.value,\n costPrice: cost,\n };\n setPurchaseOrderLineChange(item);\n }\n };\n\n const validatePurchaseOrderLineInput = (name, value) => {\n setError((prev) => {\n const stateObj = {...prev, [name]: \"\"};\n switch (name) {\n case \"productId\":\n if (!value) {\n stateObj[name] = \"Please select a product.\";\n }\n break;\n case \"quantity\":\n if (value <= 0) {\n stateObj[name] = \"Quantity must be greater then 0.\";\n } else if (value < purchaseOrderLineChange.allocated) {\n stateObj[name] =\n purchaseOrderLineChange.allocated +\n \" have already been allocated. You cannot set the quantity lower than this.\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n };\n\n const handleAddPurchaseOrderLine = () => {\n clearPurchaseOrderLineValidation();\n setIsEdit(false);\n setPurchaseOrderLineChange({\n quantity: 0,\n costPrice: 0,\n discountPercentage: 0,\n discount: 0,\n purchaseOrderId: selectedPurchaseOrder.id,\n locationId: 0,\n locationName: \"\",\n SeasonId: 0,\n SeasonName: \"\",\n SupplierBarcode: 0,\n BrandCode: \"\",\n productId: 0,\n productName: \"\",\n tax: 0,\n sku: \"\",\n size: \"\",\n colour: \"\",\n totalPrice: 0,\n statusId: 0,\n warehouseAllocation: \"\",\n statusName: \"\",\n allocations: [],\n });\n handleShowPurchaseOrderLineModal();\n };\n\n const handleAllocationChange = (event, index) => {\n const {name, value} = event.target;\n const allocations = [...purchaseOrderLineChange.allocations];\n allocations[index][\"quantity\"] = parseInt(value);\n const quantity = parseInt(purchaseOrderLineChange.quantity);\n if (allocations[index][\"quantity\"] <= quantity) {\n error.quantity = \"\";\n setQuantityValidate(true);\n } else {\n error.quantity = \"Not enough to fullfil allocation\";\n setQuantityValidate(false);\n }\n setPurchaseOrderLine({...purchaseOrderLineChange, allocations});\n };\n\n const handleSearchChange = (value) => {\n const filterData = originPurchaseOrder?.filter((item) =>\n item.productName.toLowerCase().includes(value.toLowerCase())\n );\n setSearch(value);\n setPurchaseOrderLine(filterData);\n };\n var isArchived = false;\n const Check = (event) => {\n isArchived = event.target.checked;\n fetchSeason();\n fetchBrands();\n fetchPurchaseOrderData();\n };\n\n const handleDropDownChange = (label, id, idName, name) => {\n // handle the location change - need to get the name and id\n if (name === \"location\") {\n // get the location name\n const selectedLocation = locations.filter((x) => x.id === id);\n setSelectedPurchaseOrder({\n ...selectedPurchaseOrder,\n locationName: selectedLocation[0].value,\n locationId: selectedLocation[0].id,\n });\n } else {\n setSelectedPurchaseOrder({\n ...selectedPurchaseOrder,\n [name]: label,\n [idName]: id,\n });\n }\n\n validateInput(idName, id);\n };\n\n const handleChangePurchaseOrder = (name, value) => {\n setSelectedPurchaseOrder({\n ...selectedPurchaseOrder,\n [name]: value,\n });\n validateInput(name, value);\n };\n\n const handleAddModelPurchaseOrder = () => {\n clearPurchaseOrderValidation();\n\n setSelectedPurchaseOrder({\n id: 0,\n purchaseOrderNumber: \"\",\n estimatedDeliveryDate: new Date(),\n supplierId: 0,\n supplierName: \"\",\n supplierAddress: \"\",\n buyerName: \"\",\n buyerAddress: \"\",\n shippingAddress: \"\",\n userId: localStorage.getItem(\"userId\"),\n userFullName: localStorage.getItem(\"username\"),\n costPrice: 0,\n tax: 0,\n locationId: null,\n locationName: \"\",\n discount: 0,\n total: 0,\n totalQuantity: 0,\n seasonId: 0,\n season: \"\",\n statusId: 0,\n statusName: \"\",\n brandId: \"\",\n brandName: \"\",\n createdDate: new Date(),\n });\n\n handleShowAddModal();\n };\n\n const handleEditModelPurchaseOrder = () => {\n clearPurchaseOrderValidation();\n handleCloseModal();\n handleShowAddModal();\n };\n\n const handleEditPurchaseOrderLine = (id) => {\n clearPurchaseOrderLineValidation();\n setEditPurchaseOrderLineId(id);\n setIsEdit(true);\n let PurchaseOrderValue = PurchaseOrderLine.filter((x) => x.id == id);\n setPurchaseOrderLineChange(...PurchaseOrderValue);\n handleShowPurchaseOrderLineModal();\n };\n\n const handleDeletePurchaseOrderLine = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to delete this purchase order line?`,\n () => {\n deletePurchaseOrderLine(id);\n }\n );\n };\n\n const deletePurchaseOrderLine = async (id) => {\n try {\n let url = `/PurchaseOrderLine/Delete?Id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"DELETE\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ]\n });\n const body = await response.json();\n if(response.status == 400) {\n showSweetAlert(\"warningCustomMessage\", body);\n }\n fetchPurchaseOrderLine(selectedPurchaseOrder.id)\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item);\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n };\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n };\n\n // ### DATA FETCHES ##\n const handleAddPurchaseOrder = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to add this purchase order?`,\n () => {\n handleSavePurchaseOrder();\n }\n );\n };\n const handleUpdatePurchaseOrder = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to update the purchase order?`,\n () => {\n handleSavePurchaseOrder();\n }\n );\n };\n\n const isEmpty = (value) => {\n if (value === null || value === undefined) return true;\n if (typeof value === \"string\" && value.trim() === \"\") return true;\n return false;\n };\n\n const handleSavePurchaseOrder = async () => {\n let validationErrors = {};\n\n if (isEmpty(selectedPurchaseOrder.purchaseOrderNumber)) {\n validationErrors.purchaseOrderNumber =\n \"Please enter the purchaseOrderNumber\";\n }\n if (selectedPurchaseOrder.brandId <= 0) {\n validationErrors.brandId = \"Please select the brand\";\n }\n if (selectedPurchaseOrder.seasonId <= 0) {\n validationErrors.seasonId = \"Please select the season\";\n }\n if (isEmpty(selectedPurchaseOrder.estimatedDeliveryDate)) {\n validationErrors.estimatedDeliveryDate = \"Please select the date\";\n }\n if (selectedPurchaseOrder.locationId <= 0) {\n validationErrors.locationId = \"Please select the location\";\n }\n\n setvalidation(validationErrors);\n\n if (Object.keys(validationErrors).length > 0) {\n return;\n }\n\n // if (\n // selectedPurchaseOrder.purchaseOrderNumber === \"\" &&\n // selectedPurchaseOrder.brandId <= 0 &&\n // selectedPurchaseOrder.seasonId <= 0 &&\n // selectedPurchaseOrder.estimatedDeliveryDate === \"\"\n // ) {\n // validation.purchaseOrderNumber = \"Please enter the purchaseOrderNumber\";\n // validation.brandId = \"Please select the brand\";\n // validation.seasonId = \"Please select the season\";\n // validation.estimatedDeliveryDate = \"Please select the date\";\n // return;\n // } else {\n // if (selectedPurchaseOrder.purchaseOrderNumber === \"\") {\n // validation.purchaseOrderNumber = \"Please enter the purchaseOrderNumber\";\n // }\n // if (selectedPurchaseOrder.brandId === 0) {\n // validation.brandId = \"Please select the brand\";\n // }\n // if (selectedPurchaseOrder.seasonId === 0) {\n // validation.seasonId = \"Please select the season\";\n // }\n // if (selectedPurchaseOrder.estimatedDeliveryDate === \"\") {\n // validation.estimatedDeliveryDate = \"Please select the date\";\n // }\n // }\n\n try {\n if (selectedPurchaseOrder.id == 0) {\n let url = `PurchaseOrder/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n selectedPurchaseOrder.estimatedDeliveryDate = new Date(dateRange[0]);\n let response = await fetch(url, {\n method: \"POST\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(selectedPurchaseOrder),\n });\n\n if (response.status === 200) {\n showSweetAlert(\"saveSuccess\", `Purchase Order`);\n fetchPurchaseOrderData();\n handleCloseAddModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n } else {\n let url = `PurchaseOrder/Update?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n let response = await fetch(url, {\n method: \"PUT\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(selectedPurchaseOrder),\n });\n\n if (response.status == 200) {\n showSweetAlert(\"saveSuccess\", `Purchase Order`);\n handleCloseAddModal();\n handleShowModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n // ### DATA FETCHES ##\n const fetchProductDropdown = async (brandId, seasonId) => {\n try {\n let url = `/Product/GetDropdownListWithSkuAndBarcode?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&includeArchived=${isArchived}&brandId=${brandId}&seasonId=${seasonId}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setProducts(data);\n } catch (e) {\n }\n };\n\n const fetchProduct = async (id) => {\n try {\n let url = `/Product/GetSingle?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n return body.cost;\n } catch (e) {\n }\n };\n\n const fetchPurchaseOrderData = async () => {\n try {\n let from = new Date(dateRange[0]);\n\n let url = `/PurchaseOrder/getallpaged?skip=${skip}&take=${take}&brandId=${brandId}&seasonId=${seasonId}&statusId=${statusId}&from=${moment(\n from,\n \"YYYY-MM-DD\"\n ).format(\"YYYY-MM-DD\")}&to=${\n dateRange[1] === null\n ? moment(from, \"YYYY-MM-DD\").format(\"YYYY-MM-DD\")\n : moment(dateRange[1], \"YYYY-MM-DD\").format(\"YYYY-MM-DD\")\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}`;\n\n const response = await fetch(url);\n const body = await response.json();\n setIsLoading(false);\n setOriginData(body);\n setData(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n useMemo(async () => {\n setPage(0);\n setOriginData([]);\n setData([]);\n setIsLoading(true);\n fetchPurchaseOrderData();\n }, [brandId, seasonId, dateRange, purchaseOrderSearch, statusId]);\n\n const fetchSeason = async () => {\n try {\n let seasonUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\n \"userToken\"\n )}&&categoryId=4&&includeArchived=${isArchived}`;\n const seasonResponse = await fetch(seasonUrl);\n const seasonBody = await seasonResponse.json();\n const seasonData = seasonBody?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setSeason(seasonData);\n } catch (err) {\n }\n };\n\n const fetchBrands = async () => {\n try {\n let brandUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\n \"userToken\"\n )}&&categoryId=2&&includeArchived=${isArchived}`;\n const brandResponse = await fetch(brandUrl);\n const brandBody = await brandResponse.json();\n const brandData = brandBody?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setBrands(brandData);\n } catch (err) {\n }\n };\n const PurchaseOrderLines = (purchaseOrderId) => {\n handleShowModal();\n fetchPurchaseOrderLine(purchaseOrderId);\n fetchSelectedPurchaseOrder(purchaseOrderId);\n };\n\n const downloadPdf = (base64String, filename) => {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\"binary\");\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], {type: \"application/pdf\"});\n const link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(blob);\n link.download = filename;\n link.click();\n };\n\n const handleGetExportPDF = async (id, name) => {\n try {\n setIsLoading(true);\n const url = `PurchaseOrder/GetExportPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const base64String = await response.text();\n downloadPdf(base64String, name + \".pdf\");\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `PurchaseOrder/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleDeletePurchaseOrder = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to delete this purchase order?`,\n () => {\n deletePurchaseOrder(id);\n }\n );\n };\n\n const deletePurchaseOrder = async (id) => {\n const url = `PurchaseOrder/Delete?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url, {\n method: \"delete\",\n });\n fetchPurchaseOrderData();\n };\n\n const handleClosePurchaseOrder = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to close this purchase order?`,\n () => {\n closePurchaseOrder(id);\n }\n );\n };\n const closePurchaseOrder = async (id) => {\n const url = `PurchaseOrder/ClosePurchaseOrder?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url, {\n method: \"put\",\n });\n fetchPurchaseOrderData();\n };\n\n const handleReopenPurchaseOrder = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to reopen this purchase order?`,\n () => {\n reopenPurchaseOrder(id);\n }\n );\n };\n const reopenPurchaseOrder = async (id) => {\n const url = `PurchaseOrder/ReopenPurchaseOrder?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url, {\n method: \"put\",\n });\n fetchPurchaseOrderData();\n };\n\n const handleSavePurchaseOrderLine = (values) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to save this purchase order line?`,\n () => {\n handleSaveChangesPurchaseOrderLine(values);\n }\n );\n };\n\n const handleSaveChangesPurchaseOrderLine = async (values) => {\n try {\n const url = `/PurchaseOrderLine/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"POST\",\n headers: [[\"Content-Type\", \"application/json\"]],\n body: JSON.stringify(values),\n });\n\n if (response.status == 200) {\n showSweetAlert(\"saveSuccess\", `Purchase Order Line`);\n handleClosePurchaseOrderLineModal();\n fetchPurchaseOrderLine(selectedPurchaseOrder.id);\n } else {\n showSweetAlert(\"errorCustomMessage\", response.data);\n handleClosePurchaseOrderLineModal();\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n const handleUpdatePurchaseOrderLine = (values) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to update this purchase order line?`,\n () => {\n handleUpdateChangesPurchaseOrderLine(values);\n }\n );\n };\n\n const handleUpdateChangesPurchaseOrderLine = async (values) => {\n try {\n const url = `/PurchaseOrderLine/Update?id=${editPurchaseOrderLineId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"put\",\n headers: [[\"Content-Type\", \"application/json\"]],\n body: JSON.stringify(values),\n });\n\n if (response.status == 200) {\n showSweetAlert(\"saveSuccess\", `Purchase Order Line`);\n handleClosePurchaseOrderLineModal();\n fetchPurchaseOrderLine(selectedPurchaseOrder.id);\n } else {\n const body = await response.json();\n showSweetAlert(\"errorCustomMessage\", body);\n handleClosePurchaseOrderLineModal();\n }\n } catch (e) {\n }\n };\n\n const fetchPurchaseOrderLine = async (purchaseOrderId) => {\n setPurchaseOrderLineId(purchaseOrderId);\n try {\n let url = `/PurchaseOrderLine/GetAllPaged?skip=${skip}&take=${take}&createdByUserId=${seasonId}&userId=${localStorage.getItem(\n \"userId\"\n )}&purchaseOrderId=${purchaseOrderId}&search=${purchaseOrderLineSearch}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}`;\n const response = await fetch(url);\n const body = await response.json();\n setOriginPurchaseOrder(body);\n setPurchaseOrderLine(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const handleCancel = () => {\n handleClosePurchaseOrderLineModal();\n };\n\n //const fetchSuppliers = async () => {\n // try {\n // let url = `/supplier/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&&includeArchived=${isArchived}`;\n // const response = await fetch(url);\n // const body = await response.json();\n // const data = body?.map((item) => {\n // return { id: item.id, value: item.name };\n // });\n // setSuppliers(data);\n // } catch (err) {\n // }\n //}\n const updateData = async () => {\n try {\n let url = `/PurchaseOrder/getallpaged?skip=${\n page * take + skip\n }&take=${take}&brandId=${brandId}&seasonId=${seasonId}&statusId=${statusId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}`;\n const response = await fetch(url);\n const body = await response.json();\n setTimeout(() => {\n setOriginData(originData.concat(body));\n setData(data.concat(body));\n setPage(page + 1);\n }, 500);\n } catch (err) {\n }\n };\n\n const fetchSelectedPurchaseOrder = async (id) => {\n try {\n let url = `/PurchaseOrder/GetSingle?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n setSelectedPurchaseOrder(body);\n fetchProductDropdown(body.brandId, body.seasonId);\n setCurrentEstimatedDeliveryDate(body.estimatedDeliveryDate);\n } catch (err) {\n }\n };\n const fetchStatusDropdownList = async () => {\n try {\n let Url = `/PurchaseOrder/GetStatusDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}`;\n const Response = await fetch(Url);\n const Body = await Response.json();\n const data = Body?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setStatus(data);\n } catch (err) {\n }\n };\n\n const handleGetItemCard = (id) => {\n setSelectedProductId(id);\n setShowItemCardModal(true);\n setShowModal(false);\n };\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedProductId(0);\n setShowModal(true);\n setItemCardSelectedTab(\"Detail\");\n };\n \n \n\n const fetchLocations = async () => {\n try {\n let globalDropdownsUrl = `/CategoryValue/GetGlobalDropdowns?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}`;\n const globalDropdownsResponse = await fetch(globalDropdownsUrl);\n const globalDropdownsBody = await globalDropdownsResponse.json();\n const locationData = globalDropdownsBody?.locations?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setLocations(locationData);\n } catch (error) {\n console.log(error);\n }\n };\n\n // ### HOOKS ###\n useEffect(() => {\n fetchPurchaseOrderLine(purchaseOrderLineId);\n fetchSeason();\n fetchStatusDropdownList();\n fetchBrands();\n fetchLocations();\n }, [purchaseOrderLineSearch]);\n\n return (\n <>\n {showPurchaseOrderLineModal == false && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {getPermission(user.permissions, PURCHASEORDER_VIEW) && (\n \n \n \n \n \n \n \n \n \n \n \n setBrandId(e.value)}\n withAll={true}\n />\n \n \n setseasonId(e.value)}\n withAll={true}\n />\n \n \n setStatusId(e.value)}\n withAll={true}\n />\n \n \n \n
\n Include archived\n
\n \n {getPermission(user.permissions, PURCHASEORDER_EDIT) && (\n <>\n \n \n Export Template\n \n \n {getPermission(\n user.permissions,\n PURCHASEORDER_EDIT\n ) && (\n \n \n Import Purchase Order\n \n \n )}\n \n {getPermission(\n user.permissions,\n PURCHASEORDER_EDIT\n ) && (\n \n handleAddModelPurchaseOrder()}\n >\n Add\n \n \n )}\n \n )}\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n )}\n {!getPermission(user.permissions, PURCHASEORDER_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\n\nexport default PurchaseOrder;\n","import React from \"react\";\nimport Swal from \"sweetalert2\";\n\nexport const showSweetAlert = (type, name, confirmCallback) => {\n switch (type) {\n case \"deleteWarning\":\n Swal.fire({\n title: `Are you sure you want to delete ${name}?`,\n icon: \"warning\",\n showDenyButton: true,\n denyButtonText: `No`,\n denyButtonColor: \"#ACACAC \",\n confirmButtonColor: \"#FF680B\",\n confirmButtonText: \"Yes\",\n }).then((result) => {\n if (result.isConfirmed) {\n if (confirmCallback) {\n confirmCallback();\n }\n }\n });\n break;\n case \"deleteSuccess\":\n Swal.fire({\n position: \"center\",\n icon: \"success\",\n title: `${name} deleted successfully`,\n showConfirmButton: false,\n timer: 1500,\n });\n break;\n case \"saveSuccess\":\n Swal.fire({\n position: \"center\",\n icon: \"success\",\n title: `Saved successfully`,\n showConfirmButton: false,\n timer: 1500,\n });\n break;\n case \"success\":\n Swal.fire({\n position: \"center\",\n icon: \"success\",\n title: `Success!`,\n showConfirmButton: false,\n timer: 1500,\n html: name,\n });\n break;\n case \"saveSuccessCustomMessage\":\n Swal.fire({\n position: \"center\",\n icon: \"success\",\n title: `Saved successfully`,\n showConfirmButton: false,\n timer: 1500,\n html: name,\n });\n break;\n case \"serverError\":\n Swal.fire({\n position: \"center\",\n icon: \"error\",\n title: `Internal Server Error`,\n confirmButtonColor: \"#ACACAC\",\n confirmButtonText: \"OK\",\n });\n break;\n case \"errorCustomMessage\":\n Swal.fire({\n position: \"center\",\n icon: \"error\",\n title: name,\n confirmButtonColor: \"#ACACAC\",\n confirmButtonText: \"OK\",\n });\n break;\n case \"unauthorized\":\n Swal.fire({\n position: \"center\",\n icon: \"warning\",\n title: `You are not authorized to use this functionality.`,\n confirmButtonColor: \"#ACACAC\",\n confirmButtonText: \"OK\",\n });\n break;\n case \"systemCategory\":\n Swal.fire({\n position: \"center\",\n icon: \"warning\",\n title: `You cannot edit or delete system categories.`,\n confirmButtonColor: \"#ACACAC\",\n confirmButtonText: \"OK\",\n });\n break;\n case \"warning\":\n Swal.fire({\n position: \"center\",\n icon: \"warning\",\n title: \"Are you sure?\",\n text: name,\n confirmButtonColor: \"#FF680B\",\n confirmButtonText: \"Yes\",\n showDenyButton: true,\n denyButtonColor: \"#ACACAC\",\n denyButtonText: \"No\",\n }).then((result) => {\n if (result.isConfirmed) {\n if (confirmCallback) {\n confirmCallback();\n }\n }\n });\n break;\n case \"warningCustomMessage\":\n Swal.fire({\n position: \"center\",\n icon: \"warning\",\n text: name,\n confirmButtonColor: \"#FF680B\",\n confirmButtonText: \"Yes\",\n showDenyButton: true,\n denyButtonColor: \"#ACACAC\",\n denyButtonText: \"No\",\n }).then((result) => {\n if (result.isConfirmed) {\n if (confirmCallback) {\n confirmCallback();\n }\n }\n });\n break;\n case \"warningOkOnly\":\n Swal.fire({\n position: \"center\",\n icon: \"warning\",\n html: name,\n confirmButtonColor: \"#ACACAC\",\n confirmButtonText: \"OK\",\n }).then((result) => {\n if (result.isConfirmed) {\n if (confirmCallback) {\n confirmCallback();\n }\n }\n });\n break;\n default:\n break;\n }\n};\n\n//{props.type == \"deleteWarning\" &&\n\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// cancelBtnBsStyle=\"danger\"\n// confirmBtnText=\"Yes, delete it!\"\n// cancelBtnText=\"Cancel\"\n// showCancel\n// >\n// Are you sure you want to archive this {props.name}?\n// \n//}\n//{props.type == \"deleteSuccess\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// {props.name} deleted successfully.\n// \n//}\n//{props.type == \"saveSuccess\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// {props.name} saved successfully.\n\n// \n//}\n//{props.type == \"saveSuccessCustomMessage\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// \n// \n//}\n//{props.type == \"serverError\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// Internal Server Error.\n// \n//}\n//{props.type == \"unauthorized\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// You are not authorized to use this functionality.\n// \n//}\n//{props.type == \"systemCategory\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// >\n// You cannot edit or delete system categories.\n// \n//}\n//{props.type == \"warning\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// cancelBtnBsStyle=\"danger\"\n// confirmBtnText=\"Yes!\"\n// cancelBtnText=\"No\"\n// showCancel\n// >\n// {props.message}\n// \n//}\n//{props.type == \"warningCustomMessage\" &&\n// props.handleConfirm()}\n// onCancel={() => props.handleCancel()}\n// confirmBtnBsStyle=\"info\"\n// cancelBtnBsStyle=\"danger\"\n// confirmBtnText=\"Yes!\"\n// cancelBtnText=\"No\"\n// showCancel\n// >\n// {props.message}\n// \n//}\n//{props.type == \"warningOkOnly\" &&\n// props.handleConfirm()}\n// confirmBtnBsStyle=\"info\"\n// confirmBtnText=\"Ok\"\n// >\n// \n// \n//}\n","import React, {useEffect, useState} from \"react\";\nimport {\n OverlayTrigger,\n Table,\n Card,\n Col,\n Row,\n Button,\n Form,\n Tooltip,\n} from \"react-bootstrap\";\nimport {showSweetAlert} from \"components/Shared/CustomAlert\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\nimport CustomModal from \"../Shared/CustomModal\";\nimport ItemCard from \"../ItemCard/ItemCard\";\nimport CustomSelect from \"../Shared/CustomSelect\";\n\nconst StocktakeLinesTable = (props) => {\n let stocktakeId = null;\n const [stocktakeLines, setStocktakeLines] = useState(props.data);\n const originalStocktakeLines = props.data;\n const [selectedStatusId, setSelectedStatusId] = useState(0);\n const statusList = [\n {id: 0, value: \"All\"},\n {id: 1, value: \"Items Missing\"},\n {id: 2, value: \"Partial Match\"},\n {id: 3, value: \"Matched Expectation\"},\n {id: 4, value: \"Unexpected Product\"},\n ]\n\n const [updatedPage, setUpdatedPage] = useState(false);\n\n const [show0Variance, setShow0Variance] = useState(true);\n const handleShow0Variance = () => {\n setShow0Variance((prev) => !prev);\n };\n\n const [showUnscannedProducts, setShowUnscannedProducts] = useState(true);\n const handleShowUnscannedProducts = () => {\n setShowUnscannedProducts((prev) => !prev);\n };\n\n const [showSoldProducts, setShowSoldProducts] = useState(false);\n const handleShowSoldProducts = () => {\n setShowSoldProducts((prev) => !prev);\n };\n\n const [showIntransitProducts, setShowIntransitProducts] = useState(false);\n const handleShowIntransitProducts = () => {\n setShowIntransitProducts((prev) => !prev);\n };\n\n\n useEffect(() => {\n if (selectedStatusId == 0)\n setStocktakeLines(originalStocktakeLines)\n else {\n console.log(selectedStatusId);\n console.log(statusList);\n console.log(\"res\", statusList.filter(item => item.id === selectedStatusId))\n const statusName = statusList.filter(item => item.id === selectedStatusId)[0]?.value.toLowerCase();\n setStocktakeLines(originalStocktakeLines.filter(item => item.statusName?.toLowerCase() === statusName))\n }\n }, [selectedStatusId]);\n\n\n useEffect(() => {\n recalculateStocktakeLines();\n }, [show0Variance, showUnscannedProducts, showSoldProducts, showIntransitProducts, props.data]);\n\n const recalculateStocktakeLines = () => {\n let newLines = props.data;\n\n if (!show0Variance) {\n newLines = newLines.filter((item) => item.onHand - item.sold - item.totalStock !== 0);\n }\n\n if (!showUnscannedProducts) {\n newLines = newLines.filter((item) => item.scanned !== 0);\n }\n\n if (showSoldProducts) {\n newLines = newLines.filter((item) => item.sold !== 0);\n }\n \n if (showIntransitProducts) {\n newLines = newLines.filter((item) => item.inTransit !== 0);\n }\n\n setStocktakeLines(newLines);\n };\n\n if (props.data && props.data.length > 0)\n stocktakeId = props.data[0].stocktakeId;\n\n const checkPageUpdated = () => {\n if (updatedPage)\n showSweetAlert(\n \"warningOkOnly\",\n \"Please save the changes before confirming the stocktake\"\n );\n else props.handleConfirmStocktake(stocktakeId);\n };\n\n const handleSaveStocktake = () => {\n setUpdatedPage(false);\n props.handleSaveVariances();\n };\n\n // item card properties\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState('Detail');\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item);\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n };\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedProductId(0);\n };\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n };\n\n const handleGetItemCard = (id) => {\n setSelectedProductId(id);\n setShowItemCardModal(true);\n setShowInventoryViewModal(false);\n };\n\n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], {type: \"application/pdf\"});\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n const returnTableData = () => {\n return stocktakeLines.map((stocktake, index) => {\n if (stocktake === null || stocktake === undefined) return;\n\n const {\n id,\n stocktakeId,\n productId,\n productName,\n checkRequired,\n checkNotes,\n scanned,\n totalStock,\n variance,\n adjustment,\n onHand,\n committed,\n inTransit,\n sold,\n brandCode,\n colour,\n size,\n barcode,\n sku,\n adjustmentAction,\n adjustmentCost,\n difference = onHand - sold - totalStock,\n statusName\n } = stocktake;\n\n return (\n \n handleGetItemCard(productId)}>\n {sku}\n \n {productName}\n {size}\n {colour}\n {brandCode}\n {barcode}\n {onHand}\n \n {inTransit > 0 ? (\n \n props.handleInTransitClick(\n \"InTransit\",\n productId,\n props.stocktakeLocationId\n )\n }\n >\n {inTransit}\n \n ) : (\n inTransit\n )}\n \n {sold}\n \n
{scanned <= 0 ? \"Not scanned\" : scanned}
\n \n \n
\n {\n props.stocktakeStatus !== \"Complete\" &&\n 0 ? \"pointer\" : \"not-allowed\",\n opacity: totalStock > 0 ? 1 : 0.5,\n }}\n onClick={() => {\n if (totalStock > 0) {\n setUpdatedPage(true);\n props.handleAdjustTotal(id, totalStock - 1);\n }\n }}\n />\n }\n {totalStock} (\n {difference > 0\n ? `${difference} missing`\n : difference < 0\n ? `${Math.abs(difference)} extra`\n : \"perfect\"}\n )\n {\n props.stocktakeStatus !== \"Complete\" &&\n {\n setUpdatedPage(true);\n props.handleAdjustTotal(id, totalStock + 1);\n }}\n />\n }\n
\n \n {statusName}\n \n
\n {checkRequired && (\n e.preventDefault()}\n overlay={\n {checkNotes}\n }\n >\n \n \n \n \n \n \n )}\n
\n \n \n );\n });\n };\n\n return (\n <>\n \n \n \n \n \n \n

Stocktake Lines

\n\n
\n \n \n Status\n \n \n setSelectedStatusId(e.value)}\n withAll={false}\n />\n \n \n\n \n \n handleShow0Variance()}\n />\n \n Show 0 Variance\n \n \n \n \n handleShowUnscannedProducts()}\n />\n \n Show Unscanned Products\n \n \n \n \n handleShowSoldProducts()}\n />\n \n Show Sold\n \n \n \n \n handleShowIntransitProducts()}\n />\n \n Show In Transit\n \n \n
\n\n checkPageUpdated()}\n >\n Confirm Stocktake\n \n
\n
\n\n {/* todo - if there is data BUT its also 0 scanned then show diff message */}\n \n {stocktakeLines && stocktakeLines.length == 0 && !props.isLoading && (\n \n No data found.\n

\n )}\n {stocktakeLines && stocktakeLines.length > 0 && !props.isLoading && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {returnTableData()}\n
SKUNameSizeColourBrand CodeBarcodeOn HandIn TransitSoldScannedTotalStatus
\n \n \n )}\n
\n \n handleSaveStocktake()}\n >\n Save\n \n \n
\n \n );\n};\n\nexport default StocktakeLinesTable;\n","export default __webpack_public_path__ + \"static/media/angle-left-thin.57cf4dc6.svg\";","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n Dropdown,\n Navbar,\n Nav,\n InputGroup,\n FormControl,\n} from \"react-bootstrap\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\n\nconst FulfillmentOrderLinesTable = (props) => {\n const returnLocationName = (locationId) => {\n const locationName = props.locations.find(\n (location) => location.id === parseInt(locationId)\n )?.value;\n return locationName;\n };\n\n const returnFulfilmentCards = () => {\n return (\n props.fulfillmentOrderLines &&\n props.fulfillmentOrderLines.length > 0 &&\n props.fulfillmentOrderLines.map((item, index) => {\n return (\n \n \n \n {returnLocationName(item.locationId)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {item.fulfillmentLines.map((line, index) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n \n
SKUFulfillment StatusQuantityColourSizeNameBrandcodeBarcodePriceSubTotalTotal TaxPicked Status
\n \n \n x.id === line.id\n ) || false\n }\n onChange={() =>\n props.handleChangeFulfillmentOrderLocation(\n line\n )\n }\n >\n \n \n \n \n \n props.handleGetItemCard(line.productId)\n }\n >\n {line.SKU}\n \n {line.fulfillmentStatus}\n {/* todo - add onchange for the quantity thats being changed */}\n {!props.checkedLineItems.some(\n (x) => x.id === line.id\n ) ? (\n line.quantity\n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n )}\n {line.colour}{line.size}{line.name}{line.brandcode}{line.barcode}£{line.price?.toFixed(2)}£{line.subTotal?.toFixed(2)}£{line.totalTax?.toFixed(2)}\n
\n \n \n props.handlePickedStatusChange(\n e.value,\n line,\n item\n )\n }\n />\n \n
\n
\n \n props.handleShowEditOrderLocationModal(line)\n }\n >\n \n \n
\n
\n {returnActionButtons(item)}\n
\n );\n })\n );\n };\n\n // placeholder for now until endpoints up\n const [selectedLocations, setSelectedLocations] = useState([]);\n const handleSelectedLocationChange = (e, item) => {\n const newLocation = {\n locationId: e,\n itemId: item.id,\n };\n\n setSelectedLocations((prevState) => {\n const index = prevState.findIndex((x) => x.itemId === item.id);\n\n if (index !== -1) {\n // Update existing location\n const updatedLocations = [...prevState];\n updatedLocations[index] = newLocation;\n return updatedLocations;\n } else {\n // Add new location\n return [...prevState, newLocation];\n }\n });\n\n // const locations = selectedLocations || [];\n // const index = locations.findIndex((x) => x.itemId === item.id);\n // if (index !== -1) {\n // const index = selectedLocations.findIndex((x) => x.itemId === item.id);\n // const updatedLocations = [...selectedLocations];\n // updatedLocations[index] = newLocation;\n // setSelectedLocations(updatedLocations);\n // return;\n // }\n // setSelectedLocations([...selectedLocations, newLocation]);\n // console.log(\"selected locations \", selectedLocations);\n };\n\n const returnActionButtons = (item) => {\n // only show if location id is in checkedLineItems\n // if (!props.checkedLineItems.some((x) => x.id === parseInt(item.id))) return;\n if (\n !item.fulfillmentLines.some((line) =>\n props.checkedLineItems.some((checkedItem) => checkedItem.id === line.id)\n )\n ) {\n return null;\n }\n\n // todo - on setting selected location - assign the associated line items to that location for the call\n if (props.isChangeFulfillmentOrderLocation) {\n return (\n \n \n
Change Location
\n
\n \n x.itemId === item.id)\n ?.locationId\n }\n data={props.locations}\n handleChange={(e) =>\n handleSelectedLocationChange(e.value, item)\n }\n />\n \n
\n \n \n \n props.handleCancelChangeFulfillmentOrderLocation(true)\n }\n >\n Cancel\n \n \n props.handleConfirmChangeFulfillmentOrderLocation(\n item,\n selectedLocations\n )\n }\n >\n Change Location\n \n \n
\n );\n }\n return null;\n };\n\n return (\n <>\n \n \n Order Lines\n \n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.data && props.data.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.data?.length !== 0 && !props.isLoading && (\n \n \n {returnFulfilmentCards()}\n
\n \n )}\n
\n
\n \n );\n};\n\nexport default FulfillmentOrderLinesTable;\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 246;","import React from 'react';\nimport {Modal, Card} from \"react-bootstrap\";\n\nexport default function CustomModal(props) {\n const backdrop = props.backdrop === undefined ? true : props.backdrop;\n\n return (\n <>\n \n \n \n \n {props.title}\n \n {props.children}\n \n \n \n );\n}","import React, { useState, useEffect, useMemo, useRef } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport CustomModal from \"components/Shared/CustomModal\";\nimport { Card, Container, Row, Col, Button } from \"react-bootstrap\";\nimport { useSelector } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport CustomAsyncSelect from \"../../components/Shared/CustomAsyncSelect\";\nimport ProductTable from \"components/Products/ProductsTable\";\nimport InventoryModal from \"../../components/ItemCard/InventoryModal\";\nimport WebOrdersModal from \"components/ItemCard/WebOrdersModal\";\nimport ItemCard from \"../../components/ItemCard/ItemCard\";\nimport Loading from \"components/Shared/Loading\";\nimport animationData from \"../../assets/animations/orange-square.json\";\n\nimport { PRODUCTS_VIEW } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction Products() {\n //Styling\n const divStyle = {\n marginTop: \"24px\",\n };\n const archived = {\n marginTop: \"-21px\",\n marginLeft: \"20px\",\n };\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n const [isLoading, setIsLoading] = useState(true);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState(\"Detail\");\n const [IsChecked, setCheck] = useState(false);\n const [page, setPage] = useState(0);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [hasMore, setHasMore] = useState(true);\n const [types, setTypes] = useState([]);\n const [type, setType] = useState(0);\n const [brands, setBrands] = useState([]);\n const [locations, setLocations] = useState([]);\n const [genders, setGenders] = useState([]);\n const [seasons, setSeasons] = useState([]);\n const [categories, setCategories] = useState([]);\n const [statuses, setStatuses] = useState([]);\n\n //Filters\n const [location, setLocation] = useState(0);\n const [brand, setBrand] = useState(0);\n const [search, setSearch] = useState(\"\");\n const [status, setStatus] = useState(0);\n const [gender, setGender] = useState(0);\n const [category, setCategory] = useState(0);\n const [season, setSeason] = useState(0);\n const [includeArchived, setIncludeArchived] = useState(false);\n\n const updateIncludeArchived = (event) => {\n setIncludeArchived(event.target.checked);\n handlePageChange(0);\n setLocation(0);\n setBrand(0);\n setSearch(0);\n setStatus(0);\n setGender(0);\n setCategory(0);\n setSeason(0);\n handleProductSearchChange(\"\");\n updateData();\n };\n\n const [orderBy, setOrderBy] = useState(\"Sku\");\n const [descending, setDescending] = useState(false);\n const [salesData, setSalesData] = useState([]);\n const [auditLogs, setAuditLogs] = useState([]);\n const [webDetails, setWebDetails] = useState([]);\n\n const [data, setData] = useState([]);\n\n const [productId, setProductId] = useState(\"\");\n const [productName, setProductName] = useState(\"\");\n const [inventory, setInventory] = useState([]);\n\n //hooks\n const handleCloseModal = () => setShowItemCardModal(false);\n const handleShowModal = () => setShowItemCardModal(true);\n\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n\n const [sales, setSales] = useState([]);\n const [audit, setAudit] = useState([]);\n const [details, setDetails] = useState({});\n\n const [isValidation, setIsValidation] = useState(false);\n const [oldQuantity, setoldQuantity] = useState(\"\");\n\n const clearFilters = () => {\n setLocation(0);\n setBrand(0);\n setGender(0);\n setCategory(0);\n setSeason(0);\n setStatus(0);\n handleProductSearchChange(\"\");\n };\n\n const handleProductSearchChange = (value) => {\n setSearch(value);\n };\n\n const clearProductInventoryValidation = () => {\n setIsValidation(false);\n };\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n\n const handleError = () => {\n showSweetAlert(\"serverError\");\n };\n\n // ### DATA FETCHES ##\n const fetchDropdowns = async () => {\n try {\n const filters = {\n locations: location !== 0 ? [location] : null,\n brands: brand !== 0 ? [brand] : null,\n seasons: season !== 0 ? [season] : null,\n genders: gender !== 0 ? [gender] : null,\n categories: category !== 0 ? [category] : null,\n statuses: status !== 0 ? [status] : null,\n };\n\n //Get data dropdowns\n let filterDropdownUrl = `/Product/GetProductDropdowns?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&includeArchived=${includeArchived}`;\n const filterDropdownResponse = await fetch(filterDropdownUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(filters), // Convert the filters to JSON\n });\n\n const filterDropdownBody = await filterDropdownResponse.json();\n\n const locationData = filterDropdownBody.locations?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocations(locationData);\n\n const brandData = filterDropdownBody.brands?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setBrands(brandData);\n\n const seasonData = filterDropdownBody.seasons?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setSeasons(seasonData);\n\n const genderData = filterDropdownBody.genders?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setGenders(genderData);\n\n const categoryData = filterDropdownBody.categories?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setCategories(categoryData);\n\n const statusData = filterDropdownBody.statuses?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setStatuses(statusData);\n } catch (err) {}\n };\n\n const updateData = async () => {\n try {\n handlePageChange(page + 1);\n let url = `/Product/GetAllPaged?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&skip=${\n pageRef.current * take + skip\n }&take=${take}&locationId=${location}&brandId=${brand}&seasonId=${season}&genderId=${gender}&categoryId=${category}&statusId=${status}&search=${search}&orderBy=${orderBy}&descending=${descending}&includeArchived=${includeArchived}`;\n const response = await fetch(url);\n const body = await response.json();\n setTimeout(() => {\n setData(data.concat(body.data));\n if (body.data && body.data.length == 0) {\n setHasMore(false);\n }\n }, 500);\n } catch (err) {}\n };\n\n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardCommittedList = async (id, location) => {\n if (!id) return;\n try {\n const url = `/ItemCard/GetCommittedList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardInTransitList = async (id, location) => {\n if (!id) return;\n try {\n const url = `/ItemCard/GetInTransitList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardSoldList = async (id, location) => {\n if (!id) return;\n try {\n const url = `/ItemCard/GetSoldList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n \n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const [itemCardWebOrderInfoType, setItemCardWebOrderInfoType] = useState();\n const [itemCardWebOrderInfo, setItemCardWebOrderInfo] = useState([]);\n const handleGetItemCardWebOrderInfo = async (type, productId, locationId) => {\n switch (type) {\n case \"onHand\":\n // do nothing\n break;\n case \"Committed\":\n setItemCardWebOrderInfo(\n await handleGetItemCardCommittedList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"Committed\");\n break;\n case \"InTransit\":\n setItemCardWebOrderInfo(\n await handleGetItemCardInTransitList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"In Transit\");\n break;\n case \"Sold\":\n setItemCardWebOrderInfo(\n await handleGetItemCardSoldList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"Sold\");\n break;\n default:\n break;\n }\n };\n\n // ### Item Cards\n const handleGetItemCards = async () => {\n handleShowModal();\n };\n\n const handleGetItemCard = (id) => {\n setSelectedProductId(id);\n setShowItemCardModal(true);\n };\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedProductId(0);\n setItemCardSelectedTab(\"Detail\");\n };\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item);\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n };\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n };\n\n const [showWebOrdersModal, setShowWebOrdersModal] = useState(false);\n const [isNavBack, setIsNavBack] = useState(null);\n const handleShowWebOrdersModal = (item) => {\n setSelectedInventory(item);\n setIsNavBack(false);\n setShowItemCardModal(false);\n setShowWebOrdersModal(true);\n };\n\n const handleHideWebOrdersModal = () => {\n setShowWebOrdersModal(false);\n setShowItemCardModal(true);\n setIsNavBack(true);\n setItemCardWebOrderInfo([]);\n setItemCardWebOrderInfoType(\"\");\n };\n\n const pageRef = useRef(page);\n\n const handlePageChange = (newPage) => {\n pageRef.current = newPage;\n setPage(newPage);\n };\n\n // ### HOOKS ###\n useMemo(async () => {\n handlePageChange(0);\n try {\n fetchDropdowns();\n setData([]);\n setIsLoading(true);\n let url = `/Product/GetAllPaged?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&skip=${\n page * take + skip\n }&take=${take}&locationId=${location}&brandId=${brand}&seasonId=${season}&genderId=${gender}&categoryId=${category}&statusId=${status}&search=${search}&orderBy=${orderBy}&descending=${descending}&includeArchived=${includeArchived}`;\n const response = await fetch(url);\n const body = await response.json();\n setData(body.data);\n setIsLoading(false);\n } catch (err) {\n setIsLoading(false);\n }\n }, [location, brand, search, season, gender, category, status]);\n\n //useEffect(() => {\n // fetchDropdowns();\n //}, []);\n\n return (\n <>\n {alert}\n \n \n \n {\n handleHideInventoryModal, setSelectedProductId(selectedProductId);\n }}\n title=\"\"\n backdrop=\"static\"\n >\n \n \n\n \n \n \n\n {getPermission(user.permissions, PRODUCTS_VIEW) && (\n \n \n \n \n \n \n \n \n {/**/}\n\n setLocation(e.value)}\n withAll={true}\n />\n \n \n setBrand(e.value)}\n withAll={true}\n />\n \n \n setSeason(e.value)}\n withAll={true}\n />\n \n \n setGender(e.value)}\n withAll={true}\n />\n \n \n setCategory(e.value)}\n withAll={true}\n />\n \n \n setStatus(e.value)}\n withAll={true}\n />\n \n\n \n \n \n\n \n \n
Include archived
\n \n
\n
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n
\n )}\n {!getPermission(user.permissions, PRODUCTS_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\nexport default Products;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport CustomSearchBox from \"../../components/Shared/CustomSearchBox\";\nimport { useDispatch } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport Tab from \"react-bootstrap/Tab\";\nimport Tabs from \"react-bootstrap/Tabs\";\n// react-bootstrap components\nimport {\n Form,\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\nimport zIndex from \"@mui/material/styles/zIndex\";\n\nfunction ProductTable(props) {\n ///Styling\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"120px\",\n };\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const {\n brand,\n season,\n gender,\n productCategory,\n status,\n name,\n id,\n sku,\n colour,\n size,\n totalAvailableStock,\n } = log;\n return (\n \n props.handleGetItemCard(id)}>\n {sku}\n \n {name}\n {brand}\n {season}\n {gender}\n {productCategory}\n {size}\n {colour}\n {totalAvailableStock}\n {status}\n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n props.handleGetLabelPDF(id, sku)}\n variant=\"link\"\n >\n \n \n \n \n \n );\n });\n };\n\n return (\n <>\n {/* {alert} */}\n\n \n \n Products\n \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n \n \n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.data && props.data.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.data && props.data.length > 0 && (\n \n = props.take ? (\n
Loading more data...
\n ) : (\n \"\"\n )\n }\n height={675}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
SKUProduct NameBrandSeasonGenderCategorySizeColourAvailable StockStatus
\n \n \n )}\n
\n
\n \n );\n}\nexport default ProductTable;\n","import React from \"react\";\nimport { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport { useDispatch } from \"react-redux\";\n\nimport { formatCurrency } from \"utils/FormatCurrency.js\";\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nimport { PURCHASEORDER_EDIT } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction PurchaseOrderTable(props) {\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"190px\",\n };\n // ### STATE ###\n const user = useSelector((state) => state.user);\n const dispatch = useDispatch();\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n\n const convertDate = (date) => {\n const dateTime = new Date(date);\n const day = dateTime.getDate().toString().padStart(2, \"0\");\n const month = (dateTime.getMonth() + 1).toString().padStart(2, \"0\");\n const year = dateTime.getFullYear();\n return `${day}/${month}/${year}`;\n };\n\n // ### renderTableData ###\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const {\n purchaseOrderNumber,\n brandName,\n userFullName,\n costPrice,\n total,\n id,\n createdDate,\n season,\n statusName,\n statusId,\n totalQuantity,\n totalAllocated,\n locationName,\n } = log;\n if (statusId == 0) {\n return (\n \n {purchaseOrderNumber}\n \n \n \n \n \n Processing...\n \n \n \n \n \n );\n } else {\n return (\n \n props.PurchaseOrderLines(id)}>\n {purchaseOrderNumber}\n \n {locationName}\n {brandName}\n {userFullName}\n {convertDate(createdDate)}\n {formatCurrency(costPrice)}\n {season}\n {statusName}\n \n {totalQuantity} ({totalAllocated})\n \n {formatCurrency(total)}\n \n e.preventDefault()}\n overlay={\n \n Download Excel Export\n \n }\n >\n \n props.handleGetExportExcel(id, purchaseOrderNumber)\n }\n variant=\"link\"\n >\n \n \n \n e.preventDefault()}\n overlay={\n Download PDF Export\n }\n >\n \n props.handleGetExportPDF(id, purchaseOrderNumber)\n }\n variant=\"link\"\n >\n \n \n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n \n props.handleGetLabelPDF(id, purchaseOrderNumber)\n }\n variant=\"link\"\n >\n \n \n \n {getPermission(user.permissions, PURCHASEORDER_EDIT) && (\n <>\n {statusId === 1 || statusId === 2 ? (\n totalAllocated === 0 ? (\n props.handleDeletePurchaseOrder(id)}\n >\n Delete\n \n ) : (\n props.handleClosePurchaseOrder(id)}\n >\n Close\n \n )\n ) : statusId === 4 ? (\n props.handleReopenPurchaseOrder(id)}\n >\n Reopen\n \n ) : null}\n \n )}\n \n \n );\n }\n });\n };\n\n return (\n <>\n {alert}\n \n \n Purchase Order\n

\n {/**/}\n {/* props.handleSearchChange(e)}*/}\n {/* handleClear={() => props.handleSearchChange(\"\")}*/}\n {/* />*/}\n {/**/}\n
\n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.data && props.data.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.data && props.data.length > 0 && !props.isLoading && (\n \n = 20 ?
Loading more data...
: \"\"}\n loader=\"\"\n height={650}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
PO#ToBrandCreated ByCreated OnCost PriceSeasonStatusUnitsTotalActions
\n \n \n )}\n
\n
\n \n );\n}\n\nexport default PurchaseOrderTable;\n","import React, { useEffect } from \"react\"\nimport { Formik, ErrorMessage, useFormik } from 'formik';\nimport * as Yup from 'yup';\nimport {\n Button,\n Col,\n Row,\n Form,\n Card\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport { formatCurrency } from 'utils/FormatCurrency.js';\n\nconst validationSchema = Yup.object({\n productId: Yup.string().required('Product is required'),\n quantity: Yup.number().min(1, 'At least 1 is required.'),\n costPrice: Yup.number().min(0, 'Cost price must be 0 or more.'),\n discountPercentage: Yup.number().min(0, 'Discount percentage must be 0 or more.'),\n allocations: Yup.array()\n .of(\n Yup.object().shape({\n quantity: Yup.number()\n .min(0, \"Quantity must be 0 or greater.\")\n .required(\"Quantity is required.\")\n .integer(\"Quantity must be an integer.\"),\n })\n )\n .test(\"all-quantities-greater-than-zero\", \"All quantities must be 0 or greater.\", (value) => {\n if (!value || !Array.isArray(value)) {\n // If the array is empty or not an array, the test passes\n return true;\n }\n\n // Check if all quantities are 0 or greater\n return value.every((allocation) => allocation.quantity >= 0);\n }),\n totalAllocation: Yup.number().test(\n \"total-allocation-check\",\n \"Total allocation cannot exceed the quantity.\",\n function (value) {\n const { allocations } = this.parent;\n if (!allocations || !Array.isArray(allocations)) {\n // If the 'allocations' array is empty or not an array, the test passes\n return true;\n }\n\n const totalAllocation = allocations.reduce((total, allocation) => {\n // Check if the purchaseOrderLineId is not equal to 0\n if (allocation.purchaseOrderLineId !== 0) {\n return total + allocation.quantity;\n }\n // If purchaseOrderLineId is 0, don't include the quantity in the total\n return total;\n }, 0);\n return totalAllocation <= this.parent.quantity; // Compare with the main quantity field\n }\n ),\n totalAllocated: Yup.number().test(\n \"total-allocated-check\",\n \"Total already allocated is higher the quantity.\",\n function (value) {\n const { allocations } = this.parent;\n if (!allocations || !Array.isArray(allocations)) {\n // If the 'allocations' array is empty or not an array, the test passes\n return true;\n }\n const totalAllocated = allocations.reduce((total, allocation) => total + allocation.allocated, 0);\n\n return totalAllocated <= this.parent.quantity; // Compare with the main quantity field\n }\n ),\n});\n\nfunction AddEditPurchaseOrderLineModalForm(formik) {\n const handleProductChange = (e, formik) => {\n // formik.setValues({ ...formik.values, productId: e.value, productName: e.label })\n formik.initialValues.handleProductLineChange(\"productId\", e);\n }\n return (\n
\n \n \n \n \n
\n handleProductChange(e, formik)}\n />\n \n
\n
\n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
\n \n {formik.values.allocations.map((allocation, index) => (\n\n allocation.purchaseOrderLineId != 0 ? (\n \n \n \n {\n const newAllocations = [...formik.values.allocations];\n newAllocations[index] = {\n ...newAllocations[index],\n quantity: parseInt(event.target.value),\n };\n formik.setFieldValue(\"allocations\", newAllocations);\n }}\n onBlur={formik.handleBlur}\n >\n \n\n \n \n ) : null\n ))}\n \n \n \n
{formik.errors.totalAllocation}
\n \n
\n \n \n
{formik.errors.totalAllocated}
\n \n
\n formik.handleSubmit()}\n >\n {formik.values.isEdit ? \"Update\" : \"Save\"}\n \n formik.values.handleCancel()}\n >\n Cancel\n \n \n )\n}\n\n\nfunction AddEditPurchaseOrderLineModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, [])\n return (\n {\n if (props.isEdit) {\n await props.handleUpdatePurchaseOrderLine(values);\n }\n else {\n await props.handleSavePurchaseOrderLine(values);\n }\n actions.setSubmitting(false);\n }}\n \n />\n )\n}\n\nexport default AddEditPurchaseOrderLineModal;\n","import React, { useEffect } from \"react\";\n\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport DateRange from \"components/Shared/DateRange\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n} from \"react-bootstrap\";\nfunction AddEditPurchaseOrderModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"500px\");\n }, []);\n\n return (\n <>\n \n
\n \n \n \n
Purchase Order Number
\n \n props.handleChangePurchaseOrder(\n \"purchaseOrderNumber\",\n e.target.value,\n )\n }\n onBlur={(e) =>\n props.validateInput(\"purchaseOrderNumber\", e.target.value)\n }\n >\n {props.validation.purchaseOrderNumber && (\n \n )}\n
\n \n \n \n \n props.handleDropDownChange(\n e.label,\n e.value,\n \"brandId\",\n \"brandName\",\n )\n }\n withAll={true}\n />\n {props.validation.brandId && (\n \n )}\n \n \n \n \n \n props.handleDropDownChange(\n e.label,\n e.value,\n \"seasonId\",\n \"season\",\n )\n }\n />\n {props.validation.seasonId && (\n \n )}\n \n \n \n \n \n {props.validation.estimatedDeliveryDate && (\n \n )}\n \n \n
\n \n \n \n \n props.handleDropDownChange(\n \"location\",\n e.value,\n \"locationId\",\n \"location\",\n )\n }\n />\n {props.validation.locationId && (\n \n )}\n \n \n \n {props.selectedPurchaseOrder?.id == 0 ? (\n props.handleAddPurchaseOrder()}\n >\n Save\n \n ) : (\n props.handleUpdatePurchaseOrder()}\n >\n Update\n \n )}\n \n Cancel\n \n \n
\n \n );\n}\nexport default AddEditPurchaseOrderModal;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport {\n Card,\n Container,\n Row,\n Col,\n Button,\n Form,\n Tooltip,\n OverlayTrigger,\n} from \"react-bootstrap\";\nimport DateRange from \"../../components/Shared/DateRange\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport MovementsTable from \"../../components/Movements/MovementsTable\";\nimport MovementsModal from \"../../components/Movements/MovementsModal\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport AddEditMovementsModal from \"components/Movements/AddEditMovementsModal\";\nimport AddEditMovementProduct from \"components/Movements/AddEditMovementProduct\";\nimport CustomModal from \"../../components/Shared/CustomModal\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport InventoryModal from \"../../components/ItemCard/InventoryModal\";\nimport ItemCard from \"../../components/ItemCard/ItemCard\";\nimport WebOrdersModal from \"components/ItemCard/WebOrdersModal\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { MOVEMENTS_VIEW } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\nfunction Movements() {\n // ### STATE ###\n const movementSearch = useSelector((state) => state.Search);\n const user = useSelector((state) => state.user);\n\n const [search, setSearch] = useState(\"\");\n\n const defaultDate = new Date();\n const [dateRange, setDateRange] = useState([\n defaultDate.setMonth(defaultDate.getMonth() - 3),\n new Date(),\n ]);\n\n const [locationFromId, setLocationFromId] = useState(0);\n const handleLocationFromChange = (id) => {\n setLocationFromId(id);\n localStorage.setItem(\"locationFromId\", id);\n };\n\n const [locationToId, setLocationToId] = useState(0);\n const handleLocationToChange = (id) => {\n setLocationToId(id);\n localStorage.setItem(\"locationToId\", id);\n };\n\n const [statusId, setstatusId] = useState(0);\n const handleStatusChange = (id) => {\n setstatusId(id);\n localStorage.setItem(\"statusId\", id);\n };\n\n const [typeId, settypeId] = useState(0);\n const handleTypeChange = (id) => {\n settypeId(id);\n localStorage.setItem(\"typeId\", id);\n };\n\n const [locations, setLocations] = useState([]);\n const [getLocationDropdown, setLocationDropdown] = useState([]);\n const [orderBy, setOrderBy] = useState(\"DateAmended\");\n const [filterDateData, setfilterDateData] = useState([]);\n const [descending, setDescending] = useState(true);\n const [isLoading, setIsLoading] = useState(true);\n const [data, setData] = useState([]);\n const [page, setPage] = useState(1);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [originBatchData, setOriginBatchData] = useState([]);\n const [singleMovement, setsingleMovement] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const handleCloseModal = () => setShowModal(false);\n const handleShowModal = () => setShowModal(true);\n const [showBatchModal, setShowBatchModal] = useState(false);\n const handleCloseBatchModal = () => setShowBatchModal(false);\n const handleShowBatchModal = () => setShowBatchModal(true);\n\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState(\"Detail\");\n const [includeArchived, setIncludeArchived] = useState(false);\n\n const [showMovementProductModal, setShowMovementProductModal] =\n useState(false);\n const handleCloseMovementProductModal = () =>\n setShowMovementProductModal(false);\n const handleShowMovementProductModal = () =>\n setShowMovementProductModal(true);\n const [movementId, setMovementId] = useState(0);\n const [MovementsProductData, setMovementsProductData] = useState([]);\n const [originMovementsProducts, setoriginMovementsProducts] = useState([]);\n const [productData, setProductdata] = useState([]);\n const [productValue, setProductValue] = useState([]);\n const [quantityInStock, setQuantityInStock] = useState(0);\n const [movementChangedValue, setMovementChangedValue] = useState([]);\n const [originData, setOriginData] = useState([]);\n const movementTypes = [\n { id: 1, value: \"Allocation Delivery\" },\n { id: 2, value: \"Replenishment\" },\n { id: 3, value: \"Intercompany Transfer\" },\n ];\n\n const [statusData, setStatusData] = useState([]);\n\n const [error, setError] = useState({\n fromLocationId: \"\",\n toLocationId: \"\",\n productId: \"\",\n });\n\n const validateInput = (name, value) => {\n setError((prev) => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"fromLocationId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n\n case \"toLocationId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n case \"productId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n };\n // ### HANDLERS ###\n const movementsModel = (movementId) => {\n setMovementId(movementId);\n fetchSingleMovement(movementId);\n fetchMovementProducts(movementId);\n handleShowModal();\n };\n\n const handleAdd = () => {\n setError([]);\n setMovementChangedValue({\n id: 0,\n batchName: \"\",\n fromLocationId: 0,\n fromLocationName: \"\",\n toLocationId: 0,\n toLocationName: \"\",\n fromNotes: \"\",\n toNotes: \"\",\n typeId: 3,\n typeName: \"\",\n statusId: 0,\n statusName: \"\",\n hasCreatedBatch: true,\n });\n handleShowBatchModal();\n };\n const handleAddMovementProduct = () => {\n setError([]);\n setProductValue({\n id: 0,\n movementId: movementId,\n productId: 0,\n productName: \"string\",\n quantity: 0,\n sent: 0,\n received: 0,\n });\n handleShowMovementProductModal();\n };\n const handleDatesChange = (dates) => {\n setDateRange(dates);\n if (dates[0] && dates[1]) {\n const filterData = originData.filter((item) => {\n return moment(item.timestamp).isBetween(\n moment(dates[0], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n moment(dates[1], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n null,\n \"[]\"\n );\n });\n setfilterDateData(filterData);\n localStorage.setItem(\"dateRange\", filterData);\n }\n };\n\n const handleSearchChange = (value) => {\n const filterData = originMovementsProducts?.filter((item) =>\n item.productName.toLowerCase().includes(value.toLowerCase())\n );\n setSearch(value);\n setMovementsProductData(filterData);\n };\n // ### DATA FETCHES ###\n const fetchLocations = async () => {\n try {\n let url = `/location/getall?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`; //todo - move to store\n const response = await fetch(url);\n const locations = await response.json();\n\n const data = locations?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocations(data);\n } catch (err) { }\n };\n const fetchLocationDropdown = async () => {\n try {\n let url = `/location/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const locations = await response.json();\n\n const products = locations?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocationDropdown(products);\n } catch (err) { }\n };\n const fetchGetallpaged = async () => {\n setPage(0);\n setOriginBatchData([]);\n setData([]);\n setIsLoading(true);\n\n const locationFromId = localStorage.getItem(\"locationFromId\");\n const locationToId = localStorage.getItem(\"locationToId\");\n const typeId = localStorage.getItem(\"typeId\");\n const statusId = localStorage.getItem(\"statusId\");\n const dateRange = localStorage.getItem(\"dateRange\");\n\n try {\n let from = new Date(dateRange[0]);\n\n let url = `/Movement/getallpaged?skip=${skip}&take=${500}&fromLocationId=${locationFromId}&toLocationId=${locationToId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}&search=${movementSearch}&typeId=${typeId}&statusId=${statusId}&includeArchived=${includeArchived}`; //todo - move to store\n\n const response = await fetch(url);\n const body = await response.json();\n setIsLoading(false);\n setOriginBatchData(body);\n setData(body);\n setOriginData(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const fetchData = async () => {\n //setIsLoading(true);\n try {\n let url = `/Movement/getallpaged?skip=${skip}&take=${take}&fromLocationId=${locationFromId}&toLocationId=${locationToId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}&search=${movementSearch}&typeId=${typeId}&statusId=${statusId}`;\n\n const response = await fetch(url);\n\n const body = await response.json();\n setIsLoading(false);\n setOriginBatchData(body);\n setData(body);\n } catch (err) {\n setIsLoading(false);\n }\n }; \n \n const fetchStatusData = async () => {\n //setIsLoading(true);\n try {\n let url = `/Movement/GetStatusDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}`;\n\n const response = await fetch(url);\n\n const body = await response.json();\n setIsLoading(false);\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setStatusData(data);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const fetchSingleMovement = async (id) => {\n try {\n let url = `/Movement/GetSingle?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n setsingleMovement(body);\n } catch (err) { }\n };\n const fetchMovementProducts = async (id) => {\n try {\n let url = `/MovementProduct/getall?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&movementId=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n setMovementsProductData(body);\n setoriginMovementsProducts(body);\n } catch (err) { }\n };\n\n const fetchProductsDropdown = async () => {\n let locationId =\n singleMovement?.fromLocationId === undefined\n ? 0\n : singleMovement?.fromLocationId;\n try {\n let url = `/Product/GetProductDropdownListWithQuantity?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&locationId=${locationId}`;\n const response = await fetch(url);\n const body = await response.json();\n const product = body?.map((item) => {\n return { id: item.id, value: item.name, qty: item.quantityInStock };\n });\n setProductdata(product);\n } catch (err) { }\n };\n\n const handleChangeProduct = (name, value) => {\n let updatedProductValue = {\n ...productValue,\n [name]: value,\n };\n setProductValue(updatedProductValue);\n \n const productWithId = productData.find((product) => product.id == updatedProductValue.productId);\n if (productWithId) {\n setQuantityInStock(productWithId.qty);\n }\n\n validateInput(name, value);\n };\n\n const handleChangeLocation = (name, value) => {\n let item = {\n ...movementChangedValue,\n [name]: value,\n };\n setMovementChangedValue(item);\n validateInput(name, value);\n };\n const handleSaveMovement = () => {\n const newErrors = {};\n if (movementChangedValue.fromLocationId <= 0) {\n newErrors.fromLocationId = \"Please select at least one value\";\n }\n if (movementChangedValue.fromLocationId === movementChangedValue.toLocationId) {\n newErrors.toLocationId = \"The to location cannot be the same as the from location\";\n }\n if (movementChangedValue.toLocationId <= 0) {\n newErrors.toLocationId = \"Please select at least one value\";\n }\n setError(newErrors);\n\n if (Object.keys(newErrors).length > 0) {\n return;\n }\n\n showSweetAlert(\n \"warning\",\n `Are you sure you want to save the Movement?`,\n () => {\n saveMovement();\n }\n );\n };\n\n const handleInTransitMovement = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to mark this Movement as In Transit?`,\n () => {\n updateMovementStatus(id, 3);\n }\n );\n };\n\n const handleArchiveMovement = async (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to Archive this Movement?`,\n async () => {\n try {\n const url = `Movement/Delete?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"delete\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n \n if (response.status == 200) {\n showSweetAlert(\"success\", `Successfully Archived`);\n fetchGetallpaged();\n }\n } catch (err) {\n showSweetAlert(\"serverError\");\n console.log(err);\n }\n }\n );\n };\n\n const handleGetItemCard = (id) => {\n setSelectedProductId(id);\n setShowItemCardModal(true);\n };\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedProductId(0);\n };\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item);\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n };\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n };\n\n const getLocationName = (locationId) => {\n const location = locations.find(\n (location) => location.id === parseInt(locationId)\n );\n return location ? location.value : null;\n };\n\n const saveMovement = async () => {\n\n\n const fromLocationName = getLocationName(\n movementChangedValue.fromLocationId\n );\n const toLocationName = getLocationName(movementChangedValue.toLocationId);\n\n const data = {\n ...movementChangedValue,\n fromLocationName: fromLocationName,\n toLocationName: toLocationName,\n };\n\n try {\n let url = `Movement/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(data),\n });\n const body = await response.json();\n if (response.status == 200) {\n handleCloseBatchModal();\n showSweetAlert(\"saveSuccess\", `Movement Product`);\n } else {\n showSweetAlert(\"errorCustomMessage\", body);\n }\n fetchGetallpaged();\n handleCloseBatchModal();\n } catch (err) { }\n };\n\n const updateMovementStatus = async (id, statusId) => {\n try {\n let url = `Movement/UpdateMovementStatus?statusId=${statusId}&id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n\n if (response.status == 200) {\n handleCloseBatchModal();\n showSweetAlert(\"success\", `Movement successfully updated`);\n fetchGetallpaged();\n } else {\n showSweetAlert(\"serverError\");\n }\n fetchGetallpaged();\n } catch (err) { }\n };\n\n const handleSaveProduct = () => {\n if (productValue.quantity <= quantityInStock) {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to Save the Movement Product?`,\n () => {\n SaveProduct();\n }\n );\n } else {\n showSweetAlert(\n \"warningOkOnly\",\n `Selected location does not have enough of this item in stock.`\n );\n }\n };\n const SaveProduct = async () => {\n if (productValue.productId <= 0) {\n error.productId = \"Please select atleast one value\";\n return;\n }\n try {\n let url = `MovementProduct/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(productValue),\n });\n const body = await response.json();\n if (response.status == 200) {\n showSweetAlert(\"saveSuccess\", `Product Value`);\n fetchMovementProducts(movementId);\n handleCloseMovementProductModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n fetchMovementProducts(movementId);\n handleCloseMovementProductModal();\n } catch (err) { }\n };\n\n //Print batch in pdf\n const handlePrintBatchLabel = async (batchId, batchName) => {\n try {\n const url = `Movement/PrintBatchLabel?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&batchId=${batchId}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n //Print batch labels to pdf\n const handleBatchProductLabelPDF = async (batchId, batchName) => {\n try {\n const url = `Movement/PrintBatchProductLabels?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&batchId=${batchId}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n // ### HOOKS ###\n\n useEffect(() => {\n fetchLocationDropdown();\n fetchLocations();\n\n localStorage.setItem(\"locationFromId\", 0);\n localStorage.setItem(\"locationToId\", 0);\n localStorage.setItem(\"typeId\", 0);\n localStorage.setItem(\"statusId\", 0);\n localStorage.setItem(\"dateRange\", 0);\n\n fetchData();\n fetchStatusData();\n }, []);\n\n useEffect(() => {\n fetchProductsDropdown();\n }, [singleMovement]);\n\n useEffect(() => {\n fetchGetallpaged();\n }, [\n locationFromId,\n locationToId,\n typeId,\n statusId,\n movementSearch,\n dateRange,\n includeArchived,\n ]);\n\n const handleToggleShowArchived = (event) => {\n setIncludeArchived(event.target.checked);\n };\n\n const [isEditMovement, setIsEditMovement] = useState(false);\n const handleEditMovement = () => {\n setIsEditMovement(!isEditMovement);\n };\n\n const handleMassBookIn = (movementId) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to book in all items on this movement?`,\n () => {\n const massBookIn = async () => {\n try {\n let url = `Movement/MassBookIn?movementId=${movementId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n setIsLoading(true);\n const body = [];\n const barcodes = MovementsProductData.forEach((movement) => {\n body.push(movement.barcode);\n });\n\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n data: JSON.stringify(body),\n });\n\n const data = await response.json();\n if (response.status < 200 || response.status >= 300) {\n showSweetAlert(\"errorCustomMessage\", `${data}`);\n return;\n }\n\n showSweetAlert(\"saveSuccess\", `Movement`);\n await fetchMovementProducts(movementId);\n await fetchGetallpaged();\n } catch (err) {\n showSweetAlert(\"serverError\");\n console.log(\"Error\", err);\n } finally {\n setIsLoading(false);\n }\n };\n massBookIn();\n }\n );\n };\n\n const handleSaveChangeLocations = async (\n selectedFromLocation,\n selectedToLocation\n ) => {\n try {\n let url = `Movement/ChangeLocations?id=${singleMovement.id\n }&fromLocationId=${selectedFromLocation}&toLocationId=${selectedToLocation}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n const response = await fetch(url, {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n\n if (response.status == 200) {\n showSweetAlert(\"saveSuccess\", `Movement`);\n fetchSingleMovement(singleMovement.id);\n setIsEditMovement(false);\n fetchGetallpaged();\n } else {\n showSweetAlert(\"warningOkOnly\", response.statusText ?? \"Error\");\n }\n } catch (err) {\n console.log(err);\n }\n };\n\n const [selectedFromLocation, setSelectedFromLocation] = useState();\n const [selectedToLocation, setSelectedToLocation] = useState();\n\n const location = useLocation();\n useEffect(() => {\n if (location.state) {\n showMovementsModalWebOrder(location.state.order.id);\n location.state = null;\n }\n }, []);\n\n const showMovementsModalWebOrder = async (orderId) => {\n await fetchSingleMovement();\n movementsModel(orderId);\n };\n\n const handleReopenMovement = async (id) => {\n try {\n const url = `Movement/UpdateMovementStatus?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&statusId=1`;\n const response = await fetch(url, {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n if (response.status == 200) {\n showSweetAlert(\"success\", `Movement successfully updated`);\n fetchGetallpaged();\n }\n } catch (error) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleRemoveMovementProductLine = (id) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to remove this line from the movement?`,\n () => {\n confirmRemoveMovementProductLine(id);\n }\n );\n };\n\n const confirmRemoveMovementProductLine = async (id) => {\n try {\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const url = `MovementProduct/Delete?id=${id}&userId=${userId}&userToken=${userToken}`;\n const response = await fetch(url, {\n method: \"delete\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n if (response.status == 200) {\n showSweetAlert(\"success\");\n fetchMovementProducts(movementId);\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (error) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const [showWebOrdersModal, setShowWebOrdersModal] = useState(false);\n const [itemCardWebOrderInfo, setItemCardWebOrderInfo] = useState([]);\n const [itemCardWebOrderInfoType, setItemCardWebOrderInfoType] = useState(\"\");\n const handleShowWebOrdersModal = (item) => {\n setShowWebOrdersModal(true);\n };\n\n const handleHideWebOrdersModal = () => {\n // reset the state\n setItemCardWebOrderInfo([]);\n setItemCardWebOrderInfoType(\"\");\n setShowWebOrdersModal(false);\n };\n\n const handleGetItemCardWebOrderInfo = async (type, productId, locationId) => {\n switch (type) {\n case \"onHand\":\n // do nothing\n break;\n case \"Committed\":\n setItemCardWebOrderInfo(\n await handleGetItemCardCommittedList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"Committed\");\n break;\n case \"InTransit\":\n setItemCardWebOrderInfo(\n await handleGetItemCardInTransitList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"In Transit\");\n break;\n case \"Sold\":\n setItemCardWebOrderInfo(\n await handleGetItemCardSoldList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"Sold\");\n break;\n default:\n break;\n }\n }; \n \n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardCommittedList = async (id, location) => {\n if (!id || !location) return;\n try {\n const url = `/ItemCard/GetCommittedList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardInTransitList = async (id, location) => {\n if (!id || !location) return;\n try {\n const url = `/ItemCard/GetInTransitList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardSoldList = async (id, location) => {\n if (!id || !location) return;\n try {\n const url = `/ItemCard/GetSoldList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n {showMovementProductModal == false && (\n \n \n \n )}\n \n \n \n\n \n \n \n {getPermission(user.permissions, MOVEMENTS_VIEW) && (\n \n \n \n \n \n \n \n \n \n \n \n \n handleLocationFromChange(e.value)\n }\n withAll={true}\n />\n \n \n handleLocationToChange(e.value)}\n withAll={true}\n />\n \n \n handleTypeChange(e.value)}\n withAll={true}\n />\n \n \n handleStatusChange(e.value)}\n withAll={true}\n />\n \n \n
\n \n
\n Include archived\n
\n
\n \n
\n
\n
\n \n
\n \n \n \n \n \n
\n
\n )}\n {!getPermission(user.permissions, MOVEMENTS_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\nexport default Movements;\n","import React from \"react\";\nimport { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport { useDispatch } from \"react-redux\";\nimport { formatDate } from \"utils/FormatDate.js\";\n\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\n\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nimport { MOVEMENTS_EDIT } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\nimport { ADMIN_USERMANAGEMENT_VIEW } from \"constants/Permissions\";\n\nfunction MovementsTable(props) {\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"190px\",\n };\n\n // ### STATE ###\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n // ### renderTableData ###\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const {\n batchName,\n fromLocationName,\n toLocationName,\n units,\n unitsBookedIn,\n fromNotes,\n toNotes,\n id,\n dateCreated,\n typeName,\n statusId,\n statusName,\n archived,\n } = log;\n \n\n return (\n \n props.movementsModel(id)}>\n {batchName}\n \n {fromLocationName}\n {toLocationName}\n {units} ({unitsBookedIn})\n {typeName}\n {statusName}\n {formatDate(dateCreated)}\n {archived ? (\n \n Archived\n \n ) : (\n \n e.preventDefault()}\n overlay={\n Download Batch Label\n }\n >\n props.handlePrintBatchLabel(id, batchName)}\n variant=\"link\"\n >\n \n \n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n \n props.handleBatchProductLabelPDF(id, batchName)\n }\n variant=\"link\"\n >\n \n \n \n {getPermission(user.permissions, MOVEMENTS_EDIT) &&\n (statusId == 1 || statusId == 2) && (\n props.handleInTransitMovement(id)}\n variant=\"primary\"\n >\n Mark In Transit\n \n )}\n {user.roleId === 1 && statusId == 3 && (\n props.handleReopenMovement(id)}\n variant=\"primary\"\n >\n Reopen Movement\n \n )}\n { getPermission(user.permissions, MOVEMENTS_EDIT) &&\n props.handleArchiveMovement(id)}\n variant=\"primary\"\n >\n Archive\n \n }\n \n )}\n \n );\n });\n };\n return (\n <>\n \n \n Batches\n

\n\n \n \n dispatch({ type: \"SetUsernameValid\", Search: e })\n }\n handleClear={() =>\n dispatch({ type: \"SetUsernameValid\", Search: \"\" })\n }\n />\n \n\n e.preventDefault()}\n overlay={Add Movement}\n >\n props.handleAdd()}\n >\n Add\n \n \n
\n \n {props.data && props.data.length == 0 && !props.isLoading && (\n \n No data found.\n

\n )}\n\n {props.data && props.data.length > 0 && !props.isLoading && (\n \n = 20 ?
Loading more data...
: \"\"}\n height={650}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
Batch IdFrom Location NameTo Location NameUnitsType NameStatusDate Created
\n \n \n )}\n
\n
\n \n );\n}\nexport default MovementsTable;\n","import React from \"react\";\nimport { Button, Form, Row, Col, Card } from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nfunction AddEditMovementsModal(props) {\n return (\n <>\n
\n \n \n \n \n \n \n props.handleChangeLocation(\"fromLocationId\", e.value)\n }\n withAll={false}\n />\n {props.error.fromLocationId && (\n \n )}\n \n \n \n \n \n \n props.handleChangeLocation(\"toLocationId\", e.value)\n }\n withAll={false}\n />\n {props.error.toLocationId && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n Save\n \n \n \n );\n}\nexport default AddEditMovementsModal;\n","import React, { useEffect } from \"react\";\nimport { Button, Form, Row, Col, Card } from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nfunction AddEditMovementProduct(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"800px\");\n }, []);\n\n return (\n
\n \n \n \n \n \n \n props.handleChangeProduct(\"productId\", e.value)\n }\n withAll={false}\n value={props.productValue.productId}\n />\n {props.error.productId && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n props.handleChangeProduct(\"quantity\", e.target.value)\n }\n >\n \n \n \n \n \n Save\n \n \n );\n}\nexport default AddEditMovementProduct;\n","import React, { useState, useEffect, useMemo, useRef } from \"react\";\nimport {\n Card,\n Container,\n Row,\n Col,\n Button,\n Form,\n Tooltip,\n OverlayTrigger,\n} from \"react-bootstrap\";\nimport DateRange from \"../../components/Shared/DateRange\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport OrdersTable from \"components/Orders/OrdersTable\";\nimport OrdersModal from \"components/Orders/OrdersModal\";\nimport EditOrderLocationModal from \"components/Orders/EditOrderLocationModal\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport CustomModal from \"../../components/Shared/CustomModal\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport InventoryModal from \"../../components/ItemCard/InventoryModal\";\nimport ItemCard from \"../../components/ItemCard/ItemCard\";\nimport { useLocation } from \"react-router-dom\";\n// to change to orders view\nimport { MOVEMENTS_VIEW, ORDERS_VIEW } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\nimport Swal from \"sweetalert2\";\n// import router from \"http-proxy-middleware/lib/router\";\n\nfunction Orders() {\n // ### STATE ###\n const orderSearch = useSelector((state) => state.Search);\n const user = useSelector((state) => state.user);\n\n const [search, setSearch] = useState(\"\");\n\n const defaultDate = new Date();\n const [dateRange, setDateRange] = useState([\n defaultDate.setMonth(defaultDate.getMonth() - 3),\n new Date(),\n ]);\n\n // const [locationFromId, setLocationFromId] = useState(0);\n // const handleLocationFromChange = (id) => {\n // setLocationFromId(id);\n // localStorage.setItem(\"locationFromId\", id);\n // };\n\n const [locationId, setLocationId] = useState(0);\n const handleLocationToChange = (id) => {\n setLocationId(id);\n localStorage.setItem(\"locationId\", id);\n };\n\n const [locations, setLocations] = useState([]);\n const [locationDropdown, setLocationDropdown] = useState([]);\n const [orderBy, setOrderBy] = useState(\"DateAmended\");\n const [filterDateData, setfilterDateData] = useState([]);\n const [descending, setDescending] = useState(true);\n const [isLoading, setIsLoading] = useState(true);\n const [data, setData] = useState([]);\n const [page, setPage] = useState(1);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [originBatchData, setOriginBatchData] = useState([]);\n const [singleOrder, setSingleOrder] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const handleCloseModal = () => setShowModal(false);\n const handleShowModal = () => setShowModal(true);\n const [showBatchModal, setShowBatchModal] = useState(false);\n const handleCloseBatchModal = () => setShowBatchModal(false);\n const handleShowBatchModal = () => setShowBatchModal(true);\n\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n const [selectedOrderId, setSelectedOrderId] = useState(1);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState(\"Detail\");\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedOrderLine, setSelectedOrderLine] = useState();\n\n const [showEditOrderLocationModal, setShowEditOrderLocationModal] =\n useState(false);\n\n const [showOrderModal, setShowOrderModal] = useState(false);\n const handleCloseOrderModal = () => setShowOrderModal(false);\n const handleShowOrderModal = () => setShowOrderModal(true);\n const [orderId, setOrderId] = useState(0);\n const [orderLinesData, setOrderLinesData] = useState([]);\n const [originMovementsProducts, setoriginMovementsProducts] = useState([]);\n const [productData, setProductdata] = useState([]);\n const [productValue, setProductValue] = useState([]);\n const [quantityInStock, setQuantityInStock] = useState(0);\n const [movementChangedValue, setMovementChangedValue] = useState([]);\n const [originData, setOriginData] = useState([]);\n\n const [hasMore, setHasMore] = useState(true);\n\n const [error, setError] = useState({\n fromLocationId: \"\",\n toLocationId: \"\",\n productId: \"\",\n });\n\n // fulfillment Orders\n const [showFulfillmentOrders, setShowFulfillmentOrders] = useState(false);\n const handleToggleShowFulfillmentOrders = (isShowFulfillmentOrders) => {\n setShowFulfillmentOrders(isShowFulfillmentOrders);\n };\n const [fulfillmentOrdersData, setFulfillmentOrdersData] = useState({});\n\n // edit states - fulfillment orders\n const [\n isChangeFulfillmentOrderLocation,\n setIsChangeFulfillmentOrderLocation,\n ] = useState(false);\n\n const [checkedLineItems, setCheckedLineItems] = useState([]);\n\n const handleChangeFulfillmentOrderLocation = (lineItem) => {\n setIsChangeFulfillmentOrderLocation(true);\n let updatedCheckedLineItems = { ...checkedLineItems }; // Create a copy of the state\n\n // check if the line item already exists\n if (checkedLineItems.find((item) => item.id === lineItem.id)) {\n // remove the line item\n updatedCheckedLineItems = checkedLineItems.filter(\n (item) => item.id !== lineItem.id\n );\n setCheckedLineItems(updatedCheckedLineItems);\n } else {\n // add new item to the array\n setCheckedLineItems([...checkedLineItems, lineItem]);\n }\n\n // if no items then cancel the change\n if (updatedCheckedLineItems.length === 0) {\n handleCancelChangeFulfillmentOrderLocation();\n }\n };\n\n // const fetchWithRetry = async (url, options, retries = 3) => {\n // for (let i = 0; i < retries; i++) {\n // console.log(`Attempt ${i + 1} to fetch ${url}`);\n // try {\n // const response = await fetch(url, options);\n // if (response.status < 200 || response.status >= 300) {\n // throw new Error(`Request failed with status ${response.status}`);\n // }\n // const data = await response.json();\n // return data;\n // } catch (error) {\n // console.error(`Attempt ${i + 1} failed: ${error.message}`);\n // if (i === retries - 1) {\n // throw error;\n // }\n // }\n // }\n // };\n\n const handleConfirmChangeFulfillmentOrderLocation = async (\n item,\n selectedLocations\n ) => {\n const fulfillmentLines = item.fulfillmentLines;\n const selectedFulfillmentLines = fulfillmentLines.filter((x) =>\n checkedLineItems.some((y) => y.id === x.id)\n );\n const newLocationId = selectedLocations.find(\n (x) => x.itemId === item.id\n )?.locationId;\n\n // if no items then cancel the change\n if (selectedFulfillmentLines.length < 1) return;\n\n // All the lines should be from the same order\n const fulfillmentOrderId = selectedFulfillmentLines[0].fulfillmentId;\n\n const lineIds = selectedFulfillmentLines.map((line) => line.id);\n\n const url = `/Fulfilment/ChangeFulfilmentLocation?fulfilmentOrderId=${fulfillmentOrderId}&newLocationId=${newLocationId}`;\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(lineIds),\n });\n\n if (response.status === 200) {\n showSweetAlert(\"success\", \"Success\", \"Order location updated\");\n await fetchFulfillmentOrderLines(orderId);\n // setOrderLinesData(body);\n } else {\n showSweetAlert(\"serverError\");\n }\n\n return;\n };\n\n const handleConfirmChangeFulfillmentOrderLocationOld = async (\n item,\n selectedLocations\n ) => {\n // loop through the checked line items and create an array of the items that have the\n // grab item.fulfillmentLines and check which ones are in the checked line items - these added to array\n const fulfillmentLines = item.fulfillmentLines;\n const selectedFulfillmentLines = fulfillmentLines.filter((x) =>\n checkedLineItems.some((y) => y.id === x.id)\n );\n\n if (selectedFulfillmentLines.length < 1) return;\n\n // now we have the selected lines and also the location. We need to loop through these and make an api call for each\n let allSuccessful = true;\n for (const line of selectedFulfillmentLines) {\n const fulfillmentOrderId = line.fulfillmentId;\n const lineId = line.id;\n const quantity = line.quantity;\n const newLocationId = selectedLocations.find(\n (x) => x.itemId === item.id\n )?.locationId;\n\n const url = `/Fulfilment/ChangeFulfilmentLocation?fulfilmentOrderId=${fulfillmentOrderId}&lineId=${lineId}&quantity=${quantity}&newLocationId=${newLocationId}`;\n try {\n const response = await fetchWithRetry(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n } catch (error) {\n showSweetAlert(\"serverError\");\n allSuccessful = false;\n }\n }\n\n if (allSuccessful) {\n showSweetAlert(\"success\");\n fetchFulfillmentOrderLines(singleOrder.id);\n }\n\n return;\n };\n\n const handleCancelChangeFulfillmentOrderLocation = (isCancelAll) => {\n if (isCancelAll) {\n setCheckedLineItems([]);\n }\n setIsChangeFulfillmentOrderLocation(false);\n };\n\n // picked status functions - order lines / fulfillment orders table modal\n const [pickedStatusDropdownOptions, setPickedStatusDropdownOptions] =\n useState([\n { id: 4, value: \"None selected\" },\n { id: 1, value: \"Picked\" },\n { id: 2, value: \"Unavailable\" },\n { id: 3, value: \"Damaged\" },\n ]);\n\n const handlePickedStatusChange = (pickedStatus, lineItem, order) => {\n // get the user id making the change\n const userId = localStorage.getItem(\"userId\");\n\n switch (pickedStatus) {\n case 1:\n handlePicked(lineItem, userId, order.id);\n break;\n case 2:\n showSweetAlert(\n \"warning\",\n `Are you sure you want to select unavailable?`,\n () => {\n sendEmailOnPickedStatusChange(\n pickedStatus,\n lineItem,\n userId,\n order.id\n );\n }\n );\n break;\n case 3:\n showSweetAlert(\n \"warning\",\n `Are you sure you want to select damaged?`,\n () => {\n sendEmailOnPickedStatusChange(\n pickedStatus,\n lineItem,\n userId,\n order.id\n );\n }\n );\n break;\n case 4:\n // case 4 is none selected - do nothing\n break;\n default:\n break;\n }\n };\n\n const sendEmailOnPickedStatusChange = (pickedStatus, lineItem, orderId) => {\n // Unavailable\n if (pickedStatus === 2) {\n // send email\n handleConfirmStatusChange(lineItem.id, pickedStatus, orderId);\n return;\n }\n\n // Damaged\n handleConfirmStatusChange(lineItem.id, pickedStatus, orderId);\n return;\n };\n\n const handlePicked = (lineItem, userId, orderId) => {\n const { barcode, quantity } = lineItem;\n\n const returnSwalHtml = () => {\n if (quantity > 1) {\n return `Please confirm barcode is ${barcode} and quantity is ${quantity}`;\n }\n return `Please confirm barcode is ${barcode} and quantity is ${quantity}`;\n };\n\n Swal.fire({\n title: `${returnSwalHtml()}`,\n icon: \"warning\",\n showCancelButton: true,\n confirmButtonText: \"Confirm\",\n denyButtonColor: \"#ACACAC \",\n confirmButtonColor: \"#FF680B\",\n cancelButtonText: \"Cancel\",\n sanitize: false,\n }).then((result) => {\n if (result.isConfirmed) {\n handleConfirm();\n }\n });\n\n const handleConfirm = async () => {\n handleConfirmStatusChange(lineItem.id, 1, orderId);\n };\n };\n\n // send the email on picked status changed / confirmed change\n const handleConfirmStatusChange = async (\n fulfilmentLineId,\n pickedStatus,\n orderId\n ) => {\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n\n const url = `/Fulfilment/SetFulfilmentLineStatus?userId=${userId}&userToken=${userToken}&fulfilmentLineId=${fulfilmentLineId}&status=${pickedStatus}`;\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (response.status !== 200) {\n showSweetAlert(\"serverError\");\n return;\n }\n\n await fetchFulfillmentOrderLines(orderId);\n\n showSweetAlert(\"success\", \"Success\", \"Status changed.\");\n };\n\n const [fulfillmentOrderLines, setFulfillmentOrderLines] = useState();\n const fetchFulfillmentOrderLines = async (orderId) => {\n // fetch\n try {\n let url = `/Fulfilment/GetAll?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&orderId=${orderId}`;\n\n const response = await fetch(url);\n\n const body = await response.json();\n setFulfillmentOrderLines(body);\n } catch (error) {\n console.log(error);\n }\n };\n\n const validateInput = (name, value) => {\n setError((prev) => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"fromLocationId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n\n case \"toLocationId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n case \"productId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n };\n // ### HANDLERS ###\n const ordersModal = (orderId) => {\n setOrderId(orderId);\n // no longer need to fetch single order - just extract the fulfillment order lines data\n fetchSingleOrder(orderId);\n fetchFulfillmentOrderLines(orderId);\n // fetchMovementProducts(orderId);\n handleShowModal();\n };\n\n const handleAdd = () => {\n setError([]);\n setMovementChangedValue({\n id: 0,\n batchName: \"\",\n fromLocationId: 0,\n fromLocationName: \"\",\n toLocationId: 0,\n toLocationName: \"\",\n fromNotes: \"\",\n toNotes: \"\",\n typeId: 3,\n typeName: \"\",\n statusId: 0,\n hasCreatedBatch: true,\n });\n handleShowBatchModal();\n };\n\n const handleDatesChange = (dates) => {\n setDateRange(dates);\n if (dates[0] && dates[1]) {\n const filterData = originData.filter((item) => {\n return moment(item.timestamp).isBetween(\n moment(dates[0], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n moment(dates[1], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n null,\n \"[]\"\n );\n });\n setfilterDateData(filterData);\n localStorage.setItem(\"dateRange\", filterData);\n }\n };\n\n const handleSearchChange = (value) => {\n const filterData = originMovementsProducts?.filter((item) =>\n item.productName.toLowerCase().includes(value.toLowerCase())\n );\n setSearch(value);\n setOrderLinesData(filterData);\n };\n // ### DATA FETCHES ###\n const fetchLocations = async () => {\n try {\n let url = `/location/getall?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`; //todo - move to store\n const response = await fetch(url);\n const locations = await response.json();\n\n const data = locations?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocations(data);\n } catch (err) {}\n };\n const fetchLocationDropdown = async () => {\n try {\n let url = `/location/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const locations = await response.json();\n\n const products = locations?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocationDropdown(products);\n } catch (err) {}\n };\n\n const pageRef = useRef(page);\n const handlePageChange = (newPage) => {\n pageRef.current = newPage;\n setPage(newPage);\n };\n\n useMemo(async () => {\n handlePageChange(0);\n try {\n setData([]);\n setIsLoading(true);\n\n handlePageChange(page + 1);\n let from = new Date(dateRange[0]);\n\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const dateFrom = new Date(dateRange[0]).toISOString();\n const dateTo = new Date(dateRange[1]).toISOString();\n const orderBy = \"CreatedAt\";\n const descending = true;\n\n const url = `/Order/GetAllPaged?userId=${userId}&userToken=${userToken}&skip=${\n pageRef.current * take + skip\n }&take=${take}&locationId=${locationId}&dateFrom=${dateFrom}&dateTo=${dateTo}&orderBy=${orderBy}&descending=${descending}`;\n\n const response = await fetch(url);\n const body = await response.json();\n setData(body.data);\n setIsLoading(false);\n } catch (err) {\n setIsLoading(false);\n }\n }, [locationId, location, dateRange]);\n\n const updateData = async () => {\n try {\n handlePageChange(page + 1);\n let from = new Date(dateRange[0]);\n\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const dateFrom = new Date(dateRange[0]).toISOString();\n const dateTo = new Date(dateRange[1]).toISOString();\n const orderBy = \"CreatedAt\";\n const descending = true;\n\n const url = `/Order/GetAllPaged?userId=${userId}&userToken=${userToken}&skip=${\n pageRef.current * take + skip\n }&take=${take}&locationId=${locationId}&dateFrom=${dateFrom}&dateTo=${dateTo}&orderBy=${orderBy}&descending=${descending}`;\n const response = await fetch(url);\n const body = await response.json();\n setTimeout(() => {\n setData(data.concat(body));\n if (body.data && body.data.length == 0) {\n setHasMore(false);\n }\n }, 500);\n } catch (err) {\n console.log(\"error\", err);\n }\n };\n\n const fetchGetallpaged = async () => {\n setPage(0);\n setOriginBatchData([]);\n setData([]);\n setIsLoading(true);\n\n const locationFromId = localStorage.getItem(\"locationFromId\");\n const locationId = localStorage.getItem(\"locationId\");\n const typeId = localStorage.getItem(\"typeId\");\n const statusId = localStorage.getItem(\"statusId\");\n\n try {\n let from = new Date(dateRange[0]);\n\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const dateFrom = new Date(dateRange[0]).toISOString();\n const dateTo = new Date(dateRange[1]).toISOString();\n const orderBy = \"CreatedAt\";\n const descending = true;\n\n const url = `/Order/GetAllPaged?userId=${userId}&userToken=${userToken}&skip=${skip}&take=${take}&locationId=${locationId}&dateFrom=${dateFrom}&dateTo=${dateTo}&orderBy=${orderBy}&descending=${descending}`;\n\n const response = await fetch(url);\n\n const body = await response.json();\n setIsLoading(false);\n setOriginBatchData(body);\n setData(body);\n setOriginData(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const fetchData = async () => {\n //setIsLoading(true);\n try {\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const locationId = localStorage.getItem(\"locationId\");\n const dateFrom = new Date(dateRange[0]).toISOString();\n const dateTo = new Date(dateRange[1]).toISOString();\n const orderBy = \"CreatedAt\";\n const descending = true;\n\n const url = `/Order/GetAllPaged?userId=${userId}&userToken=${userToken}&skip=${skip}&take=${take}&locationId=${locationId}&dateFrom=${dateFrom}&dateTo=${dateTo}&orderBy=${orderBy}&descending=${descending}`;\n\n const response = await fetch(url);\n\n const body = await response.json();\n setIsLoading(false);\n setOriginBatchData(body);\n setData(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const fetchSingleOrder = async (id) => {\n try {\n let url = `/Order/GetSingle?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n setSingleOrder(body);\n } catch (err) {}\n };\n\n const handleChangeProduct = (name, value) => {\n let updatedProductValue = {\n ...productValue,\n [name]: value,\n };\n setProductValue(updatedProductValue);\n\n const productWithId = productData.find((product) => product.id == value);\n if (productWithId) {\n setQuantityInStock(productWithId.qty);\n }\n\n validateInput(name, value);\n };\n\n const handleChangeLocation = (name, value) => {\n let item = {\n ...movementChangedValue,\n [name]: value,\n };\n setMovementChangedValue(item);\n validateInput(name, value);\n };\n\n const handleGetItemCard = (id) => {\n setSelectedOrderId(id);\n setSelectedProductId(id);\n setShowItemCardModal(true);\n };\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedOrderId(0);\n };\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item);\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n };\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n };\n\n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n\n // ### HOOKS ###\n\n useEffect(() => {\n fetchLocationDropdown();\n fetchLocations();\n\n localStorage.setItem(\"locationFromId\", 0);\n localStorage.setItem(\"locationId\", 0);\n localStorage.setItem(\"typeId\", 0);\n localStorage.setItem(\"statusId\", 0);\n localStorage.setItem(\"dateRange\", 0);\n\n fetchData();\n }, []);\n\n useEffect(() => {\n fetchGetallpaged();\n }, [locationId, orderSearch, dateRange]);\n\n let routerLocation = useLocation();\n useEffect(() => {\n if (routerLocation.state) {\n showOrdersModalWebOrder(routerLocation.state.order.id);\n routerLocation.state = null;\n }\n }, []);\n const showOrdersModalWebOrder = async (orderId) => {\n await fetchSingleOrder(orderId);\n setShowModal(true);\n };\n\n const handleShowEditOrderLocationModal = (orderLine) => {\n setSelectedOrderLine(orderLine);\n setShowEditOrderLocationModal(true);\n setShowModal(false);\n };\n\n const handleHideEditOrderLocationModal = () => {\n setSelectedOrderLine(null);\n setShowEditOrderLocationModal(false);\n setShowModal(true);\n };\n\n const handleUpdateOrderLocation = async () => {\n try {\n const url = `/Order/UpdateOrderLine?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n let body = selectedOrderLine;\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n if (data.error) {\n showSweetAlert(\"serverError\");\n return;\n }\n\n showSweetAlert(\"success\", \"Success\", \"Order location updated\");\n handleHideEditOrderLocationModal();\n } catch (err) {}\n };\n\n return (\n <>\n \n \n \n \n \n \n\n \n \n \n\n {showOrderModal == false && (\n \n \n \n )}\n {/* todo - change to order view when added to api perms */}\n {getPermission(user.permissions, MOVEMENTS_VIEW) && (\n \n \n \n \n \n \n \n \n \n \n \n handleLocationToChange(e.value)}\n withAll={true}\n />\n \n {/* \n \n handleLocationFromChange(e.value)\n }\n withAll={true}\n />\n \n \n handleLocationToChange(e.value)}\n withAll={true}\n />\n */}\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {!getPermission(user.permissions, MOVEMENTS_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\nexport default Orders;\n","import React from \"react\";\nimport { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport { useDispatch } from \"react-redux\";\nimport { formatDate } from \"utils/FormatDate.js\";\n\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\n\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n// todo - change to orders perms when exist\nimport { MOVEMENTS_EDIT } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction OrdersTable(props) {\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"190px\",\n };\n\n // ### STATE ###\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n // ### renderTableData ###\n const renderTableData = () => {\n return props.data.map((log, index) => {\n if (log === null || log === undefined) return;\n const {\n orderLines,\n id,\n orderNumber,\n locationId,\n location,\n customerId,\n customerName,\n subTotal,\n totalPrice,\n totalTax,\n totalDiscount,\n financialStatus,\n fulfillmentStatus,\n refundAmount,\n createdAt,\n shopifyId,\n confirmed,\n quantity,\n orderDate,\n } = log;\n\n const returnLocation = () => {\n return props.locationDropdown.map((location, index) => {\n if (location.id === log.locationId) {\n return location.value;\n }\n });\n };\n\n return (\n \n props.ordersModal(id)}>\n {orderNumber}\n \n £{totalPrice.toFixed(2)}\n £{subTotal.toFixed(2)}\n £{totalTax.toFixed(2)}\n {quantity}\n \n {new Date(createdAt).toLocaleDateString(\"en-GB\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"2-digit\",\n })}\n \n {fulfillmentStatus}\n {locationId === 0 ? \"Web\" : returnLocation()}\n {/* {formatDate(dateCreated)} */}\n {/* \n e.preventDefault()}\n overlay={Download Btn 1}\n >\n props.handlePrintBatchLabel(id, batchName)}\n variant=\"link\"\n >\n \n \n \n\n e.preventDefault()}\n overlay={Download Btn 2}\n >\n props.handleBatchProductLabelPDF(id, batchName)}\n variant=\"link\"\n >\n \n \n \n */}\n \n );\n });\n };\n return (\n <>\n \n \n \n {props.data && props.data.length == 0 && !props.isLoading && (\n \n No data found.\n

\n )}\n {props.data && props.data.length > 0 && !props.isLoading && (\n \n = props.take ? (\n
Loading more data...
\n ) : (\n \"\"\n )\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
OrderTotal PriceSub TotalTotal TaxQuantityOrder DateFullfillment StatusLocation
\n \n \n )}\n
\n
\n \n );\n}\nexport default OrdersTable;\n","import React, { useEffect, useState } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n CardHeader,\n} from \"react-bootstrap\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\n// import OrderLinesTable from \"./OrderLinesTable\";\n// todo - import the order lines table\nimport FulfillmentOrderLinesTable from \"./FulfillmentOrderLinesTable\";\n\nfunction EditOrderLocationModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"500px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n if (permissions.includes(\"Orders.Edit\")) {\n hasPermission = true;\n }\n\n const orderLines = props.SingleOrder?.orderLines;\n\n return (\n <>\n {alert}\n \n \n \n \n Edit Order Fulfillment Location\n \n \n \n \n \n \n {\n props.setSelectedOrderLine({\n ...props.selectedOrderLine,\n locationId: e.value,\n });\n // props.setSelectedFromLocation(e.value);\n }}\n withAll={false}\n id={props.selectedOrderLine.locationId}\n />\n \n \n \n \n \n \n Cancel\n \n props.handleUpdateOrderLocation()}\n >\n Save\n \n \n \n \n \n \n );\n}\nexport default EditOrderLocationModal;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport {\n Card,\n Container,\n Row,\n Col,\n} from \"react-bootstrap\";\nimport { useSelector, useDispatch } from 'react-redux'\nimport LabelsTable from \"../../components/Labels/LabelsTable\";\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n\nimport { LABELS_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\nfunction Labels() {\n // ### STATE ###\n const user = useSelector((state) => state.user);\n \n const [labels, setLabels] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n // ### HANDLERS ###\n //Print labels pdf\n const fetchLabels = async () => {\n try {\n let url = `/label/getall?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const data = await response.json();\n setIsLoading(false);\n setLabels(data);\n }\n catch (e) {\n showSweetAlert('serverError');\n }\n }\n\n const handlePrintLabel = async () => {\n try {\n const url = `label/print?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\"binary\");\n const dataArray = new Uint8Array(Array.from(decodedData, (char) => char.charCodeAt(0)));\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert('warningCustomMessage', body);\n }\n\n }\n catch (e) {\n showSweetAlert('serverError');\n }\n }\n\n const handleDelete = async () => {\n showSweetAlert('warning', `Are you sure you want to delete stored labels?`, () => { handleDeleteCall() });\n }\n\n const handleDeleteCall = async () => {\n try {\n const url = `label/deleteall?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`\n const response = await fetch(url, { method: 'delete' });\n\n if (response.status == 200) {\n showSweetAlert('success');\n setIsLoading(true);\n setLabels();\n }\n }\n catch (e) {\n showSweetAlert('serverError');\n }\n }\n \n // ### HOOKS ###\n useEffect(() => {\n fetchLabels();\n }, [])\n \n return (\n <>\n {getPermission(user.permissions, LABELS_VIEW) &&\n \n \n \n \n \n \n \n }\n {!getPermission(user.permissions, LABELS_VIEW) &&\n You are not authorized to view this page\n }\n \n );\n}\nexport default Labels;","import React from \"react\";\nimport { useState } from \"react\";\nimport moment from \"moment\";\n\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nfunction LabelsTable(props) {\n // ### STATE ###\n const user = useSelector((state) => state.user);\n const dispatch = useDispatch();\n\n return (\n <>\n \n \n
Labels
\n
\n props.handleDelete()}\n >\n Delete Labels\n \n props.handlePrintLabel()}\n >\n Print Labels\n \n
\n \n\n \n {props.isLoading ? (\n // Render loading indicator or similar content\n \n
\n \n

Loading...

\n
\n \n ) : props.data && props.data.length === 0 ? (\n // Render no labels found message\n \n No labels found.\n

\n ) : (\n // Render the table\n \n \n \n \n \n \n \n \n {props.data.map((label, index) => (\n \n \n \n ))}\n \n
Product
{label.productDescription}
\n \n )}\n
\n
\n \n );\n}\nexport default LabelsTable;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Card,\n Container,\n Row,\n Col,\n Form\n} from \"react-bootstrap\";\nimport CustomSelect from '../../components/Shared/CustomSelect';\nimport BuyersTable from \"components/Buyers/BuyersTable\";\nimport CustomModal from \"components/Shared/CustomModal\";\nimport AddEditBuyersCollection from \"components/Buyers/AddEditBuyersCollection\";\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport BuyersCollectionDetailModal from \"components/Buyers/BuyersCollectionDetailModal\";\nimport BuyersCollectionProductAddModal from \"components/Buyers/BuyersCollectionProductAddModal\";\nimport BuyersCollectionProductDetailModal from \"components/Buyers/BuyersCollectionProductDetailModal\";\nimport ApprovalCommentsInput from \"components/Buyers/ApprovalCommentsInput\";\nimport BuyersCollectionSizeModal from \"components/Buyers/BuyersCollectionSizeModal\";\nimport ItemCard from \"../../components/ItemCard/ItemCard\";\nimport InventoryModal from \"../../components/ItemCard/InventoryModal\";\nimport { useSelector } from 'react-redux';\n\nimport { BUYERS_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\nfunction Buyers() {\n // ### STATE ###\n const [isLoading, setIsLoading] = useState(true);\n const [buyers, setBuyers] = useState([]);\n const [locations, setLocations] = useState([]);\n const [brand, setBrand] = useState([]);\n const [productCategory, setProductCategory] = useState([]);\n const [gender, setGender] = useState([]);\n const [season, setSeason] = useState([]);\n const [status, setStatus] = useState([]);\n const [page, setPage] = useState(0);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [search, setSearch] = useState(\"\");\n const [descending, setDescending] = useState(true);\n const [orderBy, setOrderBy] = useState(\"DateCreated\");\n const [buyersCollection, setBuyersCollection] = useState([]);\n const [buyersCollectionProductId, setBuyersCollectionProductId] = useState(0);\n const [buyersCollectionData, setBuyersCollectionData] = useState([]);\n const [isEdit, setIsEdit] = useState(false);\n const [buyerId, setBuyerId] = useState(0);\n const [data, setData] = useState([]);\n const [buyerCollectionLocations, setBuyerCollectionLocation] = useState([]);\n const [overwrite, setOverwrite] = useState(false);\n const [categoryGroups, setCategoryGroups] = useState([]);\n const [categorySizes, setCategorySizes] = useState([]);\n const [vat, setVat] = useState([]);\n const [selectedSizes, setSelectedSizes] = useState([]);\n const [buyersCollectionProduct, setBuyersCollectionProduct] = useState([]);\n const [updatedSize, setUpdatedSizes] = useState([]);\n const [selectedSizeScale, setSelectedSizeScale] = useState(\"\");\n const [sizeSelectAll, setSizeSelectAll] = useState(false);\n const [selectedImage, setSelectedImage] = useState(-1);\n const [approvalProductId, setApprovalProductId] = useState(0);\n const [approvalState, setApprovalState] = useState(false);\n const [showDetails, setShowDetails] = useState(true);\n\n const user = useSelector((state) => state.user);\n const [collectionLocationDetails, setCollectionLocationDetails] = useState([]);\n\n\n //Handle Modal\n const [showModal, setShowModal] = useState(false);\n const handleCloseModal = () => setShowModal(false);\n const handleShowModal = () => setShowModal(true);\n\n //handle BuyersCollectionDetail Modal\n const [showCollectionDetailModal, setShowCollectionDetailModal] = useState(false);\n const handleCloseCollectionDetailModal = () => setShowCollectionDetailModal(false);\n const handleShowCollectionDetailModal = () => setShowCollectionDetailModal(true);\n\n //handle BuyersCollectionProductAdd Modal \n const [showBuyersCollectionProductAddModal, setShowBuyersCollectionProductAddModal] = useState(false);\n const handleCloseBuyersCollectionProductAddModal = () => setShowBuyersCollectionProductAddModal(false);\n const handleShowBuyersCollectionProductAddModal = () => setShowBuyersCollectionProductAddModal(true);\n\n //handle BuyersCollectionProductDetail Modal \n const [showBuyersCollectionProductDetailModal, setBuyersCollectionProductDetailModal] = useState(false);\n const handleCloseBuyersCollectionProductDetailModal = () => setBuyersCollectionProductDetailModal(false);\n const handleShowBuyersCollectionProductDetailModal = () => setBuyersCollectionProductDetailModal(true);\n\n // handle size modal\n const [showSizeModal, setSizeModal] = useState(false);\n const handleCloseSizeModal = () => setSizeModal(false);\n const handleShowSizeModal = () => setSizeModal(true);\n\n //handle comments modal\n const [showCommentsModal, setShowCommentsModal] = useState(false);\n\n const [isSameDetailsChecked, setIsSameDetailsChecked] = useState(false);\n\n // item card properties\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [selectedInventory, setSelectedInventory] = useState([]);\n const [showItemCardModal, setShowItemCardModal] = useState(false);\n const [showInventoryModal, setShowInventoryViewModal] = useState(false);\n const [itemCardSelectedTab, setItemCardSelectedTab] = useState('Detail');\n\n const [buyersCollectionProductSaving, setBuyersCollectionProductSaving] = useState(false);\n\n //on dropdown changes \n const [locationId, setLocationId] = useState(0);\n const [brandId, setBrandId] = useState(0);\n const [seasonId, setSeasonId] = useState(0);\n const [genderId, setGenderId] = useState(0);\n const [statusId, setstatusId] = useState(0);\n\n\n const [selectedLocation, setSelectedLocation] = useState(0);\n\n // auto activate the input variable\n const [openWithInput, setOpenWithInput] = useState(false);\n\n // allocation message to appear once allocation has been successful\n const [allocationMessage, setAllocationMessage] = useState(\"\");\n\n // Validation\n const [error, setError] = useState({\n name: '',\n brandId: '',\n seasonId: ''\n })\n\n const handleCheckboxChange = (id) => {\n setSelectedSizes((prevSelectedSizes) => {\n const index = prevSelectedSizes.indexOf(id);\n if (index !== -1) {\n const updatedList = [...prevSelectedSizes];\n updatedList.splice(index, 1);\n setUpdatedSizes((prevSizes) => ({\n ...prevSizes,\n sizeIds: updatedList\n }));\n return updatedList;\n } else {\n const updatedList = [...prevSelectedSizes, id];\n setUpdatedSizes((prevSizes) => ({\n ...prevSizes,\n ...prevSizes,\n sizeIds: updatedList\n }));\n return updatedList;\n }\n });\n };\n\n const handleSelectAllChange = (event) => {\n if (event.target.checked === true) {\n setSelectedSizes(categorySizes.map(size => size.id))\n setUpdatedSizes((prevSizes) => ({\n ...prevSizes,\n sizeIds: categorySizes.map(size => size.id)\n }));\n setSizeSelectAll(true)\n } else {\n setSelectedSizes([])\n setSizeSelectAll(false)\n }\n };\n\n const addBuyersCollectionAllocation = async (locationId, productId) => {\n if (productId == 0) {\n return;\n }\n try {\n const response = await fetch(`/BuyersCollectionAllocation/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&locationId=${locationId}&productId=${productId}&overwrite=${overwrite}`, {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n });\n const body = await response.json();\n if (body === true) {\n setAllocationMessage(\"Allocated to \" + locations.find((loc) => loc.id === locationId).value)\n fetchBuyersCollectionProducts(selectedLocation, data.id)\n } else if (body == \"Exists\") {\n showSweetAlert('warning', `This product and location are already in the allocations. This will overwrite the allocations on that product and location to 1. Are you sure you want to continue?`, () => { addOverriteBuyersCollectionAllocation(locationId, productId) });\n } else {\n showSweetAlert('warningOkOnly', body, () => { addOverriteBuyersCollectionAllocation(locationId, productId) });\n }\n } catch (e) { }\n }\n\n const addOverriteBuyersCollectionAllocation = async (locationId, productId) => {\n\n try {\n const response = await fetch(`/BuyersCollectionAllocation/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&locationId=${locationId}&productId=${productId}&overwrite=true`, {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n });\n const body = await response.json();\n if (body === true) {\n setAllocationMessage(\"Allocated to \" + locations.find((loc) => loc.id === locationId).value)\n fetchBuyersCollectionProducts(selectedLocation, data.id)\n }\n } catch (e) { }\n }\n const validateInput = (name, value) => {\n setError(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"name\":\n if (value === \"\") {\n stateObj[name] = \"Please Enter the Name\";\n }\n break;\n\n case \"brandId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n case \"seasonId\":\n if (value <= 0) {\n stateObj[name] = \"Please select at least one value\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n }\n\n const handleEditBuyersCollectionProductDetailModal = async (item) => {\n await fetchBuyersCollectionProduct(item.id)\n setBuyersCollectionProductId(item.id)\n handleShowBuyersCollectionProductDetailModal();\n\n }\n const handleBuyersCollectionSizeModal = () => {\n setUpdatedSizes({\n currentSizes: buyersCollectionProduct.productVariants,\n sizeIds: selectedSizes\n });\n setSizeSelectAll(false)\n handleShowSizeModal();\n }\n const pageRef = useRef(page);\n\n const handlePageChange = (newPage) => {\n pageRef.current = newPage;\n setPage(newPage);\n }\n\n const handleApprovalChange = async (productId, e) => {\n // Find the index of the product in the buyersCollectionData based on the productId\n const productIndex = buyersCollectionData.findIndex(\n (product) => product.id === productId\n );\n\n if (productIndex !== -1) {\n setShowCommentsModal(true);\n handleCloseCollectionDetailModal();\n setApprovalProductId(productId);\n setApprovalState(e);\n }\n }\n\n const handleCancelApprovalComments = async () => {\n setShowCommentsModal(false);\n handleShowCollectionDetailModal();\n }\n\n const handleCommentConfirm = async (comment) => {\n try {\n setShowCommentsModal(false);\n handleShowCollectionDetailModal();\n\n if (comment == '')\n comment = null\n\n let url = `/BuyersCollectionProduct/UpdateApproved?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&id=${approvalProductId}&approved=${approvalState}&comment=${comment}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n });\n\n if (response.status === 200) {\n // If the product with the given productId is found\n const updatedProducts = buyersCollectionData.map(product =>\n product.id === approvalProductId ? { ...product, approved: approvalState } : product\n );\n\n setBuyersCollectionData(updatedProducts);\n } else {\n const body = await response.json();\n showSweetAlert('warningOkOnly', body);\n }\n } catch (err) {\n\n }\n }\n\n //handle Change\n const handleChange = (name, value) => {\n let Buyersvalues = {\n ...buyersCollection,\n [name]: value,\n };\n validateInput(name, value)\n setBuyersCollection(Buyersvalues)\n }\n\n const handleChangeImage = async (e) => {\n if (e.target.files.length > 0) {\n\n const files = e.target.files;\n const imagesArray = buyersCollectionProduct.images;\n\n const image = await readFileAsync(files[0]);\n\n if (selectedImage >= 0) {\n imagesArray[selectedImage] = image.substring(image.indexOf(',') + 1);\n } else {\n imagesArray.push(image.substring(image.indexOf(',') + 1));\n }\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n images: imagesArray\n }));\n }\n\n setSelectedImage(-1);\n };\n const handleGetLabelPDF = async (id, sku) => {\n try {\n const url = `Product/GetProductLabelsPDF?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n\n if (response.status == 200) {\n const base64String = await response.text();\n\n try {\n const decodedData = Buffer.from(base64String, \"base64\").toString(\n \"binary\"\n );\n const dataArray = new Uint8Array(\n Array.from(decodedData, (char) => char.charCodeAt(0))\n );\n const blob = new Blob([dataArray], { type: \"application/pdf\" });\n\n const blobUrl = window.URL.createObjectURL(blob);\n const iframe = document.createElement(\"iframe\");\n iframe.style.display = \"none\";\n iframe.src = blobUrl;\n document.body.appendChild(iframe);\n\n iframe.onload = function () {\n try {\n iframe.contentWindow.print();\n } catch (printError) {\n console.error(\"Error in printing:\", printError);\n }\n };\n } catch (error) {\n console.error(\"Error in processing the PDF:\", error);\n }\n } else {\n const body = await response.text();\n showSweetAlert(\"warningCustomMessage\", body);\n }\n setIsLoading(false);\n } catch (e) {\n showSweetAlert(\"serverError\");\n }\n };\n const readFileAsync = (file) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve(reader.result);\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n };\n\n const handleDeleteImage = async (id) => {\n const imagesArray = buyersCollectionProduct.images;\n\n imagesArray.splice(id, 1);\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n images: imagesArray\n }));\n setSelectedImage(-1);\n };\n\n const handleClickImage = (index, e) => {\n e.stopPropagation();\n let image = document.getElementById('ag-upload');\n image.click();\n setSelectedImage(index);\n };\n\n const handleSearchChange = (value) => {\n setSearch(value)\n }\n\n\n const handleGetItemCard = (id) => {\n setSelectedProductId(id);\n setShowItemCardModal(true);\n handleCloseCollectionDetailModal();\n }\n\n const handleItemCardCloseModal = () => {\n setShowItemCardModal(false);\n setSelectedProductId(0);\n handleShowCollectionDetailModal();\n setItemCardSelectedTab('Detail')\n }\n\n const handleShowInventoryModal = (item) => {\n setSelectedInventory(item)\n setShowInventoryViewModal(true);\n setShowItemCardModal(false);\n }\n\n const handleHideInventoryModal = () => {\n setShowInventoryViewModal(false);\n setShowItemCardModal(true);\n }\n\n //fetch locations in dropdown\n const fetchLocations = async () => {\n try {\n let url = `/location/getdropdownlist?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n\n });\n\n setLocations(data);\n } catch (err) {\n }\n }\n const fetchBuyersCollectionProducts = async (locationId, collectionId) => {\n // setIsLoading(true);\n try {\n let url = `BuyersCollectionProduct/GetAll?collectionId=${collectionId}&locationId=${locationId}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n setCollectionLocationDetails({\n allocatedStyles: body.allocatedStyles,\n units: body.units,\n cost: body.cost,\n });\n\n const data = body.products\n setBuyersCollectionData(data);\n setSelectedLocation(locationId)\n } catch (e) { }\n finally {\n // setIsLoading(false);\n }\n }\n\n const getBuyerCollectionLocationList = async () => {\n try {\n let url = `/location/GetBuyerCollectionList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&includeArchived=false`;\n const response = await fetch(url);\n const body = await response.json();\n setBuyerCollectionLocation(body);\n } catch (e) { }\n }\n\n //fetch season in dropdown\n const fetchSeason = async () => {\n try {\n let url = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=4&includeArchived=false`;\n const response = await fetch(url);\n const body = await response.json();\n const seasonData = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setSeason(seasonData);\n } catch (err) {\n }\n }\n\n //fetch gender in dropdown\n const fetchGender = async () => {\n try {\n let url = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=1&includeArchived=false`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setGender(data);\n } catch (err) {\n }\n }\n\n //fetch brand in dropdown\n const fetchBrands = async () => {\n try {\n let url = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=2&includeArchived=false`;\n const response = await fetch(url);\n const body = await response.json();\n const brandData = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setBrand(brandData);\n } catch (err) {\n }\n }\n\n // Get product category list\n const fetchProductCategoryList = async () => {\n try {\n let url = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=3&includeArchived=false`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setProductCategory(data);\n } catch (err) {\n }\n }\n\n //fetch status in dropdown\n const fetchSatus = async () => {\n try {\n let url = `/BuyersCollection/GetStatusDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getIsetBuyersCollectionProducttem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setStatus(data);\n } catch (err) {\n }\n }\n\n //fetch buyers data\n const fetchBuyers = async () => {\n setIsLoading(true);\n try {\n let url = `/BuyersCollection/GetAllPaged?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&skip=${pageRef.current * take + skip}&take=${take}&brandId=${brandId}&seasonId=${seasonId}&genderId=${genderId}&statusId=${statusId}&search=${search}&orderBy=${orderBy}&descending=${descending}&includeArchived=false`;\n\n const response = await fetch(url);\n const buyers = await response.json();\n setBuyers(buyers);\n setIsLoading(false);\n } catch (err) {\n }\n }\n //fetch single buyers data\n const fetchBuyersCollectionProduct = async (id) => {\n try {\n let url = `/BuyersCollectionProduct/GetSingle?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch(url);\n const data = await response.json();\n setBuyersCollectionProduct(data)\n // setbuyersCollectionProduct(data);\n setSelectedSizeScale(data.sizeScaleId)\n if (data.sizeScaleId != 0) {\n getAllSizesBySizeScaleId(data.sizeScaleId)\n setSelectedSizes(data.productVariants.map(variant => variant.sizeId))\n }\n } catch (err) {\n }\n }\n\n //fetch images as zip\n const handleDownloadImages = async (id, name) => {\n setIsLoading(true);\n try {\n const url = `BuyersCollectionProduct/GetCollectionProductImagesZip?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`\n const response = await fetch(url);\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, 'base64');\n const blob = new Blob([binaryData], { type: 'application/zip' });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = Newurl;\n link.setAttribute('download', `${name}.zip`);\n link.click();\n setIsLoading(false)\n } catch (e) {\n showSweetAlert('serverError');\n }\n }\n\n //fetch location pdf\n const handleExportPDF = async (id, name) => {\n setIsLoading(true);\n try {\n const url = `BuyersCollectionProduct/GetCollectionProductImagesPDF?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`\n const response = await fetch(url);\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, 'base64');\n const blob = new Blob([binaryData], { type: \"application/pdf\" });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = Newurl;\n link.setAttribute('download', `${name}.pdf`);\n link.click();\n setIsLoading(false)\n } catch (e) {\n showSweetAlert('serverError');\n }\n }\n\n //fetch export data\n const handleExportTemplate = async (id, name) => {\n setIsLoading(true);\n try {\n const url = `BuyersCollection/ExportBuyerCollection?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`\n const response = await fetch(url);\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, 'base64');\n const blob = new Blob([binaryData], { type: 'application/vnd.ms-excel.sheet.macroEnabled.12' });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = Newurl;\n link.setAttribute('download', `${name}.xlsm`);\n link.click();\n setIsLoading(false)\n } catch (e) {\n showSweetAlert('serverError');\n }\n }\n\n //handle show Add modal when click on add button\n const handleShowAddBuyersCollection = () => {\n setBuyersCollection({\n name: \"\",\n brandId: 0,\n seasonId: 0\n });\n setIsEdit(false)\n handleShowModal();\n }\n // handle Handle Collection ProductDetailModal\n\n const handleCollectionProductDetailModal = (log) => {\n setData(log);\n setBuyersCollectionProductId(log.id);\n fetchBuyersCollectionProducts(0, log.id);\n handleShowCollectionDetailModal();\n }\n\n const buyersCollectionProductAddModal = () => {\n handleShowBuyersCollectionProductAddModal();\n }\n\n //handle add Buyers Collection\n const handleAddBuyersCollection = async () => {\n showSweetAlert('warning', `Are you sure you want to add this Buyers Collection?`, () => { handleSaveBuyersCollection() });\n }\n\n const handleSaveBuyersCollection = async () => {\n\n if (buyersCollection.name === \"\") {\n error.name = \"Please enter a name\";\n }\n if (buyersCollection.brandId <= 0) {\n error.brandId = \"Please select at least one value\";\n }\n if (buyersCollection.seasonId <= 0) {\n error.seasonId = \"Please select at least one value\";\n }\n if (buyersCollection.name !== \"\" & buyersCollection.brandId > 0 & buyersCollection.seasonId > 0) {\n try {\n const response = await fetch(`/BuyersCollection/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(buyersCollection),\n });\n const body = await response.json();\n fetchBuyers();\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Buyers Collection`);\n handleCloseModal();\n }\n else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n showSweetAlert('serverError');\n }\n }\n }\n\n const handleEdit = (id) => {\n setBuyerId(id)\n setIsEdit(true)\n let buyersvalue = buyers.filter(x => x.id == id);\n setBuyersCollection(buyersvalue[0])\n handleShowModal();\n }\n\n const handleUpdateBuyersCollection = async () => {\n showSweetAlert('warning', `Are you sure you want to Update this Buyers Collection?`, () => { updateBuyersCollection() });\n }\n\n const updateBuyersCollection = async () => {\n\n if (buyersCollection.name === \"\") {\n error.name = \"Please enter a name\";\n }\n if (buyersCollection.brandId <= 0) {\n error.brandId = \"Please select at least one value\";\n }\n if (buyersCollection.seasonId <= 0) {\n error.seasonId = \"Please select at least one value\";\n }\n if (buyersCollection.name !== \"\" & buyersCollection.brandId > 0 & buyersCollection.seasonId > 0) {\n try {\n let url = `/BuyersCollection/Update?id=${buyerId}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(buyersCollection),\n });\n const body = await response.json();\n fetchBuyers();\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Buyers Collection`);\n handleCloseModal();\n }\n else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n showSweetAlert('serverError');\n }\n }\n }\n\n //Handle delete Buyers Collection\n const handleDeleteBuyersCollection = (id) => {\n showSweetAlert('deleteWarning', `Buyers Collection`, () => { deleteBuyersCollection(id) });\n }\n\n const deleteBuyersCollection = async (id) => {\n try {\n var response = await fetch(`/BuyersCollection/Delete?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n if (response.status === 200) {\n showSweetAlert('deleteSuccess', `Buyers Collection`);\n } else {\n showSweetAlert('warningOkOnly', `Unable to delete buyers collection`);\n }\n await fetchBuyers();\n } catch (err) {\n }\n }\n\n //Handle delete Buyers Collection Product\n const handleDeleteBuyersCollectionProduct = (id) => {\n showSweetAlert('deleteWarning', 'Buyers collection product', () => { deleteBuyersCollectionProduct(id) });\n }\n\n const deleteBuyersCollectionProduct = async (id) => {\n try {\n var response = await fetch(`/BuyersCollectionProduct/Delete?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n if (response.status === 200) {\n showSweetAlert('deleteSuccess', 'Buyers collection product');\n fetchBuyersCollectionProducts(selectedLocation, data.id);\n } else {\n showSweetAlert('warningOkOnly', 'Unable to delete buyers collection product');\n }\n } catch (err) {\n }\n }\n\n const handleUpdateOpenWithInput = (input) => {\n setOpenWithInput = input;\n }\n\n const handleSameDetailsCheckboxChange = () => {\n if (buyersCollectionProduct.productVariants.length == 0)\n return;\n\n if (!isSameDetailsChecked) {\n const updatedProductVariants = buyersCollectionProduct.productVariants.map((variant, index) => {\n const { cost, rrp, vat } = buyersCollectionProduct.productVariants[0];\n\n return {\n ...variant,\n cost,\n rrp,\n vat,\n };\n });\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n productVariants: updatedProductVariants,\n }));\n }\n\n setIsSameDetailsChecked(!isSameDetailsChecked);\n }\n\n const handleSameDetailsChange = (value, name) => {\n const updatedProductVariants = buyersCollectionProduct.productVariants.map((variant) => ({\n ...variant,\n [name]: value,\n }));\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n productVariants: updatedProductVariants,\n }));\n }\n\n const handleSameDetailsDropdownChange = (value) => {\n const updatedProductVariants = buyersCollectionProduct.productVariants.map((variant) => ({\n ...variant,\n [\"vatRateId\"]: value,\n }));\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n productVariants: updatedProductVariants,\n }));\n }\n\n const handleSizeScaleDropDownChange = (value) => {\n setSelectedSizes([]);\n setSelectedSizeScale(value);\n getAllSizesBySizeScaleId(value);\n\n setBuyersCollectionProduct((prevProduct) => ({\n ...prevProduct,\n sizeScaleId: value,\n }));\n }\n\n const getAllSizesBySizeScaleId = async (categoryGroupId) => {\n try {\n let url = `CategoryValue/GetAllByGroup?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=6&categoryGroupId=${categoryGroupId}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {\n ...item,\n value: item.value,\n }\n });\n setCategorySizes(data);\n } catch (err) {\n }\n }\n const getVAT = async () => {\n try {\n let url = `CategoryValue/GetAllByGroup?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=7`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {\n ...item,\n value: item.value,\n }\n });\n setVat(data);\n } catch (err) {\n }\n }\n\n const fetchProduct = async (id) => {\n try {\n let url = `/ItemCard/GetSingle?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&productId=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n handleLineChange(\"costPrice\", body.cost);\n } catch (e) {\n\n }\n }\n\n const handleCloseProductDetailModal = () => {\n showSweetAlert('warning', `Are you sure you want to cancel? Any changes will not be saved.`, () => { closeProductDetailModal() });\n }\n const closeProductDetailModal = () => {\n\n handleCloseBuyersCollectionProductDetailModal();\n }\n\n const handleUpdateProductDetail = () => {\n showSweetAlert('warning', `Are you sure you want to Update these changes?`, () => { updateProductDetail() });\n }\n\n const updateProductDetail = async () => {\n if (buyersCollectionProduct.name === \"\") {\n error.name = \"Please Enter the Name\";\n } else {\n try {\n setBuyersCollectionProductSaving(true);\n let url = `/BuyersCollectionProduct/Update?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&id=${buyersCollectionProductId}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(buyersCollectionProduct),\n });\n const body = await response.json();\n if (response.status === 200) {\n handleCloseBuyersCollectionProductDetailModal();\n fetchBuyersCollectionProducts(locationId, buyersCollectionProduct.buyersCollectionId);\n\n showSweetAlert('saveSuccess', `Buyers Collection Product Detail`);\n } else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n } finally {\n setBuyersCollectionProductSaving(false);\n }\n }\n }\n const handleAddProductDetail = (openFileBrowser) => {\n setOpenWithInput(openFileBrowser);\n handleCloseBuyersCollectionProductAddModal();\n handleShowBuyersCollectionProductDetailModal();\n setBuyersCollectionProduct({\n id: 0,\n buyersCollectionId: buyersCollectionProductId,\n name: \"\",\n brandCode: \"\",\n colour: \"\",\n productCategoryId: 0,\n productCategory: \"\",\n sizeScaleId: 0,\n sizeScale: \"\",\n itemCostsMatch: true,\n images: [\n ],\n productVariants: [\n ]\n })\n // setSelectedSizeScale(0)\n setSelectedSizes([])\n }\n const handleSaveProductDetail = () => {\n showSweetAlert('warning', `Are you sure you want to save these changes?`, () => { saveProductDetail() });\n }\n const saveProductDetail = async () => {\n\n if (buyersCollectionProduct.name === \"\") {\n error.name = \"Please Enter the Name\";\n } else {\n try {\n setBuyersCollectionProductSaving(true);\n let url = `/BuyersCollectionProduct/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(buyersCollectionProduct),\n });\n\n if (response.status === 200) {\n handleCloseBuyersCollectionProductDetailModal();\n fetchBuyersCollectionProducts(locationId, buyersCollectionProduct.buyersCollectionId);\n showSweetAlert('saveSuccess', `Buyers Collection Product Detail`);\n } else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n } finally {\n setBuyersCollectionProductSaving(false);\n }\n }\n }\n\n const fetchCategoryGroups = async () => {\n try {\n let url = `CategoryGroup/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=6`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {\n ...item,\n value: item.name,\n }\n });\n setCategoryGroups(data);\n } catch (err) {\n }\n }\n\n const handleDetailChange = (name, value) => {\n let buyersValues = {\n ...buyersCollectionProduct,\n [name]: value,\n };\n validateInput(name, value)\n setBuyersCollectionProduct(buyersValues)\n }\n\n const handleProductVariantsChange = (event, index) => {\n var { value, name } = event.target;\n const productVariants = [...buyersCollectionProduct.productVariants];\n productVariants[index][name] = value;\n setBuyersCollectionProduct({ ...buyersCollectionProduct, productVariants });\n };\n\n const handleProductVariantsCurrencyChange = (value, index, name) => {\n const productVariants = [...buyersCollectionProduct.productVariants];\n productVariants[index][name] = value;\n setBuyersCollectionProduct({ ...buyersCollectionProduct, productVariants });\n };\n\n const handleProductVariantsDropdownChange = (event, index) => {\n var { value, name } = event;\n const productVariants = [...buyersCollectionProduct.productVariants];\n productVariants[index][\"vatRateId\"] = parseInt(value);\n setBuyersCollectionProduct({ ...buyersCollectionProduct, productVariants });\n };\n\n const handleAllocationChange = (id, event, index) => {\n let { value } = event.target;\n value = parseInt(value) || 0;\n\n // Deep copy the current state to ensure immutability\n const updatedBuyersCollectionProduct = JSON.parse(JSON.stringify(buyersCollectionProduct));\n\n // Update the allocation quantity\n if (updatedBuyersCollectionProduct.productVariants[id]?.allocations) {\n updatedBuyersCollectionProduct.productVariants[id].allocations[index][\"quantity\"] = value;\n }\n\n // Calculate the sum of allocations for the product variant\n const sumAllocations = updatedBuyersCollectionProduct.productVariants[id].allocations\n .reduce((sum, item) => sum + (item.quantity || 0), 0);\n\n // Update the product variant quantity if necessary\n // if (sumAllocations > (updatedBuyersCollectionProduct.productVariants[id][\"quantity\"] || 0)) {\n updatedBuyersCollectionProduct.productVariants[id][\"quantity\"] = sumAllocations;\n // }\n\n // Update the state\n setBuyersCollectionProduct(updatedBuyersCollectionProduct);\n };\n\n const handleLocationAllocationChange = (index) => {\n // Deep copy the current state to ensure immutability\n const updatedBuyersCollectionProduct = JSON.parse(JSON.stringify(buyersCollectionProduct));\n\n // Determine if all allocations at the specified index are currently set to 1\n const allAllocationsOne = updatedBuyersCollectionProduct.productVariants.every(variant =>\n variant?.allocations && variant.allocations[index] && variant.allocations[index][\"quantity\"] === 1\n );\n\n // Determine the new quantity based on the current state of allocations\n const newQuantity = allAllocationsOne ? 0 : 1;\n\n // Loop through all variants and update the specified allocation index for each one\n updatedBuyersCollectionProduct.productVariants = updatedBuyersCollectionProduct.productVariants.map(variant => {\n if (variant?.allocations && variant.allocations[index]) {\n variant.allocations[index][\"quantity\"] = newQuantity; // Set the new quantity value\n\n if (newQuantity == 1) {\n // Calculate the sum of allocations for the product variant\n const sumAllocations = variant.allocations\n .reduce((sum, item) => sum + (item.quantity || 0), 0);\n\n // Update the product variant quantity if necessary\n if (sumAllocations > (variant[\"quantity\"] || 0)) {\n variant[\"quantity\"] = sumAllocations;\n }\n }\n else {\n variant[\"quantity\"]--;\n }\n }\n return variant;\n });\n\n // Update the state\n setBuyersCollectionProduct(updatedBuyersCollectionProduct);\n };\n\n const handleUpdateAvailableSizes = (id) => {\n showSweetAlert('warning', `Are you sure you want to overwrite the available sizes for this product?`, () => { updateAvailableSizes(id) });\n }\n\n const updateAvailableSizes = async (id) => {\n\n try {\n let url = `/BuyersCollectionProduct/UpdateAvailableSizes?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&id=${id}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(updatedSize),\n });\n if (response.ok) {\n const body = await response.json();\n handleCloseSizeModal();\n const productVariants = [...buyersCollectionProduct.productVariants];\n\n const updatedProductVariants = [...body];\n\n await setBuyersCollectionProduct(prevState => ({\n ...prevState,\n productVariants: updatedProductVariants\n }));\n\n // Set same details \n setIsSameDetailsChecked(true);\n\n // Set VAT to default 20%\n const rate = vatRates.find(rate => rate.value === \"20%\");\n\n const id = rate ? rate.id : null;\n\n handleSameDetailsDropdownChange(id);\n showSweetAlert('saveSuccess', `Product sizes`);\n } else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n }\n }\n useEffect(() => {\n fetchSatus();\n fetchLocations();\n fetchBrands();\n fetchSeason();\n fetchGender();\n getBuyerCollectionLocationList();\n fetchProductCategoryList();\n fetchCategoryGroups();\n getVAT();\n\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '1000px');\n document.documentElement.style.setProperty('--modal-width-tablet', '100%');\n }, [])\n\n useEffect(() => {\n }, [buyersCollectionProduct]);\n\n useEffect(() => {\n fetchBuyers();\n handlePageChange(0);\n }, [locationId, brandId, seasonId, genderId, statusId, search])\n return (\n <>\n {alert}\n \n \n \n {\n showBuyersCollectionProductAddModal === false && showBuyersCollectionProductDetailModal === false &&\n \n \n \n }\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n {\n showSizeModal === false &&\n \n \n \n }\n \n \n \n {getPermission(user.permissions, BUYERS_VIEW) &&\n \n \n \n \n \n \n \n setBrandId(e.value)}\n withAll={true}\n />\n \n \n setSeasonId(e.value)}\n withAll={true}\n />\n \n \n setstatusId(e.value)}\n withAll={true}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n }\n {!getPermission(user.permissions, BUYERS_VIEW) &&\n You are not authorized to view this page\n }\n\n\n \n )\n}\nexport default Buyers","import React from \"react\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Table,\n Tooltip,\n Spinner,\n Row\n} from \"react-bootstrap\";\nimport { formatCurrency } from 'utils/FormatCurrency.js';\nfunction BuyersTable(props) {\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const { id, name, brand, gender, itemCount, status, totalValue, totalRrp, season } = log\n return (\n \n props.handleCollectionProductDetailModal(log)}>\n {name}\n \n {brand}\n {/* {gender}*/}\n {itemCount}\n {formatCurrency(totalValue)}\n {formatCurrency(totalRrp)}\n {status}\n \n e.preventDefault()}\n overlay={\n \n Export\n \n }\n >\n props.handleExportTemplate(id, name)}\n >\n\n \n \n \n e.preventDefault()}\n overlay={\n \n Edit\n \n }\n >\n props.handleEdit(id)}\n >\n \n \n \n e.preventDefault()}\n overlay={\n \n Delete\n \n }\n >\n props.handleDeleteBuyersCollection(id)}\n >\n \n \n \n\n\n \n \n )\n })\n }\n return (\n <>\n \n \n \n \n Buyers Collection\n \n \n props.handleSearchChange(e)}\n />\n \n \n\n \n \n \n \n\n \n \n {props.isLoading ?\n
\n
\n \n

Loading...

\n
\n
:\n <>\n {(props.data && props.data.length == 0) &&\n (\n No data found.\n

)}\n \n }\n {props.data && props.data.length > 0 && !props.isLoading && (\n < Col md=\"12\">\n = 20 ?
Loading more data...
: \"\"}\n height={550}\n >\n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n {renderTableData()}\n \n
NameBrandGenderItem CountTotal CostTotal RRPStatus
\n \n )}\n
\n
\n \n )\n}\nexport default BuyersTable;","import React, { useEffect } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\n\nfunction AddEditBuyersCollection(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '650px');\n document.documentElement.style.setProperty('--modal-width-tablet', '50%');\n }, [])\n\n return (\n <>\n
\n \n \n \n \n \n \n props.handleDropDownChange(\"name\", e.target.value)}\n onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n\n {props.error.name && }\n\n \n \n \n \n \n props.handleDropDownChange(\"brandId\", e.value)}\n />\n {props.error.brandId && }\n \n \n \n \n \n props.handleDropDownChange(\"seasonId\", e.value)}\n />\n {props.error.seasonId && }\n \n \n \n \n \n props.handleDropDownChange(\"genderId\", e.value)}\n />\n {props.error.genderId && }\n \n \n \n {\n props.isEdit ?\n \n Update\n \n :\n \n Save\n \n }\n \n Cancel\n \n
\n
\n
\n
\n \n )\n}\nexport default AddEditBuyersCollection;","import React, { useEffect } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card\n} from \"react-bootstrap\";\n\nimport { TouchBackend } from 'react-dnd-touch-backend';\n\nfunction BuyersCollectionProductAddModal(props) {\n useEffect(() => {\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, []);\n\n const isTablet = /iPad|Android/.test(navigator.userAgent);\n\n if (isTablet) {\n props.handleAddProductDetail(true);\n }\n\n return (\n
\n props.handleAddProductDetail(true)}\n >\n File Browser\n \n {/* // */}\n props.handleAddProductDetail(false)}\n >\n No Image\n \n \n Cancel\n \n
\n )\n}\nexport default BuyersCollectionProductAddModal;","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card, Table\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport CurrencyInput from 'react-currency-input-field';\nfunction BuyersCollectionProductDetailModal(props) {\n const fileInputRef = useRef(null);\n\n const [localValue, setLocalValue] = useState(props.buyersCollectionProduct.colour || '');\n\n const handleInputChange = (e) => {\n const upperCaseValue = e.target.value.toUpperCase();\n setLocalValue(upperCaseValue);\n props.handleDetailChange(\"colour\", upperCaseValue);\n }\n\n const isTablet = /iPad|Android/.test(navigator.userAgent);\n\n useEffect(() => {\n if (isTablet) {\n document.documentElement.style.setProperty('--modal-height-tablet', '100vh');\n document.documentElement.style.setProperty('--modal-margin-tablet', '0');\n document.documentElement.style.setProperty('--modal-padding-top', '0');\n } else {\n document.documentElement.style.setProperty('--modal-width', '1100px');\n }\n\n // Check if props.openWithInput is true and the fileInputRef is available, then trigger the click event.\n if (props.openWithInput && fileInputRef.current) {\n fileInputRef.current.click();\n props.handleAddProductDetail(false)\n }\n }, [])\n\n const handleFocus = (event) => {\n event.target.select();\n };\n\n var productVarient = props.buyersCollectionProduct.productVariants;\n return (\n <>\n
\n \n \n \n {props.buyersCollectionProduct?.images?.length > 0 &&\n props.buyersCollectionProduct.images.map((image, index) => (\n \n
\n \n props.handleDeleteImage(index)}\n style={{\n top: \"5px\",\n right: \"5px\",\n fontSize: \"1.2rem\",\n cursor: \"pointer\",\n color: \"red\",\n }}\n />\n
\n \n ))}\n {(props.buyersCollectionProduct?.images == null || props.buyersCollectionProduct?.images?.length < 3) &&\n \n \n \n\n
\n props.handleClickImage(-1, e)}\n >\n \n props.handleChangeImage(e)}\n hidden\n ref={fileInputRef}\n />\n \n
\n
\n
\n }\n
\n \n \n \n \n props.handleDetailChange(\"name\", e.target.value)}\n defaultValue={props.buyersCollectionProduct.name}\n placeholder=\"Name\"\n type=\"text\"\n onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {props.error.name && }\n \n \n \n \n \n props.handleDetailChange(\"brandCode\", e.target.value)}\n defaultValue={props.buyersCollectionProduct.brandCode}\n placeholder=\"Brand Code\"\n type=\"text\"\n />\n \n \n\n \n \n \n \n \n \n\n \n \n \n props.handleDetailChange(\"productCategoryId\", e.value)}\n placeholder=\"Category\"\n data={props.productCategory}\n />\n \n \n \n
\n
\n\n \n \n \n Item Detail\n \n \n \n \n \n \n \n\n {props.isSameDetailsChecked && (\n <>\n \n
\n \n \n props.handleSameDetailsChange(e, \"cost\")}\n prefix=\"£\"\n style={{ width: \"65px\" }}\n />\n \n \n \n props.handleSameDetailsChange(e, \"rrp\")}\n prefix=\"£\"\n style={{ width: \"65px\" }}\n />\n \n \n \n props.handleSameDetailsDropdownChange(e.value)}\n onFocus={handleFocus}\n data={props.vat}\n />\n \n
\n \n \n )}\n
\n \n\n \n \n \n
\n \n\n {\n (props.buyersCollectionProduct?.productVariants?.length !== 0) &&\n < Col md=\"20\" >\n \n \n \n \n \n \n \n \n \n {productVarient != undefined && productVarient[0].allocations.length > 0 && productVarient[0].allocations.map((allocation, index) => {\n return \n })}\n \n \n \n {productVarient != undefined && productVarient.map((product, index) => {\n return (\n \n\n \n \n \n \n\n \n\n \n\n {product.allocations.length > 0 && product.allocations.map((allocation, allocationIndex) => {\n return (\n \n )\n })}\n \n )\n })}\n \n
SizeCostRRPVATQTYwar props.handleLocationAllocationChange(index)}>{allocation.locationName}
\n {product.sizeName}\n \n \n props.handleProductVariantsCurrencyChange(e, index, \"cost\")} \n prefix=\"£\"\n disabled={props.isSameDetailsChecked}\n />\n \n \n \n props.handleProductVariantsCurrencyChange(e, index, \"rrp\")}\n prefix=\"£\"\n disabled={props.isSameDetailsChecked}\n />\n \n \n props.handleProductVariantsDropdownChange(e, index)}\n onFocus={handleFocus}\n data={props.vat}\n isDisabled={props.isSameDetailsChecked}\n />\n \n \n props.handleProductVariantsChange(e, index)}\n onFocus={handleFocus}\n value={product.quantity}\n placeholder=\"0\"\n type=\"number\"\n min={product.allocations.reduce((acc, allocation) => acc + allocation.quantity, 0)}\n name=\"quantity\"\n style={{ width: \"35px\", padding: \"3px 1px 3px 3px\" }}\n />\n \n \n \n sum + item.quantity, 0)}\n type=\"text\"\n name=\"war\"\n style={{\n width: \"35px\",\n padding: \"3px\",\n backgroundColor: (product.quantity - product.allocations.reduce((sum, item) => sum + item.quantity, 0)) > 0 ? \"orange\" : \"inherit\",\n }}\n disabled\n />\n \n \n \n props.handleAllocationChange(index, e, allocationIndex)}\n onFocus={handleFocus}\n value={allocation.quantity}\n placeholder={allocation.locationName}\n type=\"number\"\n min=\"0\"\n name={allocation.locationName}\n style={{\n width: \"35px\",\n padding: \"3px 1px 3px 3px\",\n backgroundColor: allocation.quantity > 0 ? \"lightgreen\" : \"inherit\"\n }}\n />\n \n
\n \n }\n {\n (props.buyersCollectionProduct?.productVariants?.length == 0) &&\n <>You have no variants selected. Please click sizes to continue\n }\n
\n
\n {\n props.buyersCollectionProduct?.id !== 0 ?\n <>\n {props.buyersCollectionProductSaving ?\n \n Update\n \n :\n \n Update\n \n }\n \n :\n <>\n {props.buyersCollectionProductSaving ?\n \n Save\n \n :\n \n Save\n \n }\n \n }\n \n Cancel\n \n \n \n )\n}\nexport default BuyersCollectionProductDetailModal;","import React, { useState, useEffect } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card\n} from \"react-bootstrap\";\n\nfunction ApprovalCommentsInput(props) {\n const [comment, setComment] = useState(\"\"); // Local state for the comment\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, [])\n\n return (\n <>\n
\n \n \n \n {/* Assuming you want the comment input to span the entire width */}\n \n \n setComment(e.target.value)}\n placeholder=\"Add comment here\"\n type=\"text\"\n />\n \n \n \n props.handleCommentConfirm(comment)} // Pass the comment to the confirm handler\n >\n Ok\n \n props.handleCancelApprovalComments(false)} // Close the modal\n >\n Cancel\n \n \n \n
\n \n )\n}\nexport default ApprovalCommentsInput;\n","import React from \"react\";\nimport { Button, Form, Row, Col, Card, ListGroup } from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nfunction BuyersCollectionSizeModal(props) {\n const itemsPerColumn = Math.ceil(props.categorySizes.length / 3);\n const columnOne = props.categorySizes.slice(0, itemsPerColumn);\n const columnTwo = props.categorySizes.slice(\n itemsPerColumn,\n itemsPerColumn * 2\n );\n const columnThree = props.categorySizes.slice(itemsPerColumn * 2);\n\n return (\n
\n \n \n \n \n \n \n \n props.handleSizeScaleDropDownChange(e.value)\n }\n id={\n props.selectedSizeScale != 0 &&\n props.categoryGroups.find(\n (item) => item.id === props.selectedSizeScale\n ).id\n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n
\n {columnOne.map((item, index) => (\n \n props.handleCheckboxChange(item.id)}\n />\n
{item.value}
\n \n ))}\n
\n
\n {columnTwo.map((item, index) => (\n \n props.handleCheckboxChange(item.id)}\n />\n
{item.value}
\n \n ))}\n
\n
\n {columnThree.map((item, index) => (\n \n props.handleCheckboxChange(item.id)}\n />\n
{item.value}
\n \n ))}\n
\n \n
\n \n
\n
\n
\n\n props.handleUpdateAvailableSizes(props.productId)}\n >\n Save\n \n\n \n Cancel\n \n \n );\n}\nexport default BuyersCollectionSizeModal;\n","import React, { useState, useEffect, useMemo, useRef } from \"react\";\nimport moment from 'moment';\nimport {\n Card,\n Container,\n Row,\n Col,\n Button,\n Form,\n} from \"react-bootstrap\";\nimport { useSelector } from 'react-redux'\n\nimport CustomSelect from '../../components/Shared/CustomSelect';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport { Label } from \"reactstrap\";\n\nimport CustomModal from \"components/Shared/CustomModal\";\nimport Loading from \"components/Shared/Loading\";\nimport animationData from '../../assets/animations/orange-square.json';\n\nimport { BULKUPDATE_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\nfunction BulkUpdate() {\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n const [isLoading, setIsLoading] = useState(true);\n\n const [seasons, setSeasons] = useState([]);\n const [brands, setBrands] = useState([]);\n const [statuses, setStatuses] = useState([]);\n const [categories, setCategories] = useState([]);\n const [locations, setLocations] = useState([]);\n\n const [seasonId, setSeasonId] = useState(0);\n const [brandId, setBrandId] = useState(0);\n const [statusId, setStatusId] = useState(0);\n const [categoryId, setCategoryId] = useState(0);\n\n const [selectAll, setSelectAll] = useState(false);\n const [isArchived, setIsArchived] = useState(false);\n\n const [isImportLoading, setIsImportLoading] = useState(false);\n const [isExportLoading, setIsExportLoading] = useState(false);\n\n const fileInputRef = useRef(null);\n let files = \"\";\n\n const [exportFields, setExportFields] = useState({\n name: false,\n cost: false,\n price: false,\n salePrice: false,\n brandCode: false,\n supplierBarcode: false,\n sku: false,\n supplier: false,\n status: false,\n gender: false,\n brand: false,\n productCategory: false,\n season: false,\n colour: false,\n size: false,\n tags: false,\n locations: false,\n });\n\n const [selectedLocations, setSelectedLocations] = useState([]);\n\n // ### HANDLERS ###\n const handleCheckboxChange = (key) => {\n setExportFields((prevFilters) => ({\n ...prevFilters,\n [key]: !prevFilters[key],\n }));\n };\n\n const handleImport = () => {\n fileInputRef.current.click();\n }\n\n const handleFileUpload = (event) => {\n setIsImportLoading(true);\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (event) => {\n const binaryString = event.target.result;\n const base64String = btoa(binaryString);\n files = base64String;\n marginCheck();\n };\n reader.readAsBinaryString(file);\n };\n\n const marginCheck = async () => {\n try {\n setIsLoading(true);\n const payload = files\n const response = await fetch(`Product/ImportProductExcelValidateMargin?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: \"POST\",\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload),\n })\n const body = await response.json();\n\n if (body > 0) {\n setIsImportLoading(false);\n showSweetAlert('warningCustomMessage', `You have imported ${body} products that fall below the minimum margin. Are you sure you wish to continue?`, () => { importFile() });\n } else if (body == 0) {\n importFile();\n\n } else {\n setIsImportLoading(false);\n showSweetAlert('serverError');\n }\n }\n catch (e) {\n setIsImportLoading(false);\n showSweetAlert('serverError');\n }\n finally {\n setIsLoading(false);\n // fetchPurchaseOrderData();\n }\n }\n\n const importFile = async () => {\n try {\n setIsImportLoading(true);\n const payload = files\n const response = await fetch(`Product/ImportProductExcel?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: \"POST\",\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload),\n })\n const body = await response.json();\n \n if (body.errorMessages.length > 0) {\n const message = body.errorMessages.map((error) => {\n return \"
\" + error\n })\n showSweetAlert('warningOkOnly', `Bulk import imported ${body.successfulImportCount} out of ${body.successfulImportCount + body.errorMessages.length} lines.

Errors:
${message}`);\n } else {\n showSweetAlert('saveSuccess', `Bulk import successfully imported all ${body.successfulImportCount} lines`);\n }\n }\n catch (e) {\n showSweetAlert('serverError');\n }\n finally {\n setIsImportLoading(false);\n }\n }\n\n const handleExport = () => {\n showSweetAlert('warning', `Are you sure you want to export the selected items?`, () => { exportBulkUpdate() });\n }\n\n const exportBulkUpdate = async () => {\n setIsLoading(true);\n setIsExportLoading(true);\n\n try {\n // compile export model\n const productExcelExportModel = {\n filters: {\n seasonId: seasonId,\n brandId: brandId,\n statusId: statusId,\n productCategoryId: categoryId,\n },\n fields: {\n ...exportFields, locations: selectedLocations\n }\n }\n\n const url = `Product/GetProductExcelExport?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`\n const response = await fetch(url, {\n method: 'POST',\n headers: [\n [\"Content-Type\", \"application/json\"],\n ],\n body: JSON.stringify(productExcelExportModel),\n });\n\n const base64String = await response.text();\n const binaryData = Buffer.from(base64String, 'base64');\n const blob = new Blob([binaryData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n\n // Save file\n const Newurl = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = Newurl;\n link.setAttribute('download', 'BulkExport.xlsx');\n link.click();\n setIsLoading(false)\n } catch (e) {\n showSweetAlert('serverError');\n }\n finally {\n setIsExportLoading(false);\n }\n }\n\n const handleLocationChange = (locationId) => {\n // Check if the locationId is already in the selectedLocations array\n const isSelected = selectedLocations.includes(locationId);\n\n // If the locationId is selected, remove it from the array\n if (isSelected) {\n const updatedLocations = selectedLocations.filter((id) => id !== locationId);\n setSelectedLocations(updatedLocations);\n } else {\n // If the locationId is not selected, add it to the array\n setSelectedLocations([...selectedLocations, locationId]);\n }\n };\n\n const handleSelectAll = () => {\n // If selectAll is true, deselect all exportFields\n if (selectAll) {\n const updatedFields = {};\n Object.keys(exportFields).forEach((key) => {\n updatedFields[key] = false;\n });\n setExportFields(updatedFields);\n } else {\n // If selectAll is false, select all exportFields\n const updatedFields = {};\n Object.keys(exportFields).forEach((key) => {\n updatedFields[key] = true;\n });\n setExportFields(updatedFields);\n }\n\n // Toggle the selectAll state\n setSelectAll((prevSelectAll) => !prevSelectAll);\n };\n\n //// ### DATA FETCHES ##\n //const fetchPurchaseOrderData = async () => {\n // try {\n // let from = new Date(dateRange[0]);\n\n // let url = `/PurchaseOrder/getallpaged?skip=${skip}&take=${take}&brandId=${brandId}&seasonId=${seasonId}&statusId=${statusId}&from=${moment(from, 'YYYY-MM-DD').format('YYYY-MM-DD')}&to=${dateRange[1] === null ? moment(from, 'YYYY-MM-DD').format('YYYY-MM-DD') : moment(dateRange[1], 'YYYY-MM-DD').format('YYYY-MM-DD')}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&orderBy=${orderBy}&descending=${descending}`;\n\n // const response = await fetch(url);\n // const body = await response.json();\n // setIsLoading(false);\n // setOriginData(body);\n // setData(body);\n // } catch (err) {\n // setIsLoading(false);\n // }\n //}\n\n const fetchSeasonDropdownList = async () => {\n try {\n let seasonUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=4&includeArchived=${isArchived}`;\n const seasonResponse = await fetch(seasonUrl);\n const seasonBody = await seasonResponse.json();\n const seasonData = seasonBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setSeasons(seasonData);\n } catch (err) {\n }\n }\n\n const fetchBrandDropdownList = async () => {\n try {\n let brandUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=2&includeArchived=${isArchived}`;\n const brandResponse = await fetch(brandUrl);\n const brandBody = await brandResponse.json();\n const brandData = brandBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setBrands(brandData);\n } catch (err) {\n }\n }\n\n const fetchStatusDropdownList = async () => {\n try {\n let Url = `/Product/GetStatusDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&includeArchived=${isArchived}`;\n const Response = await fetch(Url);\n const Body = await Response.json();\n const data = Body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setStatuses(data);\n } catch (err) {\n }\n }\n\n const fetchCategoriesDropdownList = async () => {\n try {\n let categoryUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=3&includeArchived=${isArchived}`;\n const categoryResponse = await fetch(categoryUrl);\n const categoryBody = await categoryResponse.json();\n const categoryData = categoryBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setCategories(categoryData);\n } catch (err) {\n }\n }\n\n const fetchLocationDropdownList = async () => {\n try {\n let locationUrl = `/location/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&includeArchived=${isArchived}`;\n const locationResponse = await fetch(locationUrl);\n const locationBody = await locationResponse.json();\n const locationData = locationBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setLocations(locationData);\n } catch (err) {\n }\n }\n\n // ### HOOKS ###\n useEffect(() => {\n fetchSeasonDropdownList();\n fetchStatusDropdownList();\n fetchBrandDropdownList();\n fetchCategoriesDropdownList();\n fetchLocationDropdownList();\n }, []);\n\n return (\n <>\n {getPermission(user.permissions, BULKUPDATE_VIEW) &&\n \n \n \n \n \n \n \n \n \n \n \n \n setBrandId(e.value)}\n withAll={true}\n />\n \n \n setSeasonId(e.value)}\n withAll={true}\n />\n \n \n setStatusId(e.value)}\n withAll={true}\n />\n \n \n setCategoryId(e.value)}\n withAll={true}\n />\n \n \n \n
Include archived
\n \n \n \n \n \n
\n \n Select the columns you want to export:\n \n handleSelectAll()}\n />\n \n {Object.keys(exportFields).map((key) => (\n <>\n \n handleCheckboxChange(key)}\n />\n\n \n {key == \"locations\" && exportFields.locations && (\n \n {locations.map((item) => (\n \n handleLocationChange(item.id)}\n />\n \n ))}\n \n\n )}\n \n ))}\n \n \n \n \n
\n
\n
\n
\n }\n {!getPermission(user.permissions, BULKUPDATE_VIEW) &&\n You are not authorized to view this page\n }\n \n );\n}\n\nexport default BulkUpdate;\n","import React from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card,\n Container\n} from \"react-bootstrap\";\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\n\n\nfunction BuyerCollectionProductList(props) {\n var buyersCollectionData = props.buyersCollectionData;\n return (\n <>\n \n \n
0
\n \n {props.buyersCollectionData !== null &&\n \n \n\n {(provided, snapshot) => (\n
\n {\n buyersCollectionData.map((item, index) => (\n \n {(provided, snapshot) => (\n \n \n \n \n props.handleEditBuyersCollectionProductDetailModal(item)}\n style={{ width: \"30px\", top: \"5px\", right: \"5px\" }} // Set the width and position\n\n >\n \n \n \n\n \n \n
\n Name:\n \n \n \n
\n
\n Code:\n \n \n \n
\n
\n Cost:\n \n \n \n
\n
\n RRP:\n \n \n \n
\n \n
\n
\n
\n \n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n\n
\n
\n }\n \n \n \n\n \n \n
\n props.buyersCollectionProductAddModal()}\n >\n \n \n
\n \n
\n
\n
\n \n
\n \n\n \n
\n \n )\n}\nexport default BuyerCollectionProductList;","import React from \"react\";\nimport ImageGallery, { LeftNav, RightNav } from 'react-image-gallery';\nimport 'react-image-gallery/styles/css/image-gallery.css';\nimport 'react-image-gallery/styles/css/image-gallery.css';\n\nfunction BuyersCollectionImageGallery(props) {\n const images = props.items.map((base64Image) => ({\n original: `data:image/jpeg;base64,${base64Image}`,\n originalHeight: \"200px\"\n }));\n\n // Define the onClick function to handle navigation\n const handleNavigation = (event) => {\n const direction = event.target.getAttribute('data-direction');\n if (direction === 'left') {\n // Handle left navigation \n imageGalleryRef.current.slideToIndex(imageGalleryRef.current.getCurrentIndex() - 1);\n } else if (direction === 'right') {\n // Handle right navigation\n imageGalleryRef.current.slideToIndex(imageGalleryRef.current.getCurrentIndex() + 1);\n }\n };\n\n // Ref for the ImageGallery component to access its methods\n const imageGalleryRef = React.useRef(null);\n\n // Custom render for left and right navigation icons\n const customRenderItem = (item) => {\n return (\n <>\n {item.originalAlt}\n {images.length > 1 &&\n <>\n \n < \n \n \n > \n \n \n }\n \n );\n };\n\n return (\n
\n \n
\n );\n}\nexport default BuyersCollectionImageGallery;","import React, { memo } from 'react'\nimport { useDrag } from 'react-dnd'\nimport {\n Button,\n Form,\n Row,\n Col,\n Card\n} from \"react-bootstrap\";\n\nimport BuyersCollectionImageGallery from '../Buyers/BuyersCollectionImageGallery'\nimport CustomSelect from '../Shared/CustomSelect';\n\nexport const Box = memo(function Box(props) {\n const { name, productData, type, key } = props;\n\n const [{ opacity }, drag] = useDrag(\n () => ({\n type,\n item: { id: productData.id },\n collect: (monitor) => ({\n opacity: monitor.isDragging() ? 0.4 : 1,\n }),\n }),\n [name, type],\n )\n return (\n <>\n \n
\n
\n {productData.images?.length > 0 ?\n :\n \"...\"\n }\n
\n
\n props.handleEditBuyersCollectionProductDetailModal(productData)}\n style={{ width: \"15px\", top: \"5px\", right: \"5px\" }} // Set the width and position\n >\n \n \n props.handleDeleteBuyersCollectionProduct(productData.id)}\n style={{ width: \"15px\", top: \"25px\", right: \"2px\" }} // Set the width and position\n >\n \n \n \n
\n \n \n \n {props.showDetails === true &&\n <>\n \n \n \n \n \n \n \n }\n \n \n
\n \n \n props.handleApprovalChange(productData.id, e.value)}\n />\n \n \n
\n
\n \n )\n})\n","import React, { memo, useState, useEffect } from \"react\";\nimport { useDrop } from \"react-dnd\";\nconst style = {\n height: \"30px\",\n width: \"50px\",\n margin: \"10px\",\n color: \"white\",\n textAlign: \"center\",\n lineHeight: \"normal\",\n float: \"left\",\n cursor: \"pointer\"\n};\nexport const Dustbin = memo(function Dustbin({\n accept,\n onDrop,\n name,\n id,\n fetchBuyersCollectionProducts,\n collectionId,\n selectedLocation\n}) {\n const [{ isOver, canDrop }, drop] = useDrop({\n accept,\n drop: onDrop,\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n })\n });\n\n const isActive = isOver && canDrop;\n\n let backgroundColor = \"#222\";\n if (isActive) {\n backgroundColor = \"darkgreen\";\n } else if (canDrop) {\n backgroundColor = \"darkkhaki\";\n }\n\n if (selectedLocation == id) {\n backgroundColor = \"#FFA500\";\n }\n return (\n
fetchBuyersCollectionProducts(id, collectionId)}\n >\n {isActive\n ? \"Drop\"\n : name}\n
\n );\n});\n","export const ItemTypes = {\n PRODUCT: 'Product'\n}\n","//import update from 'immutability-helper';\nimport React, { memo, useCallback, useState, useEffect } from 'react';\nimport { NativeTypes } from 'react-dnd-html5-backend';\nimport { Box } from './Box';\nimport { Dustbin } from './Dustbin';\nimport { ItemTypes } from './ItemTypes';\nimport {\n Spinner,\n Button,\n Form,\n Row,\n Col,\n Card,\n OverlayTrigger,\n Tooltip,\n} from \"react-bootstrap\";\nimport { formatCurrency } from 'utils/FormatCurrency.js';\n\nconst style = {\n \n}\n\nexport default memo(function Container(props) {\n const [visible, setVisible] = useState(true);\n\n const [itemCardColumns, setItemCardColumns] = useState(4);\n\n useEffect(() => {\n setVisible(true);\n // Hide the message after 2 seconds (1 second solid + 1 second fade out)\n const timer = setTimeout(() => {\n setVisible(false);\n }, 2000);\n\n // Clean up the timer on unmount\n return () => clearTimeout(timer);\n }, [props.allocationMessage]);\n\n const handleDrop = useCallback(\n (index, item) => {\n props.addBuyersCollectionAllocation(index, item)\n }\n );\n\n const handleItemCardColumnChange = (event) => {\n if (isNaN(parseFloat(event.target.value)))\n setItemCardColumns(4);\n else if (event.target.value < 4)\n setItemCardColumns(4);\n else if (event.target.value > 8)\n setItemCardColumns(8);\n else\n setItemCardColumns(event.target.value);\n }\n\n return (\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n handleItemCardColumnChange(e)}\n min={4}\n max={8}\n />\n props.setShowDetails(!props.showDetails)}\n id=\"custom-switch\"\n />\n \n
\n
\n props.handleDownloadImages(props.data.id, props.data.name)}\n >\n Download Images\n \n\n props.handleExportPDF(props.data.id, props.data.name, props.selectedLocation)}\n >\n Download PDF\n \n \n
\n \n handleDrop(0, item.id)}\n key={0}\n id={0}\n name=\"All\"\n fetchBuyersCollectionProducts={props.fetchBuyersCollectionProducts}\n collectionId={props.data.id}\n selectedLocation={props.selectedLocation}\n />\n {props.buyerCollectionLocations.map((index) => {\n return (\n handleDrop(index.id, item.id)}\n key={index.id}\n id={index.id}\n name={index.name}\n fetchBuyersCollectionProducts={props.fetchBuyersCollectionProducts}\n collectionId={props.data.id}\n selectedLocation={props.selectedLocation}\n />\n );\n })}\n \n \n
\n {props.isLoading ?\n
\n
\n \n

Loading...

\n
\n
\n :\n <>\n {props.buyersCollectionData && props.buyersCollectionData.map((item) => (\n \n ))}\n {props.selectedLocation == 0 &&\n \n \n \n \n \n
\n props.buyersCollectionProductAddModal()}\n >\n \n \n
\n \n
\n
\n
\n \n }\n \n }\n
\n
\n );\n});","import React, { useEffect, useRef } from 'react';\nimport {\n Button,\n Form,\n Row,\n Col\n} from \"react-bootstrap\";\nimport BuyerCollectionProductList from \"./BuyerCollectionProductList\";\nimport Container from '../React-dnd/Container'\nimport { DndProvider } from 'react-dnd'\nimport { HTML5Backend } from 'react-dnd-html5-backend'\nimport { TouchBackend } from 'react-dnd-touch-backend';\n\nfunction BuyersCollectionDetailModal(props) {\n const isTablet = /iPad|Android/.test(navigator.userAgent);\n const backend = isTablet ? TouchBackend : HTML5Backend;\n\n useEffect(() => {\n if (isTablet) { \n document.documentElement.style.setProperty('--modal-height-tablet', '100vh');\n document.documentElement.style.setProperty('--modal-margin-tablet', '0');\n document.documentElement.style.setProperty('--modal-padding-top', '0');\n } else {\n document.documentElement.style.setProperty('--modal-width', '1200px');\n }\n }, []);\n\n return (\n \n \n \n )\n}\n\nexport default BuyersCollectionDetailModal;\n\n","import React from \"react\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner, Form\n} from \"react-bootstrap\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport {formatCurrency} from 'utils/FormatCurrency.js';\n\nimport {PURCHASEORDER_EDIT} from 'constants/Permissions.js';\nimport {getPermission} from 'utils/Permissions.js';\nimport {useSelector} from 'react-redux'\n\nfunction PurchaseOrderLineTable(props) {\n const user = useSelector((state) => state.user);\n\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"245px\",\n };\n const btnStyle = {\n marginTop: \"-50px\",\n marginLeft: \"61%\",\n }\n const renderTableData = () => {\n if (props.PurchaseOrderLineData.length > 0) {\n return props.PurchaseOrderLineData.map((item, index) => {\n const {\n productId,\n productName,\n quantity,\n allocated,\n costPrice,\n tax,\n discountPercentage,\n discount,\n totalPrice,\n supplierBarcode,\n brandCode,\n colour,\n size,\n id,\n allocations,\n sku\n } = item\n return (\n \n props.handleGetItemCard(productId)}>\n {productName}
{sku}
\n \n {quantity + \" (\" + allocated + \")\"}\n {formatCurrency(costPrice)}\n {discountPercentage}%\n {formatCurrency(totalPrice)}\n {supplierBarcode}\n {brandCode}\n {size}\n {colour}\n\n {allocations.map((allocation, index) => {\n return {allocation.quantity} ({allocation.allocated})\n })}\n {getPermission(user.permissions, PURCHASEORDER_EDIT) &&\n <>\n \n e.preventDefault()}\n overlay={\n \n Edit\n \n }\n >\n props.handleEditPurchaseOrderLine(id)}\n className=\"btn-link btn-xs\"\n variant=\"success\"\n >\n \n \n \n \n \n e.preventDefault()}\n overlay={\n \n Edit\n \n }\n >\n props.handleDeletePurchaseOrderLine(id)}\n className=\"btn-link btn-xs\"\n variant=\"success\"\n >\n \n \n \n \n \n }\n \n e.preventDefault()}\n overlay={\n \n {allocated === quantity ? \"Allocated\" : allocated > 0 ? \"Part allocated\" : \"Unallocated\"}\n \n }\n >\n\n 0 ? \"yellow\" : \"red\"}`}/>\n\n \n \n \n )\n })\n\n }\n }\n return (\n \n \n Purchase Order Lines\n \n \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n \n {getPermission(user.permissions, PURCHASEORDER_EDIT) &&\n \n e.preventDefault()}\n overlay={\n \n Add\n \n }\n >\n \n \n \n }\n \n \n \n {props.isLoading ?\n
\n
\n \n

Loading...

\n
\n
:\n <>\n {(props.PurchaseOrderLineData && props.PurchaseOrderLineData.length == 0) &&\n (\n No data found.\n

)}\n \n }\n {(props.PurchaseOrderLineData.length !== 0) && !props.isLoading &&\n < Col md=\"20\">\n \n \n \n \n \n \n \n \n \n \n \n \n {props.PurchaseOrderLineData.length > 0 && props.PurchaseOrderLineData[0].allocations.length > 0 && props.PurchaseOrderLineData[0].allocations.map((allocation, index) => {\n return \n })}\n \n \n \n \n \n {renderTableData()}\n \n
Product NameQuantityCost PriceDiscount %Total PriceBarcodeBrand CodeSizeColour{allocation.locationCode}
\n \n }\n
\n
\n )\n}\n\nexport default PurchaseOrderLineTable","import React, { useEffect } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport PurchaseOrderLineTable from \"./PurchaseOrderLineTable\";\nimport { formatCurrency } from \"utils/FormatCurrency.js\";\nimport moment from \"moment\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n} from \"react-bootstrap\";\n\nimport { PURCHASEORDER_EDIT } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\nimport { useSelector } from \"react-redux\";\n\nfunction PurchaseOrderModal(props) {\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1800px\");\n }, []);\n\n return (\n <>\n {alert}\n \n \n \n \n {getPermission(user.permissions, PURCHASEORDER_EDIT) && (\n \n props.handleEditModelPurchaseOrder()}\n style={{ width: \"30px\", top: \"5px\", right: \"5px\" }} // Set the width and position\n >\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n );\n}\nexport default PurchaseOrderModal;\n","import React from \"react\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n} from \"react-bootstrap\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport { getPermission } from \"utils/Permissions.js\";\nimport { MOVEMENTS_MASS_BOOK_IN } from \"constants/Permissions\";\n\nfunction MovementsProductTable(props) {\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"245px\",\n };\n const btnStyle = {\n marginTop: \"-50px\",\n marginLeft: \"61%\",\n };\n\n const renderTableData = () => {\n return (\n props.MovementsProductData.length > 0 &&\n props.MovementsProductData.map((log, index) => {\n const {\n productName,\n sku,\n productId,\n id,\n movementId,\n quantity,\n sent,\n received,\n bookedInUserName,\n bookedOutUserName,\n } = log;\n return (\n \n props.handleGetItemCard(productId)}>\n {sku}\n \n {productName}\n {quantity}\n {sent}\n {bookedOutUserName}\n {received}\n {bookedInUserName}\n \n {props?.SingleMovement?.statusId === 1 ||\n props?.SingleMovement?.statusId === 2 ? (\n props.handleRemoveMovementProductLine(id)}\n />\n ) : null}\n \n \n );\n })\n );\n };\n return (\n \n \n Movements Products\n \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n \n
\n {getPermission(props.userPermissions, MOVEMENTS_MASS_BOOK_IN) && (\n e.preventDefault()}\n overlay={Mass Book In}\n >\n props.handleMassBookIn(props.SingleMovement.id)}\n >\n Mass Book In\n \n \n )}\n {props.SingleMovement.typeId === 3 && (\n e.preventDefault()}\n overlay={\n Add Movement Product\n }\n >\n props.handleAddMovementProduct()}\n >\n Add\n \n \n )}\n
\n
\n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.MovementsProductData &&\n props.MovementsProductData.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.MovementsProductData.length !== 0 && !props.isLoading && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
SkuProduct NameQuantityPickedBooked OutRecievedBooked In
\n \n )}\n
\n
\n );\n}\nexport default MovementsProductTable;\n","import React, { useEffect, useState } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport MovementsProductTable from \"./MovementsProductTable\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n} from \"react-bootstrap\";\nfunction MovementsModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1200px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n if (permissions.includes(\"Movements.Edit\")) {\n hasPermission = true;\n }\n\n // props.setSelectedFromLocation(\n // props.getLocationDropdown.find((location) => {\n // return location.value === props.SingleMovement.fromLocationName;\n // })?.id\n // );\n // props.setSelectedToLocation(\n // props.getLocationDropdown.find((location) => {\n // return location.value === props.SingleMovement.toLocationName;\n // })?.id\n // );\n\n useEffect(() => {\n props.setSelectedFromLocation(\n props.getLocationDropdown.find((location) => {\n return location.value === props.SingleMovement.fromLocationName;\n })?.id\n );\n props.setSelectedToLocation(\n props.getLocationDropdown.find((location) => {\n return location.value === props.SingleMovement.toLocationName;\n })?.id\n );\n }, [props.SingleMovement]);\n\n return (\n <>\n {alert}\n \n \n \n \n
\n {!props.isEditMovement ? (\n props.handleEditMovement()}\n >\n \n \n ) : (\n <>\n \n \n props.handleSaveChangeLocations(\n props.selectedFromLocation,\n props.selectedToLocation\n )\n }\n >\n Save\n \n \n )}\n
\n \n \n \n \n \n \n \n \n \n \n {!props.isEditMovement ? (\n \n ) : (\n {\n props.setSelectedFromLocation(e.value);\n }}\n withAll={false}\n id={props.selectedFromLocation}\n />\n )}\n \n \n \n \n \n {!props.isEditMovement ? (\n \n ) : (\n {\n props.setSelectedToLocation(e.value);\n }}\n withAll={false}\n id={props.selectedToLocation}\n />\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n\n \n \n \n \n \n \n \n \n );\n}\nexport default MovementsModal;\n","import React from \"react\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n} from \"react-bootstrap\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\nimport { createNonNullExpression } from \"typescript\";\n\nfunction OrderLinesTable(props) {\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"245px\",\n };\n const btnStyle = {\n marginTop: \"-50px\",\n marginLeft: \"61%\",\n };\n const renderTableData = () => {\n return (\n props.orderLinesData &&\n props.orderLinesData.length > 0 &&\n props.orderLinesData.map((log, index) => {\n if (log === null || log === undefined) return;\n const {\n id,\n orderId,\n productId,\n locationId,\n fulfillmentId,\n subTotal,\n totalTax,\n price,\n discount,\n fulfillmentStatus,\n refunded,\n refundAmount,\n refundLocationId,\n shopifyId,\n quantity,\n sku,\n } = log;\n\n const returnLocation = () => {\n return props.locationDropdown.map((location, index) => {\n if (location.id === log.locationId) {\n return location.value;\n }\n });\n };\n\n return (\n \n \n props.handleGetItemCard(productId)}>\n {sku}\n \n \n {/* props.handleGetItemCard(productId)}>\n {productId}\n */}\n {/* {productId} */}\n {returnLocation()}\n {fulfillmentStatus}\n {quantity}\n £{price?.toFixed(2)}\n £{subTotal?.toFixed(2)}\n £{totalTax?.toFixed(2)}\n {/* {fulfillmentStatus === \"pending\" ? ( */}\n {/**/}\n {/* props.handleShowEditOrderLocationModal(log)}*/}\n {/* >*/}\n {/*
*/}\n {/* */}\n {/**/}\n {/* ) : null} */}\n \n );\n })\n );\n };\n return (\n \n \n Orders\n {/* \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n */}\n {/* {props.SingleOrder.typeId === 3 && (\n e.preventDefault()}\n overlay={\n Add Movement Product\n }\n >\n props.handleAddMovementProduct()}\n >\n Add\n \n \n )} */}\n \n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.orderLinesData && props.orderLinesData.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.orderLinesData?.length !== 0 && !props.isLoading && (\n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
SkuSkuLocationFulfillment StatusQuantityPriceSub TotalTotal Tax
\n \n )}\n
\n
\n );\n}\nexport default OrderLinesTable;\n","import React, { useEffect, useState } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n CardHeader,\n Tab,\n Tabs,\n} from \"react-bootstrap\";\n// old table\n// import OrderLinesTable from \"./OrderLinesTable\";\n\nimport FulfillmentOrderLinesTable from \"./FulfillmentOrderLinesTable\";\nimport OrderLinesTable from \"./OrderLinesTable\";\n\nfunction OrdersModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1350px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n if (permissions.includes(\"Orders.Edit\")) {\n hasPermission = true;\n }\n\n const orderLines = props.SingleOrder?.orderLines;\n\n return (\n <>\n {alert}\n \n \n \n \n Order Details\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/**/}\n {/**/}\n {/**/}\n \n \n \n );\n}\nexport default OrdersModal;\n","export default __webpack_public_path__ + \"static/media/full-screen-image-3.21a228cd.jpg\";","export default __webpack_public_path__ + \"static/media/default-avatar.8d0fd1b6.png\";","export const formatCurrency = (value) => {\n if (value !== undefined && value !== null) {\n const formattedValue = value.toLocaleString('en-GB', {\n style: 'currency',\n currency: 'GBP'\n });\n\n return formattedValue;\n }\n return null;\n}\n","import React, { useMemo } from 'react';\nimport { useEffect, useState } from 'react';\n// react plugin used to create DropdownMenu for selecting items\nimport Select from \"react-select\";\n// react-bootstrap components\n\nexport default function CustomAsyncSelect(props) {\n\n const { id, data, withAll } = props;\n\n const selectOptions = useMemo(() => {\n const options = data.map((e) => {\n\n return {\n value: e.id,\n label: e.value\n }\n });\n\n if (withAll)\n return [{\n value: 0,\n label: \"ALL\",\n }].concat(options);\n\n return options;\n }, [data])\n\n return (\n <>\n
{props.title}
\n \n \n );\n}","import React, { useState, useEffect } from 'react';\nimport { Form } from \"react-bootstrap\";\n\nexport default function CustomSearchBox(props) {\n const [inputValue, setInputValue] = useState(props.value || '');\n const [timer, setTimer] = useState(null);\n\n // This effect runs when the component unmounts, to clear any remaining timers.\n useEffect(() => {\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [timer]);\n\n const changeHandler = (event) => {\n // Clear the timer if it's still pending when the user types again\n if (timer) {\n clearTimeout(timer);\n }\n\n const newValue = event.target.value;\n\n // Update the local state\n setInputValue(newValue);\n\n // Set a new timer\n const newTimer = setTimeout(() => {\n props.handleChange(newValue);\n }, 1000); // 1 second delay\n\n setTimer(newTimer);\n };\n\n // Clear input value when clear button is pressed\n const handleClear = () => {\n setInputValue('');\n props.handleClear();\n }\n\n return (\n <>\n
{props.title}
\n
\n \n \n
\n \n );\n}\n","export default __webpack_public_path__ + \"static/media/no-image.e5010930.jpg\";","export default __webpack_public_path__ + \"static/media/wrapper-logo.13d2cfe3.png\";","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { createStore } from 'redux'\n\nconst initialState = {\n user: {\n id: 0,\n username: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n roleId: 0,\n locationId: 0,\n permissions: [],\n avatar:\"\",\n roleName:\"\",\n },\n isFavourites: false,\n isSideBarMini: false,\n\n IsUserNameValid:false,\n IsEmailValid: false,\n\n Search:\"\",\n}\n\nconst changeState = (state = initialState, { type, ...rest }) => {\n switch (type) {\n case 'set':\n return { ...state, ...rest } \n case 'SetUsernameValid':\n return { ...state, ...rest } \n default:\n return state\n }\n}\n\nconst store = createStore(changeState)\nexport default store\n","import React from \"react\";\n\n// react-bootstrap components\nimport {\n Badge,\n Button,\n ButtonGroup,\n Card,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Pagination,\n Container,\n Row,\n Col,\n} from \"react-bootstrap\";\n\nfunction Footer() {\n return (\n <>\n
\n \n \n \n
\n \n );\n}\n\nexport default Footer;\n","import React from \"react\";\n\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Container,\n Row,\n Col\n} from \"react-bootstrap\";\n\nfunction UserPage() {\n return (\n <>\n \n
\n {/* you can change the color of the filter page using: data-color=\"blue | purple | green | orange | red | rose \" */}\n \n \n \n
\n \n \n \n Edit Profile\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Update Profile\n \n
\n
\n
\n
\n \n \n \n \n
\n \n
\n
\n \n \n

\n Hey there! As you can see,

\n it is already looking great.\n

\n
\n \n
\n
\n e.preventDefault()}\n variant=\"link\"\n >\n \n \n e.preventDefault()}\n variant=\"link\"\n >\n \n \n e.preventDefault()}\n variant=\"link\"\n >\n \n \n
\n
\n
\n \n
\n
\n
\n
\n \n );\n}\n\nexport default UserPage;\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Form,\n Navbar,\n Nav,\n Container,\n Col,\n Row,\n} from \"react-bootstrap\";\n\nfunction LoginPage() {\n const history = useHistory();\n\n const dispatch = useDispatch();\n\n // ### STATE ###\n const [cardClasses, setCardClasses] = useState(\"card-hidden\");\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [google2FAPin, setGoogle2FAPin] = useState(\"\");\n const [isValidation, setIsValidation] = useState(false);\n\n // ### HANDLERS ###\n\n const onLogin = async () => {\n const auth = {\n Username: username,\n Password: password,\n Google2FAPin: google2FAPin,\n };\n try {\n const response = await fetch(`/account/login`, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(auth),\n });\n const login = await response.json();\n\n if (login?.id) {\n localStorage.setItem(\"userId\", login.id);\n localStorage.setItem(\"userToken\", login.userToken);\n localStorage.setItem(\"username\", login.username);\n localStorage.setItem(\"permissions\", login.permissions); //todo: move from local storage\n localStorage.setItem(\"AppName\", login.appName); //todo: move from local storage\n history.push(\"/manage-products\");\n } else {\n setIsValidation(true);\n }\n } catch (err) {\n setIsValidation(true);\n }\n };\n\n const onKeyDown = (e) => {\n if (e.keyCode === 13) onLogin();\n };\n\n // ### HOOKS ###\n\n useEffect(() => {\n setTimeout(function () {\n setCardClasses(\"\");\n }, 1000);\n });\n\n const [showPassword, setShowPassword] = useState(false);\n\n const togglePasswordVisibility = () => {\n setShowPassword(!showPassword);\n };\n\n const handleMouseDown = () => {\n setShowPassword(true); // Show the password while the mouse is down\n };\n\n const handleMouseUp = () => {\n setShowPassword(false); // Revert to hidden when the mouse is released\n };\n\n return (\n <>\n \n
\n \n \n
\n \n \n
\n \n
\n
\n \n \n \n \n \n \n setUsername(e.target.value)}\n onKeyDown={(e) => onKeyDown(e)}\n >\n \n \n \n \n \n \n \n setPassword(e.target.value)}\n onKeyDown={(e) => onKeyDown(e)}\n >\n \n \n \n {showPassword ? (\n \n ) : (\n \n )}\n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* setGoogle2FAPin(e.target.value)}*/}\n {/* onKeyDown={(e) => onKeyDown(e)}*/}\n {/* >*/}\n {/* */}\n {/* */}\n {/**/}\n \n \n \n
\n Forgot Password?{\" \"}\n Click here\n
\n onLogin()}\n >\n Login\n \n {isValidation && (\n
\n Incorrect username or password.\n
\n )}\n
\n
\n
\n \n
\n
\n \n \n \n );\n}\n\nexport default LoginPage;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container\n} from \"react-bootstrap\";\n\nimport { SUPPLIER_EDIT, SUPPLIER_DELETE } from '../../constants/Permissions.js';\nimport { getPermission } from '../../utils/Permissions.js';\n\nfunction SupplierTable(props) {\n const user = useSelector((state) => state.user);\n\n\n\n const handlePermission = () => {\n showSweetAlert('unauthorized');\n }\n\n const renderTableData = (permissionEdit, permissionDelete) => {\n return props.data.map((data, index) => {\n const { id, name, code, contactName, contactNumber, addressLine1, addressLine2, city, county, postcode, salesEmail, customerServiceEmail } = data\n return (\n \n {id}\n {name}\n {code}\n {contactName}\n {contactNumber}\n {addressLine1}\n {salesEmail}\n {customerServiceEmail}\n \n e.preventDefault()}\n overlay={\n \n Edit supplier\n \n }\n >\n props.handleEdit(id) : () => handlePermission()}\n >\n \n \n \n e.preventDefault()}\n overlay={\n Remove supplier\n }\n >\n\n props.handleDelete(id) : () => handlePermission()}\n >\n \n \n \n \n \n )\n })\n }\n\n return (\n <>\n {alert}\n \n \n \n Suppliers\n {getPermission(user.permissions, SUPPLIER_EDIT) ?\n props.handleAdd()}\n >\n Add\n \n :\n props.handlePermission()}\n >\n Add\n \n }\n \n

\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData(getPermission(user.permissions, SUPPLIER_EDIT), getPermission(user.permissions, SUPPLIER_DELETE))}\n \n
#NameCodeContact NameContact NumberAddressSales EmailCustomer Service EmailActions
\n \n
\n
\n \n );\n}\n\nexport default SupplierTable;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Button,\n Col,\n Row,\n Form\n} from \"react-bootstrap\";\n\nfunction AddEditSupplier(props) {\n \n\n \n const handleCancel = () => {\n props.handleCancel();\n }\n\n return (\n <>\n {alert}\n
\n \n \n \n \n\n props.handleChange(\"name\", e.target.value)}\n onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {props.validation.name && }\n \n \n\n \n \n \n\n props.handleChange(\"code\", e.target.value)}\n onBlur={(e) => props.validateInput(\"code\", e.target.value)}\n />\n {props.validation.code && }\n \n \n \n \n \n \n \n props.handleChange(\"contactName\", e.target.value)}\n />\n \n \n \n \n \n props.handleChange(\"contactNumber\", e.target.value)}\n />\n \n \n \n \n \n \n \n props.handleChange(\"addressLine1\", e.target.value)}\n />\n \n \n \n \n \n props.handleChange(\"addressLine2\", e.target.value)}\n />\n \n \n \n \n \n \n \n props.handleChange(\"city\", e.target.value)}\n />\n \n \n\n \n \n \n\n props.handleChange(\"county\", e.target.value)}\n />\n\n \n \n \n \n \n \n \n\n props.handleChange(\"postcode\", e.target.value)}\n />\n \n \n \n \n \n \n \n\n props.handleChange(\"salesEmail\", e.target.value)}\n />\n \n \n\n \n \n \n\n props.handleChange(\"customerServiceEmail\", e.target.value)}\n />\n\n \n \n \n\n \n Save\n \n\n \n Cancel\n \n\n
\n \n \n );\n}\n\nexport default AddEditSupplier;\n","import React, { useState, useEffect } from \"react\";\n// react-bootstrap components\nimport {\n Card,\n Form,\n Container,\n Row,\n Col,\n Button\n} from \"react-bootstrap\";\nimport { useSelector, useDispatch } from 'react-redux'\n\nimport SupplierTable from '../../components/Suppliers/SupplierTable';\nimport CustomModal from '../../components/Shared/CustomModal';\nimport AddEditSupplier from '../../components/Suppliers/AddEditSupplier';\n\nimport { SUPPLIER_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nfunction Suppliers() {\n const dispatch = useDispatch()\n const user = useSelector((state) => state.user);\n // ### STATE ###\n\n \n const [data, setData] = useState([]);\n\n\n const [showAddEditModal, setShowAddEditModal] = useState(false);\n const [supplierId, setSupplierId] = useState(0);\n const [selectedSupplier, setSelectedSupplier] = useState({});\n const [validation, setvalidation] = useState({\n name: '',\n code: ''\n })\n //hooks\n const handleCloseAddEditModal = () => setShowAddEditModal(false);\n\n // ### HANDLERS ###\n\n const handleAdd = () => {\n clearSupplierValidation();\n setSupplierId(0);\n setSelectedSupplier({\n id: 0,\n name: \"\",\n code: \"\",\n contactName: \"\",\n contactNumber: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n city: \"\",\n county: \"\",\n postcode: \"\",\n salesEmail: \"\",\n customerServiceEmail: \"\"\n });\n setShowAddEditModal(true);\n }\n\n const handleEdit = async (id) => {\n clearSupplierValidation();\n try {\n let url = `/supplier/getsingle?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const supplier = await response.json();\n\n setSupplierId(supplier.id);\n setSelectedSupplier(supplier);\n setShowAddEditModal(true);\n } catch (err) {\n }\n }\n\n const handleChange = (name, value) => {\n setSelectedSupplier({\n ...selectedSupplier,\n [name]: value\n })\n }\n\n\n const handleSave = async () => {\n \n try {\n if (selectedSupplier.name === '' || selectedSupplier.name === null) {\n validation.name = \"Please enter a name.\";\n }\n if (selectedSupplier.code === '' || selectedSupplier.code === null) {\n validation.code = \"Please enter a code.\";\n }\n\n if(selectedSupplier.code !== '' || selectedSupplier.code !== null && selectedSupplier.code.length>2){\n \n validation.code = \"Please enter a code of at least 3 characters.\";\n }\n if (selectedSupplier.name !== '' && selectedSupplier.name !== null && selectedSupplier.code !== '' && selectedSupplier.code !== null && selectedSupplier.code.length>2) {\n // Add Supplier\n if (supplierId === 0) {\n \n const response = await fetch(`/supplier/add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedSupplier),\n });\n const body = await response.json();\n\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Supplier`);\n }\n else {\n showSweetAlert('serverError');\n }\n }\n // Edit Supplier\n if (supplierId !== 0) {\n const response = await fetch(`/supplier/update?id=${supplierId}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedSupplier),\n });\n const body = await response.json();\n\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Supplier`);\n }\n else {\n showSweetAlert('serverError');\n }\n }\n setSupplierId(0);\n setShowAddEditModal(false);\n await fetchData();\n }\n } catch (err) {\n }\n };\n const handleAddSupplier = () => {\n let message = \"Are you sure you want to save the changes to this supplier?\";\n if (data.id === 0) message = \"Are you sure you want to add this supplier?\";\n showSweetAlert('warning', { message }, () => { handleSave() });\n }\n\n const handleDelete = (id) => {\n showSweetAlert('deleteWarning', `supplier`, () => { successDelete(id) });\n }\n const successDelete = async (id) => {\n try {\n await fetch(`/supplier/delete?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n showSweetAlert('deleteSuccess', `Supplier`);\n await fetchData();\n } catch (err) {\n }\n };\n const clearSupplierValidation = () => { \n setvalidation({\n name: '',\n code: ''\n })\n };\n const validateInput = (name, value) => {\n\n setvalidation(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"name\":\n if (!value) {\n stateObj[name] = \"Please enter a name\";\n }\n break;\n case \"code\":\n if (!value) {\n stateObj[name] = \"Please enter a Code\";\n }\n break;\n default:\n break;\n }\n return stateObj;\n });\n }\n\n // ### DATA FETCHES ###\n const fetchData = async () => {\n try {\n let url = `/supplier/getall?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const locations = await response.json();\n\n setData(locations);\n } catch (err) {\n }\n }\n\n // ### HOOKS ###\n useEffect(() => {\n fetchData();\n }, [])\n\n return (\n <>\n {alert}\n \n \n \n\n {getPermission(user.permissions, SUPPLIER_VIEW) &&\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n {!getPermission(user.permissions, SUPPLIER_VIEW) &&\n You are not authorized to view this page\n }\n \n );\n}\n\nexport default Suppliers;\n","import React, { useState, useEffect } from \"react\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport {\n Button,\n Form,\n ListGroup,\n ListGroupItem\n} from \"react-bootstrap\";\n\nfunction UpdateLocationPriorityModal(props) {\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '250px');\n }, [])\n\n // Step 1: Create a state variable to store the reordered priorityLocations\n const [reorderedPriorityLocations, setReorderedPriorityLocations] = useState(\n props.priorityLocations\n );\n \n // Step 2: Implement the onDragEnd function to update the state with the new order\n const onDragEnd = (result) => {\n if (!result.destination) {\n // If the item is dropped outside the list, return without making any changes\n return;\n }\n\n const sourceIndex = result.source.index;\n const destinationIndex = result.destination.index;\n\n // Create a new array to hold the reordered priorityLocations\n const updatedPriorityLocations = Array.from(reorderedPriorityLocations);\n const [reorderedItem] = updatedPriorityLocations.splice(sourceIndex, 1);\n\n // Reorder the item at the destination index\n updatedPriorityLocations.splice(destinationIndex, 0, reorderedItem);\n\n // Update the state with the new reordered priorityLocations\n setReorderedPriorityLocations(updatedPriorityLocations);\n };\n\n return (\n
\n
\n <>\n \n \n {(provided, snapshot) => (\n \n {/* Step 3: Use reorderedPriorityLocations instead of props.priorityLocations */}\n {props.priorityLocations.map((item, index) => (\n \n {(provided, snapshot) => (\n \n
{item.name}
\n
\n )}\n \n ))}\n
\n )}\n \n \n \n \n <>\n
\n \n Cancel\n \n \n Save\n \n
\n \n \n );\n}\nexport default UpdateLocationPriorityModal;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux'\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport CustomModal from \"components/Shared/CustomModal.js\";\nimport UpdateLocationPriorityModal from \"./UpdateLocationPriorityModal.js\";\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container\n} from \"react-bootstrap\";\n\nimport { LOCATION_EDIT, LOCATION_DELETE } from '../../constants/Permissions.js';\nimport { getPermission } from '../../utils/Permissions.js';\n\nfunction LocationsTable(props) {\n const user = useSelector((state) => state.user);\n \n\n const handlePermission = () => {\n showSweetAlert('unauthorized');\n }\n const renderTableData = (permissionEdit, permissionDelete) => {\n return props.data.map((data, index) => {\n const { id, name, code, contactNumber, addressLine1, addressLine2, city, county, postcode, email, managerEmail, assistantManagerEmail, ignoreImportExport, has4by4Printer, has2by1Printer, priorityOrder, shopifyId, sortOrder } = data\n return (\n \n {id}\n {name}\n {code}\n {contactNumber}\n {addressLine1}\n {email}\n {managerEmail}\n {assistantManagerEmail}\n {priorityOrder}\n {sortOrder}\n {shopifyId}\n {ignoreImportExport ? \"Yes\" : \"No\"}\n {has4by4Printer ? \"Yes\" : \"No\"}\n {has2by1Printer ? \"Yes\" : \"No\"}\n \n e.preventDefault()}\n overlay={\n \n {`Edit ${props.itemType}`}\n \n }\n >\n props.handleEdit(id) : () => handlePermission()}\n >\n \n \n \n e.preventDefault()}\n overlay={\n \n {`Delete ${props.itemType}`}\n \n }\n >\n props.handleDelete(id) : () => handlePermission()}\n >\n \n \n \n \n \n )\n })\n }\n return (\n <>\n {alert}\n \n \n \n {props.title}\n \n \n {getPermission(user.permissions, LOCATION_EDIT) ?\n e.preventDefault()}\n overlay={\n {`Add ${props.itemType}`}\n }\n >\n\n props.handleAdd()}\n >\n Add\n \n \n :\n e.preventDefault()}\n overlay={\n {`Add ${props.itemType}`}\n }\n >\n props.handlePermission()}\n >\n Add\n \n \n }\n\n \n

\n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData(getPermission(user.permissions, LOCATION_EDIT), getPermission(user.permissions, LOCATION_DELETE))}\n \n
#NameCodeContact NumberAddressEmailManager EmailAssistant Manager EmailPrioritySort OrderShopify IdExclude From Export4 x 42.3 x 1.3Actions
\n \n
\n
\n \n );\n}\n\nexport default LocationsTable;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Button,\n Col,\n Row,\n Form\n} from \"react-bootstrap\";\n\nfunction AddEditLocation(props) {\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, [])\n\n const handleSave = () => {\n let message = \"Are you sure you want to save the changes to this location?\";\n if (props.data.id === 0) message = \"Are you sure you want to add this location?\";\n showSweetAlert('warning', message, () => { hideSave() });\n }\n\n const hideSave = () => { \n props.handleSave()\n }\n\n const hideAlert = () => {\n \n }\n\n const handleCancel = () => {\n props.handleCancel();\n }\n\n return (\n <>\n {alert}\n
\n \n \n \n \n\n props.handleChange(\"name\", e.target.value)}\n onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {props.validation.name && }\n \n \n\n \n \n \n\n props.handleChange(\"code\", e.target.value)}\n onBlur={(e) => props.validateInput(\"code\", e.target.value)}\n />\n {props.validation.code && }\n \n \n \n \n \n \n \n props.handleChange(\"contactNumber\", e.target.value)}\n onBlur={(e) => props.validateInput(\"contactNumber\", e.target.value)}\n />\n {props.validation.contactNumber && }\n \n \n \n \n \n \n \n props.handleChange(\"addressLine1\", e.target.value)}\n />\n \n \n \n \n \n props.handleChange(\"addressLine2\", e.target.value)}\n />\n \n \n \n \n \n \n \n props.handleChange(\"city\", e.target.value)}\n />\n \n \n\n \n \n \n\n props.handleChange(\"county\", e.target.value)}\n />\n\n \n \n \n \n \n \n \n\n props.handleChange(\"postcode\", e.target.value)}\n />\n \n \n \n \n \n \n \n\n props.handleChange(\"email\", e.target.value)}\n onBlur={(e) => props.validateInput(\"email\", e.target.value)}\n />\n {props.validation.email && }\n \n \n\n \n \n \n\n props.handleChange(\"managerEmail\", e.target.value)}\n onBlur={(e) => props.validateInput(\"managerEmail\", e.target.value)}\n />\n {props.validation.managerEmail && }\n \n \n \n \n \n \n \n\n props.handleChange(\"assistantManagerEmail\", e.target.value)}\n />\n \n \n \n \n \n \n \n\n props.handleChange(\"shopifyId\", e.target.value)}\n />\n \n \n \n \n \n \n\n \n \n\n \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n\n \n \n\n \n Save\n \n\n \n Cancel\n \n\n
\n \n \n );\n}\nexport default AddEditLocation;","import React, { useState, useEffect, useMemo } from \"react\";\n//import Moment from 'react-moment';\n// react component used to create charts\n\n// react-bootstrap components\nimport {\n Card,\n Form,\n Container,\n Row,\n Col,\n Button\n} from \"react-bootstrap\";\nimport { useSelector, useDispatch } from 'react-redux'\n\nimport LocationTable from '../../components/Locations/LocationTable';\nimport CustomTable from '../../components/Shared/CustomTable';\nimport CustomModal from '../../components/Shared/CustomModal';\nimport AddEditLocation from \"../../components/Locations/AddEditLocation\";\nimport UpdateLocationPriorityModal from \"../../components/Locations/UpdateLocationPriorityModal\";\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n\nimport { LOCATION_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\nfunction Location() {\n const dispatch = useDispatch()\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n const [data, setData] = useState([]);\n const [priorityLocations, setPriorityLocations] = useState([]);\n const [showAddEditModal, setShowAddEditModal] = useState(false);\n const [locationId, setLocationId] = useState(0);\n const [selectedLocation, setSelectedLocation] = useState({});\n const newLocations = [...priorityLocations];\n const LocationName = [...data];\n const [DataChanged, setDataChanged] = useState(false);\n const [showLocationPriorityModal, setShowLocationPriorityModal] = useState(false);\n const [isPrioritySort, setIsPrioritySort] = useState(false);\n const handleLocationPriorityViewModelHide = () => setShowLocationPriorityModal(false);\n const showLocationPriorityViewModel = () => setShowLocationPriorityViewModel(true);\n const [validation, setvalidation] = useState({\n name: '',\n code: '',\n email: \"\",\n contactNumber: \"\",\n managerEmail: \"\",\n })\n //DragDrop\n const [location, setLocationState] = useState([]);\n //hooks\n const handleCloseAddEditModal = () => setShowAddEditModal(false);\n const [isChecked, setIsChecked] = useState(false);\n\n const handleCheckboxChange = (name, value) => {\n setIsChecked(value);\n setSelectedLocation({\n ...selectedLocation,\n [name]: value\n })\n };\n\n\n //Style\n\n const grid = 4;\n const getItemStyle = (isDragging, draggableStyle) => ({\n // some basic styles to make the items look a bit nicer\n userSelect: \"none\",\n padding: grid * 2,\n margin: `0 0 5px 0`,\n height: `40px`,\n\n // change background colour if dragging\n background: isDragging ? \"#B4B4B4\" : \"#B4B4B4\",\n\n // styles we need to apply on draggables\n ...draggableStyle\n });\n const getListStyle = isDraggingOver => ({\n padding: grid,\n width: 250\n });\n\n // ### HANDLERS ###\n const handleAdd = () => {\n clearLocationValidation();\n setLocationId(0);\n setSelectedLocation({\n id: 0,\n name: \"\",\n code: \"\",\n contactNumber: \"\",\n addressLine1: \"\",\n addressLine2: \"\",\n city: \"\",\n county: \"\",\n postcode: \"\",\n email: \"\",\n managerEmail: \"\",\n assistantManagerEmail: \"\",\n ignoreImportExport: false,\n has4by4Printer: false,\n has2by1Printer: false\n });\n setShowAddEditModal(true);\n }\n\n // handleSaveLocationPriority\n const handleSaveLocationPriority = () => {\n if (isPrioritySort) {\n showSweetAlert('warning', `Are you sure you want to save the location priority?`, () => { handleUpdatePriorities() });\n }\n else {\n showSweetAlert('warning', `Are you sure you want to save the location order?`, () => { handleUpdatePriorities() });\n }\n }\n //handle Cancelpriority\n const handleCancelPriority = () => {\n if (DataChanged) {\n showSweetAlert('warning', `Are you sure you want to cancel these changes?`, () => { cancelPriority() });\n } else {\n handleLocationPriorityViewModelHide()\n }\n }\n\n\n const reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n };\n\n const cancelPriority = () => {\n setDataChanged(false);\n fetchLocationPriority();\n handleLocationPriorityViewModelHide();\n }\n //handleDrag\n const handleDragEnd = (result) => {\n if (!result.destination) {\n // If the item is dropped outside the list, return without making any changes\n return;\n }\n\n const sourceIndex = result.source.index;\n const destinationIndex = result.destination.index;\n\n // Create a new array to hold the reordered priorityLocations\n const updatedPriorityLocations = Array.from(priorityLocations);\n const [reorderedItem] = updatedPriorityLocations.splice(sourceIndex, 1);\n\n // Reorder the item at the destination index\n updatedPriorityLocations.splice(destinationIndex, 0, reorderedItem);\n\n // Update the state with the new reordered priorityLocations\n setPriorityLocations(updatedPriorityLocations);\n\n //const { source, destination } = result;\n //// dropped outside the list\n //if (!destination) {\n // return;\n //}\n //const sInd = +source.droppableId;\n //const dInd = +destination.droppableId;\n\n //if (sInd === dInd) {\n // const items = reorder(location[sInd], source.index, destination.index);\n // const newState = [...location];\n // newState[sInd] = items;\n // setLocationState(newState);\n // newState.length > 0 && newState[0].forEach((updatedLocation, index) => {\n // priorityLocations.forEach((location, locationIndex) => {\n // if (location.locationId === updatedLocation.id) {\n // location.priorityOrder = index + 1;\n // }\n // })\n // });\n\n // // } else {\n // // const result = move(location[sInd], location[dInd], source, destination);\n // // const newState = [...location];\n // // newState[sInd] = result[sInd];\n // // newState[dInd] = result[dInd];\n\n // // setLocationState(newState.filter(group => group.length));\n //}\n\n\n //setDataChanged(true);\n };\n\n\n //Get Location Priority\n const fetchLocationPriority = async () => {\n try {\n\n let url = `/location/GetAllPriorities?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&isPriority=${isPrioritySort}`;\n const response = await fetch(url);\n const Priorities = await response.json();\n setPriorityLocations(Priorities);\n } catch (err) {\n }\n }\n\n // Update Location Priority \n const handleUpdatePriorities = async () => {\n try {\n let url = `location/UpdatePriorities?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&isPriority=${isPrioritySort}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(priorityLocations),\n });\n if (response.status == 200) {\n\n showSweetAlert('saveSuccess', `Location Priorities`);\n handleLocationPriorityViewModelHide();\n setDataChanged(false)\n setData(location.length > 0 && location[0])\n\n } else {\n showSweetAlert('serverError');\n }\n } catch (e) {\n showSweetAlert('serverError');\n } finally {\n fetchData();\n }\n }\n const handleEdit = async (id) => {\n clearLocationValidation();\n try {\n let url = `/location/getsingle?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const location = await response.json();\n setLocationId(location.id);\n setSelectedLocation(location);\n setShowAddEditModal(true);\n setShowAddEditModal(true);\n } catch (err) {\n }\n }\n\n const handleChange = (name, value) => {\n setSelectedLocation({\n ...selectedLocation,\n [name]: value\n })\n }\n\n const handleSave = async () => {\n if (selectedLocation.name === '' || selectedLocation.name === null) {\n validation.name = \"Please enter a name.\";\n }\n if (selectedLocation.code === '' || selectedLocation.code === null) {\n validation.code = \"Please enter a code.\";\n }\n if (selectedLocation.contactNumber === '' || selectedLocation.contactNumber === null) {\n validation.contactNumber = \"Please enter a contact number.\";\n }\n if (selectedLocation.email === '' || selectedLocation.email === null) {\n validation.email = \"Please enter an email.\";\n }\n if (selectedLocation.managerEmail === '' || selectedLocation.managerEmail === null) {\n validation.managerEmail = \"Please enter a manager email.\";\n }\n\n\n if (selectedLocation.code !== '' || selectedLocation.code !== null && selectedLocation.code.length > 2) {\n\n validation.code = \"Please enter a code of at least 3 characters.\";\n }\n\n\n if (selectedLocation.name !== '' && selectedLocation.name !== null && selectedLocation.managerEmail !== '' && selectedLocation.managerEmail !== null && selectedLocation.code !== '' && selectedLocation.code !== null && selectedLocation.email !== '' && selectedLocation.email !== null && selectedLocation.contactNumber !== '' && selectedLocation.contactNumber !== null && selectedLocation.code.length > 2) {\n\n // Add\n if (locationId === 0) {\n try {\n const response = await fetch(`/location/add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedLocation),\n });\n const body = await response.json();\n {/* TODO: Add successful/ error code*/ }\n\n if (response.status === 200) {\n showSweetAlert('saveSuccess');\n }\n else {\n showSweetAlert('serverError');\n }\n }\n catch (err) {\n }\n }\n\n // Edit \n else {\n try {\n const response = await fetch(`/location/update?id=${locationId}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedLocation),\n });\n const body = await response.json();\n\n if (response.status === 200) {\n showSweetAlert('saveSuccess');\n }\n else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n }\n }\n setLocationId(0);\n setShowAddEditModal(false);\n await fetchData();\n\n }\n \n };\n\n const handleDelete = (id) => {\n showSweetAlert('deleteWarning', `Location ${id}`, () => { successDelete(id) });\n }\n const successDelete = async (id) => {\n try {\n const response = await fetch(`/location/delete?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n if (response.status === 200) {\n showSweetAlert('deleteSuccess', `Location`);\n }\n else {\n showSweetAlert('serverError');\n }\n await fetchData();\n } catch (err) {\n }\n };\n\n const validateInput = (name, value) => {\n\n setvalidation(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"name\":\n if (!value) {\n stateObj[name] = \"Please enter a name.\";\n }\n break;\n case \"code\":\n if (!value) {\n stateObj[name] = \"Please enter a code.\";\n }\n break;\n case \"contactNumber\":\n if (!value) {\n stateObj[name] = \"Please enter a contact number.\";\n }\n break;\n case \"email\":\n if (!value) {\n stateObj[name] = \"Please enter an email.\";\n }\n break;\n case \"managerEmail\":\n if (!value) {\n stateObj[name] = \"Please enter a manager email.\";\n }\n break;\n default:\n break;\n }\n return stateObj;\n });\n }\n const clearLocationValidation = () => {\n setvalidation({\n name: '',\n code: '',\n email: \"\",\n contactNumber: \"\",\n managerEmail: \"\",\n })\n };\n\n const handleAddLocation = () => {\n let message = \"Are you sure you want to save the changes to this location?\";\n if (data.id === 0) message = \"Are you sure you want to add this location?\";\n showSweetAlert('warning', message, () => {handleSave()});\n }\n\n // ### DATA FETCHES ###\n const fetchData = async () => {\n try {\n let url = `/location/getall?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`; //todo - move to store\n const response = await fetch(url);\n const locations = await response.json();\n setData(locations);\n setLocationState([locations]);\n } catch (err) {\n }\n }\n const handleLocationPriorityButtonClick = () => {\n setShowLocationPriorityModal(true);\n setIsPrioritySort(true);\n };\n\n const handleLocationOrderButtonClick = () => {\n setShowLocationPriorityModal(true);\n setIsPrioritySort(false);\n };\n // ### HOOKS ###\n\n useEffect(() => {\n fetchData();\n }, [])\n\n useMemo(async () => {\n fetchLocationPriority();\n }, [isPrioritySort])\n\n return (\n <>\n {alert}\n \n \n \n {showLocationPriorityModal &&\n \n \n\n\n \n }\n {getPermission(user.permissions, LOCATION_VIEW) &&\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n {!getPermission(user.permissions, LOCATION_VIEW) &&\n You are not authorized to view this page\n }\n \n );\n}\n\nexport default Location;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n} from \"react-bootstrap\";\n\nimport {\n ADMIN_USERMANAGEMENT_EDIT,\n ADMIN_USERMANAGEMENT_DELETE,\n} from \"../../constants/Permissions.js\";\nimport { getPermission } from \"../../utils/Permissions.js\";\n\nfunction UserTable(props) {\n const account = useSelector((state) => state.user);\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n\n const renderTableData = (userEdit, userDelete) => {\n return props.data.map((user, index) => {\n const {\n id,\n username,\n firstName,\n lastName,\n phoneNumber,\n email,\n roleId,\n locationId,\n roleName,\n locationName,\n } = user;\n return (\n \n {id}\n props.handleShow(id)}>\n {username}\n \n {firstName}\n {lastName}\n {email}\n {phoneNumber}\n {roleName}\n {/* TBC */}\n {locationName}\n \n e.preventDefault()}\n overlay={Remove..}\n >\n {userDelete ? (\n props.handleDelete(id)}\n >\n \n \n ) : (\n handlePermission()}\n >\n \n \n )}\n \n \n \n );\n });\n };\n\n return (\n <>\n {alert}\n \n \n \n User Management\n {getPermission(account.permissions, ADMIN_USERMANAGEMENT_EDIT) ? (\n props.handleAdd()}\n >\n Add\n \n ) : (\n props.handlePermission()}\n >\n Add\n \n )}\n \n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData(\n getPermission(account.permissions, ADMIN_USERMANAGEMENT_EDIT),\n getPermission(\n account.permissions,\n ADMIN_USERMANAGEMENT_DELETE\n )\n )}\n \n
#UsernameFirst NameLast NameEmailPhone NumberRole NameLocation NameActions
\n \n
\n
\n \n );\n}\n\nexport default UserTable;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n// react-bootstrap components\nimport { Button, Card, Form, Row, Col } from \"react-bootstrap\";\n\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\n\nimport {\n ADMIN_USERMANAGEMENT_VIEW,\n ADMIN_USERMANAGEMENT_EDIT,\n ADMIN_USERMANAGEMENT_DELETE,\n} from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction UserPage(props) {\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1200px\");\n }, []);\n\n const [showModal, setShowModal] = useState(false);\n //hooks\n const handleCloseModal = () => setShowModal(false);\n\n const handleShowPassword = () => {\n setShowModal(true);\n };\n\n const handleShowCancel = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to cancel, any changes will be lost?`,\n () => {\n handleConfirmCancel();\n }\n );\n return;\n };\n\n const handleShowResetPassword = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to reset this users password?`,\n () => {\n handlePasswordConfirm();\n }\n );\n return;\n };\n\n const onResetPassword = async () => {\n try {\n let url = `/account/forgotpassword?phoneNumber=${props.user.phoneNumber}`;\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n } catch (err) {}\n };\n\n const handlePasswordConfirm = async () => {\n onResetPassword();\n props.handleCancel();\n };\n\n const handleShowQr = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to resend this users QR code?`,\n () => {\n handleQrConfirm();\n }\n );\n return;\n };\n\n const handleQrConfirm = () => {\n props.handleQr(props.userId);\n hideAlert();\n };\n\n const handleShowPin = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to regenerate this users pin?`,\n () => {\n handlePinConfirm();\n }\n );\n return;\n };\n\n const handlePinConfirm = () => {\n props.handlePin(props.user.id);\n hideAlert();\n };\n\n const hideAlert = () => {};\n\n const handleChangeImage = (e) => {\n e.preventDefault();\n\n let reader = new FileReader();\n let file = e.target.files[0];\n\n reader.onloadend = () => {\n props.handleChange(\"avatar\", reader.result.split(\",\").slice(1)[0]);\n };\n\n reader.readAsDataURL(file);\n };\n const handleClickImage = () => {\n let image = document.getElementById(\"ag-avatar-upload\");\n image.click();\n };\n\n // ### HOOKS ###\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1200px\");\n }, []);\n\n return (\n <>\n {alert}\n \n \n
\n \n \n {getPermission(user.permissions, ADMIN_USERMANAGEMENT_EDIT) && (\n \n \n props.handleEdit()}\n >\n {props.userId !== 0 && }\n \n \n \n )}\n \n \n \n \n {props.userId === 0 ? (\n \n props.handleChange(\"username\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"username\", e.target.value)\n }\n >\n ) : (\n \n props.handleChange(\"username\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"username\", e.target.value)\n }\n >\n )}\n \n {props.error.username && (\n \n )}\n \n \n \n \n \n \n \n \n props.handleChange(\"email\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"email\", e.target.value)\n }\n >\n \n {props.error.email && (\n \n )}\n \n \n \n \n \n props.handleChange(\"phoneNumber\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"phoneNumber\", e.target.value)\n }\n >\n \n {props.error.phoneNumber && (\n \n )}\n \n \n \n \n \n \n \n props.handleChange(\"firstName\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"firstName\", e.target.value)\n }\n >\n \n {props.error.firstName && (\n \n )}\n \n \n \n \n \n props.handleChange(\"lastName\", e.target.value)\n }\n onBlur={(e) =>\n props.validateInput(\"lastName\", e.target.value)\n }\n >\n \n {props.error.lastName && (\n \n )}\n \n \n \n \n \n \n \n props.handleChange(\"roleId\", e.value)\n }\n data={props.roles}\n onBlur={(e) =>\n props.validateInput(\"roleId\", e.target.value)\n }\n />\n \n {props.error.role && (\n \n )}\n \n \n \n \n \n props.handleChange(\"locationId\", e.value)\n }\n data={props.locations}\n name=\"location\"\n />\n \n {props.error.location && (\n \n )}\n \n \n \n \n \n {props.userId === undefined ? (\n props.setShowChangePassword(true)}\n >\n Change Password\n \n ) : props.userId !== 0 ? (\n \n Reset Password\n \n ) : (\n \"\"\n )}\n {props.userId !== 0 ? (\n <>\n \n Regenerate Pin\n \n \n ) : (\n \"\"\n )}\n\n \n Save\n \n\n {props.handleShowCancel !== undefined && (\n \n Cancel\n \n )}\n
\n
\n
\n
\n \n \n \n \n
\n handleClickImage()}\n >\n \n \n Change Avatar\n \n \n\n \n
\n
\n
\n \n
\n \n );\n}\n\nexport default UserPage;\n","import React, { useState, useEffect } from \"react\";\n//import Moment from 'react-moment';\n// react component used to create charts\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\n// react-bootstrap components\nimport { Card, Form, Container, Row, Col, Button } from \"react-bootstrap\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport UserTable from \"../../components/UserManagement/UserTable\";\nimport UserPage from \"../../components/UserManagement/UserPage\";\nimport CustomModal from \"../../components/Shared/CustomModal\";\n\nimport { ADMIN_USERMANAGEMENT_VIEW } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction UserManagement() {\n const user = useSelector((state) => state.user);\n // ### STATE ###\n const [error, setError] = useState({\n username: \"\",\n email: \"\",\n phoneNumber: \"\",\n role: \"\",\n firstName: \"\",\n lastName: \"\",\n location: \"\",\n });\n\n const [roles, setRoles] = useState([]);\n const [locations, setLocations] = useState([]);\n const [data, setData] = useState([]);\n const [isEdit, setIsEdit] = useState(false);\n const [userId, setUserId] = useState(0);\n const [selectedUser, setSelectedUser] = useState({});\n const [isUsername, setUsername] = useState(false);\n const [isEmail, setIsEmail] = useState(false);\n const [isPhoneNumber, setIsPhoneNumber] = useState(false);\n\n const [showAddEditModal, setShowAddEditModal] = useState(false);\n\n //hooks\n const handleCloseAddEditModal = () => setShowAddEditModal(false);\n\n // ### HANDLERS ###\n\n const clearAddUserValidation = () => {\n setError({\n username: \"\",\n email: \"\",\n phoneNumber: \"\",\n role: \"\",\n firstName: \"\",\n lastName: \"\",\n location: \"\",\n });\n };\n\n const handleAdd = () => {\n clearAddUserValidation();\n setUserId(0);\n setSelectedUser({\n id: 0,\n username: \"\",\n firstName: \"\",\n lastName: \"\",\n email: \"\",\n phoneNumber: \"\",\n roleId: 0,\n roleName: \"\",\n locationId: 0,\n locationName: \"\",\n permissions: [],\n avatar: \"\",\n appName: \"\",\n });\n setShowAddEditModal(true);\n setIsEdit(true);\n };\n const handleShowUser = async (id) => {\n clearAddUserValidation();\n try {\n let url = `/user/getsingle?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const user = await response.json();\n\n setUserId(user.id);\n setSelectedUser(user);\n setShowAddEditModal(true);\n setIsEdit(false);\n } catch (err) { }\n };\n\n const handleEdit = async () => {\n try {\n setIsEdit(true);\n } catch (err) { }\n };\n\n const handleShowSave = () => {\n showSweetAlert(\"warning\", `Are you sure to save the user?`, () => {\n hideSave();\n });\n };\n\n const hideSave = () => {\n handleSave();\n };\n\n const handleChange = (name, value) => {\n if (name == \"roleId\") {\n error.role = \"\";\n }\n if (name == \"locationId\") {\n error.location = \"\";\n }\n\n if (name === \"phoneNumber\") {\n value = value.replace(/[^\\d+]/g, \"\"); // Remove all characters except digits and +\n }\n setSelectedUser({\n ...selectedUser,\n [name]: value,\n });\n validateInput(name, value);\n };\n\n // Apply validation in Input Feilds\n const validateInput = (name, value) => {\n setError((prev) => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"username\":\n if (!value) {\n stateObj[name] = \"Please enter a username\";\n } else if (isUsername) {\n stateObj[name] = \"Username Exists\";\n }\n break;\n\n // only show the error if the user has not entered an email or phone number\n case \"email\":\n if (isEmpty(selectedUser.phoneNumber) && isEmpty(value)) {\n stateObj[name] = \"Please enter an email or a phone number\";\n } else if (isEmail) {\n stateObj[name] = \"Email Exists\";\n } else {\n // Clear the error for both email and phoneNumber if either has a value\n stateObj[\"email\"] = \"\";\n stateObj[\"phoneNumber\"] = \"\";\n }\n break;\n\n case \"phoneNumber\":\n if (isEmpty(selectedUser.email) && isEmpty(value)) {\n stateObj[\"email\"] = \"Please enter a phone number or email\";\n } else if (isPhoneNumber) {\n stateObj[name] = \"Phone Number Exists\";\n } else {\n // Clear the error for both email and phoneNumber if either has a value\n stateObj[\"email\"] = \"\";\n stateObj[\"phoneNumber\"] = \"\";\n }\n break;\n\n case \"roleId\":\n if (!value) {\n stateObj[name] = \"Please select a role\";\n }\n break;\n case \"lastName\":\n if (!value) {\n stateObj[name] = \"Please enter the last Name\";\n }\n break;\n\n case \"firstName\":\n if (!value) {\n stateObj[name] = \"Please enter the first Name\";\n }\n break;\n case \"location\":\n if (!value) {\n stateObj[name] = \"Please select a Location\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n };\n\n const isEmpty = (value) => {\n return value === null || value === undefined || value.trim() === \"\";\n };\n\n //Handle save for Add and Edit Users\n const handleSave = async () => {\n const newErrors = {};\n\n if (selectedUser.roleId === 0) {\n newErrors.role = \"Please select a role\";\n }\n if (isEmpty(selectedUser.username)) {\n newErrors.username = \"Please enter a username\";\n }\n if (isEmpty(selectedUser.lastName)) {\n newErrors.lastName = \"Please enter a last Name\";\n }\n if (isEmpty(selectedUser.firstName)) {\n newErrors.firstName = \"Please enter a first Name\";\n }\n if (selectedUser.locationId === 0) {\n newErrors.location = \"Please enter a location\";\n }\n if (selectedUser.email === \"\" && selectedUser.phoneNumber === \"\") {\n newErrors.email = \"An email or a phone number is required\";\n newErrors.phoneNumber = \"An email or a phone number is required\";\n }\n\n // set the errors and return if any before checking for duplicate usernames etc\n setError(newErrors);\n // if any errors then return and dont save\n if (Object.keys(newErrors).length > 0) {\n return;\n }\n\n try {\n // Check Username & Email Exists & Phone Number Exists\n if (userId === 0 && selectedUser.username != \"\") {\n const resUsername = await fetch(\n `/user/usernameexists?username=${selectedUser.username}`\n );\n const isUsernameExists = await resUsername.json();\n if (isUsernameExists === true) {\n setUsername(true);\n // error.username = \"Username Exists\";\n newErrors.username = \"Username Exists\";\n }\n if (selectedUser.email != \"\") {\n const resEmail = await fetch(\n `/user/emailexists?email=${selectedUser.email}`\n );\n const isEmailExists = await resEmail.json();\n if (isEmailExists === true) {\n setIsEmail(true);\n // error.email = \"Email Exists\";\n newErrors.email = \"Email Exists\";\n }\n }\n if (selectedUser.phoneNumber != \"\") {\n const resPhone = await fetch(\n `/user/phoneexists?phoneNumber=${selectedUser.phoneNumber}`\n );\n const isPhoneExists = await resPhone.json();\n if (isPhoneExists === true) {\n setIsPhoneNumber(true);\n // error.phoneNumber = \"Phone Number Exists\";\n newErrors.phoneNumber = \"Phone Number Exists\";\n }\n }\n }\n\n // set the erros if any from duplicate usernames etc\n setError(newErrors);\n // if any errors then return and dont save\n if (Object.keys(newErrors).length > 0) {\n return;\n }\n\n // Add User\n if (userId === 0) {\n const response = await fetch(\n `/user/add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(selectedUser),\n }\n );\n const body = await response.json();\n if (body) {\n showSweetAlert(\"saveSuccess\", `User`);\n await fetchData();\n handleCloseAddEditModal();\n return;\n } else {\n showSweetAlert(\"serverError\");\n }\n }\n\n // Edit User\n if (userId !== 0) {\n // if (error.username === \"\" && error.email === \"\" && error.role === \"\") {\n const response = await fetch(\n `/user/update?id=${userId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(selectedUser),\n }\n );\n const body = await response.json();\n if (body) {\n showSweetAlert(\"saveSuccess\", `User`);\n await fetchData();\n handleCloseAddEditModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n // }\n }\n } catch (err) { }\n };\n\n const handleCancel = () => {\n setIsEdit(false);\n hideAlert();\n };\n\n const handleQr = async (id) => {\n try {\n const response = await fetch(\n `/user/generatenewqr?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n { method: \"post\" }\n );\n const data = await response.json();\n\n if (data === true) {\n showSweetAlert(\"saveSuccess\", `User`);\n }\n\n if (body) {\n showSweetAlert(\"saveSuccess\", `User`);\n await fetchData();\n }\n\n await fetchData();\n } catch (err) { }\n };\n\n const handlePin = async (id) => {\n try {\n const response = await fetch(\n `/user/generatenewpin?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n { method: \"post\" }\n );\n const data = await response.json();\n\n if (data === true) {\n showSweetAlert(\"saveSuccess\", `User`);\n }\n\n if (body) {\n showSweetAlert(\"saveSuccess\", `User`);\n await fetchData();\n }\n\n await fetchData();\n } catch (err) { }\n };\n\n const handleDelete = (id) => {\n showSweetAlert(\"deleteWarning\", `user`, () => {\n successDelete(id);\n });\n };\n const successDelete = async (id) => {\n try {\n const response = await fetch(\n `/user/delete?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n { method: \"delete\" }\n );\n showSweetAlert(\"deleteSuccess\", `User`);\n await fetchData();\n } catch (err) { }\n };\n\n const hideAlert = () => { };\n\n // ### DATA FETCHES ###\n\n const fetchRoles = async () => {\n try {\n let url = `/user/getroles?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n\n setRoles(body);\n } catch (err) { }\n };\n const fetchLocations = async () => {\n try {\n let url = `/location/getdropdownlist?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n\n setLocations(data);\n } catch (err) { }\n };\n const fetchData = async () => {\n try {\n let url = `/user/getall?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const users = await response.json();\n\n setData(users);\n } catch (err) { }\n };\n\n // ### HOOKS ###\n\n useEffect(() => {\n fetchRoles();\n fetchLocations();\n fetchData();\n }, []);\n\n return (\n <>\n {alert}\n\n \n \n \n\n {getPermission(user.permissions, ADMIN_USERMANAGEMENT_VIEW) && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {!getPermission(user.permissions, ADMIN_USERMANAGEMENT_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\n\nexport default UserManagement;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport { useDispatch } from \"react-redux\";\n// react-bootstrap components\nimport { Form, Button, Card, Col, Row, Table } from \"react-bootstrap\";\n\nconst ChangePassword = (props) => {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"500px\");\n }, []);\n\n const [input, setInput] = useState({\n currentPassword: \"\",\n password: \"\",\n confirmPassword: \"\",\n });\n\n const [error, setError] = useState({\n currentPassword: \"\",\n password: \"\",\n confirmPassword: \"\",\n });\n\n const onInputChange = (e) => {\n const { name, value } = e.target;\n setInput((prev) => ({\n ...prev,\n [name]: value,\n }));\n validateInput(e);\n };\n\n const validateInput = (e) => {\n let { name, value } = e.target;\n setError((prev) => {\n const stateObj = { ...prev, [name]: \"\" };\n // const validPassword = new RegExp(\"^(?=.*[a-z])(?=.*[0-9])(?=.{8,})\");\n const validPassword = new RegExp(\n \"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{6,}$\"\n );\n\n switch (name) {\n case \"currentPassword\":\n if (!value) {\n stateObj[name] = \"Please enter your current password.\";\n }\n break;\n\n case \"password\":\n if (!value) {\n stateObj[name] = \"Please enter a new Password.\";\n } else if (input.confirmPassword && value !== input.confirmPassword) {\n stateObj[\"confirmPassword\"] =\n \"Password and Confirm Password does not match.\";\n } else if (!validPassword.test(input.password)) {\n stateObj[\"password\"] =\n \"Password must contain at least 6 characters, including UPPER/lowercase and numbers, and at least 1 special character.\";\n } else {\n stateObj[\"password\"] = \"\";\n stateObj[\"confirmPassword\"] = input.confirmPassword\n ? \"\"\n : error.confirmPassword;\n }\n break;\n\n case \"confirmPassword\":\n if (!value) {\n stateObj[name] = \"Please enter Confirm Password.\";\n } else if (input.password && value !== input.password) {\n stateObj[name] = \"Password and Confirm Password does not match.\";\n }\n break;\n\n default:\n break;\n }\n\n return stateObj;\n });\n };\n\n const savePassword = async () => {\n if (\n input.currentPassword != \"\" &&\n input.password != \"\" &&\n input.confirmPassword != \"\"\n ) {\n if (\n error.currentPassword == \"\" &&\n error.password == \"\" &&\n error.confirmPassword == \"\"\n ) {\n try {\n const url = `account/ChangePassword?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}¤tPassword=${\n input.currentPassword\n }&newPassword=${input.password}`;\n\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n if (response.status === 200) {\n showSweetAlert(\"saveSuccess\", `Password`, () => {\n handleSavePasswordSuccess();\n });\n props.setShowChangePassword(false);\n } else {\n const message = await response.json();\n showSweetAlert(\"warningOkOnly\", message);\n }\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n }\n } else {\n showSweetAlert(\n \"warningOkOnly\",\n `Please enter your current password and new password to continue.`\n );\n }\n };\n\n return (\n <>\n \n \n \n\n {error.currentPassword && (\n \n )}\n \n\n \n \n\n \n {error.password && (\n \n )}\n \n
\n \n \n \n {error.confirmPassword && (\n \n )}\n \n
\n
\n \n Change Password\n \n props.setShowChangePassword(false)}\n >\n Cancel\n \n
\n \n );\n};\nexport default ChangePassword;\n","import React, { useState, useEffect } from \"react\";\n//import Moment from 'react-moment';\n// react component used to create charts\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Card,\n Form,\n Container,\n Row,\n Col,\n Button\n} from \"react-bootstrap\";\nimport { useSelector } from 'react-redux'\n\nimport UserTable from '../../components/UserManagement/UserTable';\nimport UserPage from '../../components/UserManagement/UserPage';\nimport ChangePassword from '../../components/UserManagement/ChangePassword';\nimport CustomModal from \"components/Shared/CustomModal\";\nimport { ADMIN_USERMANAGEMENT_VIEW, ADMIN_USERMANAGEMENT_EDIT, ADMIN_USERMANAGEMENT_DELETE } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\nfunction AccountManagement(props) {\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n\n const [roles, setRoles] = useState([]);\n const [locations, setLocations] = useState([]);\n const [account, setAccount] = useState(user);\n const [isEdit, setIsEdit] = useState(false);\n const [showChangePassword, setShowChangePassword] = useState(false);\n const [error, setError] = useState({\n username: '',\n email: '',\n role: ''\n })\n // ### HANDLERS ###\n\n const handleChange = (name, value) => {\n setAccount({\n ...account,\n [name]: value\n })\n validateInput(name, value)\n }\n const validateInput = (name, value) => {\n\n setError(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"email\":\n if (!value) {\n stateObj[name] = \"Please enter an email.\";\n }\n break;\n default:\n break;\n }\n return stateObj;\n });\n }\n const handleShowSave = () => {\n showSweetAlert('warning', `Are you sure to save the user?`, () => { hideSave() });\n }\n\n const hideSave = () => {\n\n handleSave()\n }\n\n const handleSave = async () => {\n\n const response = await fetch(`/user/update?id=${localStorage.getItem(\"userId\")}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(account),\n });\n const isEdit = await response.json();\n\n if (response.status === 200) {\n await fetchUser();\n showSweetAlert('success', `Account data`);\n } else {\n showSweetAlert('serverError');\n }\n location.reload();\n };\n const handleEdit = () => {\n setIsEdit(true);\n }\n const hideAlert = () => {\n\n };\n\n\n const handlePin = async (id) => {\n try {\n const response = await fetch(`/user/generatenewpin?id=${id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'post' });\n const data = await response.json();\n\n if (data === true) {\n showSweetAlert('saveSuccess', `User`);\n }\n\n if (body) {\n showSweetAlert('saveSuccess', `User`);\n await fetchData();\n }\n\n await fetchData();\n } catch (err) {\n }\n }\n\n // ### DATA FETCHES ###\n\n const fetchRoles = async () => {\n try {\n let url = `/user/getroles?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n\n setRoles(body);\n } catch (err) {\n }\n }\n const fetchLocations = async () => {\n try {\n let url = `/location/getdropdownlist?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n\n });\n\n setLocations(data);\n } catch (err) {\n }\n }\n const fetchUser = async () => {\n try {\n let url = `/user/getsingle?id=${localStorage.getItem(\"userId\")}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const user = await response.json();\n\n dispatch({ type: 'set', user: user });\n } catch (err) {\n }\n }\n\n const handleSavePasswordSuccess = () => {\n\n setShowChangePassword(false);\n }\n\n\n\n // ### HOOKS ###\n\n useEffect(() => {\n fetchRoles();\n fetchLocations();\n }, []);\n useEffect(() => {\n setAccount(user);\n }, [user])\n\n return (\n <>\n {alert}\n {!showChangePassword &&\n \n }\n {showChangePassword &&\n \n }\n \n );\n}\n\nexport default AccountManagement;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux'\nimport moment from 'moment';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner\n} from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nimport { ADMIN_USERMANAGEMENT_EDIT, ADMIN_USERMANAGEMENT_DELETE } from '../../constants/Permissions.js';\nimport { getPermission } from '../../utils/Permissions.js';\n\nfunction AuditLogTable(props) {\n const user = useSelector((state) => state.user);\n\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const { timestamp, username, typeName, prodcutId, description } = log\n return (\n \n {moment(timestamp).format(\"DD/MM/YYYY hh:mm:ss\")}\n {username}\n {typeName}\n {prodcutId === 0 ? \"N/A\" : prodcutId}\n {description}\n \n )\n })\n }\n\n return (\n <>\n {alert}\n \n \n Audit Logs\n

\n

\n
\n \n {props.isLoading ?\n
\n
\n \n

Loading...

\n
\n
:\n <>\n {(props.data && props.data.length == 0) &&\n (\n No data found.\n

)}\n \n }\n {props.data && props.data.length > 0 && (\n < Col md=\"12\">\n = 20 ?
Loading more data...
: \"\"}\n height={550}\n >\n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n \n
TimestampUsernameType NameProduct IdDescription
\n \n )}\n
\n
\n \n );\n}\n\nexport default AuditLogTable;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport moment from \"moment\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport { Card, Container, Row, Col, Button } from \"react-bootstrap\";\nimport { useSelector } from \"react-redux\";\n\nimport DateRange from \"../../components/Shared/DateRange\";\nimport CustomSelect from \"../../components/Shared/CustomSelect\";\nimport CustomSearchBox from \"../../components/Shared/CustomSearchBox\";\nimport AuditLogTable from \"../../components/AuditLog/AuditLogTable\";\n\nimport { AUDITLOG_VIEW } from \"constants/Permissions.js\";\nimport { getPermission } from \"utils/Permissions.js\";\n\nfunction AuditLog() {\n const user = useSelector((state) => state.user);\n\n // ### STATE ###\n\n const [isLoading, setIsLoading] = useState(true);\n const [page, setPage] = useState(1);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [dateRange, setDateRange] = useState([new Date(), new Date()]);\n const [types, setTypes] = useState([]);\n const [type, setType] = useState(0);\n const [users, setUsers] = useState([]);\n const [username, setUsername] = useState(0);\n const [search, setSearch] = useState(\"\");\n const [orderBy, setOrderBy] = useState(\"Timestamp\");\n const [descending, setDescending] = useState(true);\n const [originData, setOriginData] = useState([]);\n const [data, setData] = useState([]);\n\n // ### HANDLERS ###\n\n const handleDatesChange = (dates) => {\n setDateRange(dates);\n if (dates[0] && dates[1]) {\n const filterData = originData.filter((item) => {\n return moment(item.timestamp).isBetween(\n moment(dates[0], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n moment(dates[1], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n null,\n \"[]\"\n );\n });\n setData(filterData);\n }\n };\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n\n const hideAlert = () => {};\n\n // ### DATA FETCHES ##\n\n const fetchUsers = async () => {\n try {\n let url = `/user/getalllist?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setUsers(data);\n } catch (err) {}\n };\n\n const fetchTypes = async () => {\n try {\n let url = `/auditlog/gettypes`;\n const response = await fetch(url);\n const body = await response.json();\n const keys = Object.keys(body);\n const data = keys?.map((item) => {\n return { id: item, value: body[item] };\n });\n setTypes(data);\n } catch (err) {}\n };\n\n const fetchData = async () => {\n setIsLoading(true);\n try {\n let url = `/auditlog/getallpaged?skip=${skip}&take=${take}&searchUserId=${username}&typeId=${type}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}&search=${search}`;\n const response = await fetch(url);\n const body = await response.json();\n setIsLoading(false);\n setOriginData(body);\n setData(body);\n } catch (err) {\n setIsLoading(false);\n }\n };\n\n const updateData = async () => {\n try {\n let url = `/auditlog/getallpaged?skip=${\n page * take + skip\n }&take=${take}&searchUserId=${username}&typeId=${type}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}&search=${search}`;\n const response = await fetch(url);\n const body = await response.json();\n setTimeout(() => {\n setOriginData(originData.concat(body));\n setData(data.concat(body));\n setPage(page + 1);\n }, 500);\n } catch (err) {}\n };\n\n // ### HOOKS ###\n\n useMemo(async () => {\n setPage(0);\n setOriginData([]);\n setData([]);\n setIsLoading(true);\n try {\n let url = `/auditlog/getallpaged?skip=${0}&take=${20}&searchUserId=${username}&typeId=${type}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&orderBy=${orderBy}&descending=${descending}&search=${search}`;\n const response = await fetch(url);\n const body = await response.json();\n setIsLoading(false);\n setOriginData(body);\n setData(body);\n } catch (err) {\n setIsLoading(false);\n }\n }, [type, username, search]);\n\n useEffect(() => {\n fetchUsers();\n fetchTypes();\n fetchData();\n }, []);\n\n return (\n <>\n {alert}\n {getPermission(user.permissions, AUDITLOG_VIEW) && (\n \n \n \n \n \n \n \n \n \n \n \n setType(e.value)}\n withAll={true}\n />\n \n \n setUsername(e.value)}\n withAll={true}\n />\n \n \n setSearch(e)}\n handleClear={() => setSearch(\"\")}\n />\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n )}\n {!getPermission(user.permissions, AUDITLOG_VIEW) && (\n \n You are not authorized to view this page\n \n )}\n \n );\n}\n\nexport default AuditLog;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux'\nimport CustomSelect from '../../components/Shared/CustomSelect';\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container, Form\n , Dropdown\n} from \"react-bootstrap\";\n\nimport CustomSearchBox from '../../components/Shared/CustomSearchBox';\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport { ADMIN_USERMANAGEMENT_EDIT, ADMIN_USERMANAGEMENT_DELETE } from '../../constants/Permissions.js';\nimport { getPermission } from '../../utils/Permissions.js';\n\nfunction CategoryTable(props) {\n\n const user = useSelector((state) => state.user);\n\n \n\n const handlePermission = () => {\n showSweetAlert('unauthorized');\n }\n\n const handleDefaultCategory = () => {\n showSweetAlert('systemCategory');\n }\n\n const renderTableData = () => {\n return props.data.map((category, index) => {\n const { id, name, isSystemCategory } = category\n return (\n \n props.handleSelectCategory(category)}>{name}\n \n {isSystemCategory ?\n <>\n e.preventDefault()}\n overlay={\n \n Edit\n \n }\n >\n handleDefaultCategory()}\n className=\"btn-link btn-xs\"\n variant=\"success\"\n \n >\n \n \n \n e.preventDefault()}\n overlay={\n \n Remove\n \n }\n >\n handleDefaultCategory()}\n \n >\n \n \n \n \n : <>\n props.handleEdit(category)}\n className=\"btn-link btn-xs\"\n variant=\"success\"\n >\n \n \n\n props.handleDelete(id, name)}\n >\n \n \n }\n \n \n )\n })\n }\n\n return (\n <>\n {alert}\n \n \n \n
Categories
\n
\n
\n
\n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n
\n e.preventDefault()}\n overlay={\n \n Add\n \n }\n >\n props.handleAdd()}\n >\n Add\n \n \n
\n

\n

\n
\n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n \n
Category NameActions
\n \n
\n
\n \n );\n}\n\nexport default CategoryTable;\n","import React, { useEffect, useState } from \"react\";\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Container,\n Row,\n Col,\n OverlayTrigger,\n Tooltip\n} from \"react-bootstrap\";\nimport CustomSelect from '../Shared/CustomSelect';\n\nfunction CategoryGroups(props) {\n return (\n <>\n \n \n\n \n Category Groups\n \n {props.data.length > 0 ?\n <>\n \n props.handleSelect(e.value)}\n withAll\n />\n \n {props.selected?.id !== 0 && props.selected?.id !== undefined ?\n \n e.preventDefault()}\n overlay={\n \n Edit\n \n }\n >\n props.handleEdit()}\n className=\"btn-link btn-xs\"\n variant=\"success\"\n >\n \n \n \n e.preventDefault()}\n overlay={\n \n Delete\n \n }\n >\n props.handleDelete()}\n >\n \n \n \n props.handleAdd()}\n >\n Add\n \n \n :\n \n props.handleAdd()}\n >\n Add\n \n \n }\n \n :\n \n

No Group in this Category

\n props.handleAdd()}\n >\n Add\n \n
\n \n }\n
\n
\n \n
\n\n \n );\n}\n\nexport default CategoryGroups;\n","import React, { useEffect, useState } from \"react\";\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Container,\n Row,\n Col,\n OverlayTrigger,\n Tooltip, Table\n} from \"react-bootstrap\";\nimport CustomSearchBox from \"components/Shared/CustomSearchBox\";\n\nimport { bool } from \"prop-types\";\n\nfunction CategoryValues(props) {\n const [searchKey, setSearchKey] = useState(\"\");\n const [data, setData] = useState([]);\n const [originalData, setOriginalData] = useState([]);\n\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"245px\",\n };\n\n const handleSearchKey = (value) => {\n setSearchKey(value);\n }\n\n useEffect(() => {\n if (searchKey != \"\") {\n const filterData = originalData.filter((item) => {\n return item.name.toLowerCase().includes(searchKey.toLowerCase());\n });\n setData(filterData);\n }\n else {\n setData(originalData);\n }\n }, [searchKey])\n\n useEffect(() => {\n setData(props.data);\n setOriginalData(props.data);\n if(searchKey != \"\")\n handleSearchKey(searchKey);\n }, [props.data])\n\n const cellWidth = () => {\n var count = 3;\n if (props.requiresSupplierId) {\n count = count + 1;\n }\n if (props.requiresSizeGroupId) {\n count = count + 1;\n }\n return 100 / count;\n }\n\n const renderTableData = () => {\n return data.map((categoryValue, index) => {\n const { id, name, code, value, requiresSupplierId, supplierId, supplierName, requiresSizeGroupId, sizeGroupId, sizeGroupName, categoryId } = categoryValue\n return (\n \n {name}\n {categoryId == 14 ?\n {value}\n :\n {code}\n }\n {requiresSupplierId && {supplierName}}\n {requiresSizeGroupId && {sizeGroupName}}\n \n \n props.handleEdit(id)}>\n \n\n\n \n props.handleDelete(id)}>\n \n \n \n )\n });\n }\n\n return (\n <>\n\n
Values\n setSearchKey(\"\")}\n />\n \n Add\n \n
\n \n \n \n \n {\n props.data[0]?.categoryId == 14 ?\n \n :\n \n }\n {props.requiresSupplierId && }\n {props.requiresSizeGroupId && }\n \n \n \n
NameValueCodeSupplierSize GroupActions
\n
\n \n \n {renderTableData()}\n \n
\n
\n \n );\n}\n\nexport default CategoryValues;\n","import React, { useEffect } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col\n} from \"react-bootstrap\";\n\nfunction AddEditCategoryModal(props) {\n useEffect(() => {\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, []);\n\n return (\n <>\n
\n \n \n \n \n props.handleChange(\"name\", e.target.value)}\n />\n \n\n \n \n\n \n Save\n \n\n \n Cancel\n \n
\n \n \n );\n}\n\nexport default AddEditCategoryModal;\n","import React from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col\n} from \"react-bootstrap\";\n\nfunction AddEditCategoryGroupModal(props) {\n return (\n <>\n
\n \n \n \n \n props.handleChange(\"name\", e.target.value)}\n />\n \n\n \n \n\n \n Save\n \n\n \n Cancel\n \n
\n \n \n );\n}\n\nexport default AddEditCategoryGroupModal;\n","import React, { useEffect } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nfunction AddEditCategoryValueModal(props) {\n useEffect(() => {\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, []);\n\n var data = props.categories.filter(x => x.id === props.categoryId);\n return (\n <>\n
\n \n \n \n \n props.handleChange(\"name\", e.target.value)}\n />\n \n {props.error.name && }\n \n \n \n {props.categoryId == 14 ?\n \n \n \n props.handleChange(\"value\", e.target.value)}\n />\n \n {props.error.value && }\n \n :\n \n \n \n props.handleChange(\"code\", e.target.value)}\n />\n \n {props.error.code && }\n \n }\n \n {props.data.id > 0 && props.categoryGroups.length > 0 &&\n \n \n \n \n props.handleChangeCategoryDropdown(\"categoryGroupId\", e.value, \"categoryGroupName\", e.label)}\n withAll={false}\n value={props.data.categoryGroupId}\n />\n \n\n \n \n }\n {\n data[0].requiresSupplierId && props.categoryId === 2 &&\n \n \n \n \n props.handleChangeCategoryDropdown(\"supplierId\", e.value, \"supplierName\", e.label)}\n withAll={false}\n value={props.data.supplierId}\n />\n \n {props.error.supplierId && }\n \n \n }\n {\n data[0].requiresSizeGroupId && props.categoryId === 3 &&\n \n \n \n \n props.handleChangeCategoryDropdown(\"sizeGroupId\", e.value, \"sizeGroupName\", e.label)}\n withAll={false}\n value={props.data.sizeGroupId}\n />\n \n {props.error.sizeGroupId && }\n \n \n }\n\n \n Save\n \n\n \n Cancel\n \n
\n \n \n );\n}\n\nexport default AddEditCategoryValueModal;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport moment from 'moment';\nimport Select from \"react-select\";\nimport {\n Card,\n Container,\n Row,\n Col,\n Form\n} from \"react-bootstrap\";\nimport { useSelector } from 'react-redux'\n\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport CategoryTable from '../../components/Category/CategoryTable';\nimport CategoryGroups from '../../components/Category/CategoryGroups';\nimport CategoryValues from '../../components/Category/CategoryValues';\n\nimport { CATEGORIES_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\n//Modals\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport CustomModal from '../../components/Shared/CustomModal';\nimport AddEditCategoryModal from '../../components/Category/AddEditCategoryModal';\nimport AddEditCategoryGroupModal from '../../components/Category/AddEditCategoryGroupModal';\nimport AddEditCategoryValueModal from '../../components/Category/AddEditCategoryValueModal';\n\nfunction Category() {\n\n // ### STATE ###\n\n const user = useSelector((state) => state.user);\n\n const [showCategoryDetails, setShowCategoryDetails] = useState(false); // right hand pane\n\n const [showCategoryModal, setShowCategoryModal] = useState(false); // modals\n const [showCategoryGroupModal, setShowCategoryGroupModal] = useState(false);\n const [showCategoryValueModal, setShowCategoryValueModal] = useState(false);\n\n const [searchCategories, setSearchCategories] = useState(\"\");\n\n const [categoryId, setCategoryId] = useState(0);\n const [selectedCategory, setSelectedCategory] = useState([]);\n\n const [categoryGroupId, setCategoryGroupId] = useState(0);\n const [selectedCategoryGroup, setSelectedCategoryGroup] = useState([]);\n\n const [originCategories, setOriginCategories] = useState([]);\n const [categories, setCategories] = useState([]);\n const [categoryGroups, setCategoryGroups] = useState([]);\n const [categoryValues, setCategoryValues] = useState([]);\n const [selectedCategoryValues, setSelectedCategoryValues] = useState([]);\n\n const [categoryValueId, setCategoryValueId] = useState(0);\n const [selectedCategoryValue, setSelectedCategoryValue] = useState([]);\n const [suppliers, setSupplier] = useState([]);\n \n const [catrgorySize, setCategorySize] = useState([]);\n\n //const [nameError, SetnameError] = useState(false);\n\n // ### HANDLERS ###\n\n const handleCategoryDetailsShow = () => setShowCategoryDetails(true);\n const handleCategoryDetailsHide = () => setShowCategoryDetails(false);\n\n const handleCategoryModalShow = () => setShowCategoryModal(true);\n const handleCategoryModalHide = () => setShowCategoryModal(false);\n\n const handleCategoryGroupModalShow = () => setShowCategoryGroupModal(true);\n const handleCategoryGroupModalHide = () => setShowCategoryGroupModal(false);\n\n const handleCategoryValueModalShow = () => setShowCategoryValueModal(true);\n const handleCategoryValueModalHide = () => setShowCategoryValueModal(false);\n\n const handleCategorySearchChange = (value) => {\n const filterData = originCategories?.filter((item) => item.name.toLowerCase().includes(value.toLowerCase()));\n setSearchCategories(value);\n setCategories(filterData);\n }\n\n //const handleValidateInput = (name, value) => {\n // switch (name) {\n // case \"name\":\n // if (!value) {\n // SetnameError(true)\n // }\n // }\n //}\n\n const [error, setError] = useState({\n name: '',\n code: '',\n supplierId: '',\n sizeGroupId: ''\n })\n const clearCategoryValidation = () => {\n setError({\n name: '',\n code: '',\n supplierId: '',\n sizeGroupId: ''\n })\n };\n // --- Category ---\n const handleAddCategory = () => {\n setCategoryId(0);\n setSelectedCategory({\n id: 0,\n name: \"\",\n valueType: \"\",\n categoryGroupIds: [],\n dateCreated: \"0001-01-01T00:00:00\",\n dateAmended: \"0001-01-01T00:00:00\",\n archived: false\n });\n handleCategoryModalShow();\n }\n\n const handleEditCategory = (category) => {\n clearCategoryValidation();\n setCategoryId(category.id);\n setSelectedCategory(category);\n setShowCategoryModal(true)\n }\n\n const handleChangeCategory = (name, value) => {\n let item = {\n ...selectedCategory,\n [name]: value,\n };\n setSelectedCategory(item);\n }\n\n const handleGetSupplier = async () => {\n\n try {\n let url = `/supplier/GetDropdownList?userId=${localStorage.getItem(\"userId\")}&&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const Data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setSupplier(Data);\n } catch (e) {\n\n }\n\n }\n\n const handleSelectCategory = async (category) => {\n setCategoryId(category.id);\n setSelectedCategory({ ...category });\n setSelectedCategoryGroup(null);\n setSelectedCategoryValues([]);\n await fetchCategoryGroups(category.id);\n await fetchCategoryValues(category.id);\n setShowCategoryDetails(true);\n fetchCategorSize();\n }\n\n const handleDeleteCategory = (id, name) => {\n showSweetAlert('deleteWarning', `category`, () => { deleteCategoryHandler(id) });\n }\n\n const deleteCategoryHandler = async (index) => {\n try {\n await fetch(`/Category/Delete?id=${index}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n showSweetAlert('deleteSuccess', `Category`);\n await fetchCategories();\n setShowCategoryDetails(false);\n } catch (err) {\n } finally {\n await fetchCategories();\n }\n };\n\n const saveCategoryHandler = async () => {\n if (selectedCategory.name == \"\") {\n //SetnameError(true)\n //SetCode(true)\n return\n }\n\n // Add Category\n if (categoryId === 0) {\n try {\n let url = `Category/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategory),\n });\n const body = await response.json();\n if (response.status == 200) {\n showSweetAlert('saveSuccess', `Category`);\n await fetchCategories();\n setShowCategoryModal(false);\n } else {\n showSweetAlert('serverError');\n await fetchCategories();\n setShowCategoryModal(false);\n }\n } catch (err) {\n }\n }\n // Edit Category\n else {\n try {\n let url = `Category/Update?id=${selectedCategory.id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategory),\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Category`);\n await fetchCategories();\n setShowCategoryModal(false);\n } else {\n showSweetAlert('serverError');\n await fetchCategories();\n setShowCategoryModal(false);\n }\n } catch (err) {\n\n }\n }\n await fetchCategoryGroups(selectedCategory.id);\n }\n\n // --- Category End ---\n\n // --- Category Group ---\n const handleAddCategoryGroup = () => {\n setCategoryGroupId(0);\n setSelectedCategoryGroup({\n id: 0,\n name: \"\",\n categoryId: selectedCategory.id,\n dateCreated: \"0001-01-01T00:00:00\",\n dateAmended: \"0001-01-01T00:00:00\",\n archived: false\n });\n handleCategoryGroupModalShow();\n }\n\n const handleEditCategoryGroup = () => {\n setCategoryGroupId(selectedCategoryGroup.id);\n setSelectedCategoryGroup({ ...selectedCategoryGroup });\n setShowCategoryGroupModal(true)\n }\n\n const handleChangeCategoryGroup = (name, value) => {\n let item = {\n ...selectedCategoryGroup,\n [name]: value,\n };\n setSelectedCategoryGroup(item);\n }\n\n const handleSelectCategoryGroup = (id) => {\n setCategoryGroupId(id);\n //filter groups by id\n let category = categoryGroups.filter(x => x.id == id);\n setSelectedCategoryGroup(...category);\n\n // filter category values \n if (id != 0) {\n let values = categoryValues.filter(x => x.categoryGroupId == id);\n setSelectedCategoryValues(values);\n }\n else {\n setSelectedCategoryValues(categoryValues);\n }\n }\n\n const handleDeleteCategoryGroup = (id, name) => {\n showSweetAlert('deleteWarning', `category group`, () => { deleteCategoryGroupHandler(id) });\n }\n\n const deleteCategoryGroupHandler = async (index) => {\n try {\n // todo: check that no values are attached to the group before deleting\n await fetch(`/CategoryGroup/Delete?id=${selectedCategoryGroup.id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n showSweetAlert('deleteSuccess', `Category Group`);\n await fetchCategoryGroups();\n setCategoryGroupId(0);\n // refresh category values\n } catch (err) {\n } finally {\n await fetchCategories();\n await fetchCategoryGroups(selectedCategory.id);\n }\n };\n\n const saveCategoryGroupHandler = async () => {\n\n if (selectedCategoryGroup.name == \"\") {\n //SetnameError(true)\n //SetCode(true)\n return\n }\n\n // Add Category\n if (categoryGroupId === 0) {\n try {\n let url = `CategoryGroup/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategoryGroup),\n });\n const body = await response.json();\n if (response.status == 200) {\n showSweetAlert('saveSuccess', `Category Group`);\n await fetchCategoryGroups();\n setShowCategoryGroupModal(false);\n } else {\n showSweetAlert('serverError');\n await fetchCategoryGroups();\n setShowCategoryGroupModal(false);\n }\n } catch (err) {\n }\n }\n // Edit Category\n else {\n try {\n let url = `CategoryGroup/Update?id=${selectedCategoryGroup.id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategoryGroup),\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Category Group`);\n await fetchCategoryGroups();\n setShowCategoryGroupModal(false);\n } else {\n showSweetAlert('serverError');\n await fetchCategoryGroups();\n setShowCategoryGroupModal(false);\n }\n } catch (err) {\n\n }\n }\n await fetchCategories();\n await fetchCategoryGroups(selectedCategory.id);\n }\n\n // --- Category Group End ---\n\n // --- Category Values ---\n const handleAddCategoryValue = () => {\n\n setError({})\n setCategoryValueId(0);\n setSelectedCategoryValue({\n id: 0,\n name: \"\",\n code: \"\",\n value: \"\",\n requiresSupplierId: true,\n categoryId: categoryId,\n categoryGroupId: categoryGroupId,\n supplierId: 0,\n supplierName: \"\",\n requiresSizeGroupId: true,\n sizeGroupId: 0,\n sizeGroupName: \"\",\n categoryGroupName:\"\"\n });\n handleCategoryValueModalShow();\n }\n\n const handleEditCategoryValue = (id) => {\n clearCategoryValidation();\n setCategoryValueId(id);\n let val = categoryValues.filter(x => x.id == id);\n let categoryValue = val[0];\n\n if (categoryValue.supplierName === null) {\n categoryValue.supplierName = \"\";\n }\n if (categoryValue.sizeGroupName === null) {\n categoryValue.sizeGroupName = \"\";\n }\n\n\n setSelectedCategoryValue({ ...categoryValue });\n setShowCategoryValueModal(true)\n }\n const handleChangeCategoryDropdown = (name, value, label, labelName) => {\n let item = {\n ...selectedCategoryValue,\n [name]: value,\n [label]: labelName\n };\n setSelectedCategoryValue(item);\n validateInput(name, value)\n }\n const handleChangeCategoryValue = (name, value) => {\n\n let item = {\n ...selectedCategoryValue,\n [name]: value,\n };\n setSelectedCategoryValue(item);\n validateInput(name, value)\n }\n const validateInput = (name, value) => {\n\n setError(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"name\":\n if (!value) {\n stateObj[name] = \"Please enter a name\";\n }\n break;\n case \"code\":\n if (!value) {\n stateObj[name] = \"Please enter an code\";\n }\n break;\n case \"supplierId\":\n if (!value) {\n stateObj[name] = \"Please select the supplier\";\n }\n break;\n case \"supplierId\":\n if (!value) {\n stateObj[name] = \"Please select the Size\";\n }\n break;\n default:\n break;\n }\n return stateObj;\n });\n }\n\n\n const handleDeleteCategoryValue = (id, name) => {\n showSweetAlert('deleteWarning', `category value`, () => { deleteCategoryValueHandler(id) });\n }\n\n const deleteCategoryValueHandler = async (index) => {\n try {\n // todo: check that no values are attached to the group before deleting\n const response = await fetch(`/CategoryValue/Delete?id=${index}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n\n if (response.status == 200) {\n showSweetAlert('deleteSuccess', `Category Value`);\n await fetchCategoryValues(categoryId);\n }\n else {\n var body = await response.json();\n showSweetAlert('warningOkOnly', body);\n }\n } catch (err) {\n } finally {\n await fetchCategories();\n await fetchCategoryGroups(selectedCategory.id);\n }\n };\n const saveCategoryValueHandler = () => {\n showSweetAlert('warning', `Are you sure you want to add this category value?`, () => { handleSave() });\n }\n const handleSave = async () => {\n \n if (selectedCategoryValue.name === \"\") {\n error.name = \"Please enter a name\"\n }\n\n if (categoryValues.some(item => item.name.toLowerCase() === selectedCategoryValue.name.toLowerCase() && item.id !== categoryValueId)) {\n error.name = \"Please enter a unique name\"\n }\n\n if (selectedCategoryValue.code === \"\") {\n error.code = \"Please enter a code\"\n }\n\n if (categoryValues.some(item => item.code.toLowerCase() === selectedCategoryValue.code.toLowerCase() && item.id !== categoryValueId)) {\n error.code = \"Please enter a unique code\"\n }\n\n // This whole error coding needs moving to a better method\n if (selectedCategory.id == 14) {\n error.code = \"\"\n }\n\n if (selectedCategoryValue.supplierId === 0 && categoryId === 2) {\n error.supplierId = \"Please enter the supplier\"\n } else { error.supplierId = \"\" }\n\n if (selectedCategoryValue.sizeGroupId === 0 && categoryId === 3) {\n error.sizeGroupId = \"Please enter the size\"\n } else { error.sizeGroupId = \"\" }\n\n // Add Category value\n if (categoryValueId === 0 && error.code === \"\" && error.supplierId === \"\" && error.name === \"\" && error.sizeGroupId === \"\") {\n try {\n let url = `CategoryValue/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategoryValue),\n });\n const body = await response.json();\n if (response.status == 200) {\n showSweetAlert('saveSuccess', `Category Value`);\n await fetchCategoryValues(categoryId);\n setShowCategoryValueModal(false);\n } else {\n showSweetAlert('serverError');\n await fetchCategoryValues(categoryId);\n setShowCategoryValueModal(false);\n }\n } catch (err) {\n }\n }\n // Edit Category\n else if (categoryValueId !== 0 && error.code === \"\" && error.supplierId === \"\" && error.name === \"\" && error.sizeGroupId === \"\") {\n try {\n let url = `CategoryValue/Update?id=${selectedCategoryValue.id}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedCategoryValue),\n });\n const body = await response.json();\n\n if (body == false || body.status === 400) {\n showSweetAlert('serverError');\n await fetchCategoryValues(categoryId);\n setShowCategoryValueModal(false);\n\n\n } else {\n showSweetAlert('saveSuccess', `Category Value`);\n await fetchCategoryValues(categoryId);\n setShowCategoryValueModal(false);\n }\n } catch (err) {\n\n }\n }\n await fetchCategories();\n await fetchCategoryGroups(selectedCategory.id);\n }\n\n // --- Category Values End ---\n\n const handlePermission = () => {\n showSweetAlert('unauthorized');\n }\n\n const hideAlert = () => {\n \n };\n\n // ### DATA FETCHES ##\n\n const fetchCategories = async () => {\n\n try {\n let url = `Category/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n setOriginCategories(body);\n setCategories(body);\n } catch (err) {\n }\n }\n\n const fetchCategoryGroups = async (id) => {\n\n try {\n let url = `CategoryGroup/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {\n ...item,\n value: item.name,\n }\n });\n setCategoryGroups(data);\n } catch (err) {\n }\n }\n\n\n const fetchCategorSize = async () => {\n\n try {\n let url = `CategoryGroup/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=${6}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return {\n ...item,\n value: item.name,\n }\n });\n setCategorySize(data);\n } catch (err) {\n }\n }\n\n const fetchCategoryValues = async (id) => {\n\n try {\n let url = `CategoryValue/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n \n setCategoryValues(body);\n setSelectedCategoryValues(body);\n } catch (err) {\n }\n }\n\n // ### HOOKS ###\n\n useEffect(() => {\n fetchCategories();\n handleGetSupplier();\n fetchCategoryGroups(categoryId);\n }, []);\n\n useEffect(() => {\n fetchCategoryGroups(selectedCategory.id);\n }, [selectedCategory]);\n\n\n // ### RENDER ###\n\n return (\n <>\n {alert}\n\n {/* Add Edit Category Modal*/}\n \n \n \n\n {/* Add Edit Category Group Modal*/}\n \n \n \n\n {/* Add Edit Category Value Modal*/}\n \n \n \n\n {getPermission(user.permissions, CATEGORIES_VIEW) &&\n \n \n \n \n \n \n \n \n \n \n {showCategoryDetails ?\n \n \n \n \n \n {selectedCategory.name}\n \n \n \n <>\n \n \n \n \n \n \n \n :\n \n \n \n \n Select category to show the category details.\n \n \n \n \n }\n \n \n \n \n \n }\n {!getPermission(user.permissions, CATEGORIES_VIEW) &&\n You are not authorized to view this page\n }\n \n );\n}\n\nexport default Category;\n","import React, { useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\n\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Form,\n Navbar,\n Nav,\n Container,\n Col,\n} from \"react-bootstrap\";\n\nfunction ResetPasswordPage() {\n const [cardClasses, setCardClasses] = useState(\"card-hidden\");\n const [email, setEmail] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n const [passwordReset, setPasswordReset] = useState(false);\n\n const onResetPassword = async () => {\n try {\n let url = `/account/forgotpassword?phoneNumber=${phoneNumber}`;\n const response = await fetch(url, {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n });\n const isResetPassword = await response.json();\n\n if (isResetPassword == true) {\n setPasswordReset(true);\n }\n } catch (err) {}\n };\n\n const onKeyDown = (e) => {\n if (e.keyCode === 13) {\n onResetPassword();\n e.preventDefault();\n }\n };\n\n useEffect(() => {\n setTimeout(function () {\n setCardClasses(\"\");\n }, 1000);\n });\n\n return (\n <>\n \n
\n \n {!passwordReset ? (\n \n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n \n

\n Please enter your phone number below to be sent\n instructions to reset your password.\n

\n \n \n setPhoneNumber(e.target.value)}\n onKeyDown={(e) => onKeyDown(e)}\n >\n \n
\n
\n \n onResetPassword()}\n >\n Reset Password\n \n \n
\n
\n \n ) : (\n \n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n \n

\n If an account is registered with the entered number,\n details on how to reset your password will be sent\n there.\n

\n
\n
\n \n \n (window.location.href = \"/auth/login\")\n }\n >\n Go Back\n \n \n
\n
\n \n )}\n
\n
\n \n \n \n );\n}\n\nexport default ResetPasswordPage;\n","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux'\nimport CustomSelect from '../Shared/CustomSelect';\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container, Form\n , Dropdown\n} from \"react-bootstrap\";\nfunction PurchaseOrderMappingTable(props) {\n const renderTableData = () => {\n return props.purchaseOrderMappingData.map((PurchaseOrderMapping, index) => {\n var filterData = props.categories.filter(x => x.id === PurchaseOrderMapping.categoryValueId)\n const { id, name, columnStart, formula } = PurchaseOrderMapping\n return (\n \n {name}\n {columnStart}\n {filterData.length > 0 ?\n {filterData[0].name}\n :\n \n }\n {formula}\n \n props.handleEditPurchaseOrder(id)}\n >\n \n \n\n\n props.handleDeletePurchaseOrder(id)}\n >\n \n \n \n \n )\n });\n }\n return (\n\n <>\n \n \n \n \n
Mappings
\n
\n
\n props.handleAdd()}\n >\n Add\n \n
\n

\n

\n
\n \n {(props.purchaseOrderMappingData && props.purchaseOrderMappingData.length == 0) &&\n (\n No data found.\n

\n )}\n {(props.purchaseOrderMappingData.length !== 0) &&\n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n \n\n\n
NameColumn StartCategoryFormulaAction
\n \n }\n
\n
\n \n );\n}\nexport default PurchaseOrderMappingTable;","import React, { useState } from \"react\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport {\n Button,\n Form,\n Row,\n Col\n} from \"react-bootstrap\";\n\nfunction AddEditPurchaseOrderMappingModal(props) {\n const GetDropdownList = props.categoriesDropdown;\n return (\n <>\n
\n \n \n \n \n props.handleChange(\"name\", e.target.value)}\n onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n \n {props.error.name && }\n \n \n \n \n \n \n props.handleChange(\"columnStart\", e.target.value)}\n onBlur={(e) => props.validateInput(\"columnStart\", e.target.value)}\n />\n \n {props.error.columnStart && }\n \n \n \n \n \n props.handleChange(\"categoryValueId\", e.value)}\n />\n \n {props.error.categoryValueId && }\n \n \n \n \n \n \n props.handleChange(\"formula\", e.target.value)}\n onBlur={(e) => props.validateInput(\"formula\", e.target.value)}\n />\n \n {props.error.columnStart && }\n \n \n {\n !props.showEdit &&\n props.handleAddPurchaseOrder()}\n >\n Save\n \n }\n {props.showEdit &&\n props.handleUpdatePurchaseOrder(props.PurchaseOrderId)}\n >\n Update\n \n }\n \n Cancel\n \n
\n \n \n );\n}\n\nexport default AddEditPurchaseOrderMappingModal;","import React from \"react\";\nimport { useState, useEffect, useMemo } from \"react\";\nimport CustomModal from \"components/Shared/CustomModal\";\nimport PurchaseOrderMappingTable from \"components/PurchaseOrderMapping/PurchaseOrderMappingTable\";\nimport AddEditPurchaseOrderMappingModal from \"components/PurchaseOrderMapping/AddEditPurchaseOrderMappingModal\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\nimport { useSelector } from 'react-redux';\n\nimport { PURCHASEORDER_VIEW } from 'constants/Permissions.js';\nimport { getPermission } from 'utils/Permissions.js';\n\nfunction PurchaseOrderMapping() {\n const [purchaseOrderMappingData, setpurchaseOrderMappingData] = useState([])\n const [showModal, setShowModal] = useState(false);\n const handleCloseModal = () => setShowModal(false);\n const handleShowModal = () => setShowModal(true);\n const [showEdit, SetShowEdit] = useState(false);\n const user = useSelector((state) => state.user);\n \n const [purchaseOrderId, setPurchaseOrderId] = useState(false);\n const [changePurchaseOrderMappingData, setChangePurchaseOrderMappingData] = useState([]);\n const [categories, setCategories] = useState([]);\n const [categoriesDropdown, setCategoriesDropdown] = useState([]);\n const [error, setError] = useState({\n name: '',\n columnStart: '',\n categoryValueId: '',\n formula: ''\n })\n\n const handleCancel =()=>{\n handleCloseModal();\n }\n const handleUpdatePurchaseOrder = (purchaseOrderId) => {\n showSweetAlert('warning', `Are you sure you want to update this purchase order mapping?`, () => { UpdatePurchaseOrder(purchaseOrderId) });\n }\n const handleDeletePurchaseOrder = (id) => {\n showSweetAlert('deleteWarning', `Purchase Order Mapping`, () => { deleteDeletePurchaseOrder(id) });\n }\n const handleAddPurchaseOrder = () => {\n showSweetAlert('warning', `Are you sure you want to save this purchase order mapping?`, () => { addPurchaseOrder() });\n }\n const handleAdd = () => {\n SetShowEdit(false)\n setError({});\n setChangePurchaseOrderMappingData({\n id: 0,\n name: \"\",\n columnStart: \"\",\n categoryValueId: \"\"\n });\n handleShowModal();\n }\n const handleEditPurchaseOrder = (id) => {\n setError({});\n setPurchaseOrderId(id)\n SetShowEdit(true)\n let PurchaseOrderValue = purchaseOrderMappingData.filter(x => x.id == id);\n setChangePurchaseOrderMappingData(...PurchaseOrderValue);\n handleShowModal(true)\n }\n const handleChange = (name, value) => {\n let item = {\n ...changePurchaseOrderMappingData,\n [name]: value,\n };\n setChangePurchaseOrderMappingData(item);\n validateInput(name, value)\n }\n const validateInput = (name, value) => {\n setError(prev => {\n const stateObj = { ...prev, [name]: \"\" };\n switch (name) {\n case \"name\":\n if (!value) {\n stateObj[name] = \"Please enter a name\";\n }\n break;\n\n case \"columnStart\":\n if (!value) {\n stateObj[name] = \"Please enter an column number\";\n }\n break;\n case \"categoryValueId\":\n if (value<0) {\n stateObj[name] = \"Please select a category id\";\n }\n break;\n default:\n break;\n }\n\n return stateObj;\n });\n }\n const addPurchaseOrder = async () => {\n \n if(changePurchaseOrderMappingData.name===\"\"){\n error.name=\"Please enter a name\"\n }\n if(changePurchaseOrderMappingData.columnStart===\"\"){\n error.columnStart=\"Please enter a column number\"\n }\n if(changePurchaseOrderMappingData.categoryValueId===\"\"){\n error.categoryValueId=\"Please enter a category id\"\n }\n if(error.name===''&&error.columnStart===''&&error.categoryValueId===''){\n try {\n let url = `PurchaseOrderMapping/Add?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'post',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(changePurchaseOrderMappingData),\n });\n const body = await response.json();\n if (response.status == 200) {\n showSweetAlert('saveSuccess', `Purchase Order`);\n await fetchPurchaseOrderMapping();\n handleCloseModal();\n } else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n }\n }\n}\n const UpdatePurchaseOrder = async (purchaseOrderId) => {\n\n try {\n let url = `PurchaseOrderMapping/Update?id=${purchaseOrderId}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch((url), {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(changePurchaseOrderMappingData),\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert('saveSuccess', `Purchase Order`);\n await fetchPurchaseOrderMapping();\n handleCloseModal();\n } else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n\n }\n }\n const fetchPurchaseOrderMapping = async () => {\n try {\n let url = `PurchaseOrderMapping/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n setpurchaseOrderMappingData(body);\n } catch (err) {\n }\n }\n const fetchCategories = async () => {\n try {\n let url = `Category/GetAll?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n setCategories(body);\n\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n\n data.unshift({ id: 0, value: \"none\" });\n\n setCategoriesDropdown(data)\n } catch (err) {\n }\n }\n const deleteDeletePurchaseOrder = async (index) => {\n\n try {\n await fetch(`/PurchaseOrderMapping/Delete?id=${index}&userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`, { method: 'delete' });\n showSweetAlert('deleteSuccess', `Purchase Order Mapping`);\n fetchPurchaseOrderMapping();\n } catch (err) {\n }\n }\n\n\n useEffect(() => {\n fetchPurchaseOrderMapping()\n fetchCategories()\n }, [])\n return (\n <>\n {alert}\n \n \n \n\n\n {getPermission(user.permissions, PURCHASEORDER_VIEW) &&\n\n \n \n \n \n \n \n \n }\n {!getPermission(user.permissions, PURCHASEORDER_VIEW) &&\n You are not authorized to view this page\n }\n \n )\n\n\n}\nexport default PurchaseOrderMapping","\nimport React, { useState, useEffect, useMemo } from \"react\";\nimport AutoReplenishmentTable from \"components/AutoReplenishment/AutoReplenishmentTable\";\nfunction AutoReplenishment(){\n\n // ### STATE ###\n const [autoReplenishment, setAutoReplenishment] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n // ### DATA FETCHES ###\n const fetchAutoReplenishment = async () => {\n setIsLoading(true);\n try {\n let url = `Movement/GetAutoReplenishmentList?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}`; //todo - move to store\n const response = await fetch(url);\n const autoReplenishment = await response.json();\n \n setAutoReplenishment(autoReplenishment);\n setIsLoading(false);\n } catch (err) {\n setIsLoading(false);\n }\n }\n useEffect(() => {\n fetchAutoReplenishment();\n\n }, [])\nreturn(\n \n\n);\n}\nexport default AutoReplenishment;","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n} from \"react-bootstrap\";\n\nimport { SUPPLIER_EDIT, SUPPLIER_DELETE } from \"../../constants/Permissions.js\";\nimport { getPermission } from \"../../utils/Permissions.js\";\n\nfunction SpecialOrdersTable(props) {\n const user = useSelector((state) => state.user);\n\n const handlePermission = () => {\n showSweetAlert(\"unauthorized\");\n };\n\n const returnStatus = (statusId) => {\n switch (statusId) {\n case 1:\n return \"New\";\n case 2:\n return \"Approved\";\n case 3:\n return \"Rejected\";\n case 4:\n return \"POCreated\";\n default:\n return \"\";\n }\n };\n\n const returnEmployeeDetails = (id) => {\n const user = props.users.find((x) => x.id === id);\n if (user) {\n return user.firstName + \" \" + user.lastName;\n }\n return \"\";\n };\n\n const renderTableData = (permissionEdit, permissionDelete) => {\n return (\n props.data &&\n props.data.map((data, index) => {\n const {\n approvedByID,\n id,\n locationId,\n locationName,\n productDescription,\n productId,\n productLink,\n productName,\n purchaseOrderId,\n quantity,\n requestedById,\n statusId,\n } = data;\n return (\n \n {\n props.handleOpenUpdateSpecialOrderModal(id);\n props.returnSpecialOrderSingle(id);\n }}\n >\n {id}\n \n {productName}\n {productLink}\n \n {props.locations.find((x) => x.id === locationId)?.value ?? \"\"}\n \n {quantity}\n {returnEmployeeDetails(requestedById)}\n {returnEmployeeDetails(approvedByID)}\n {purchaseOrderId}\n {returnStatus(statusId)}\n \n );\n })\n );\n };\n\n return (\n <>\n {alert}\n \n \n \n Special Orders\n props.handleOpenSpecialOrderModal()}\n >\n Request Special Order\n \n \n

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n {renderTableData()}\n
#Product NameProduct LinkLocationQuantityRequested ByApproved ByPurchase Order NumberStatusActions
\n \n
\n
\n \n );\n}\n\nexport default SpecialOrdersTable;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport CustomSearchBox from \"../Shared/CustomSearchBox\";\nimport { useDispatch } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport Tab from \"react-bootstrap/Tab\";\nimport Tabs from \"react-bootstrap/Tabs\";\n// react-bootstrap components\nimport {\n Form,\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n} from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nfunction SpecialOrderProductsTable(props) {\n ///Styling\n const SearchStyle = {\n marginTop: \"-35px\",\n marginLeft: \"120px\",\n };\n const renderTableData = () => {\n return props.data.map((log, index) => {\n const {\n brand,\n season,\n gender,\n productCategory,\n quantity,\n status,\n name,\n id,\n sku,\n colour,\n size,\n totalAvailableStock,\n purchaseOrderNumber,\n } = log;\n return (\n props.setSelectedProduct(log)}>\n {\n props.setSelectedProduct(log);\n }}\n >\n {sku}\n \n {name}\n {brand}\n {season}\n {gender}\n {productCategory}\n {size}\n {colour}\n {totalAvailableStock}\n {quantity}\n {status}\n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n props.handleGetLabelPDF(id, sku)}\n variant=\"link\"\n >\n \n \n \n \n \n );\n });\n };\n\n return (\n <>\n {/* {alert} */}\n\n \n \n Products\n \n props.handleSearchChange(e)}\n handleClear={() => props.handleSearchChange(\"\")}\n />\n \n \n \n {props.isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n <>\n {props.data && props.data.length == 0 && (\n \n No data found.\n

\n )}\n \n )}\n {props.data && props.data.length > 0 && (\n \n = props.take ? (\n
Loading more data...
\n ) : (\n \"\"\n )\n }\n // height={675}\n height={200}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {renderTableData()}\n
SKUProduct NameBrandSeasonGenderCategorySizeColourAvailable StockQuantityStatus
\n \n \n )}\n
\n
\n \n );\n}\nexport default SpecialOrderProductsTable;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card,\n Container,\n Spinner,\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\n\nimport SpecialOrderProductsTable from \"./SpecialOrderProductsTable\";\n\nconst RequestSpecialOrder = (props) => {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1200px\");\n document.documentElement.style.setProperty(\"--modal-width-tablet\", \"50%\");\n }, []);\n\n const [showEnterNewProduct, setShowEnterNewProduct] = useState(false);\n const handleToggleEnterNewProduct = () => {\n setShowEnterNewProduct(!showEnterNewProduct);\n props.setNewSpecialOrder(props.cleanSpecialOrder);\n props.setSelectedProduct(null);\n };\n\n return (\n <>\n
\n \n Selected Product\n \n {!showEnterNewProduct ? (\n <>\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n productName: e.target.value,\n });\n }}\n disabled\n />\n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n brandCode: e.target.value,\n });\n }}\n disabled\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n colour: e.target.value,\n });\n }}\n disabled\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n size: e.target.value,\n });\n }}\n disabled\n />\n \n \n \n \n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n productId: e.target.value,\n });\n }}\n disabled\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n quantity: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n locationId: e.value,\n locationName: e.label,\n });\n }}\n withBlank={true}\n />\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n ) : (\n <>\n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n productDescription: e.target.value,\n });\n }}\n />\n \n \n Select existing product\n \n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n productName: e.target.value,\n });\n }}\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n productLink: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n brandCode: e.target.value,\n });\n }}\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n quantity: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n colour: e.target.value,\n });\n }}\n />\n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n size: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n {\n props.setNewSpecialOrder({\n ...props.newSpecialOrder,\n locationId: e.value,\n });\n }}\n />\n \n \n \n \n \n )}\n \n props.requestSpecialOrder(\n showEnterNewProduct === true ? false : true\n )\n }\n disabled={props.isLoadingSpecialOrder}\n >\n {props.isLoadingSpecialOrder ? (\n
\n \n
\n ) : (\n \"Request\"\n )}\n \n \n Cancel\n \n
\n
\n
\n
\n \n );\n};\n\nexport default RequestSpecialOrder;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Form,\n Row,\n Col,\n Card,\n Container,\n Table,\n InputGroup,\n FormControl,\n} from \"react-bootstrap\";\n\nconst SpecialOrderNotes = (props) => {\n const returnUser = (id) => {\n const user = props.users.find((x) => x.id === id);\n if (user) {\n return user.firstName + \" \" + user.lastName;\n }\n return \"\";\n };\n\n const renderTableData = () => {\n return (\n props.data &&\n props.data?.length > 0 &&\n props.data.map((log, index) => {\n const { note, userId, id, dateCreated } = log;\n const createdDate = new Date(dateCreated);\n return (\n \n {note}\n \n {userId === 0\n ? \"System\"\n : returnUser(userId) === \"Admin Admin\"\n ? \"Admin\"\n : returnUser(userId)}\n \n {createdDate.toLocaleString()}\n \n props.deleteSpecialOrderNote(id)}\n >\n Delete\n \n toggleEditSpecialOrderNote(id)}\n >\n Edit\n \n \n \n );\n })\n );\n };\n\n const toggleEditSpecialOrderNote = (id) => {\n props.setSelectedNote(\n props.data.find((note) => {\n return note.id === id;\n })\n );\n props.setIsEditNote(!props.isEdit);\n };\n\n const handleCancelEditSpecialOrderNote = () => {\n props.setSelectedNote(null);\n props.setIsEditNote(!props.isEdit);\n };\n\n const returnInput = () => {\n if (props.isEditNote) {\n return (\n \n \n props.setSelectedNote({\n ...props.selectedNote,\n note: e.target.value,\n })\n }\n />\n \n );\n } else if (props.isAddNote) {\n return (\n \n \n props.setSelectedNote({\n note: e.target.value,\n id: 0,\n specialOrderId: props.orderId,\n userId: props.user.id,\n })\n }\n />\n \n );\n } else {\n return null;\n }\n };\n\n return (\n \n Order Notes\n \n \n {props.data?.length === 0 && !props.isAddNote ? (\n
\n

No Notes

\n
\n ) : props.isEditNote || props.isAddNote ? (\n returnInput()\n ) : (\n <>\n \n \n \n \n \n \n \n \n {renderTableData()}\n \n )}\n
NoteCreated byCreated Date\n Actions\n
\n {!props.isEditNote &&\n (props.isAddNote ? null : (\n \n ))}\n
\n
\n );\n};\n\nexport default SpecialOrderNotes;\n","import React, { useEffect, useState } from \"react\";\nimport { Button, Form, Row, Col, Card, Container } from \"react-bootstrap\";\nimport SpecialOrderNotes from \"./SpecialOrderNotes\";\nimport { getPermission } from \"../../utils/Permissions\";\nimport { SPECIALORDERS_EDIT } from \"constants/Permissions\";\n\nconst UpdateSpecialOrder = (props) => {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1300px\");\n document.documentElement.style.setProperty(\"--modal-width-tablet\", \"50%\");\n }, []);\n\n const returnRequestedBy = (id) => {\n const user = props.users.find((x) => x.id === id);\n if (user) {\n return user.firstName + \" \" + user.lastName;\n }\n return \"\";\n };\n\n const returnStatus = (statusId) => {\n switch (statusId) {\n case 1:\n return \"New\";\n case 2:\n return \"Approved\";\n case 3:\n return \"Rejected\";\n case 4:\n return \"POCreated\";\n default:\n return \"\";\n }\n };\n\n const returnLocation = (locationId) => {\n return props.locations.find((x) => x.id === locationId)?.value;\n };\n\n return (\n <>\n
\n \n \n <>\n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {/* {props.error.name && } */}\n \n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {/* {props.error.name && } */}\n \n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {/* {props.error.name && } */}\n \n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {/* {props.error.name && } */}\n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n {/* props.handleSpecialOrderInputChange(e)}*/}\n {/* // onBlur={(e) => props.validateInput(\"name\", e.target.value)}*/}\n {/* />*/}\n {/* */}{/* {props.error.name && } */}\n {/* */}\n {/**/}\n\n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n {/* {props.error.name && } */}\n \n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n \n \n \n \n \n props.handleSpecialOrderInputChange(e)}\n // onBlur={(e) => props.validateInput(\"name\", e.target.value)}\n />\n \n \n \n \n \n \n \n
\n {props.isAdmin && !props.isAddNote && !props.isEditNote && (\n <>\n \n Approve\n \n \n Reject\n \n \n )}\n \n {!props.isEditNote && !props.isAddNote\n ? \"Save\"\n : !props.isAddNote\n ? \"Update\"\n : \"Add\"}\n \n \n Cancel\n \n
\n
\n
\n
\n
\n \n );\n};\n\nexport default UpdateSpecialOrder;\n","import { formLabelClasses } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { Button, Form, Row, Col, Card, Container } from \"react-bootstrap\";\n\nconst RejectionReasonModal = (props) => {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"500px\");\n document.documentElement.style.setProperty(\"--modal-width-tablet\", \"50%\");\n }, []);\n\n return (\n <>\n
\n \n \n \n \n \n \n Rejection Reason\n {\n props.setSelectedSpecialOrder({\n ...props.selectedSpecialOrder,\n rejectionReason: e.target.value,\n });\n }}\n />\n \n \n \n \n \n \n props.handleRejectSpecialOrder()}\n >\n Confirm\n \n props.handleCloseRejectionReasonModal(false)}\n >\n Cancel\n \n \n \n \n \n \n
\n \n );\n};\n\nexport default RejectionReasonModal;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport SpecialOrdersTable from \"components/SpecialOrders/SpecialOrdersTable\";\nimport RequestSpecialOrder from \"components/SpecialOrders/RequestSpecialOrder\";\nimport UpdateSpecialOrder from \"components/SpecialOrders/UpdateSpecialOrder\";\nimport RejectionReasonModal from \"components/SpecialOrders/RejectionReasonModal\";\nimport CustomModal from \"../../components/Shared/CustomModal\";\nimport { useSelector } from \"react-redux\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport Swal from \"sweetalert2\";\n\nimport { Container } from \"react-bootstrap\";\n\nconst SpecialOrders = () => {\n const user = useSelector((state) => state.user);\n\n const [isAdmin, setIsAdmin] = useState(false);\n const [specialOrdersData, setSpecialOrdersData] = useState(null);\n const [selectedSpecialOrder, setSelectedSpecialOrder] = useState(null);\n const [productsData, setProductsData] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [selectedProduct, setSelectedProduct] = useState(null);\n const [specialOrderNotes, setSpecialOrderNotes] = useState([]);\n const [showSpecialOrderNotes, setShowSpecialOrderNotes] = useState(false);\n const [isEditNote, setIsEditNote] = useState(false);\n const [isAddNote, setIsAddNote] = useState(false);\n const [selectedNote, setSelectedNote] = useState(null);\n const [users, setUsers] = useState([]);\n const [locations, setLocations] = useState([]);\n let cleanSpecialOrder = {\n id: 0,\n locationId: 0,\n productId: 0,\n productName: \"\",\n productLink: \"\",\n productDescription: \"\",\n quantity: 1,\n brandCode: \"\",\n colour: \"\",\n size: \"\",\n requestedById: 0,\n approvedById: 0,\n statusId: 0,\n rejectedReason: \"\",\n purchaseOrderNumber: \"\",\n };\n const [newSpecialOrder, setNewSpecialOrder] = useState(cleanSpecialOrder);\n // handle add new modal\n const [showRequestSpecialOrderModal, setShowRequestSpecialOrderModal] =\n useState(false);\n // handle update modal\n const [showUpdateSpecialOrderModal, setShowUpdateSpecialOrderModal] =\n useState(false);\n\n // special order products table\n const [page, setPage] = useState(0);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n const [hasMore, setHasMore] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const [data, setData] = useState([]); // data for infinite scroll\n\n useEffect(() => {\n fetchAllUsers();\n if (user) {\n setIsAdmin(user.roleName === \"Admin\");\n fetchAllSpecialOrders(user.roleName === \"Admin\");\n fetchProducts();\n fetchLocations();\n }\n }, [user]);\n\n const fetchAllSpecialOrders = async (isAdmin) => {\n try {\n let location = user.locationId;\n if (isAdmin) {\n location = 0;\n }\n let url = `/SpecialOrder/GetAll?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&locationid=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n setSpecialOrdersData(body);\n } catch (err) {}\n };\n\n //request special order\n const [isLoadingSpecialOrder, setIsLoadingSpecialOrder] = useState(false);\n const requestSpecialOrder = async (isExisting) => {\n if (\n newSpecialOrder.locationId === null ||\n newSpecialOrder.locationId === 0\n ) {\n showSweetAlert(\"warningOkOnly\", \"Please select a location.\");\n return;\n }\n\n if (isExisting) {\n if (selectedProduct === null) {\n showSweetAlert(\"warningOkOnly\", \"Please select a product.\");\n return;\n }\n }\n\n if (!isExisting) {\n if (\n newSpecialOrder.productDescription === \"\" ||\n newSpecialOrder.productName === \"\" ||\n newSpecialOrder.productLink === \"\" ||\n newSpecialOrder.brandCode === \"\" ||\n newSpecialOrder.colour === \"\" ||\n newSpecialOrder.size === \"\" ||\n newSpecialOrder.locationId === null ||\n newSpecialOrder.locationId === 0\n ) {\n showSweetAlert(\n \"warningOkOnly\",\n \"Please fill in all fields when requesting a new special order.\"\n );\n return;\n }\n }\n\n if (newSpecialOrder.quantity === null || newSpecialOrder.quantity <= 0) {\n showSweetAlert(\"warningOkOnly\", \"Please enter a valid quantity.\");\n return;\n }\n\n try {\n let url = `/SpecialOrder/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n let data;\n if (!isExisting) {\n data = { ...newSpecialOrder, requestedById: user.id };\n } else {\n data = {\n id: 0,\n locationId: newSpecialOrder.locationId,\n // locationName: newSpecialOrder.locationName,\n productId: selectedProduct.id ?? 0,\n productName: selectedProduct.name ?? \"\",\n productLink: selectedProduct.productLink ?? \"\",\n productDescription: selectedProduct.description ?? \"\",\n quantity: newSpecialOrder.quantity ?? 1,\n requestedById: user.id,\n approvedById: 0,\n statusId: 0,\n purchaseOrderNumber: selectedProduct.purchaseOrderNumber ?? \"\",\n brandCode: selectedProduct.brandCode ?? \"\",\n colour: selectedProduct.colour ?? \"\",\n size: selectedProduct.size ?? \"\",\n rejectedReason: \"\",\n };\n }\n\n setIsLoadingSpecialOrder(true);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n\n const body = await response.json();\n // setSpecialOrdersData(body);\n\n if (response.status === 200) {\n showSweetAlert(\"success\", \"Special Order Requested Successfully\");\n handleCloseSpecialOrderModal();\n fetchAllSpecialOrders(isAdmin);\n setIsLoadingSpecialOrder(false);\n } else {\n setIsLoadingSpecialOrder(false);\n showSweetAlert(\"serverError\");\n }\n\n setNewSpecialOrder(cleanSpecialOrder);\n setSelectedProduct(null);\n } catch (err) {}\n };\n\n const handleProductSearch = (value) => {\n setSearch(value);\n };\n\n const pageRef = React.useRef(page);\n const handlePageChange = (newPage) => {\n pageRef.current = newPage;\n setPage(newPage);\n };\n\n const fetchProducts = async () => {\n try {\n const userToken = localStorage.getItem(\"userToken\");\n const userId = localStorage.getItem(\"userId\");\n\n let url = `/Product/GetAllPaged?userId=${userId}&userToken=${userToken}&skip=${skip}&take=${take}&locationId=${0}&brandId=${0}&seasonId=${0}&genderId=${0}&categoryId=${0}&statusId=${0}&includeArchived=${false}&search${search}&orderBy=${\"DateCreated\"}&descending=${true}`;\n\n const response = await fetch(url);\n const body = await response.json();\n setProductsData(body.data);\n\n // setSpecialOrdersData(body);\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateProductData = async () => {\n try {\n handlePageChange(page + 1);\n let url = `/Product/GetAllPaged?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&skip=${\n pageRef.current * take + skip\n }&take=${take}&locationId=${0}&brandId=${0}&seasonId=${0}&genderId=${0}&categoryId=${0}&statusId=${0}&search=${search}&orderBy=${\"DateCreated\"}&descending=${true}&includeArchived=${false}`;\n const response = await fetch(url);\n const body = await response.json();\n setTimeout(() => {\n setProductsData(productsData.concat(body.data));\n if (body.data.length == 0) {\n setHasMore(false);\n }\n }, 500);\n } catch (err) {}\n };\n\n // ### HOOKS ###\n useMemo(async () => {\n handlePageChange(0);\n try {\n setProductsData([]);\n setIsLoading(true);\n let url = `/Product/GetAllPaged?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&skip=${\n page * take + skip\n }&take=${take}&locationId=${0}&brandId=${0}&seasonId=${0}&genderId=${0}&categoryId=${0}&statusId=${0}&search=${search}&orderBy=${\"DateCreated\"}&descending=${true}&includeArchived=${false}`;\n const response = await fetch(url);\n const body = await response.json();\n setProductsData(body.data);\n setIsLoading(false);\n } catch (err) {\n setIsLoading(false);\n }\n }, [search]);\n\n const handleCloseSpecialOrderModal = () => {\n setShowRequestSpecialOrderModal(false);\n setNewSpecialOrder(cleanSpecialOrder);\n setSelectedProduct(null);\n };\n const handleOpenSpecialOrderModal = () => {\n setShowRequestSpecialOrderModal(true);\n };\n\n const handleCloseUpdateSpecialOrderModal = () => {\n if (isAddNote) {\n setIsAddNote(false);\n setSelectedNote(null);\n return;\n }\n if (isEditNote) {\n setSelectedNote(null);\n setIsEditNote(false);\n return;\n }\n\n setNewSpecialOrder(cleanSpecialOrder);\n setShowUpdateSpecialOrderModal(false);\n setSelectedSpecialOrder(null);\n setSelectedNote(null);\n setSpecialOrderNotes([]);\n };\n const handleOpenUpdateSpecialOrderModal = () => {\n setShowUpdateSpecialOrderModal(true);\n };\n\n const returnSpecialOrderSingle = (id) => {\n setSelectedSpecialOrder(specialOrdersData.find((order) => order.id === id));\n fetchSpecialOrderNotes(id);\n };\n\n const fetchSpecialOrderNotes = async (id) => {\n try {\n let url = `/SpecialOrderNote/GetAll?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&specialOrderId=${id}`;\n const response = await fetch(url);\n const body = await response.json();\n setSpecialOrderNotes(body);\n // setSpecialOrdersData(body);\n } catch (err) {\n console.error(err);\n }\n };\n\n const addSpecialOrderNote = async () => {\n try {\n let url = `/SpecialOrderNote/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(selectedNote),\n });\n const body = await response.json();\n showSweetAlert(\"success\", \"Special Order Note Added Successfully\");\n fetchSpecialOrderNotes(selectedSpecialOrder.id);\n handleCloseUpdateSpecialOrderModal();\n // setSpecialOrdersData(body);\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateSpecialOrderNote = async () => {\n try {\n let url = `/SpecialOrderNote/Update?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(selectedNote),\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert(\"success\", \"Note Updated Successfully\");\n fetchSpecialOrderNotes(selectedSpecialOrder.id);\n handleCloseUpdateSpecialOrderModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const deleteSpecialOrderNote = async (id) => {\n showSweetAlert(\n \"warning\",\n \"Are you sure you want to delete this note?\",\n () => {\n confirmDeleteSpecialOrderNote(id);\n }\n );\n };\n\n const confirmDeleteSpecialOrderNote = async (id) => {\n try {\n let url = `/SpecialOrderNote/Delete?id=${id}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"DELETE\",\n });\n const body = await response.json();\n showSweetAlert(\"success\", \"Special Order Note Deleted Successfully\");\n handleCloseSpecialOrderModal();\n fetchSpecialOrderNotes(selectedSpecialOrder.id);\n // setSpecialOrdersData(body);\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleShowSpecialOrderNotes = (id) => {\n setShowSpecialOrderNotes(!showSpecialOrderNotes);\n };\n\n const handleUpdateSpecialOrder = async () => {\n try {\n const url = `SpecialOrder/Update?id=${\n selectedSpecialOrder.id\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n let locationName;\n if (selectedSpecialOrder.locationId === 0) {\n locationName = \"\";\n } else {\n locationName =\n locations.find((x) => x.id === selectedSpecialOrder.locationId)\n .value ?? \"\";\n }\n\n const data = {\n ...selectedSpecialOrder,\n locationName: locationName,\n purchaseOrderId: parseInt(selectedSpecialOrder.purchaseOrderId),\n };\n\n const response = await fetch(url, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n const body = await response.json();\n if (body) {\n showSweetAlert(\"success\", \"Special Order Updated Successfully\");\n fetchAllSpecialOrders(isAdmin);\n handleCloseUpdateSpecialOrderModal();\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (err) {}\n };\n\n const handleApproveSpecialOrder = async () => {\n try {\n const url = `SpecialOrder/Approve?id=${\n selectedSpecialOrder.id\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert(\"success\", \"Special Order Approved Successfully\");\n handleCloseUpdateSpecialOrderModal();\n fetchAllSpecialOrders(isAdmin);\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleRejectSpecialOrder = async () => {\n try {\n const url = `SpecialOrder/Reject?id=${\n selectedSpecialOrder.id\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&rejectedReason=${\n selectedSpecialOrder.rejectionReason\n }`;\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n const body = await response.json();\n if (response.status === 200) {\n showSweetAlert(\"success\", \"Special Order Rejected Successfully\");\n handleCloseUpdateSpecialOrderModal();\n handleCloseRejectionReasonModal(true);\n fetchAllSpecialOrders(isAdmin);\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (err) {\n console.error(err);\n }\n };\n\n const handleSpecialOrderInputChange = (e) => {\n setSelectedSpecialOrder({\n ...selectedSpecialOrder,\n [e.target.name]: e.target.value,\n });\n };\n\n const handleAddSpecialOrderNote = () => {\n setIsAddNote(true);\n };\n\n const fetchAllUsers = async () => {\n try {\n let url = `/user/getall?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const users = await response.json();\n setUsers(users);\n } catch (err) {}\n };\n\n const fetchLocations = async () => {\n try {\n let url = `/location/getdropdownlist?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n\n data.concat({ id: 0, value: \"label\" });\n setLocations(data);\n } catch (err) {}\n };\n\n const [showRejectionReasonModal, setShowRejectionReasonModal] =\n useState(false);\n const handleCloseRejectionReasonModal = (isConfirm) => {\n setShowRejectionReasonModal(false);\n if (!isConfirm) {\n setShowUpdateSpecialOrderModal(true);\n }\n setSelectedSpecialOrder({\n ...selectedSpecialOrder,\n rejectionReason: \"\",\n });\n };\n const handleOpenRejectionReasonModal = () => {\n setShowUpdateSpecialOrderModal(false);\n setShowRejectionReasonModal(true);\n };\n\n return (\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default SpecialOrders;\n","import React, { useEffect, useState } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n CardHeader,\n} from \"react-bootstrap\";\nimport StocktakeLinesTable from \"./StocktakeLinesTable\";\n\nfunction StocktakeLineModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1400px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n return (\n <>\n {alert}\n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport default StocktakeLineModal;\n","import React, {useState} from \"react\";\nimport {\n OverlayTrigger,\n Table,\n Card,\n Col,\n Row,\n Button,\n Form,\n Tooltip,\n} from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nimport {formatCurrency} from 'utils/FormatCurrency.js';\n\nconst StocktakeTable = (props) => {\n console.log(\"props\", props)\n const returnTableData = () => {\n return props.data.map((stocktake, index) => {\n if (stocktake === null || stocktake === undefined) return;\n const {\n SKU,\n id,\n locationId,\n dateOpened,\n dateCompleted,\n dateClosed,\n statusId,\n userId,\n status,\n brandId,\n scanned,\n variance,\n varianceCost,\n gender,\n startingStockOnHand,\n stocktakeNumber,\n accuracyRate\n } = stocktake;\n\n const getLocationName = () => {\n const location = props.locations.find(\n (location) => location.id === locationId\n );\n return location ? location.value : null;\n };\n\n const getUserName = () => {\n const user = props.users.find((user) => user.id === userId);\n return user ? user.value : null;\n };\n\n return (\n \n \n props.getStocktakeLine(id)}>\n {id}\n \n \n {getLocationName()}\n {stocktakeNumber}\n {getUserName()}\n {gender}\n {status}\n {startingStockOnHand}\n {scanned}\n {variance}\n {formatCurrency(varianceCost)}\n {accuracyRate ? accuracyRate + \"%\" : \"N/A\"}\n \n e.preventDefault()}\n overlay={Remove Line}\n >\n props.handleDeleteStocktake(id)}\n >\n \n \n \n \n \n );\n });\n };\n\n return (\n <>\n \n \n \n Stocktake\n
\n props.handleShowCreateStocktakeModal()}\n >\n Create Stocktake\n \n
\n \n
\n \n {props.data && props.data.length == 0 && !props.isLoading && (\n \n No data found.\n

\n )}\n {props.data && props.data.length > 0 && !props.isLoading && (\n \n = props.take ? (\n
Loading more data...
\n ) : (\n \"\"\n )\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {returnTableData()}\n
IDLocationStocktake NumberOpened ByGenderStatusStockScannedVarianceVariance CostAccuracyActions
\n \n \n )}\n
\n
\n \n );\n};\n\nexport default StocktakeTable;\n","import React, { useEffect, useState } from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n CardHeader,\n} from \"react-bootstrap\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport CustomAutoComplete from \"components/Shared/CustomAutoComplete\";\n\nfunction CreateStocktakeModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"650px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n return (\n <>\n {alert}\n \n \n \n \n Create Stocktake\n \n \n \n \n \n \n {\n let item = {\n ...props.newStocktake,\n locationId: e.value,\n };\n props.setNewStocktake(item);\n }}\n />\n \n \n \n \n \n \n \n {\n const newItem = {\n id: item.value,\n value: item.label,\n };\n props.setNewStocktake({\n ...props.newStocktake,\n brandIds: [...props.newStocktake.brandIds, newItem],\n });\n }}\n handleRemoveItem={(item) => {\n props.setNewStocktake({\n ...props.newStocktake,\n brandIds: [\n ...props.newStocktake.brandIds.filter(\n (i) => i.id !== item.id\n ),\n ],\n });\n }}\n />\n \n \n \n \n \n \n \n {\n let item = {\n ...props.newStocktake,\n genderId: e.value,\n };\n props.setNewStocktake(item);\n }}\n withAll={true}\n />\n \n \n \n \n \n
\n {\n props.handleCreateStocktake();\n }}\n >\n Create\n \n
\n
\n
\n \n
\n \n );\n}\nexport default CreateStocktakeModal;\n","import React, { useEffect } from \"react\";\nimport { Card, Col, Container, Table, Button } from \"react-bootstrap\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\n\nconst StocktakeAnalysisModal = (props) => {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1000px\");\n }, []);\n\n const returnTable = () => {\n return (\n props.data &&\n props.data.map((item, index) => {\n const {\n productId,\n productName,\n brandCode,\n colour,\n size,\n barcode,\n sku,\n lastScannedDate,\n } = item;\n\n const date = new Date(lastScannedDate);\n const formattedDate = date.toLocaleDateString(\"en-GB\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"2-digit\",\n });\n\n return (\n \n {sku}\n {productName}\n {brandCode}\n {colour}\n {size}\n {barcode}\n {formattedDate}\n \n );\n })\n );\n };\n\n return (\n <>\n \n \n \n Stocktake Analysis\n \n \n {/* todo - if there is data BUT its also 0 scanned then show diff message */}\n \n {props.data && props.data.length == 0 && !props.isLoading && (\n \n No data found.\n

\n )}\n {props.data && props.data.length > 0 && !props.isLoading && (\n \n = props.take ? (\n
Loading more data...
\n ) : (\n \"\"\n )\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n {returnTable()}\n
SKUNameBrand CodeColourSizeBarcodeLast Scanned
\n \n \n )}\n
\n \n
\n \n );\n};\n\nexport default StocktakeAnalysisModal;\n","import React, {useEffect, useState} from \"react\";\nimport CustomTable from \"components/Shared/CustomTable\";\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Spinner,\n Form,\n CardHeader,\n} from \"react-bootstrap\";\n\nfunction ApproveAdjustmentsModal(props) {\n const {additionalCost, additionalUnits, writeOffCost, writeOffUnits} =\n props.adjustmentCalculationsData;\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"600px\");\n }, []);\n\n var hasPermission = false;\n var permissions = localStorage.getItem(\"permissions\");\n\n return (\n <>\n {alert}\n \n \n \n \n Approve Adjustments\n \n \n {!props.stocktakeConfirming ? (\n
\n {writeOffUnits && writeOffCost ? (\n
\n
\n \n \n You are about to write off {writeOffUnits} units at a total cost of: £\n {writeOffCost.toFixed(2)}\n \n
\n
\n ) : additionalUnits && additionalCost ? (\n
\n
\n \n \n You are about to add {additionalUnits} units at a total cost of: £\n {additionalCost.toFixed(2)}\n \n
\n
\n ) : (\n
\n
\n There are no adjustments being made\n
\n
\n )}\n\n
\n \n Notes\n props.setAdjustmentNotes(e.target.value)}\n >\n \n
\n\n
\n
\n \n \n \n \n I confirm these changes\n \n \n
\n
\n\n \n props.handleConfirmApproveAdjustments()}\n disabled={!props.hasConsentedToAdjustments}\n >\n Confirm\n \n \n
\n ) : (\n
\n
\n \n

Loading...

\n
\n
\n )}\n
\n
\n \n
\n \n );\n}\n\nexport default ApproveAdjustmentsModal;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport StocktakeLinesTable from \"components/Stocktake/StocktakeLinesTable\";\nimport StocktakeLineModal from \"components/Stocktake/StocktakeLineModal\";\nimport StocktakeTable from \"components/Stocktake/StocktakeTable\";\nimport CreateStocktakeModal from \"components/Stocktake/CreateStocktakeModal\";\nimport StocktakeAnalysisModal from \"components/Stocktake/StocktakeAnalysisModal\";\nimport ApproveAdjustmentsModal from \"components/Stocktake/ApproveAdjustmentsModal\";\nimport { Container, Row, Col, Card } from \"react-bootstrap\";\nimport CustomModal from \"../../components/Shared/CustomModal\";\nimport DateRange from \"../../components/Shared/DateRange\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport { showSweetAlert } from \"components/Shared/CustomAlert\";\nimport WebOrdersModal from \"components/ItemCard/WebOrdersModal\";\n\nconst Stocktake = () => {\n // stock take data\n const [stocktakeData, setStockTakeData] = useState([]);\n const [selectedStocktakeId, setSelectedStocktakeId] = useState(null);\n const [selectedStocktake, setSelectedStocktake] = useState(null);\n const [selectedStocktakeStatus, setSelectedStocktakeStatus] = useState(null);\n const [selectedStocktakeLocationId, setSelectedStocktakeLocationId] =\n useState(null);\n\n // dropdown states\n const [locationDropdown, setLocationDropdown] = useState([]);\n const [brandsDropdown, setBrandsDropdown] = useState([]);\n const [statusId, setStatusId] = useState(0);\n const [genderId, setGenderId] = useState(0);\n const [gendersDropdown, setGendersDropdown] = useState([]);\n const [statusDropdown, setStatusDropdown] = useState([]);\n const [users, setUsers] = useState([]);\n\n // stocktake lines states\n const [checkedItems, setCheckedItems] = useState({});\n const [allChecked, setAllChecked] = useState(false);\n const selectAll = (data) => {\n const newCheckedItems = {};\n selectedStocktake.forEach((stocktake) => {\n newCheckedItems[stocktake.stocktakeId] = !allChecked;\n });\n setCheckedItems(newCheckedItems);\n setAllChecked(!allChecked);\n };\n\n // user selected location and brand ids for filtering\n const [locationId, setLocationId] = useState(0);\n const [brandId, setBrandId] = useState(0);\n\n // stock take line modal\n const [showStocktakeLinesModal, setShowStocktakeLinesModal] = useState(false);\n const handleShowStocktakeLinesModal = () => setShowStocktakeLinesModal(true);\n const handleCloseStocktakeLinesModal = () => {\n setSelectedStocktake(null);\n setShowStocktakeLinesModal(false);\n };\n\n // create modal\n const [showCreateStocktakeModal, setShowCreateStocktakeModal] =\n useState(false);\n const handleShowCreateStocktakeModal = () => {\n setShowCreateStocktakeModal(true);\n };\n const handleCloseCreateStocktakeModal = () => {\n setNewStocktake({\n locationId: \"\",\n brandIds: [],\n });\n setShowCreateStocktakeModal(false);\n };\n\n // todo - Stocktake Analysis Modal - Once endpoint live\n const [showStocktakeAnalysisModal, setShowStocktakeAnalysisModal] =\n useState(false);\n const [stocktakeAnalysisData, setStocktakeAnalysisData] = useState([]);\n const handleShowStocktakeAnalysisModal = async () => {\n await fetchStocktakeAnalysisData();\n setShowStocktakeAnalysisModal(true);\n };\n\n const handleCloseStocktakeAnalysisModal = () => {\n setShowStocktakeAnalysisModal(false);\n };\n\n const fetchStocktakeAnalysisData = async () => {\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const url = `/Stocktake/GetLastScannedList?userId=${userId}&userToken=${userToken}&locationId=${locationId}`;\n const response = await fetch(url);\n const body = await response.json();\n setStocktakeAnalysisData(body);\n };\n\n // approve adjustments modal\n const [showApproveAdjustmentsModal, setShowApproveAdjustmentsModal] =\n useState(false); \n const [stocktakeConfirming, setStocktakeConfirming] =\n useState(false);\n const handleShowApproveAdjustmentsModal = () => {\n /**\n * todo\n If FULL stock take (we can add a flag to the Db for this as well isFullStocktake), \n then we also need an extra message of \"As a full stocktake, your accuracy rate is xx%\" \n within the popup message.\n */\n setShowStocktakeLinesModal(false);\n setShowApproveAdjustmentsModal(true);\n };\n const [hasConsentedToAdjustments, setHasConsentedToAdjustments] =\n useState(false);\n const handleCloseApproveAdjustmentsModal = () => {\n setShowStocktakeLinesModal(true);\n setHasConsentedToAdjustments(false);\n setShowApproveAdjustmentsModal(false);\n setAdjustmentCalculationsData(null);\n setAdjustmentNotes(\"\");\n };\n const handleConsentApproveAdjustments = () => {\n setHasConsentedToAdjustments(!hasConsentedToAdjustments);\n };\n\n // on creating new stock take this will be populated and sent to serv\n const [newStocktake, setNewStocktake] = useState({\n locationId: \"\",\n brandIds: [],\n genderId: \"\",\n });\n\n // track when an adjustment has been made\n const [adjustmentMade, setAdjustmentMade] = useState(false);\n const [adjustmentCalculationsData, setAdjustmentCalculationsData] =\n useState();\n\n const handleAdjustTotal = (stocktakeLineId, totalStock) => {\n setSelectedStocktake((prev) => {\n return prev.map((line) => {\n if (line.id === stocktakeLineId) {\n return {\n ...line,\n totalStock: totalStock,\n };\n }\n return line;\n });\n });\n };\n\n const defaultDate = new Date();\n const [dateRange, setDateRange] = useState([\n defaultDate.setMonth(defaultDate.getMonth() - 3),\n new Date(),\n ]);\n\n // fetch initial data\n useEffect(() => {\n fetchLocationDropdown();\n fetchStatusDropdown();\n fetchBrandDropdownList();\n fetchGenderDropdownList();\n fetchUsers();\n }, []);\n\n useEffect(() => {\n fetchStockTakeData();\n }, [dateRange, locationId, brandId, statusId, genderId]);\n\n const fetchUsers = async () => {\n try {\n let url = `/user/getalllist?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const body = await response.json();\n const data = body?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setUsers(data);\n } catch (err) {}\n };\n\n const handleDatesChange = (dates) => {\n setDateRange(dates);\n if (dates[0] && dates[1]) {\n const filterData = originData.filter((item) => {\n return moment(item.timestamp).isBetween(\n moment(dates[0], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n moment(dates[1], \"YYYY-MM-DDTHH:mm:ssZ\").format(\n \"YYYY-MM-DDTHH:mm:ssZ\"\n ),\n null,\n \"[]\"\n );\n });\n setfilterDateData(filterData);\n localStorage.setItem(\"dateRange\", filterData);\n }\n };\n\n const fetchBrandDropdownList = async () => {\n try {\n let brandUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=2`;\n const brandResponse = await fetch(brandUrl);\n const brandBody = await brandResponse.json();\n const brandData = brandBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setBrandsDropdown(brandData);\n } catch (err) {}\n };\n\n const fetchGenderDropdownList = async () => {\n try {\n let genderUrl = `/CategoryValue/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&categoryId=1`;\n const genderResponse = await fetch(genderUrl);\n const genderBody = await genderResponse.json();\n const genderData = genderBody?.map((item) => {\n return { id: item.id, value: item.name };\n });\n setGendersDropdown(genderData);\n } catch (err) {}\n };\n\n const fetchLocationDropdown = async () => {\n try {\n let url = `/location/GetDropdownList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const locations = await response.json();\n\n setLocationDropdown(\n locations?.map((item) => {\n return { id: item.id, value: item.name };\n })\n );\n } catch (err) {}\n };\n\n const fetchStatusDropdown = async () => {\n try {\n const userId = localStorage.getItem(\"userId\");\n const userToken = localStorage.getItem(\"userToken\");\n const url = `/Stocktake/GetStatusDropdownList?userId=${userId}&userToken=${userToken}`;\n const response = await fetch(url);\n const statuses = await response.json();\n\n setStatusDropdown(\n statuses?.map((status) => {\n return { id: status.id, value: status.name };\n })\n );\n } catch (err) {\n console.log(err);\n }\n };\n\n const fetchStockTakeData = async () => {\n const fromDate = new Date(dateRange[0]).toISOString();\n const toDate = new Date(dateRange[1]).toISOString();\n\n try {\n let url = `/Stocktake/GetAll?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&locationId=${locationId}&brandId=${brandId}&genderId=${genderId}&statusId=${statusId}&from=${fromDate}&to=${toDate}`;\n\n const response = await fetch(url);\n const data = await response.json();\n setStockTakeData(data);\n } catch (error) {\n console.log(error);\n }\n };\n\n const getStocktakeLines = async (stocktakeId) => {\n try {\n let url = `/Stocktake/GetLines?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&stocktakeId=${stocktakeId}`;\n\n const response = await fetch(url);\n const data = await response.json();\n setSelectedStocktakeId(stocktakeId);\n setSelectedStocktake(data);\n setSelectedStocktakeStatus(\n stocktakeData.find((s) => s.id == stocktakeId).status\n );\n setSelectedStocktakeLocationId(\n stocktakeData.find((s) => s.id == stocktakeId).locationId\n );\n handleShowStocktakeLinesModal();\n } catch (error) {\n console.log(error);\n }\n };\n\n const handleDeleteStocktake = async (stocktakeId) => {\n showSweetAlert(\n \"warning\",\n \"Are you sure you want to delete this stocktake?\",\n () => {\n confirmDeleteStocktake(stocktakeId);\n }\n );\n };\n\n const confirmDeleteStocktake = async (stocktakeId) => {\n try {\n let url = `/Stocktake/Delete?id=${stocktakeId}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n const response = await fetch(url, {\n method: \"DELETE\",\n });\n\n if (response.status === 200) {\n fetchStockTakeData();\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (error) {\n console.log(error);\n }\n };\n\n const handleCreateStocktake = async () => {\n // validate all new fields are populated\n if (\n newStocktake.locationId === \"\" ||\n newStocktake.genderId === \"\" ||\n newStocktake.brandIds.length === 0\n ) {\n showSweetAlert(\"warningOkOnly\", \"Please fill in all fields.\");\n return;\n }\n confirmCreateStocktake();\n };\n\n const confirmCreateStocktake = async () => {\n // search the ids to check for 0 e.g. with all and send empty array\n if (newStocktake.brandIds.length > 0) {\n const containsAll = newStocktake.brandIds.find((item) => item.id === 0);\n if (containsAll) {\n newStocktake.brandIds = [];\n }\n }\n\n try {\n let url = `/Stocktake/Add?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&locationId=${\n newStocktake.locationId\n }&genderId=${newStocktake.genderId}`;\n\n const brandIds = newStocktake.brandIds.map((item) => item.id);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(brandIds),\n });\n\n if (response.status === 200) {\n showSweetAlert(\"saveSuccessCustomMessage\", \"Stocktake created\");\n fetchStockTakeData();\n } else {\n const data = await response.json();\n showSweetAlert(\"errorCustomMessage\", data);\n }\n \n handleCloseCreateStocktakeModal();\n } catch (error) {\n console.log(error);\n }\n };\n\n const handleConfirmStocktake = async (stocktakeId) => {\n if (stocktakeId === null) return;\n // make api call for the calculations\n await handleFetchConfirmationCalculations(stocktakeId);\n\n handleShowApproveAdjustmentsModal();\n };\n\n const handleFetchConfirmationCalculations = async (stocktakeId) => {\n try {\n let url = `/Stocktake/GetCompletionConfirmation?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&stocktakeId=${stocktakeId}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n });\n const data = await response.json();\n\n setAdjustmentCalculationsData(data);\n } catch (error) {\n console.log(error);\n }\n };\n\n const [adjustmentNotes, setAdjustmentNotes] = useState(\"\");\n const handleConfirmApproveAdjustments = async () => {\n setStocktakeConfirming(true);\n const stocktakeId = selectedStocktake[0].stocktakeId;\n if (stocktakeId === null) return;\n\n try {\n let url = `/Stocktake/CompleteStocktake?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&stocktakeId=${stocktakeId}¬es=${adjustmentNotes}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n });\n const data = await response.json();\n\n if (response.status === 200) {\n handleCloseApproveAdjustmentsModal();\n handleCloseStocktakeLinesModal();\n fetchStockTakeData();\n showSweetAlert(\"saveSuccessCustomMessage\", \"Stocktake completed\");\n }\n } catch (error) {\n console.log(error);\n showSweetAlert(\"errorCustomMessage\", \"Something went wrong saving the stocktake\");\n } finally {\n setStocktakeConfirming(false);\n }\n };\n\n const handleSaveVariances = async () => {\n const variancesArray = selectedStocktake.map((item) => {\n return {\n stocktakeLineId: item.id,\n totalStock: item.totalStock,\n };\n });\n\n if (\n variancesArray === undefined ||\n variancesArray.length === 0 ||\n variancesArray[0] === null ||\n variancesArray[0] === undefined\n ) {\n return;\n }\n\n showSweetAlert(\n \"warning\",\n \"Are you sure you want to save the changes?\",\n () => {\n confirmSave();\n }\n );\n\n const confirmSave = async () => {\n try {\n let url = `/Stocktake/SaveStocktakeVariances?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(variancesArray),\n });\n\n if (response.status === 200) {\n showSweetAlert(\"saveSuccess\", `Adjustments saved successfully`);\n getStocktakeLines(selectedStocktakeId)\n fetchStockTakeData();\n } else {\n showSweetAlert(\"serverError\");\n }\n } catch (error) {\n console.log(error);\n showSweetAlert(\"serverError\");\n }\n };\n };\n\n const handleSelectLocation = (id) => {\n setLocationId(id);\n };\n\n const handleSelectBrand = (id) => {\n setBrandId(id);\n };\n\n const handleInTransitClick = (type, id, locationId) => {\n // display the web modal - don't navigate\n handleGetItemCardWebOrderInfo(type, id, locationId);\n setShowWebOrdersModal(true);\n setShowStocktakeLinesModal(false);\n };\n\n const [showWebOrdersModal, setShowWebOrdersModal] = useState(false);\n const [selectedProductId, setSelectedProductId] = useState(0);\n const [itemCardWebOrderInfo, setItemCardWebOrderInfo] = useState([]);\n const [itemCardWebOrderInfoType, setItemCardWebOrderInfoType] = useState(\"\");\n \n const handleShowWebOrdersModal = () => {\n setShowStocktakeLinesModal(false);\n setShowWebOrdersModal(true);\n };\n\n const handleHideWebOrdersModal = () => {\n setShowWebOrdersModal(false);\n setShowStocktakeLinesModal(true);\n };\n\n const handleGetItemCardInTransitList = async (id, location) => {\n if (!id || !location) return;\n try {\n const url = `/ItemCard/GetInTransitList?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\n \"userToken\"\n )}&productId=${id}&locationId=${location}`;\n const response = await fetch(url);\n const body = await response.json();\n return body;\n } catch (err) {\n showSweetAlert(\"serverError\");\n }\n };\n\n const handleGetItemCardWebOrderInfo = async (type, productId, locationId) => {\n setSelectedProductId(productId);\n // only need to show in transit for now from this view - keeping the code in case we need it later\n switch (type) {\n case \"onHand\":\n // do nothing\n break;\n // case \"Committed\":\n // setItemCardWebOrderInfo(\n // await handleGetItemCardCommittedList(productId, locationId)\n // );\n // setItemCardWebOrderInfoType(\"Committed\");\n // break;\n case \"InTransit\":\n setItemCardWebOrderInfo(\n await handleGetItemCardInTransitList(productId, locationId)\n );\n setItemCardWebOrderInfoType(\"In Transit\");\n break;\n // case \"Sold\":\n // setItemCardWebOrderInfo(\n // await handleGetItemCardSoldList(productId, locationId)\n // );\n // setItemCardWebOrderInfoType(\"Sold\");\n // break;\n default:\n break;\n }\n };\n\n return (\n <>\n {/* web orders modal for in transit stocktake lines */}\n \n \n \n {/* stock take analysis modal */}\n \n \n \n {/* approve adjustments modal */}\n \n \n \n {/* stock take create modal */}\n \n \n \n {/* stock take line modal */}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n handleSelectLocation(e.value)}\n withAll={true}\n />\n \n \n handleSelectBrand(e.value)}\n withAll={true}\n />\n \n \n setStatusId(e.value)}\n withAll={true}\n />\n \n \n setGenderId(e.value)}\n withAll={true}\n />\n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n );\n};\n\nexport default Stocktake;\n","import UserPage from \"views/Pages/UserPage.js\";\nimport LoginPage from \"views/Pages/LoginPage.js\";\nimport Products from \"views/Elysium/Products.js\";\nimport Suppliers from \"views/Elysium/Suppliers.js\";\nimport Locations from \"views/Elysium/Locations.js\";\nimport {\n ADMIN_USERMANAGEMENT_VIEW,\n AUDITLOG_VIEW,\n SUPPLIER_VIEW,\n LABELS_VIEW,\n LOCATION_VIEW,\n PRODUCTS_VIEW,\n PURCHASEORDER_VIEW,\n CATEGORIES_VIEW,\n MOVEMENTS_VIEW,\n BUYERS_VIEW,\n BULKUPDATE_VIEW,\n ORDERS_VIEW,\n SPECIALORDERS_VIEW,\n STOCKTAKE_VIEW,\n} from \"constants/Permissions.js\";\n\n// User Management\nimport UserManagement from \"views/Elysium/UserManagement.js\";\nimport AccountManagement from \"views/Elysium/AccountManagement.js\";\nimport AuditLog from \"views/Elysium/AuditLog.js\";\nimport Categories from \"views/Elysium/Category.js\";\nimport ResetPasswordPage from \"./views/Pages/ResetPasswordPage\";\nimport PurchaseOrders from \"./views/Elysium/PurchaseOrder.js\";\nimport PurchaseOrderMapping from \"./views/Elysium/PurchaseOrderMapping.js\";\nimport Movements from \"./views/Elysium/Movements\";\nimport Orders from \"./views/Elysium/Orders\";\nimport Labels from \"./views/Elysium/Labels\";\nimport AutoReplenishment from \"views/Elysium/AutoReplenishment\";\nimport Buyers from \"views/Elysium/Buyers\";\nimport BulkUpdate from \"views/Elysium/BulkUpdate\";\nimport SpecialOrders from \"views/Elysium/SpecialOrders\";\nimport Stocktake from \"views/Elysium/Stocktake\";\nvar routes = [\n {\n path: \"/manage-products\",\n name: \"Products\",\n permission: PRODUCTS_VIEW,\n icon: \"nc-icon nc-layers-3 icon-bold\",\n component: Products,\n },\n {\n path: \"/po-list\",\n name: \"Purchase Orders\",\n permission: PURCHASEORDER_VIEW,\n icon: \"nc-icon nc-money-coins icon-bold\",\n component: PurchaseOrders,\n },\n {\n path: \"/manage-categories\",\n name: \"Categories\",\n permission: CATEGORIES_VIEW,\n icon: \"nc-icon nc-bullet-list-67 icon-bold\",\n component: Categories,\n },\n {\n path: \"/manage-locations\",\n name: \"Locations\",\n permission: LOCATION_VIEW,\n icon: \"nc-icon nc-square-pin icon-bold\",\n component: Locations,\n },\n {\n path: \"/print-labels\",\n name: \"Labels\",\n permission: LABELS_VIEW,\n icon: \"nc-icon nc-tag-content icon-bold\",\n component: Labels,\n },\n {\n path: \"/manage-suppliers\",\n name: \"Suppliers\",\n permission: SUPPLIER_VIEW,\n icon: \"nc-icon nc-delivery-fast icon-bold\",\n component: Suppliers,\n },\n {\n path: \"/audit-log\",\n name: \"Audit Logs\",\n permission: AUDITLOG_VIEW,\n icon: \"nc-icon nc-notes icon-bold\",\n component: AuditLog,\n },\n {\n path: \"/special-orders\",\n name: \"Special Orders\",\n permission: SPECIALORDERS_VIEW,\n icon: \"nc-icon nc-ruler-pencil icon-bold\",\n component: SpecialOrders,\n },\n {\n path: \"/orders\",\n name: \"Orders\",\n permission: ORDERS_VIEW,\n icon: \"nc-icon nc-satisfied icon-bold\",\n component: Orders,\n },\n {\n path: \"/manage-movements\",\n name: \"Movements\",\n permission: MOVEMENTS_VIEW,\n icon: \"nc-icon nc-refresh-02 icon-bold\",\n component: Movements,\n },\n {\n path: \"/buyers\",\n name: \"Buyers App\",\n permission: BUYERS_VIEW,\n icon: \"nc-icon nc-cart-simple icon-bold\",\n component: Buyers,\n },\n {\n path: \"/stocktake\",\n name: \"Stocktake\",\n permission: STOCKTAKE_VIEW,\n icon: \"nc-icon nc-cart-simple icon-bold\",\n component: Stocktake,\n },\n {\n path: \"/bulk-update\",\n name: \"Bulk Update\",\n permission: BULKUPDATE_VIEW,\n icon: \"nc-icon nc-cloud-upload-94 icon-bold\",\n component: BulkUpdate,\n },\n\n // //non nav\n {\n path: \"/admin/manage-user\",\n name: \"User Management\",\n icon: \"nc-icon nc-watch-time\",\n permission: ADMIN_USERMANAGEMENT_VIEW,\n component: UserManagement,\n },\n {\n path: \"/po-mappings\",\n layout: \"/admin\",\n name: \"Mappings\",\n component: PurchaseOrderMapping,\n hidden: true,\n },\n {\n path: \"/manage-account\",\n name: \"Account Management\",\n icon: \"nc-icon nc-watch-time\",\n component: AccountManagement,\n },\n {\n path: \"/auth/user-page\",\n layout: \"/auth\",\n name: \"User Page\",\n component: UserPage,\n },\n {\n path: \"/auth/login\",\n layout: \"/auth\",\n name: \"Login\",\n component: LoginPage,\n },\n {\n path: \"/auth/reset-password\",\n layout: \"/auth\",\n name: \"Reset Password\",\n component: ResetPasswordPage,\n },\n];\nexport default routes;\n","import React from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\n// react-bootstrap components\nimport {\n Badge,\n Button,\n Card,\n Navbar,\n Nav,\n Container,\n Col,\n} from \"react-bootstrap\";\n\nimport Footer from \"components/Footers/Footer.js\";\n\n// dinamically create auth routes\nimport routes from \"routes.js\";\n\nfunction Auth() {\n const getRoutes = (routes) => {\n return routes.map((prop, key) => {\n if (prop.collapse) {\n return getRoutes(prop.views);\n }\n if (prop.path.includes(\"/auth\")) {\n return (\n \n );\n } else {\n return null;\n }\n });\n };\n return (\n <>\n
\n {getRoutes(routes)}\n
\n
\n \n );\n}\n\nexport default Auth;\n","import React from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\n// react-bootstrap components\nimport {\n Badge,\n Button,\n ButtonGroup,\n Card,\n Collapse,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Pagination,\n Container,\n Row,\n Col,\n} from \"react-bootstrap\";\n\nfunction Sidebar({ routes, image, background }) {\n const dispatch = useDispatch();\n const isFavourites = useSelector((state) => state.isFavourites);\n const isSideBarMini = useSelector((state) => state.isSideBarMini);\n // to check for active links and opened collapses\n let location = useLocation();\n // this is for the user collapse\n const [userCollapseState, setUserCollapseState] = React.useState(false);\n // this is for the rest of the collapses\n const [state, setState] = React.useState({});\n React.useEffect(() => {\n setState(getCollapseStates(routes));\n }, []);\n // this creates the intial state of this component based on the collapse routes\n // that it gets through routes prop\n const getCollapseStates = (routes) => {\n let initialState = {};\n routes.map((prop, key) => {\n if (prop.collapse) {\n initialState = {\n [prop.state]: getCollapseInitialState(prop.views),\n ...getCollapseStates(prop.views),\n ...initialState,\n };\n }\n return null;\n });\n return initialState;\n };\n // this verifies if any of the collapses should be default opened on a rerender of this component\n // for example, on the refresh of the page,\n // while on the src/views/forms/RegularForms.jsx - route /admin/regular-forms\n const getCollapseInitialState = (routes) => {\n for (let i = 0; i < routes.length; i++) {\n if (routes[i].collapse && getCollapseInitialState(routes[i].views)) {\n return true;\n } else if (location.pathname === routes[i].path) {\n return true;\n }\n }\n return false;\n };\n // this function creates the links and collapses that appear in the sidebar (left menu)\n const createLinks = (routes) => {\n return routes.map((prop, key) => {\n if (prop.redirect || prop.hidden) {\n return null;\n }\n if (prop.collapse) {\n var st = {};\n st[prop[\"state\"]] = !state[prop.state];\n return (\n \n {\n e.preventDefault();\n setState({ ...state, ...st });\n }}\n aria-expanded={state[prop.state]}\n >\n \n

\n {prop.name} \n

\n \n \n
\n \n
\n
\n \n );\n }\n return (\n \n \n {prop.icon ? (\n <>\n \n

{prop.name}

\n \n ) : (\n <>\n {/* {prop.mini}*/}\n {prop.name}\n \n )}\n
\n \n );\n });\n };\n // verifies if routeName is the one active (in browser input)\n const activeRoute = (routeName) => {\n return location.pathname === routeName ? \"active\" : \"\";\n };\n return (\n <>\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
{(localStorage.getItem(\"AppName\")) !== \"Orange Square\" ? localStorage.getItem(\"AppName\") : \"\" }
\n \n
\n \n \n );\n}\n\nlet linkPropTypes = {\n path: PropTypes.string,\n layout: PropTypes.string,\n name: PropTypes.string,\n component: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n};\n\nSidebar.defaultProps = {\n image: \"\",\n background: \"fpm-dark-blue\",\n routes: [],\n};\n\nSidebar.propTypes = {\n image: PropTypes.string,\n background: PropTypes.oneOf([\n \"fpm-dark-blue\",\n \"black\",\n \"azure\",\n \"green\",\n \"orange\",\n \"red\",\n \"purple\",\n ]),\n routes: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n ...linkPropTypes,\n icon: PropTypes.string,\n }),\n PropTypes.shape({\n collapse: true,\n path: PropTypes.string,\n name: PropTypes.string,\n state: PropTypes.string,\n icon: PropTypes.string,\n views: PropTypes.shape({\n ...linkPropTypes,\n mini: PropTypes.string,\n }),\n }),\n ])\n ),\n};\n\nexport default Sidebar;\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport AccountManagement from \"views/Elysium/AccountManagement\";\nimport ChangePassword from \"../UserManagement/ChangePassword\";\nimport CustomModal from \"components/Shared/CustomModal\";\n// react-bootstrap components\nimport { Button, Dropdown, Navbar, Nav, Container } from \"react-bootstrap\";\n\nimport { getPermission } from \"utils/Permissions.js\";\nimport { ADMIN_USERMANAGEMENT_VIEW } from \"constants/Permissions.js\";\n\nfunction AdminNavbar() {\n const location = useLocation();\n const history = useHistory();\n const [showAccountModal, setShowAccountModal] = useState(false);\n const handleCloseAccountModal = () => setShowAccountModal(false);\n const handleShowAccountModal = () => setShowAccountModal(true);\n const [showPasswordModal, setShowPasswordModal] = useState(false);\n const handleClosePasswordModal = () => setShowPasswordModal(false);\n const handleShowPasswordModal = () => setShowPasswordModal(true);\n const dispatch = useDispatch();\n const user = useSelector((state) => state.user);\n const isSideBarMini = useSelector((state) => state.isSideBarMini);\n\n const [collapseOpen, setCollapseOpen] = useState(false);\n const onLogOut = () => {\n localStorage.removeItem(\"userId\");\n localStorage.removeItem(\"userToken\");\n localStorage.removeItem(\"username\");\n history.push(\"/auth/login\");\n };\n\n const [isAdmin, setIsAdmin] = useState(false);\n\n useEffect(() => {\n const fetchUser = async () => {\n try {\n let url = `/user/getsingle?id=${localStorage.getItem(\n \"userId\"\n )}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const user = await response.json();\n\n dispatch({ type: \"set\", user: user });\n } catch (err) { }\n };\n\n fetchUser();\n }, []);\n\n return (\n <>\n \n \n
\n
\n {\n document.body.classList.toggle(\"sidebar-mini\");\n dispatch({ type: \"set\", isSideBarMini: !isSideBarMini });\n }}\n >\n \n \n \n \n document.documentElement.classList.toggle(\"nav-open\")\n }\n >\n \n \n \n
\n
\n setCollapseOpen(!collapseOpen)}\n >\n \n \n \n \n \n {/**/}\n \n \n
\n
\n \n \n \n \n \n \n \n );\n}\n\nexport default AdminNavbar;\n","import { MsalAuthProvider, LoginType } from 'react-aad-msal';\n\n\nexport const authProvider = new MsalAuthProvider(\n {\n auth: {\n clientId: \"57e11b09-1b17-4cd8-959a-e948dbaf1efd\", //Application (client) ID\n authority: \"https://login.microsoftonline.com/4f8096af-9968-4ff6-9d98-87cbc6fc71fd\", // This is a URL (e.g. https://login.microsoftonline.com/{your tenant ID})\n },\n cache: {\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\n },\n },\n {\n scopes: ['dc60f365-ea3f-4638-988e-0037951817e7/access_as_user']\n },\n LoginType.Redirect\n);","import React, { useEffect, useState, useMemo } from \"react\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\n// react-bootstrap components\nimport {\n Badge,\n Button,\n ButtonGroup,\n Card,\n Form,\n InputGroup,\n Navbar,\n Nav,\n Pagination,\n Container,\n Row,\n Col,\n} from \"react-bootstrap\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\n// core components\nimport Sidebar from \"components/Sidebar/Sidebar.js\";\nimport AdminNavbar from \"components/Navbars/AdminNavbar.js\";\nimport Footer from \"components/Footers/Footer.js\";\nimport { authProvider } from \"authProvider.js\";\nimport { AzureAD, AuthenticationState } from \"react-aad-msal\";\n\n// dinamically create dashboard routes\nimport routes from \"routes.js\";\n\nimport { getPermission } from \"utils/Permissions.js\";\n\nimport PurchaseOrder from \"views/Elysium/PurchaseOrder.js\";\n\nfunction Admin() {\n console.error = (message) => {\n if (message.startsWith(\"Warning:\")) {\n return; // Ignore React warnings\n }\n // Handle other errors normally\n originalConsoleError(message);\n };\n\n const originalConsoleError = console.error;\n\n const dispatch = useDispatch();\n const user = useSelector((state) => state.user);\n const isFavourites = useSelector((state) => state.isFavourites);\n\n const [adAccount, setADAccount] = useState(null);\n\n const sideRoutes = useMemo(() => {\n let sideRoutes = [...routes];\n\n if (user?.permissions) {\n sideRoutes = sideRoutes.filter((route) => {\n if (route.permission && !route.path.includes(\"admin\")) {\n return user?.permissions.includes(route.permission);\n }\n });\n }\n\n return sideRoutes;\n }, [user]);\n\n const getRoutes = (routes) => {\n return routes.map((prop, key) => {\n if (prop.collapse) {\n return getRoutes(prop.views);\n }\n\n return ;\n });\n };\n\n return (\n <>\n {localStorage.getItem(\"userId\") !== null ? (\n
\n \n
\n \n
\n \n \n {getRoutes(routes)}\n \n
\n \n document.documentElement.classList.toggle(\"nav-open\")\n }\n />\n
\n
\n ) : (\n \n )}\n \n );\n}\n\nexport default Admin;\n","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { BrowserRouter, Route, Switch, Redirect } from \"react-router-dom\";\n\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"assets/scss/light-bootstrap-dashboard-pro-react.scss?v=2.0.0\";\nimport \"assets/css/demo.css\";\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\n\nimport { Provider } from 'react-redux'\nimport store from './store'\n\nimport AuthLayout from \"layouts/Auth.js\";\nimport AdminLayout from \"layouts/Admin.js\";\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\n\nroot.render(\n \n \n \n } />\n } />\n \n \n \n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();","import React from 'react';\nimport { useEffect, useState } from 'react';\n\n// react plugin used to create datetimepicker\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// react-bootstrap components\nimport {\n Form,\n} from \"react-bootstrap\";\n\nexport default function DateRange(props) {\n\n function isValidDate(d) {\n return d instanceof Date && !isNaN(d);\n }\n\n const range = props.range !== undefined ? props.range : false;\n if (range) {\n return (\n <>\n
{props.title}
\n \n props.handleChange(value)}\n />\n \n \n );\n } else {\n return (\n <>\n
{props.title}
\n \n props.handleChange(value)}\n />\n \n \n );\n }\n}","import React from \"react\";\nimport { useEffect, useState } from 'react';\nimport { formatDate } from 'utils/FormatDate.js';\n\n// react-bootstrap components\nimport {\n Form,\n Card,\n Col,\n Button,\n OverlayTrigger,\n Row,\n Table,\n Tooltip\n} from \"react-bootstrap\";\n\n\nfunction AuditLog(props) {\n // Render Audit Table\n const renderAuditTable = () => {\n if (props.auditLogs.length > 0) {\n {\n return (\n \n \n \n \n \n \n \n \n \n \n {props.auditLogs.map((item, i) => {\n return (\n \n \n \n \n \n \n )\n })}\n \n
TimestampUsernameType NameDescription
{formatDate(item.timestamp)}{item.username}{item.typeName}{item.description}
\n )\n }\n }\n }\n\n return (\n \n \n {renderAuditTable()}\n \n \n );\n}\nexport default AuditLog;\n","import React from \"react\";\nimport {useEffect, useState} from \"react\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\n\n// react-bootstrap components\nimport {\n Form, Card, Col, Button, OverlayTrigger, Row, Table, Tooltip, Container, Dropdown, Spinner,\n} from \"react-bootstrap\";\n\nimport {formatCurrency} from \"utils/FormatCurrency.js\";\n\nfunction SalesAndInventory(props) {\n const renderInventoryTable = () => {\n if (props.inventoryData.length > 0) {\n {\n return (\n \n \n \n {props.inventoryData.length > 0 && props.inventoryData[0].sizesInStockAndSold.map((size) => (\n ))}\n \n \n \n {props.inventoryData.map((item, i) => {\n return (\n \n {props.inventoryData.length > 0 && props.inventoryData[i].sizesInStockAndSold.map((size, i) => {\n const handleGetWebOrdersInformation = (type, productId, locationId) => {\n props.handleGetItemCardWebOrderInfo(type, productId, locationId);\n props.handleShowWebOrdersModal();\n };\n return ();\n })}\n \n );\n })}\n \n
Location{size.sizeName}
{item.locationName}\n {size.inStock} /{\" \"}\n {/* size.committed > 0 && handleGetWebOrdersInformation(\"Committed\", size.productId, item.locationId)}*/}\n {/* >*/}\n {/* {size.committed}*/}\n {/*{\" \"}*/}\n {/* /{\" \"}*/}\n size.inTransit > 0 && handleGetWebOrdersInformation(\"InTransit\", size.productId, item.locationId)}\n >\n {size.inTransit}\n \n {\n size.sold > 0 && handleGetWebOrdersInformation(\"Sold\", size.productId, item.locationId);\n }}\n >\n {\" \"}\n ({size.sold}){\" \"}\n \n \n {props.canEdit && ( props.handleShowInventoryModal(item)}\n >\n \n )}\n
);\n }\n }\n };\n\n return (\n \n
\n \n \n \n \n props.handleSeasonChange(e)}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Key: Stock / In Transit (Sold)\n \n \n \n \n \n \n \n {props.isLoading ? (\n
\n \n

Loading...

\n
\n ) : (renderInventoryTable())}\n \n
\n \n
\n
\n \n
);\n}\n\nexport default SalesAndInventory;\n","import React from 'react';\nimport {\n Col,\n Row,\n} from \"react-bootstrap\";\nimport { DndProvider, useDrag, useDrop } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\n\nconst ItemType = {\n IMAGE: 'image'\n};\nfunction DraggableImage({ img, index, moveImage, setSelectedImage, handleDeleteImage, showDelete }) {\n const [, ref] = useDrag({\n type: ItemType.IMAGE,\n item: { index }\n });\n\n const [, drop] = useDrop({\n accept: ItemType.IMAGE,\n drop: (draggedItem) => {\n if (draggedItem.index !== index) {\n moveImage(draggedItem.index, index);\n }\n }\n });\n\n return (\n ref(drop(node))}\n style={{\n position: 'relative', // Add relative positioning to the div\n width: '100px',\n height: '100px',\n }}\n >\n setSelectedImage(img.source)}\n />\n {showDelete &&\n handleDeleteImage(index)}\n style={{\n position: 'absolute', // Add absolute positioning to the X icon\n top: '5px',\n right: '5px',\n fontSize: '1.2rem',\n cursor: 'pointer',\n color: 'red',\n zIndex: 1, // Ensure the X icon appears above the image\n }}\n />\n }\n \n );\n}\n\nfunction ImageComponent({ images, updateProductImageOrder, setSelectedImage, handleDeleteImage, showDelete }) {\n const moveImage = (fromIndex, toIndex) => {\n updateProductImageOrder(fromIndex, toIndex);\n };\n\n return (\n \n \n {images && images.slice(0, 6).map((img, index) => (\n \n \n \n ))}\n \n \n );\n}\n\nexport default ImageComponent;\n","export const parseCurrency = (value) => {\n if (typeof value !== 'string') {\n return value;\n }\n // Remove currency symbol and non-numeric characters\n const numericValue = parseFloat(value.replace(/[^\\d.-]/g, ''));\n return isNaN(numericValue) ? '' : numericValue;\n}\n","export default __webpack_public_path__ + \"static/media/NoImage.e1ce751e.jpg\";","import React, {useEffect, useState, useCallback} from \"react\";\nimport Tab from \"react-bootstrap/Tab\";\nimport Tabs from \"react-bootstrap/Tabs\";\nimport AuditLog from \"./AuditLog\";\nimport SalesAndInventory from \"./SalesAndInventory\";\nimport CustomSelect from \"components/Shared/CustomSelect\";\nimport {showSweetAlert} from \"components/Shared/CustomAlert\";\nimport CustomAutoComplete from \"components/Shared/CustomAutoComplete\";\nimport {useSelector, useDispatch} from \"react-redux\";\n\nimport {DndProvider} from \"react-dnd\";\nimport DraggableImage from \"./DraggableImage.js\";\n\nimport ReactQuill from \"react-quill\";\nimport \"react-quill/dist/quill.snow.css\"; // import styles\n\n// react-bootstrap components\nimport {\n Form,\n Card,\n Col,\n Button,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Dropdown,\n Spinner,\n} from \"react-bootstrap\";\n\nimport {formatCurrency} from \"utils/FormatCurrency.js\";\nimport {parseCurrency} from \"utils/ParseCurrency.js\";\nimport NoImage from \"../../assets/img/NoImage.jpg\";\n\nimport {\n PRODUCTS_VIEW,\n PRODUCTS_EDIT,\n PRODUCTS_FULL_VIEW,\n PRODUCTS_WEB,\n} from \"constants/Permissions.js\";\nimport {getPermission} from \"utils/Permissions.js\";\n\nfunction ItemCard(props) {\n const user = useSelector((state) => state.user);\n\n const [isOnEditingDetails, setIsOnEditingDetails] = useState(false);\n const [details, setDetails] = useState(null);\n const [webDetails, setWebDetails] = useState(null);\n const [salesData, setSalesData] = useState([]);\n const [inventoryData, setInventoryData] = useState([]);\n const [auditLogs, setAuditLogs] = useState([]);\n\n const [page, setPage] = useState(0);\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(20);\n\n const [brands, setBrands] = useState([]);\n const [locations, setLocations] = useState([]);\n const [genders, setGenders] = useState([]);\n const [seasons, setSeasons] = useState([]);\n const [categories, setCategories] = useState([]);\n const [statuses, setStatuses] = useState([]);\n const [sizes, setSizes] = useState([]);\n const [colours, setColours] = useState([]);\n const [googleColours, setGoogleColours] = useState([]);\n const [tags, setTags] = useState([]);\n const [productTags, setProductTags] = useState([]);\n\n const [invSeasons, setInvSeasons] = useState([]);\n const [selectedSeasonId, setSelectedSeasonId] = useState(0);\n\n const [isLoading, setIsLoading] = useState(true);\n const [isItemCardLoading, setIsItemCardLoading] = useState(true);\n const [isSaving, setIsSaving] = useState(false);\n\n const [isUploading, setIsUploading] = useState(false);\n\n const [selectedImage, setSelectedImage] = useState(NoImage);\n\n const canEditFull =\n getPermission(user?.permissions, PRODUCTS_EDIT) != null ? true : false;\n const canEditWeb =\n getPermission(user?.permissions, PRODUCTS_WEB) != null || canEditFull\n ? true\n : false;\n const hasFullViewPermission =\n getPermission(user?.permissions, PRODUCTS_FULL_VIEW) != null ? true : false;\n\n const [value, setValue] = useState(\"\");\n\n const modules = {\n toolbar: [\n [\"bold\"], // Toggle bold\n [{list: \"bullet\"}], // Toggle bullet points\n ],\n };\n\n const formats = [\n \"bold\",\n \"list\", // Only allow bold and bullet points\n ];\n\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty(\"--modal-width\", \"1600px\");\n handleTabSelect(props.itemCardSelectedTab);\n fetchData();\n }, []);\n\n const handleSaveDetails = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to update the details?`,\n () => {\n handleUpdateDetails();\n }\n );\n };\n\n const handlePublishProductCheck = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to publish to Shopify?`,\n () => {\n handlePublishProduct();\n }\n );\n };\n\n const handlePublishProduct = async () => {\n try {\n setIsSaving(true);\n let response = await fetch(\n `/Product/PublishProduct?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n details?.shopifyProductId\n }`,\n {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n }\n );\n\n if (response.status == 200) {\n showSweetAlert(\"success\", \"Product has successfully been published\");\n } else {\n showSweetAlert(\"serverError\");\n }\n setIsSaving(false);\n } catch (err) {\n showSweetAlert(\"serverError\");\n } finally {\n setIsSaving(false);\n fetchData();\n }\n };\n\n const handleUnpublishProductCheck = () => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to unpublish from Shopify?`,\n () => {\n handleUnpublishProduct();\n }\n );\n };\n\n const handleUnpublishProduct = async () => {\n try {\n setIsSaving(true);\n let response = await fetch(\n `/Product/UnpublishProduct?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n details?.shopifyProductId\n }`,\n {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n }\n );\n\n if (response.status == 200) {\n showSweetAlert(\"success\", \"Product has successfully been unpublished\");\n } else {\n showSweetAlert(\"serverError\");\n }\n setIsSaving(false);\n } catch (err) {\n showSweetAlert(\"serverError\");\n } finally {\n setIsSaving(false);\n fetchData();\n }\n };\n\n const handleUpdateDetails = async () => {\n const formatedPriceDetails = {\n ...details,\n cost: parseCurrency(details.cost),\n price: parseCurrency(details.price),\n salePrice: parseCurrency(details.salePrice),\n };\n\n try {\n setIsSaving(true);\n\n //if (response.status == 200) {\n let response = await fetch(\n `/ProductTag/Save?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${\n details.shopifyProductId\n }`,\n {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(productTags),\n }\n );\n\n if (response.status == 200) {\n response = await fetch(\n `/Product/Update?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&id=${details.id}`,\n {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(formatedPriceDetails),\n }\n );\n\n let message = await response.json();\n\n response = await fetch(\n `/Product/UpdateWebDetails?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`,\n {\n method: \"put\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(webDetails),\n }\n );\n\n if (response.status == 200) {\n showSweetAlert(\"saveSuccessCustomMessage\", message);\n } else {\n showSweetAlert(\"serverError\");\n }\n } else {\n showSweetAlert(\"serverError\");\n }\n setIsSaving(false);\n } catch (err) {\n showSweetAlert(\"serverError\");\n } finally {\n setIsSaving(false);\n fetchData();\n }\n };\n\n const fetchInventorySeasons = async () => {\n if (props.isNavBack) return;\n if (details) {\n let seasonUrl = `/ItemCard/GetSeasonDropdownByProduct?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}&&productId=${\n details.id\n }`;\n const seasonResponse = await fetch(seasonUrl);\n const seasonBody = await seasonResponse.json();\n const seasonData = seasonBody?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setInvSeasons(seasonData);\n const maxId = seasonData?.reduce(\n (max, item) => (item.id > max ? item.id : max),\n 0\n );\n setSelectedSeasonId(maxId);\n }\n };\n\n // #### Fetch Data\n const fetchData = async () => {\n try {\n setIsLoading(true);\n // get Single Item Item Card\n let url = `/ItemCard/GetSingle?productId=${\n props.id\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const productDetails = await response.json();\n setDetails(productDetails);\n\n setSelectedImage(\n productDetails?.images && productDetails.images.length > 0\n ? productDetails.images[0].source\n : NoImage\n );\n\n let webDetailsUrl = `/ItemCard/GetWebDetails?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${props.id}`;\n const webDetailsResponse = await fetch(webDetailsUrl);\n const webDetailsBody = await webDetailsResponse.json();\n\n let globalDropdownsUrl = `/CategoryValue/GetGlobalDropdowns?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}`;\n const globalDropdownsResponse = await fetch(globalDropdownsUrl);\n const globalDropdownsBody = await globalDropdownsResponse.json();\n\n const locationData = globalDropdownsBody?.locations?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setLocations(locationData);\n\n const brandData = globalDropdownsBody?.brands?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setBrands(brandData);\n\n const genderdata = globalDropdownsBody?.genders?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setGenders(genderdata);\n\n const seasonData = globalDropdownsBody?.seasons?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setSeasons(seasonData);\n\n const maxId = seasonData?.reduce(\n (max, item) => (item.id > max ? item.id : max),\n 0\n );\n setSelectedSeasonId(maxId);\n\n const categoryData = globalDropdownsBody?.categories?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setCategories(categoryData);\n\n const sizesData = globalDropdownsBody?.sizes?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setSizes(sizesData);\n\n const colourData = globalDropdownsBody?.colours?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setColours(colourData);\n\n const googleColourData = globalDropdownsBody?.googleColours?.map(\n (item) => {\n return {id: item.id, value: item.name};\n }\n );\n setGoogleColours(googleColourData);\n\n setWebDetails({\n ...webDetailsBody,\n metaGoogleColorId:\n googleColourData.find(\n (item) => item.value === webDetailsBody?.metaGoogleColor\n )?.id ?? \"\",\n });\n\n const tagsData = globalDropdownsBody?.tags?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setTags(tagsData);\n\n const statusData = globalDropdownsBody?.statuses?.map((item) => {\n return {id: item.id, value: item.name};\n });\n setStatuses(statusData);\n\n /// Product Tags\n let productTagsUrl = `/ProductTag/GetAllByProduct?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}&&productId=${\n productDetails.shopifyProductId\n }`;\n const productTagsRes = await fetch(productTagsUrl);\n const productTagsBody = await productTagsRes.json();\n const productTagsData = productTagsBody?.map((item) => {\n return {id: item.id, value: item.value};\n });\n setProductTags(productTagsData);\n\n setIsLoading(false);\n } catch (err) {\n setIsLoading(false);\n } finally {\n setIsLoading(false);\n }\n };\n\n const handlePaste = useCallback(\n async (event) => {\n if (isUploading) return;\n\n if (isOnEditingDetails) return;\n\n if (details.images.length == 6) {\n showSweetAlert(\n \"warningOkOnly\",\n `You have reached the limit on images for this product.`\n );\n return;\n }\n\n setIsUploading(true);\n\n try {\n const items = (event.clipboardData || event.originalEvent.clipboardData)\n .items;\n for (let index in items) {\n const item = items[index];\n if (item.kind === \"file\") {\n const blob = item.getAsFile();\n if (!blob.type.match(/^image\\/(png|jpeg|gif)$/)) return; // skip non-image files\n const reader = new FileReader();\n\n reader.onload = async (event) => {\n const base64Image = event.target.result;\n\n //const formData = new FormData();\n //const byteCharacters = atob(base64Image.split(',')[1]);\n //const byteNumbers = new Array(byteCharacters.length);\n //for (let i = 0; i < byteCharacters.length; i++) {\n // byteNumbers[i] = byteCharacters.charCodeAt(i);\n //}\n //const byteArray = new Uint8Array(byteNumbers);\n //const blob = new Blob([byteArray], { type: 'image/png' });\n\n //formData.append('image', blob);\n\n const response = await fetch(\n `/ItemCard/AddProductImage?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n details.shopifyProductId\n }`,\n {\n method: \"post\",\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"],\n ],\n body: JSON.stringify(\n base64Image.substring(base64Image.indexOf(\",\") + 1)\n ),\n }\n );\n\n if (response.status === 200) {\n showSweetAlert(\"saveSuccess\", `Image`);\n\n let url = `/ItemCard/GetSingle?productId=${\n props.id\n }&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}`;\n const response = await fetch(url);\n const productDetails = await response.json();\n setDetails(productDetails);\n }\n };\n reader.readAsDataURL(blob);\n }\n }\n } catch (error) {\n } finally {\n // Reset the flag to false after upload is finished\n setIsUploading(false);\n }\n },\n [isUploading, details]\n );\n\n const updateProductImageOrder = async (fromIndex, toIndex) => {\n const from = details.images[fromIndex].id;\n\n try {\n const response = await fetch(\n `/ItemCard/UpdateProductImageOrder?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n details.shopifyProductId\n }&imageId=${from}&order=${toIndex}`,\n {\n method: \"put\",\n }\n );\n\n if (response.status === 200) {\n var newArray = [...details.images];\n const [movedItem] = newArray.splice(fromIndex, 1);\n newArray.splice(toIndex, 0, movedItem);\n\n setDetails({...details, images: newArray});\n }\n } catch (error) {\n }\n };\n\n const handleDeleteImage = (index) => {\n showSweetAlert(\n \"warning\",\n `Are you sure you want to delete this image?`,\n () => {\n deletProductImage(index);\n }\n );\n };\n\n const deletProductImage = async (imageIndex) => {\n try {\n const response = await fetch(\n `/ItemCard/DeleteProductImage?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n details.shopifyProductId\n }&imageId=${details.images[imageIndex].id}`,\n {\n method: \"delete\",\n }\n );\n\n if (response.status === 200) {\n const updatedImages = details.images.filter(\n (_, index) => index !== imageIndex\n );\n setDetails({...details, images: updatedImages});\n }\n } catch (error) {\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"paste\", handlePaste);\n\n // Cleanup listener on unmount\n return () => {\n window.removeEventListener(\"paste\", handlePaste);\n };\n }, [handlePaste]);\n\n const handleTabSelect = (key) => {\n if (key === \"Detail\") {\n props.setItemCardSelectedTab(\"Detail\");\n //fetchData();\n } else if (key === \"Sales\") {\n props.setItemCardSelectedTab(\"Sales\");\n fetchInventorySeasons();\n getSalesAndInventoryData();\n } else if (key === \"Audit\") {\n props.setItemCardSelectedTab(\"Audit\");\n getAuditLogs();\n }\n };\n\n const handleSeasonChange = (e) => {\n setSelectedSeasonId(e.value);\n };\n\n //Get sales and inventory data\n const getSalesAndInventoryData = async () => {\n try {\n let url = `/ItemCard/GetSalesSummary?userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${\n props.id\n }&seasonId=${selectedSeasonId}`;\n setIsLoading(true);\n const response = await fetch(url);\n const body = await response.json();\n setSalesData(body);\n\n let InventoryUrl = `/ItemCard/GetInventory?userId=${localStorage.getItem(\n \"userId\"\n )}&&userToken=${localStorage.getItem(\"userToken\")}&&productId=${\n props.id\n }&seasonId=${selectedSeasonId}`;\n const Inventoryresponse = await fetch(InventoryUrl);\n const InventoryDetails = await Inventoryresponse.json();\n setInventoryData(InventoryDetails);\n setIsLoading(false);\n } catch (err) {\n }\n };\n\n useEffect(() => {\n if (props.itemCardSelectedTab === \"Sales\") {\n getSalesAndInventoryData();\n }\n }, [selectedSeasonId]);\n\n const getAuditLogs = async () => {\n try {\n let url = `/ItemCard/GetAuditLogsPaged?skip=${skip}&take=${take}&userId=${localStorage.getItem(\n \"userId\"\n )}&userToken=${localStorage.getItem(\"userToken\")}&productId=${props.id}`;\n const response = await fetch(url);\n const body = await response.json();\n\n setAuditLogs(body);\n } catch (err) {\n //setIsLoading(false);\n }\n };\n const shopifyLink = `${process.env.REACT_APP_SHOPIFY}/products/${details?.shopifyProductId}`;\n\n return (\n <>\n {alert}\n \n \n {isLoading ? (\n \n
\n \n

Loading...

\n
\n \n ) : (\n \n
\n \n \n e.preventDefault()}\n overlay={\n Download Labels PDF\n }\n >\n \n props.handleGetLabelPDF(details?.id)\n }\n variant=\"link\"\n >\n \n \n \n {(canEditFull || canEditWeb) && (\n e.preventDefault()}\n overlay={\n {`Edit`}\n }\n >\n setIsOnEditingDetails(true)}\n >\n \n \n \n )}\n \n \n \n \n \n \n \n setDetails({...details, name: e.target.value})\n }\n onBlur={(e) =>\n setDetails({...details, name: e.target.value})\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n setDetails({\n ...details,\n supplierBarcode: e.target.value,\n })\n }\n onBlur={(e) =>\n setDetails({\n ...details,\n supplierBarcode: e.target.value,\n })\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n setDetails({\n ...details,\n brand: e.label,\n brandId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n setDetails({\n ...details,\n season: e.label,\n seasonId: e.value,\n })\n }\n isDisabled={true}\n />\n \n \n \n \n \n \n setDetails({\n ...details,\n gender: e.label,\n genderId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n setDetails({\n ...details,\n productCategory: e.label,\n productCategoryId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n setDetails({\n ...details,\n status: e.label,\n statusId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n setDetails({\n ...details,\n status: e.label,\n colourId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n setDetails({\n ...details,\n status: e.label,\n sizeId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditFull}\n />\n \n \n \n \n \n \n setDetails({...details, cost: e.target.value})\n }\n onBlur={(e) =>\n setDetails({...details, cost: e.target.value})\n }\n >\n \n \n \n \n \n \n setDetails({...details, price: e.target.value})\n }\n onBlur={(e) =>\n setDetails({...details, price: e.target.value})\n }\n >\n \n \n \n \n \n \n setDetails({\n ...details,\n salePrice: e.target.value,\n })\n }\n onBlur={(e) =>\n setDetails({\n ...details,\n salePrice: e.target.value,\n })\n }\n >\n \n \n \n \n \n {\n const newItem = {\n id: item.value,\n value: item.label,\n };\n setProductTags([...productTags, newItem]);\n }}\n handleRemoveItem={(item) => {\n setProductTags([\n ...productTags.filter((i) => i.id !== item.id),\n ]);\n }}\n />\n \n \n \n

\n Web Details -{\" \"}\n {details?.published ? (\n Published\n ) : (\n Unpublished\n )}\n

\n \n \n \n \n\n \n setWebDetails({\n ...webDetails,\n htmlBody: content,\n })\n }\n modules={modules}\n formats={formats}\n placeholder=\"HTML Body\"\n readOnly={!isOnEditingDetails || !canEditWeb}\n />\n \n \n \n \n \n \n \n \n setWebDetails({\n ...webDetails,\n metaProductSummary: e.target.value,\n })\n }\n onBlur={(e) =>\n setWebDetails({\n ...webDetails,\n metaProductSummary: e.target.value,\n })\n }\n >\n \n \n \n \n \n \n \n \n setWebDetails({\n ...webDetails,\n metaGender: e.target.value,\n })\n }\n onBlur={(e) =>\n setWebDetails({\n ...webDetails,\n metaGender: e.target.value,\n })\n }\n >\n \n \n \n \n \n \n \n \n setWebDetails({\n ...webDetails,\n metaProductSubtitle: e.target.value,\n })\n }\n onBlur={(e) =>\n setWebDetails({\n ...webDetails,\n metaProductSubtitle: e.target.value,\n })\n }\n >\n \n \n \n \n \n \n \n \n \n \n setWebDetails({\n ...webDetails,\n metaProductCustomDescription:\n e.target.value,\n })\n }\n onBlur={(e) =>\n setWebDetails({\n ...webDetails,\n metaProductCustomDescription:\n e.target.value,\n })\n }\n >\n \n \n \n \n \n \n \n \n setWebDetails({\n ...webDetails,\n metaGoogleColor: e.label,\n metaGoogleColorId: e.value,\n })\n }\n isDisabled={!isOnEditingDetails || !canEditWeb}\n />\n \n \n \n \n \n \n \n

\n \n {shopifyLink}\n \n

\n
\n \n
\n \n
\n \n\n \n \n \n \n \n \n \n \n
\n\n {isOnEditingDetails && (\n \n \n handleSaveDetails()}\n >\n {isSaving ? (\n \n ) : (\n \"Save\"\n )}\n \n\n setIsOnEditingDetails(false)}\n >\n {isSaving ? (\n \n ) : (\n \"Cancel\"\n )}\n \n {details?.published ? (\n handleUnpublishProductCheck()}\n >\n {isSaving ? (\n \n ) : (\n \"Unpublish\"\n )}\n \n ) : (\n handlePublishProductCheck()}\n >\n {isSaving ? (\n \n ) : (\n \"Publish\"\n )}\n \n )}\n \n \n )}\n
\n \n )}\n
\n \n \n \n {hasFullViewPermission && (\n \n \n \n )}\n \n \n );\n}\n\nexport default ItemCard;\n","\nimport React, { useState, useEffect } from \"react\";\n\n// react-bootstrap components\nimport {\n Form,\n Card,\n Col,\n Button,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container,\n Dropdown\n} from \"react-bootstrap\";\nimport CustomSelect from \"../Shared/CustomSelect\";\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n\n\nfunction InventoryModal(props) {\n useEffect(() => {\n // set the width of the modal\n document.documentElement.style.setProperty('--modal-width', '500px');\n }, [])\n\n const [isValidation, setIsValidation] = useState(false);\n const [reason, setReason] = useState(\"\");\n const [selectedInventory, setSelectedInventory] = useState(props.selectedInventory);\n \n\n\n const handleInventoryChange = (e) => {\n var { value, name } = e.target;\n const updatedSizes = selectedInventory.sizesInStockAndSold.map((size) => {\n if (size.productId == name) {\n return { ...size, inStock: value };\n }\n return size;\n });\n\n setSelectedInventory({ ...selectedInventory, sizesInStockAndSold: updatedSizes });\n };\n\n const handleReason = (value) => {\n if (value === \"\" || value === undefined || value === null) {\n setIsValidation(true)\n } else {\n setIsValidation(false)\n setReason(value)\n }\n\n }\n\n const handleSaveAlert = () => {\n if (reason === \"\" || reason === undefined || reason === null) {\n setIsValidation(true);\n } else {\n setIsValidation(false);\n showSweetAlert('warning', `Are you sure you want to update the quantity available at ${selectedInventory.locationName}?`, () => { handleUpdateInventory() });\n }\n }\n\n const handleUpdateInventory = async () => {\n try {\n const response = await fetch(`/Inventory/ChangeQuantity?userId=${localStorage.getItem(\"userId\")}&userToken=${localStorage.getItem(\"userToken\")}&reason=${reason}`, {\n method: 'put',\n headers: [\n [\"Content-Type\", \"application/json\"],\n [\"Content-Type\", \"text/plain\"]\n ],\n body: JSON.stringify(selectedInventory),\n });\n\n if (response.status == 200) {\n setReason(\"\")\n showSweetAlert('saveSuccess', `Quantity`);\n\n\n //handleGetItemCards(inventory.productId, inventory.locationName)\n //handleInventoryViewModelHide()\n props.handleHideInventoryModal();\n }\n else {\n showSweetAlert('serverError');\n }\n } catch (err) {\n showSweetAlert('serverError');\n }\n }\n\n return (\n
\n {alert}\n \n \n

Edit Inventory - {selectedInventory.locationName}

\n {selectedInventory.sizesInStockAndSold.length > 0 && selectedInventory.sizesInStockAndSold.map((item) => (\n \n \n \n handleInventoryChange(e)}\n >\n \n \n ))}\n
\n \n \n \n \n handleReason(e.value)}>\n \n {isValidation &&
Reason is required
}\n
\n \n\n\n
\n
\n \n Cancel\n \n \n Save\n \n
\n\n
\n
\n\n )\n}\nexport default InventoryModal","import React from 'react';\nimport { useMemo } from 'react';\n// react plugin used to create DropdownMenu for selecting items\nimport Select from \"react-select\";\n// react-bootstrap components\n\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux'\nimport { showSweetAlert } from 'components/Shared/CustomAlert';\n// react-bootstrap components\nimport {\n Button,\n Card,\n Col,\n OverlayTrigger,\n Row,\n Table,\n Tooltip,\n Container\n} from \"react-bootstrap\";\n\nimport { LOCATION_EDIT, LOCATION_DELETE } from '../../constants/Permissions.js';\nimport { getPermission } from '../../utils/Permissions.js';\n\nexport default function CustomTable(props) {\n const user = useSelector((state) => state.user);\n\n\n const [keys, setKeys] = useState(null);\n\n\n // get table column\n if (props.data !== undefined || props.data !== null) {\n setKeys(Object.keys(props.data[0]));\n }\n\n // get table heading data\n const renderHeaderData = () => {\n return keys.map((key, index) => {\n return {key.toUpperCase()}\n })\n }\n\n const handlePermission = () => {\n showSweetAlert('unauthorized');\n }\n\n const renderRow = (data) => {\n return keys.map((key, index) => {\n return {data[key]}\n })\n }\n\n const renderTableData = (permissionEdit, permissionDelete) => {\n var items = props.data;\n return props.data.map((row, index) => {\n return \n })\n\n // return (\n // \n // {\n // column.map((v) => {\n // return {data[v]}\n // })\n // }\n // {/*\n // e.preventDefault()}\n // overlay={\n // \n // {`Edit ${props.itemType}`}\n // \n // }\n // >\n // props.handleEdit(id) : () => handlePermission()}\n // >\n // \n // \n // \n // e.preventDefault()}\n // overlay={\n // \n // {`Delete ${props.itemType}`}\n // \n // }\n // >\n // props.handleDelete(id) : () => handlePermission()}\n // >\n // \n // \n // \n // */}\n // \n // )\n //})\n }\n\n return (\n <>\n {alert}\n \n \n \n {props.title}\n {getPermission(user.permissions, LOCATION_EDIT) ?\n props.handleAdd()}\n >\n Add\n \n :\n props.handlePermission()}\n >\n Add\n \n }\n \n

\n

\n
\n \n \n \n \n \n {renderHeaderData()}\n \n \n \n {renderTableData(getPermission(user.permissions, LOCATION_EDIT), getPermission(user.permissions, LOCATION_DELETE))}\n \n
\n \n
\n
\n \n );\n}"],"sourceRoot":""}