%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/public_html/ezone-inventory.optisoft.com.ng/static/js/
Upload File :
Create Path :
Current File : /home/opti/public_html/ezone-inventory.optisoft.com.ng/static/js/main.335f64e9.chunk.js.map

{"version":3,"sources":["Components/utils/getParams.js","Components/globalAssets/theme.js","Components/utils/getCenter.js","Components/globalAssets/fontSize.js","Components/globalComponents/styles.js","Components/images/logo.png","Components/globalComponents/DropDown.js","Components/globalComponents/TopBar.js","Components/globalComponents/SideBar.js","Components/images/bgs/upper1.png","Components/images/bgs/upper2.png","Components/images/bgs/below1.png","Components/images/bgs/below2.png","Components/images/bgs/below3.png","Components/globalComponents/TableWithPagination.js","Components/globalComponents/Buttons.js","Components/globalComponents/SelectInput.js","Components/globalComponents/ToolBar.js","Components/Inventory/styles.js","Components/utils/getBase64.js","domain.js","routes.js","services.js","Components/Inventory/Warehouse/slice.js","Components/Inventory/Items/slice.js","Components/Inventory/ItemGroups/slice.js","Components/globalComponents/Feedback.js","Components/utils/switchURL.js","Components/Dashboard/slice.js","Components/utils/convertStringToNumber.js","Components/Clients/Vendors/slice.js","Components/Inventory/Items/AddItem.js","Components/Inventory/Items/ItemDetails.js","Components/globalComponents/Modal.js","Components/globalComponents/deleteModal.js","Components/Inventory/Items/EditItem.js","Components/Inventory/Items/index.js","Components/utils/notificationAlert.js","Components/Inventory/ItemGroups/ItemGroupDetails.js","Components/Inventory/ItemGroups/index.js","Components/Inventory/Warehouse/WarehouseDetails.js","Components/Inventory/Warehouse/index.js","Components/Inventory/Adjustment/AdjustmentDetails.js","Components/Clients/Customers/slice.js","Components/Inventory/Adjustment/slice.js","Components/Inventory/Adjustment/AdjustItem.js","Components/Inventory/Adjustment/index.js","Components/Inventory/TransferOrders/slice.js","Components/Inventory/TransferOrders/AddTransferOrder.js","Components/Inventory/TransferOrders/index.js","Components/Sales/SalesOrders/AddSalesOrder.js","Components/Sales/SalesOrders/index.js","Components/Clients/Customers/index.js","Components/Sales/Invoice/slice.js","Components/Sales/Invoice/AddInvoice.js","Components/images/companyLogo.jpeg","Components/Sales/Invoice/SingleInvoice.js","Components/Sales/Invoice/index.js","Components/Sales/Receipt/AddReceipt.js","Components/images/companyLogo2.jpeg","Components/Sales/Receipt/slice.js","Components/Sales/Receipt/SingleReceipt.js","Components/Sales/Receipt/index.js","Components/Dashboard/index.js","Components/Clients/Vendors/index.js","App.js","app/store.js","serviceWorker.js","index.js"],"names":["module","exports","params","Object","keys","reduce","result","field","concat","themes","lightTheme","createTheme","white","primaryColor","primaryColor2","primaryColor3","background","foreground","subtleBlack","lightText","boldText","headerText","shadow","filter","border","highlight","faintBlue","red","grey","darkTheme","GlobalStyle","createGlobalStyle","_templateObject","_taggedTemplateLiteral","props","theme","getCenter","justifyContent","alignItems","display","flexDirection","flexWrap","arguments","length","undefined","desktop","StyledTopBar","styled","Box","StyledLogo","img","_templateObject2","StyledTable","Table","_templateObject3","StyledInputContainer","_templateObject4","StyledPrimaryButton","Button","_templateObject5","StyledCancelButton","_templateObject6","StyledTransparentButton","_templateObject7","StyledCard","_templateObject8","StyleLabel","p","_templateObject9","StyledNormalText","Typography","_templateObject10","StyledBoldText","_templateObject11","StyledModal","Modal","_templateObject12","DropDown","React","forwardRef","ref","itemList","items","map","item","index","_jsx","MenuItem","onClick","event","handleClose","children","Popper","open","anchorEl","current","role","transition","disablePortal","style","zIndex","_ref","TransitionProps","placement","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","id","onKeyDown","handleListKeyDown","TopBar","setOpen","useState","anchorRef","useRef","useHistory","_jsxs","visibility","hidden","position","px","py","window","location","assign","src","alt","handleToggle","prevOpen","endIcon","IoMdArrowDropdown","variant","key","preventDefault","itemName","contains","target","console","log","SubMenu","Menu","inventoryLinkObj","name","link","SalesLinkObj","partiesObj","SideBar","inventoryLink","StyledSubMenuItem","Link","to","salesLink","partiesLinks","StyledSideBar","pt","StyledMainMenu","e","width","backgroundColor","color","defaultSelectedKeys","defaultOpenKeys","mode","icon","MdDashboard","StyledMenu","MdLabel","title","Item","TableWithPagination","_props$total","_Fragment","pagination","onRow","columns","dataSource","hidePagination","TablePagination","component","count","total","page","onChangePage","handleChangePage","rowsPerPage","onChangeRowsPerPage","handleChangeRowsPerPage","useStyles","makeStyles","root","wrapper","buttonProgress","PrimaryButton","top","left","marginTop","marginLeft","classes","className","disabled","loading","text","CircularProgress","size","CancelButton","TransaparentButton","Option","Select","SelectInput","showSearch","bordered","placeholder","optionFilterProp","onChange","value","onFocus","onBlur","onSearch","val","filterOption","input","option","toLowerCase","indexOf","ToolBar","showtools","createButtonText","onCreate","mt","Icon","ml","StyledImageDrop","isImage","StyledImagePreview","StyledMutedText","StyledBottomImage","isActive","getBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","onerror","error","hostname","routes","createItemGroupRoute","getAllItemGroupRoute","getItemGroupsByOrgId","orgId","updateItemGroupRoute","getItemGroupNumber","getSingleItemGroup","deleteItemGroup","addWarehouse","getAllWarehouse","deleteWarehouse","updateWarehouse","getSingleWarehouse","itemsRoute","userProfileRoute","userByOrgRoute","orgid","invoiceRoute","customersRoute","paymentRoute","logoutRoute","getSingleInvoice","vendorRoute","createReceiptRoute","getAllReceiptsRoute","getSingleReceiptRoute","issueItemRoute","getAllTransfarOrderRoute","addTransfarOrderRoute","adjustmentsListRoute","addAdjustmentsRoute","mainDomain","Services","createItemGroup","payload","axios","method","url","data","headers","Authorization","localStorage","invToken","fetchItemGroupsByOrgId","getURLParams","fetchItemGroupNumber","fetchAllItemGroups","updateItemGroups","fetchSingleItemGroup","fetchSingleWarehouse","getAllItems","getSingleItem","createItem","deleteItem","updateItem","itemsRouteId","getUserProfile","getUsersByOrg","getCustomers","createCustomers","editCustomers","createVendors","getVendors","editVendors","getAllInvoice","getInvoice","createInvoice","getPaymentInfo","makePayment","logout","createReceipt","getAllReceipt","getSingleReceipt","issueItem","getAllTransfarOrder","createTransfarOrder","createAdjustment","getAllAdjustments","warehouseSlice","createSlice","initialState","warehouseList","paginationProps","totalPages","totalItems","singleWarehouse","reducers","addWarehouseList","state","addPaginationProps","_ref2","addSingleWarehouse","_ref3","actions","dispatcher","then","response","currentPage","warehouses","delFlag","catch","selectWarehouse","warehouseReducer","itemSlice","singleItem","addItemList","addSingleItem","fetchAllItems","selectItems","itemReducer","itemGroupSlice","itemGroupList","totalItemGroup","singleItemGroup","addItemGroup","addSingleItemGroup","fetchItemGroupsByOrg","item_group","selectItemGroups","itemGroupReducer","Alert","MuiAlert","elevation","Feedback","Snackbar","autoHideDuration","onClose","severity","type","sx","message","dashboardSlice","usersByOrg","userProfile","itemGroupCount","addUserProfile","addUsersByOrg","organisation","status","URL","split","replace","switchURL","selectDashboard","dashboardReducer","vendorSlice","vendorList","addVendorList","getAllVendor","totalVendors","vendors","selectVendor","vendorReducer","TextArea","Input","CheckboxWithStyle","withStyles","Checkbox","layout","labelCol","span","wrapperCol","formFields1","label","isRequired","formFields2","warehouseFields","sales","purchase","inventoryAcct","taxAcct","reorder","vendor","missingParams","accountId","wareHouseId","barcode","manufacturer","trashed","fileFormat","fileUrl","quantity","accountingNumber","itemCategoryEnum","itemTypeEnum","units","AddItem","warehouseState","setWarehouseState","openAccounting","setOpenAccounting","selectValues","setSelectValues","imageArr","setImageArr","buttonLoading","setButtonLoading","feedbackProps","setFeedbackProps","useSelector","form","Form","useForm","history","useDispatch","vendorListOption","firstName","lastName","warehouseOptions","_item$name","itemCategoryOptions","itemTypeOptions","itemGroupOption","groupName","unitsOption","handleSelectChange","selectName","prevSelectValues","firstSection","getInput","secondSection","Col","sm","warehouseStateList","salesAccountList","purchaseAccountList","inventoryAccountList","taxAccountList","reorderList","xs","vendorInputList","onFinish","async","_userProfile$organisa","selectInputValues","formattedValues","fromEntries","entries","values","_selectInputValues$ke","itemStocks","startsWith","itemStockWithWarehouse","_ref4","warehouseKey","warehouseValue","stockKey","stockValue","warehouseID","openingStock","valuesWithoutItemStockAndWarehouse","_ref5","wareHouseRequest","refineImage","productImage","imageList","_ref6","purchaseAccountId","salesAccountId","refinedValues","obj","isNaN","parseInt","toFixed","prevState","push","_error$message","Grid","ItemImageComponent","getImage","imageBase64Arr","Row","gutter","handleAddWarehouse","prevWarehouse","newWarehouse","mb","checked","Collapse","in","gutterBottom","pb","marginRight","activeImage","setActiveImage","onDrop","useCallback","acceptedFiles","newImages","slice","forEach","getRootProps","getInputProps","isDragActive","useDropzone","FiCamera","hideFooterText","inputObject","selectOptions","searchObject","onFooterClicked","rules","required","defaultValue","autoSize","minRows","StyledSelectInput","textAlign","DatePicker","cursor","FiPlus","secondaryColor","firstSegment","secondSegment","stock","inventory","tax","ItemDetails","_singleItem$itemsImag","useParams","setItem","itemsImages","useEffect","firstSeg","join","_singleItem$itemGroup","itemGroups","_singleItem$item$key","SingleItemProperty","secondSeg","_singleItem$item$key2","stockSeg","_singleItem$item$key3","salesSeg","_singleItem$item$key4","purchaseSeg","_singleItem$item$key5","inventorySeg","_singleItem$item$key6","taxSeg","_singleItem$item$key7","imagearr2","itm","itm2","fileName","SegmentTitle","marginBottom","flexShrink","flexBasis","mx","fontWeight","modal","ModalComponent","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Slide","direction","mountOnEnter","unmountOnExit","AntFormModal","visible","okButtonProps","htmlType","cancelButtonProps","onOk","submit","okText","onCancel","initialValues","AntModal","_props$okText","DeleteModal","minWidth","padding","align","mr","onDelete","EditItem","formFields1State","setFormField1","formField2State","setFormField2","warehouseFieldsState","setWarehouseFields","salesState","setSales","purchaseState","setPurchase","inventoryAcctState","setInventoryAcct","taxAccountListState","setTaxAccountList","reorderListState","setReorderList","vendorListState","setVendorList","setFieldsValue","itemType","itemCategory","itemGroup","vendorId","find","_response$data$data$i","resetFields","prevItemState","currentItem","_currentItem$key","Items","setPage","setRowsPerPage","path","useRouteMatch","deleteModalProps","setDeleteModalProps","dataIndex","render","allData","content","Space","Popover","trigger","FiMoreVertical","Switch","Route","exact","gotoAddItem","newPage","notificationAlert","description","notification","ItemGroupDetails","itemGroupData","setItemGroupData","setItemList","Statistic","valueStyle","fontSize","prefix","precision","refinedItemGroupData","addGroupInput","ItemGroups","createGroupForm","editGroupForm","isSubmitDisabled","setSubmitButton","addGroupModalProps","setAddGroupModalProps","isVisible","editModalProps","setEditModalProps","selectedItemInput","newData","groupInputs","ModalScaffold","reload","handleFeedbackClose","reason","WarehouseDetails","warehouseData","setWarehouseData","refinedWarehouseData","addWarehouseInput","Warehouse","editWarehouseForm","allWarehouse","setAllWarehouse","userList","user","fullName","handlePopoverClick","warehouseInputs","CreateWarehouseModal","headOfWareHouseId","uuid","uuId","EditWarehouseModal","cancelAndReset","previousQuantity","adjustedBy","adjustedQuantity","AdjustmentDetails","customerSlice","customerList","addCustomerList","getAllCustomer","customers","createCustomer","selectCustomer","customerReducer","adjustmentsSlice","adjustmentsList","singleAdjustments","allAdjustments","fetchAllAdjustments","adjustments","selectAdjustments","adjustmentsReducer","addAdjustmentsInput","itemDescription","itemId","AdjustItem","itemsState","setItemsState","activeRowIndex","setActiveRowIndex","createInvoiceLoading","setCreateInvoiceLoading","basicInfoForm","userProfile2","workShift","dateString","moment","toISOString","getSelectedItem","currentItemState","newItemsState","replaceItem","selecedItem","splice","handleDeleteRow","handleItemSelect","selectedItemObj","selecteditem","handleQuantityTransfar","qty","optionList","FiTrash2","warehouseOptionList","getAdjustmentsInput","warehouseName","inventoryAdjustedDate","_error$response","_error$response$data","justify","handleTableRow","AddAdjustableRow","row","InventoryAdjustment","gotoAdjustItem","record","rowIndex","transfarOrderSlice","transfarOrderList","singleTransfarOrder","addtransfarOrderList","selectTransfarOrder","transfarOrderReducer","transferOrderInput","sku","itemSku","transferQuantity","AddTransferOrder","profile","warehouseOptionList2","getTransfarOrderInput","sourceWarehouseId","destinationWarehouseId","itemSKU","format","TransferOrder","gotoAddOrder","price","salesOrder","AddSalesOrder","salesOrderList","itemClass","unitCost","unitPrice","stockOnHand","SalesOrders","addCustomerInput","Customers","editForm","formattedInitialValues","customerInputs","CreateCustomerModal","invoiceSlice","invoiceList","singleInvoice","customer","charges","addSingleInvoice","addInvoiceList","invoices","selectInvoice","invoiceReducer","icons","historyIcon","arroweft","height","borderTop","borderBottom","borderRight","logo","totalBackground","amount","chargesFields","AddInvoice","chargesForm","otherCharges","setOtherCharges","addChargesModal","setAddChargesModal","addCustomerModalProps","setAddCustomerModalProps","formattedItemsState","sellingPrice","handleQuantityChange","Boolean","onFooterClick","customerOptionList","chargesInput","otherChargesList","OtherChargesComponent","getOtherCharges","prev","curr","getSubTotal","sales_person","customer_id","due_date","total_amount","Divider","TotalComponent","sendInvoiceFields","paymentFields","paymentMethods","accountDeposit","SingleInvoice","_singleInvoice$charge","paymentForm","paymentInfo","setPaymentInfo","paymentFieldsState","setPaymentFields","sendInvoiceModalProps","setSendInvoiceModalProps","paymentModalProps","setPaymentModalProps","paymentData","initValues","customer_name","receipt_number","paymentFieldsDefault","sendInvoiceInput","paymentMethodList","accountDepositList","paymentInput","openPaymentRecordModal","HistoryBar","companyLogo","invoice_number","invoice_date","address","notes","colon","CKEditor","editor","ClassicEditor","onReady","getData","payment_method","account_to_deposit","receipt_id","payment_date","org_key","bank_changes","SingleHistory","StyledSingleHistory","pl","pr","maxHeight","overflow","BiHistory","FaRegFilePdf","IoMdRefresh","BiPrinter","FiMail","hidePaymentButton","textTransform","Invoice","itemShipmentProps","setItemShipmentProps","invoiceId","shipmentStatus","IconButton","_error$response$data$","receiptSlice","allReceipts","singleReceipt","addAllReceipts","addSingleReceipt","fetchAllReceipt","receipts","selectReceipts","receiptReducer","initialBillInfo","ReceiptDetail","billInfo","setBillInfo","billTo","created_at","paymentMethod","billInfoList","SingleDetail","StyledImage","receiptNumber","StyledReciptBody","paymentAmount","invoiceNumber","isamount","invoiceAmount","bill_to","branch_id","invoice_amount","payment_amount","addReceiptInput","Receipt","dispatch","amount_due","receiptInputs","CreateReceiptModal","Dashboard","StyledStatContainer","SingleStat","StyledStatCard","Vendor","margin","spacing","small","large","StyledContainer","StyledUserBar","StyledInnerUserBar","StyledInnerUserBar1","StyledUserToolBar","App","loadProgressBar","isLightMood","setMood","useLocation","token","URLSearchParams","search","get","statusCode","focus","StylesProvider","injectFirst","MuiThemeProvider","ThemeProvider","CssBaseline","Container","disableGutters","maxWidth","Badge","overflowCount","offset","boxShadow","BsFillBellFill","Avatar","UserOutlined","removeItem","handleLogout","my","InventoryItems","InventoryItemGroups","InventoryWarehouse","InventoryTransferOrders","store","configureStore","reducer","match","ReactDOM","StrictMode","Provider","Router","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.335f64e9.chunk.js","sourcesContent":["/**\r\n * This is used to generate a custom URL param\r\n * @param params\r\n * @returns {string}\r\n */\r\n const getURLParams = params =>\r\n Object.keys(params).reduce((result, field) => {\r\n   if (params[field]===0 || params[field] ) {\r\n     result += result\r\n       ? `&${field}=${params[field]}`\r\n       : `?${field}=${params[field]}`;\r\n   }\r\n   return result;\r\n }, \"\");\r\n\r\n module.exports = getURLParams","import { createGlobalStyle } from 'styled-components';\r\nimport { createTheme  } from '@material-ui/core';\r\n\r\n\r\nexport const  themes = {\r\n    white: '#fff',\r\n    primaryColor: '#1A88E1',\r\n    primaryColor2: '#1702FF',\r\n    primaryColor3: '#177ACA',\r\n    background: '#F0F3FA',\r\n    foreground: '#FFFFFF',\r\n    subtleBlack: '#B4B4B4',\r\n    lightText: '#5E5D5D',\r\n    boldText: '#242424',\r\n    headerText: '#000000',\r\n    shadow: \"0px 3px 10px #0000001A\",\r\n    filter: \"drop-shadow(0px 4px 20px rgba(201, 201, 201, 0.25))\",\r\n    border: '#C4C4C4',\r\n    highlight: \"#F5F5F5\",\r\n    faintBlue: '#F0F3FA',\r\n    red: '#F44336',\r\n    grey: '#A0AEC0',\r\n}\r\n\r\nexport const lightTheme = createTheme({\r\n    white: '#fff',\r\n    primaryColor: '#1A88E1',\r\n    primaryColor2: '#1702FF',\r\n    primaryColor3: '#177ACA',\r\n    background: '#F0F3FA',\r\n    foreground: '#FFFFFF',\r\n    subtleBlack: '#B4B4B4',\r\n    lightText: '#5E5D5D',\r\n    boldText: '#242424',\r\n    headerText: '#000000',\r\n    shadow: \"0px 3px 10px #0000001A\",\r\n    filter: \"drop-shadow(0px 4px 20px rgba(201, 201, 201, 0.25))\",\r\n    border: '#C4C4C4',\r\n    highlight: \"#F5F5F5\",\r\n    faintBlue: '#F0F3FA',\r\n    red: '#F44336',\r\n    grey: '#A0AEC0',\r\n})\r\n\r\n\r\nexport const darkTheme = createTheme({\r\n    white: '#fff',\r\n    background: '#18191A',\r\n    foreground: '#242526',\r\n    primaryColor: '#1A88E1',\r\n    primaryColor2: '#1702FF',\r\n    primaryColor3: '#177ACA',\r\n    border: '#C5C5C5',\r\n    subtleBlack: '#fff',\r\n    lightText: '#fff',\r\n    boldText: '#fff',\r\n    shadow: \"none\",\r\n    filter: \"none\",\r\n    headerText: '#fff',\r\n    highlight: \"#363838\",\r\n    faintBlue: '#363838',\r\n    red: '#F44336',\r\n    grey: '#A0AEC0',\r\n   \r\n})\r\n\r\nexport const GlobalStyle = createGlobalStyle `\r\n    body{\r\n        background: ${props => props.theme.background};\r\n        color: ${props => props.theme.boldText};\r\n        transition: all 0.5s linear;\r\n    }\r\n\r\n    p{\r\n        margin-bottom: 0px;\r\n        color: ${props => props.theme.boldText};\r\n    }\r\n`","export const getCenter =  ({justifyContent , alignItems , display, flexDirection, flexWrap} = {}) => {\r\n    return {\r\n     display : display ?? 'flex',\r\n     'justify-content': justifyContent ?? 'center',\r\n     'align-items': alignItems ?? 'center',\r\n     'flex-wrap': flexWrap ?? 'wrap',\r\n     'flex-direction': flexDirection ?? 'row'\r\n    }\r\n  }","export const mobile = {\r\n    large: '32px',\r\n    medium: '18px',\r\n    small: '12px',\r\n    normal: '16px',\r\n}\r\n\r\nexport const desktop = {\r\n    large: '2.1vw',\r\n    medium: '1.4vw',\r\n    normal: '1.1vw',\r\n    small: '0.8vw'\r\n}","import styled from 'styled-components';\r\nimport { Box, Button, Typography } from '@material-ui/core';\r\nimport { Table, Form, Modal } from 'antd';\r\nimport { getCenter } from '../utils/getCenter';\r\nimport { desktop } from '../globalAssets/fontSize';\r\n\r\n\r\nexport const StyledTopBar = styled(Box)`\r\n  background-color: ${(props) => props.theme.foreground};\r\n  width: 100%;\r\n  position: fixed;\r\n  z-index: 100;\r\n  top: 0;\r\n`;\r\n\r\nexport const StyledLogo = styled.img`\r\n  width: 10%;\r\n  height: auto;\r\n  cursor: pointer;\r\n`;\r\n\r\nexport const StyledTable = styled(Table)`\r\n  color: ${(props) => props.theme.white};\r\n  & .ant-table-thead > tr > th:nth-child(odd) {\r\n    background-color: ${(props) => props.theme.primaryColor};\r\n    color: ${(props) => props.theme.white};\r\n  }\r\n\r\n  & .ant-table-thead > tr > th:nth-child(even) {\r\n    background-color: ${(props) => props.theme.primaryColor3};\r\n    color: ${(props) => props.theme.white};\r\n  }\r\n\r\n  & .ant-table-row {\r\n    background-color: ${(props) => props.theme.foreground};\r\n    color: ${(props) => props.theme.boldText};\r\n    cursor: pointer;\r\n\r\n    &:nth-child(even) {\r\n      background-color: ${(props) => props.theme.faintBlue};\r\n    }\r\n  }\r\n\r\n  & .ant-table-tbody > tr > td {\r\n    border-bottom: none;\r\n  }\r\n\r\n  & .ant-table-tbody > tr.ant-table-row:hover > td {\r\n    background-color: ${(props) => props.theme.highlight};\r\n    color: ${(props) => props.theme.boldText};\r\n  }\r\n`;\r\n\r\nexport const StyledInputContainer = styled(Box)`\r\n  ${getCenter()}\r\n  border: 1px solid ${(props) => props.theme.border};\r\n  width: 100%;\r\n  padding: 4px;\r\n  border-radius: 5px;\r\n\r\n  & p {\r\n    color: ${(props) => props.theme.lightText};\r\n  }\r\n`;\r\n\r\nexport const StyledPrimaryButton = styled(Button)`\r\n  background-color: ${(props) => props.theme.primaryColor};\r\n  color: ${(props) => props.theme.white};\r\n  text-transform: capitalize;\r\n\r\n  &:hover {\r\n    background-color: ${(props) => props.theme.primaryColor};\r\n  }\r\n`;\r\n\r\nexport const StyledCancelButton = styled(Button)`\r\n  background-color: ${(props) => props.theme.red};\r\n  color: ${(props) => props.theme.white};\r\n  text-transform: capitalize;\r\n\r\n  &:hover {\r\n    background-color: ${(props) => props.theme.red};\r\n  }\r\n`;\r\n\r\nexport const StyledTransparentButton = styled(Button)`\r\n  color: ${(props) => props.theme.lightText};\r\n  border: 1px solid ${(props) => props.theme.border};\r\n  text-transform: capitalize;\r\n`;\r\n\r\nexport const StyledCard = styled(Box)`\r\n  background-color: ${(props) => props.theme.foreground};\r\n  width: 100%;\r\n`;\r\n\r\nexport const StyleLabel = styled.p`\r\n  font-size: ${desktop.normal};\r\n  font-weight: 500;\r\n  color: ${(props) => props.theme.lightText};\r\n`;\r\n\r\nexport const StyledNormalText = styled(Typography)`\r\n  color: ${(props) => props.theme.lightText};\r\n`;\r\n\r\nexport const StyledBoldText = styled(Typography)`\r\n  color: ${(props) => props.theme.boldText};\r\n`;\r\n\r\nexport const StyledModal = styled(Modal)`\r\n  background-color: transparent;\r\n  border-radius: 20px;\r\n  //min-width: 50vw;\r\n  color: ${(props) => props.theme.boldText};\r\n  text-align: center;\r\n  & .ant-modal-content {\r\n    border-radius: 8px;\r\n    margin: 0 auto;\r\n    background-color: ${(props) => props.theme.foreground};\r\n  }\r\n`;\r\n","export default \"data:image/png;base64,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\"","import React from 'react'\r\nimport {\r\n    Box,\r\n    Avatar,\r\n    Typography,\r\n    Divider,\r\n    Popper,\r\n    Paper,\r\n    MenuList,\r\n    Grow,\r\n    ClickAwayListener,\r\n    MenuItem\r\n  } from '@material-ui/core';\r\n\r\nexport const DropDown = React.forwardRef((props, ref) => {\r\n\r\n    const itemList = props.items.map((item, index) => {\r\n        return <MenuItem key={index} onClick={(event) => props.handleClose(event, item)}>{item}</MenuItem>\r\n    })\r\n    return (\r\n      <Popper\r\n        open={props.open}\r\n        anchorEl={ref.current}\r\n        role={undefined}\r\n        transition\r\n        disablePortal\r\n        style={{ zIndex: '1000' }}\r\n      >\r\n        {({ TransitionProps, placement }) => (\r\n          <Grow\r\n            {...TransitionProps}\r\n            style={{\r\n              transformOrigin:\r\n                placement === 'bottom' ? 'center top' : 'center bottom',\r\n            }}\r\n          >\r\n            <Paper>\r\n              <ClickAwayListener onClickAway={props.handleClose}>\r\n                <MenuList autoFocusItem={props.open} id=\"menu-list-grow\" onKeyDown={props.handleListKeyDown}>\r\n                    {itemList}\r\n                  </MenuList>\r\n              </ClickAwayListener>\r\n            </Paper>\r\n          </Grow>\r\n        )}\r\n      </Popper>\r\n    );\r\n  });","import React from \"react\";\r\nimport { StyledBoldText, StyledLogo, StyledTopBar } from \"./styles\";\r\nimport Logo from \"../images/logo.png\";\r\nimport { IconButton, Box, Button } from \"@material-ui/core\";\r\nimport { DropDown } from \"./DropDown\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { IoMdArrowDropdown } from 'react-icons/io';\r\n\r\nexport const TopBar = (props) => {\r\n  const [open, setOpen] = React.useState(false);\r\n  const anchorRef = React.useRef(null);\r\n  const history = useHistory();\r\n\r\n  function handleListKeyDown(event) {\r\n    if (event.key === \"Tab\") {\r\n      event.preventDefault();\r\n      setOpen(false);\r\n    }\r\n  }\r\n\r\n  const handleClose = (event, itemName) => {\r\n    if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n      console.log(itemName);\r\n      switch (itemName) {\r\n        case \"Home\":\r\n          window.location.assign(\"http://apps.ezoneerp.com/home\");\r\n          break;\r\n        case \"Chat\":\r\n          window.location.assign(\"http://apps.ezoneerp.com/chats\");\r\n          break;\r\n        case \"File Management\":\r\n          window.location.assign(\r\n            \"http://apps.ezoneerp.com/file-manager/folders\"\r\n          );\r\n          break;\r\n        case \"Human Resources\":\r\n          window.location.assign(\"http://apps.ezoneerp.com/hr/dashboard\");\r\n          break;\r\n        case \"Payroll\":\r\n          window.location.assign(\"http://apps.ezoneerp.com/payroll\");\r\n          break;\r\n        case \"Task Management\":\r\n          window.location.assign(\"http://apps.ezoneerp.com/task-manager/tasks\");\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n      return;\r\n    }\r\n\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleToggle = () => {\r\n    setOpen((prevOpen) => !prevOpen);\r\n  };\r\n\r\n  return (\r\n    <StyledTopBar\r\n      display=\"flex\"\r\n      justifyContent=\"space-between\"\r\n      alignItems=\"center\"\r\n      style={{\r\n        visibility: props.hidden ? \"hidden\" : \"visible\",\r\n        position: props.hidden ? \"relative\" : \"fixed\",\r\n      }}\r\n      px={3}\r\n      py={1}\r\n    >\r\n      <StyledLogo onClick={() =>  window.location.assign(\"http://apps.ezoneerp.com/home\")} src={Logo} alt=\"logo\" />\r\n      <div ref={anchorRef}>\r\n        <Button onClick={handleToggle}  endIcon={<IoMdArrowDropdown />}>\r\n          <StyledBoldText variant=\"subtitle2\">Applications</StyledBoldText>\r\n        </Button>\r\n        <DropDown\r\n          items={[\r\n            \"Home\",\r\n            \"Chat\",\r\n            \"File Management\",\r\n            \"Human Resources\",\r\n            \"Payroll\",\r\n            \"Task Management\",\r\n          ]}\r\n          handleListKeyDown={handleListKeyDown}\r\n          ref={anchorRef}\r\n          open={open}\r\n          handleClose={handleClose}\r\n        />\r\n      </div>\r\n    </StyledTopBar>\r\n  );\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Menu, Select, Table } from \"antd\";\r\nimport bellow1 from \"../images/bgs/below1.png\";\r\nimport bellow2 from \"../images/bgs/below2.png\";\r\nimport bellow3 from \"../images/bgs/below3.png\";\r\nimport upper1 from \"../images/bgs/upper1.png\";\r\nimport upper2 from \"../images/bgs/upper2.png\";\r\nimport { MdDashboard, MdLabel } from \"react-icons/md\";\r\nimport { Box } from \"@material-ui/core/\";\r\nimport { StyledLogo, StyledTopBar } from \"./styles\";\r\nimport Logo from \"../images/logo.png\";\r\nimport { TopBar } from \"./TopBar\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst { SubMenu } = Menu;\r\n\r\nconst inventoryLinkObj = [\r\n  { name: \"Items\", link: \"/items\" },\r\n  { name: \"Item Groups\", link: \"/item-groups\" },\r\n  { name: \"Warehouse\", link: \"/warehouse\" },\r\n  { name: \"Transfer Orders\", link: \"/transfer-orders\" },\r\n  { name: \"Adjustments\", link: \"/inventory-adjustment\" },\r\n];\r\n\r\nconst SalesLinkObj = [\r\n/*   { name: \"Sales Orders\", link: \"/sales-orders\" }, */\r\n  { name: \"Invoice\", link: \"/invoice\" },\r\n  { name: \"Receipts\", link: \"/receipts\" },\r\n];\r\n\r\nconst partiesObj = [\r\n  { name: \"Customers\", link: \"/customers\" },\r\n  { name: \"Vendors\", link: \"/vendors\" },\r\n];\r\nexport const SideBar = (props) => {\r\n  const handleClick = (e) => {};\r\n\r\n  const inventoryLink = inventoryLinkObj.map((item, index) => {\r\n    return (\r\n      <StyledSubMenuItem key={`inventory-${index}`}>\r\n        <Link to={item.link}>{item.name}</Link>\r\n      </StyledSubMenuItem>\r\n    );\r\n  });\r\n\r\n  const salesLink = SalesLinkObj.map((item, index) => {\r\n    return (\r\n      <StyledSubMenuItem key={`sales-${index}`}>\r\n        <Link to={item.link}>{item.name}</Link>\r\n      </StyledSubMenuItem>\r\n    );\r\n  });\r\n\r\n  const partiesLinks = partiesObj.map((item, index) => {\r\n    return (\r\n      <StyledSubMenuItem key={`parties-${index}`}>\r\n        <Link to={item.link}>{item.name}</Link>\r\n      </StyledSubMenuItem>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <StyledSideBar>\r\n      <Box pt={3}>\r\n        <TopBar hidden />\r\n        <StyledMainMenu\r\n          onClick={handleClick}\r\n          style={{\r\n            width: \"100%\",\r\n            backgroundColor: \"transparent\",\r\n            color: \"#fff\",\r\n          }}\r\n          defaultSelectedKeys={[\"1\"]}\r\n          defaultOpenKeys={[\"sub1\"]}\r\n          mode=\"inline\"\r\n        >\r\n          <StyledSubMenuItem icon={<MdDashboard />} key=\"1\">\r\n            <Link to=\"/\">Dashboard</Link>\r\n          </StyledSubMenuItem>\r\n          <StyledMenu key=\"sub4\" icon={<MdLabel />} title=\"Inventory\">\r\n            {inventoryLink}\r\n          </StyledMenu>\r\n          <StyledMenu key=\"sub5\" icon={<MdLabel />} title=\"Sales\">\r\n            {salesLink}\r\n          </StyledMenu>\r\n          <StyledMenu key=\"sub6\" icon={<MdLabel />} title=\"Clients\">\r\n            {partiesLinks}\r\n          </StyledMenu>\r\n        </StyledMainMenu>\r\n      </Box>\r\n    </StyledSideBar>\r\n  );\r\n};\r\n\r\nconst StyledMenu = styled(SubMenu)`\r\n  background-color: transparent;\r\n  color: #fff !important;\r\n  font-weight: bold;\r\n  &:hover {\r\n    color: #fff !important;\r\n  }\r\n\r\n  & .ant-menu-sub.ant-menu-inline {\r\n    background-color: transparent;\r\n    color: #fff !important;\r\n\r\n    &:hover {\r\n      color: #fff !important;\r\n    }\r\n  }\r\n`;\r\n\r\nconst StyledSideBar = styled(Box)`\r\n  width: 17%;\r\n  height: 100vh;\r\n  position: fixed;\r\n  background: linear-gradient(359.88deg, #250943 55.29%, #1702ff 127.12%);\r\n\r\n  & > div {\r\n    background-image: url(${upper1}), url(${upper2}), url(${bellow1}),\r\n      url(${bellow2}), url(${bellow3});\r\n    background-position: 50% -5%, 50% -5%, bottom, bottom, bottom;\r\n    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;\r\n    height: 100%;\r\n    width: 100%;\r\n  }\r\n`;\r\n\r\nexport const StyledSubMenuItem = styled(Menu.Item)`\r\n  color: ${(props) => props.theme.white} !important;\r\n  font-size: 14px !important;\r\n  font-weight: bold;\r\n\r\n  & a {\r\n    color: ${(props) => props.theme.white};\r\n  }\r\n\r\n  &:hover {\r\n    color: ${(props) => props.theme.white} !important;\r\n  }\r\n`;\r\n\r\nconst StyledMainMenu = styled(Menu)`\r\n  width: 100%;\r\n  background-color: transparent;\r\n  color: #fff;\r\n`;\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVcAAADiCAYAAAD6QYRqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA/0SURBVHgB7d07bxtXGsbxM0NSt6xjrWPBoeyIinaxgN1sERfbxE0af5LdLyBHNuxCXRzDwPb5Lm7UaAurWDUEEjkKDdGMlrIlBggtcciZ5YzI6MbLDOd2zpn/DwiMBEpSCHr08J13zjEElFX8/pe7ubZdODHtZr4we1RbvX0gAEjBEFBScb06J2ath5f/uWnmj+x2p9EWVsMN3MUfa42tH+5bAkCiCFdFFb+rfCVMp+Tna93AbdtW07Y7BwQukAzCVUHDWmsQBC4QL8JVQUFaayCG07QdcWQKoyFyhTqBC0yOcFVMFK01CNu0LdPJHwnHPpia+uTot5PfmoeP/9IQAEYiXBUTW2sNoB+4OavdyM1dqxO4wFWEq0KSbq1BELjARYSrQmRorYEZZt0N3I4jGsd554jARVYQroqQubUGdXkXl5cfoCPCVRFKttYAWA2DbghXBejUWoMgcKEywlUBurfWIPqByy4uZEe4Si6rrTUQw2kKkfu9v4vbarQatfXbTQGkiHCVnHvyVfePuwKBsBqGtBGuEvNa61zrgXCMOYHQCFwkiXCVGK01fucDl11cRIlwlRStNWW9lx84iByTIlwlRWuVDweRIwjCVUK0VnWwi4thCFcJ0VrVRuDCRbhKqPhi9yGtVTPnDiJnFzcbCFfJFJ9Xl4Rh3RfQHgeR641wlQytNdvYxdUH4SoRWisGIXDVRLhKhNaKQDiIXGqEqyRorYgCu7jyIFwlQWtFXFgNSwfhKgFaK5JG4MaPcJUArRVSOLeLy0Hk4RGuKaO1QmaXd3F5+cE/wjVltFaohtUwfwjXFNFaoQsC9yrCNUW0Vugs6weRE64pobUiswyzLjpOs7+Lq+tB5IRrSmitwBkdV8MI1xTQWoHxVA9cwjUFtFZgMv3AVWEXl3BNGK0ViJikB5ETrgmjtQLxk+EgcsI1QbRWID1J7+ISrgmitQJyiTNwCdeE0FoBhfQOIj8x7eaku7iEa0KKL95+3Z3/LAgASgp6EDnhmoDiy+pN0bEeCABaGbWLS7gmgNYKZEh3pHBsW9t5gVj1WivBCmSA7dhWy/l0+/DxjQbhGje7c1cA0J/tNFvG/KYbrO7fmgKx8Vor4wBAf91gFSdTG/1gdRGucaK1AvrrBevlV24J15jQWgH9mW2jsbj7/tWgswyYucbFapf41QVoLGdUPn9T3x6260q4xqC4Xp0TplUSALSUM+2dvdWV7dqIryFc4zDdZtYK6Ku892ilPO6LCNeI0VoBfbXt3Hb9yRc7fr6WcI0arRXQjvtygNkW2/VnyxW//w7hGiFaK6Af760rMb9x+OxGoKMICdco0VoBvdhO0zyZ3jhcvxH42hjCNSK0VkAv7g6rbRU2J72Pi03MqNBaAX0YZv3zSn0jzEWHNNcI0FoBfXg7rI+WR+6w+kG4RoHWCujC1w6rH4wFQjptrQ6tFVCdZW/V1pYjCVYXzTUsWiugNG+HNT+9WVsLfgnhKDTXEGitgOLcVavj6VeT3O46Ds01DForoKywq1Zj//sCE6G1AgpzjwsMuWo1Ds11UrRWQFXl2mqpHHbVahzCdQLstQJqCnKqVViE6yRorYBS+hsB9bXoH1wNw8w1IGatgGJi3AgYheYaFK0VAqqIeyNg5P9bwDdaK6CQBDYCRqG5BjHLQyxAEYlsBIxCuPrktVajVRKOIQDIqX8dS+3Ziu/rWOJCuPrltlbHmBMA5NR9cNUy5jeDXscSF2auPpy2VmatgKzcB1fiZGrj8LEcweoiXP2gtQLySvnB1TCMBcZg1gpILfUHV8MQruPQWgHpyPTgahjCdRx31kprBeQh2YOrYZi5jlB8Xl2itQLykPHB1TA011HM1j1aKyAH91bWW5UP5a0f7ltCAYTrEKet1aK1AhJwjwqsrS3v7Al1EK7D0FqB1KVxVGBUmLkOwKwVkEBKRwVGhXAdxG2tANKTMyqLu+9fyfZiQBCMBS5h1gqkTtoXA4IgXC9j1gqkwp2vznSuva48XVA9Vz2E6zm0ViAl7nz1ZHqjsr6g7BjgMmau5zFrBZKnwXx1EJprD60VSIUW89VBCNc+Zq1AYvr7q6quWflBuApaK5Ak73wAa3pTtzHAZYSri9YKJEK18wHCyHy40lqB+LljANsplFU7HyAMmiutFYhX//zVJ/IfExilTK9icYYAEC9b5N+5a1YqnL8atWw3V1orEBv3mMD6kzs7+yKbMhuuzFqBmHTHAKIw9VrFYwKjlN3mSmsFomeYdXGS26o90XvNyo9MhiutFYhFufbtUlnAk83manZKwhEAIpCFt60mkblwLb6s3hQda0EACK87BjA/FrZ0f9tqEtlrrnbnrgAQBcYAI2QqXGmtQAR62wCMAUbL1ksEtFYgnO4YwDt7lWAdKzPNldYKhHP6UsAXOzqevRqH7IwFaK3AZLpjgGPjeubOBggrE+FKawUm4x0R+MY9IvBL7Y8IjFo2mqvVLnFbGOCft7vaFtt7z1YqWTkiMGrah2txvTonTKskAPjD7mok9G+u021mrYBP/YdWAqFpHa60VsAnTrKKnN7NldYKjHX20Er/e62SpG240lqBMXptdW/19gEPraKn7zN0WiswVP/6Fd60io+WzZXWCgzWv4U1y9evJEXPsQCtFbiqt2K1z4pVIrQLV1orcNFZW2XFKkn6NVdaK3CGtpoarcKV1gqcoq2mT6/mSmsFaKuS0CZcaa3IOretznSuva48XeDIVQno01xprcgw9y2rxZ/ct6xWeMtKElqEK60VmcVbVtLSo7nSWpFN5cXd9zucCSAn5cOV1hof78BkM3+Us9qNE9NuOjP53zsnnzZnjj9e/WH+k5izclZhpmkvdAr568KxufkhLt0HVqKZ885bZbgqL/WbK601Ml6YOrl3YjZfF0fiIODT5v7Xej/vX/3zdeHdSrFoG86iKdqLAqGxXqUWQyjMa62z1kOBybktyLEPjp1P3x0+jucCOu/75P4SNB0+YUzIOxbwJ44FVIna4fpd5St+YCfQC9TFNweJzutu/vuXYuHY+bswjTkBf9zvlZkrc3qVepQNV1prMO5HykJHVDrT0+/S/EF1v2/2J9Y/TFvMCwzVvyCw9mylIqAkdcP1+1/cWSvz1nG6zafdadWWdo8qMn2kLL7sfuro8KnjMi9UDXMn6U8ViJ6S4eq11rnWA+Hw8XIoBT5OFl+8/ZqtgjPuAdbmR2ObW1f1oOa2wKxVIliHsI3KsdHeOVxbjuXhVJRq1//3n+KHz77J/Ay294twn7mqVpRrrrTWq1T+KPnn5x+uzxi/fSOyqPd2FQ+r9KRec6W1Xla+8/MHL1RVXCh317+68/OyyND8nH3VbFAqXL3WarTccBWZ1/34L07yZR3e0qnNH+zcOrzx1277LgiN9T9h9H8ZCmhNreZKa/Xmc8f2n7YPn9yQfqbq27/uW+bz6n+FsO4LDV0OVV5ZzQa1wtVwsttaNV8mrz2+/bb43e49nR5uEarZpky4Fp9Xl4RjZa61ni2TL+u/TN59uCM61gOhOEIVLnWaq9m6l6XWmsX5nNvKb32/907Zg17cTxet9tv93ltVhGq2KRGumWutvTuQsnik3P78r1vFD5/NKzUe4P1/DKBGc81Ka2Xv0Xu4JdarG2K69UDmgO1/shAfCxXeqMIg0ieW11oNPZ8iX1LmffIzp8cUShiw3ZY6VZjduVmuHPC9wijyh+uL3Ydar1/1V6sea7RaFRFpAtbofqJwjAq//BCE1OGqc2vlLR3/UjkBrReoIleoM0vFJOQOV11b67k7kAR8ifs2g/59Ye7xjPmT2Xd8bxCWtOGqY2vlAOTwvJCdETeF2SmFOq6w20y7nxyObPv4IF+YPVr8sdbgIz+iJG+4atZa3bM677z5dYsf4Oh4lyD+rXi9bX2cn7bNOSs/NWca9oXzCWzHtEy7Y3Ubb1NMF34/Pp5trPz8c5PvA+ImZbjq1FrdtjrTufa68nSBnXIgQ+Tcc9Vlr7X3MkBlfYH5HZAx0oWrDm9jsQkAQL7mqnpr7bXVfZ42A5kmVbiq3lrbdm6btgrAJVdzVbW12k7z2Li+qdUB1gBCkSZcVW2tOdPeufXmQ3nrhy9Z7QHwB3maq2Kttf9CwN6zlcqeAICLpAhX5VrrufNWBQAMIEdzVai1umOAvUfL2wIARkg9XJVprb2DrPc4IQmAD+k3V+8ADiE39xSrk9xW7QljAAD+pBquxZfVm6JjTX6yUTLKtW+XygIAAki3udqdZA9ADsDbBshPb3JQMoBJpBauMrdWs200hNUNVrYBAEwoveYqaWv1tgGerrANACCUVMJVxtZ6/qUAAQAhpdNcZWutttM0T6Y3GAMAiIopEua11jB3H0XMvX5lcff9K4IVQJSSb65Wu5R8pA9V3l+7U94XABCtRMPVu7nTtGK5GjkI1qwAxC3Z5ureO5825qsAEpDYB/TT1uqk21pzRoX5KoAkJNdc02+t5dpqqcz91gCSkEi4pjlrdeerM51rrytPF8hVAIlJprmm1Vp789XK+gJjAACJin3mmtqs1TDrzFcBpCX+5ppCa+3fFsAcAEBaYg3XNGatbTu3XVtb3hEAkKJ4m2uCrbX/YkB9jRcDAKQvtplrorNW98HV8fQr3rgCIIv4Hmgl1Vp5cAVAQrGMBZKatfLgCoCs4pm5JtNay3uPVrg4EICUIg/XuFtr/8aAGjcGAJBY9M01ztbafXDVMuY3D5/daAgAkFikD7Ri3RDoBqs4mdo4fEywApBftNsCcbVWNgIAKCaysUBcs1Y2AgCoKLqZazytlY0AAEqKZCwQy6zVsrdqa8sEKwAlRdNcZ6MbB/xxeSBnBABQWOjm6rVWI6LWyhkBADQRfizgtlbHmBNh9Vat2AgAoINQ4RpVazXbRoNVKwA6CTdzjaK15oxKda20VRUAoI+Jw/W0tbbccBUheNddCwDQzORjgfCttcyqFQBdTT4WcGetk7ZWd4eVU60AaGyicC0+ry4JxwrcWtlhBZAVkzVXs3UvcGvtHxe4yqlWAPQXeOZ62loDzlo5LhBAxgR/oOW21iB4OQBABgUaCwSdtbovB9hWYZNgBZA1wZprkNZqmPXPK3UaK4BM8t1cA7XWnFGprS5tccA1gKzy31x9tlb35oDaamlLAECG+WquAVorNwcAgPDbXP21Vl5nBYCeseHqc6+VYAWAc8aPBca9jcU5AQBwxcjmOra1EqwAMNDo5jqktXIACwCMNjRch20IuMHaEvMbHMACAMMNb66DWmv/ZCsOYAGAkQbOXAfOWjnZCgB8G/xA6/JeKydbAUAgV8L1SmslWAEgsKvN9XxrJVgBYCIXwvVCayVYAWBiF5ur2Sl5fxKsABDKH+FafFm9KRx7gWAFgPDOmqvduUuwAkA0vHD1Wmun8wnBCgDROG2uVrtEsAJAhIrr1Tn3LwEAiMz/AeiIc6R1Tl4FAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUwAAACzCAYAAADi3SUnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAlESURBVHgB7d3NbxvHGYDxd3ZJmVTFxHYEAVIg1ZUAqbHcSkB07KF/eg8+B3AsI3YMxUYPPtRFjVqSRXKXO9GsTcJSSIof+zEfz++URL4Fejyz78yuCADgTvp0cycSAMBU+s2jlsTxLsEEgCnyWPazk1RHzYYAACZKLpMDFcVt888EEwAm6D7f3lOR2hj+O1tyABjj8qftrThWu1//N1aYAHBL/tyym+6nWt3476wwAeArXw95bv+MFSYAfCW5kuPrdWV73M9YYQLAF92XWwdKss6kn7PCBAD5PBGPM7Uz7c+wwgQQvPNnexu3J+LjsMIEELTPE/He4+shz51/lhUmgGBNm4iPQzABBEnrfzbyWA7GT8THYUsOIEjJi9eHwzvisyKYAIJz+474rJQAQEDy40MzTMTHYYUJIBiXL7e34myxWBoMfQAE4f3T9c5Kpg5lCawwAXjvy/Gho+uJ+FJ4hgnAa6OzlnMcH5qEYALwVpGxNHiGCcBL5mC6eVVbUbE0CCYAL+UH06e8qm0RDH0AeKf3bPvJIgfT70IwAXjFHEyPYrUpJWDoA8Aby9zimQXBBOCFsmNpEEwAzqsilgZTcgBO06ebO1XE0ogFABxlXqahJP5BKsKWHICTTCyXfZnGvAgmAOfUEUuDYAJwSl2xNAgmAGfUGUuDYAJwQt2xNAgmAOvZEEuDYAKwmi2xNAgmAGvZFEuDYAKwkm2xNLjpA8A65rpjlTd4ZsUKE4BVqnqRxiIIJgBr2BxLg2ACsILtsTT4RAWA2nVfbh3EmdoRyxFMALUyHyyLsnK+wVM0tuQAapF/N/yXtydFfwq3TAQTQOX0m0et5EqOXYqlwZYcQKVMLKWfXa8spS2OIZgAKvP+6XrnOpZH6cC9WBpsyQFUwlx1XNV6P9VRUxxFMAGUzoUzlrNgSw6gVK6csZwFK0wApciPDb14faiieEM8QTABFG44CXd1uDMJW3IAhXJ9Ej4NK0wAhTHvsUyj5oF4imACKMTn4U7Di+HOJGzJASwlH+6cnh2rTD0Qz/GJCgALM88rV7sXJ1qUU3fCF8WWHMBCzPNKieNdl2/uzItgApiL2YL3Xv265/vzynEIJoCZufpatqIw9AEwE/PyDOmm+0rC2YLfxgoTwFQhb8FvY0oOYKLhFFyyaF3AChPAeCFOwe9CMAHckA92LgZPVOz/QfR5MfQBMHL+bG9Dur3HKmZVOQ4rTABevruyDAQTCJxZVa6t9B7zrPJuBBMIFKvK+RFMIEBMwBdDMIGAMAFfDsEEApDf1jk9+7MPn7qtE8EEPJcPdVrJvo/f2KkawQQ8pX/eeZAovcf2uzgEE/CMeU7Z/5TtRUq2BIXipg/gieFzSumm25Fi+l0GVpiYm1nByHnWllS35U+q1dNxUw0G+V++KtN/fE6WZqleiRMdx+k9NUjkUneloa7kb7vnSv0rFSxlGMp7Db3NMaFyEUxMlIfxw+Bhb7XRia76bbUSdUSplhSoobIkSdVF1mycJ73ow9o3g4/qL2+7gjsRyuoRTOTML588/63TU/phJPKg2dBrdf0SNmK56qfyoZ8233eOzv4juIFQ1odgBkw/Xe/I/eaDRDc26gzkNGYF2s+i9ysDeaf+/u8PEjBCWT+CGRhz1KS3Em/Eg3Sj6O112czK85PWv63ei/8X0rad40H2IJgBGEbynk42fVmZZFreraxGZ76GM39E8uLVlln9E0p7EExPmW+xdL5tb/i+ffMtnD7+5eYTgumRkFcleTgdfc6ZR/J62MazSfsRTA+Y4z+9i8H3/MK585yTlaSbCKbDGAZMpwf6Q9KUdzbEc3QiIYkeNlvqPpF0E8F00OVP21vNpmwRytlpic61zs7N2c618/9fqX/891xKYlb8Fx/jb9biTy0C6ReC6QjO4BXr6xtG5rrmRbd5saaSRD5+SuX7tWTSijR/Tvz2bX4NNI/ioN8w10P7qbSVijpNlbb4/+Mvgmk5QgnYg2BailAC9iGYliGUgL0IpkXMMGe1rfcJJWAngmkBczxI7skh31wB7EYwa8Q5SsAtfKKiBvlzyle/7qWZ7Cj+zgKcwW9rxbrPt/cY6ABuIpgV4Tkl4D6CWTJzTS65TA5UFG8IAKcRzBLp080dieNdtt+AHwhmCczLe7/9tn3A9BvwC8Es0HD6HWeNHQHgHYJZEIY6gP8I5pJYVQLhIJhLYFUJhIVgLoBVJRAmgjknVpVAuAjmHMy1xjhWuwIgSARzBvltnYvBE85VAmEjmHfgtg6AIYI5gRns9H8++2vUVJsCAEIwx2KwA2AcXiB8i9mCp5EcyEAA4AZWmF+YLXhyenbMYAfAJART2IIDmE3wW3K24ABmFewKM9+Cv3h9yJvQAcwqlgCZF/yudi9OtET3BQBmFNwKk4PoABYVVDC7L7cOeMMQgEUFMfQZ3QXPODIEYHHeB9M8r5R+dqRixZEhAEvxekvO80oARfI2mDyvBFA077bkoyuOPK8EUDCvVphmuHP9vPKEK44AyuBNMPP74M3siOeVAMrixZZ8dB9cRwIAZXF+hcmHyQBUxdkV5ugTEjGfkABQDSdXmPnNnSs5VpJ1BAAq4twKczgJvy49k3AAlXJqhckkHECdnAnm5cvtrZVMHQoA1MSJLXk+Cc+YhAOol/XB/HwnXHEnHEDtrA3m6NhQxrEhAHaw8hlm/gKNX96ecGwIgE2sCyYv0ABgK6uCSSwB2MyaZ5jDT0kQSwC2smKFaWK5/l3rRw6kA7BZ7cE0B9JXtd4nlgBsV2swub0DwCW1PcPk9g4A19SywuSlvwBcVHkwiSUAV1UaTGIJwGWVBZNYAnBdJUOf3rPtJ3x7B4DrSl9h5rFsEksA7is1mMQSgE9KCyaxBOCbUoJJLAH4qPBgEksAvio0mMQSgM8KCyaxBOC7QoJJLAGEYOlgEksAoVgqmMQSQEgWDiaxBBCahe6SmxdpcDccQGjmXmHy1iEAoZormMQSQMhmDiaxBBC6mYJJLAFAJLrrD+jTzR1iCQAi8bQfmu+GK4l/EADA5BXm+6frnZVMHQoAIDc2mCaW69+1fhQAwMgfDq7rN49a0s+O0oE0BQAwcmNK/iWWJ9exbAsA4IZRMIklAEw32pInV3J8XU9iCQAT5EMf8+YhJVlHAAATNXjzEADM5nftudUsNC2kWQAAAABJRU5ErkJggg==\"","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { TablePagination } from '@material-ui/core';\r\nimport { StyledTable } from './styles';\r\n\r\nexport const TableWithPagination = (props) => {\r\n  return (\r\n    <>\r\n      <StyledTable pagination={false} onRow={props.onRow} columns={props.columns} dataSource={props.dataSource} />\r\n      {!props.hidePagination && <TablePagination\r\n        component=\"div\"\r\n        count={props.total ?? 100}\r\n        page={props.page}\r\n        onChangePage={props.handleChangePage}\r\n        rowsPerPage={props.rowsPerPage}\r\n        onChangeRowsPerPage={props.handleChangeRowsPerPage}\r\n      />}\r\n    </>\r\n  );\r\n};\r\n","import {\r\n  StyledPrimaryButton,\r\n  StyledTransparentButton,\r\n  StyledCancelButton,\r\n} from \"./styles\";\r\nimport * as React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n  root: {\r\n    display: \"flex\",\r\n    alignItems: \"center\",\r\n  },\r\n  wrapper: {\r\n    /*  margin: theme.spacing(1), */\r\n    position: \"relative\",\r\n  },\r\n  buttonProgress: {\r\n    color: theme.PrimaryButton,\r\n    position: \"absolute\",\r\n    top: \"50%\",\r\n    left: \"50%\",\r\n    marginTop: -12,\r\n    marginLeft: -12,\r\n  },\r\n}));\r\n\r\nexport const PrimaryButton = (props) => {\r\n  const classes = useStyles();\r\n  return (\r\n    <div className={classes.wrapper}>\r\n      <StyledPrimaryButton\r\n        disabled={props.loading}\r\n        {...props}\r\n        variant=\"contained\"\r\n      >\r\n        {props.text}\r\n      </StyledPrimaryButton>\r\n\r\n      {props.loading && (\r\n        <CircularProgress size={24} className={classes.buttonProgress} />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport const CancelButton = (props) => {\r\n  const classes = useStyles();\r\n  return (\r\n    <div className={classes.wrapper}>\r\n      <StyledCancelButton\r\n        disabled={props.loading}\r\n        {...props}\r\n        variant=\"contained\"\r\n      >\r\n        {props.text}\r\n      </StyledCancelButton>\r\n      {props.loading && (\r\n        <CircularProgress size={24} className={classes.buttonProgress} />\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport const TransaparentButton = (props) => {\r\n  return (\r\n    <StyledTransparentButton\r\n      variant=\"outlined\"\r\n      endIcon={props.endIcon}\r\n      {...props}\r\n    >\r\n      {props.text}\r\n    </StyledTransparentButton>\r\n  );\r\n};\r\n","// @flow\r\nimport * as React from 'react';\r\nimport { Select } from 'antd';\r\nimport { StyledInputContainer } from './styles';\r\n\r\nconst { Option } = Select;\r\n\r\nexport const SelectInput = (props) => {\r\n  function onChange(value) {\r\n  }\r\n\r\n  function onBlur() {\r\n    console.log('blur');\r\n  }\r\n\r\n  function onFocus() {\r\n    console.log('focus');\r\n  }\r\n\r\n  function onSearch(val) {\r\n  }\r\n\r\n  return (\r\n    <StyledInputContainer>\r\n      <Select\r\n      showSearch\r\n        bordered={false}\r\n        style={{ width: '100%' }}\r\n        placeholder=\"Select a person\"\r\n        optionFilterProp=\"children\"\r\n        onChange={onChange}\r\n        onFocus={onFocus}\r\n        onBlur={onBlur}\r\n        onSearch={onSearch}\r\n        filterOption={(input, option) => {\r\n          return option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0;\r\n        }}>\r\n        <Option value=\"jack\">Jack</Option>\r\n        <Option value=\"lucy\">Lucy</Option>\r\n        <Option value=\"tom\">Tom</Option>\r\n      </Select>\r\n    </StyledInputContainer>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { Typography, Box, Icon } from '@material-ui/core';\r\nimport { StyledCard } from './styles';\r\nimport { PrimaryButton, TransaparentButton } from './Buttons';\r\nimport { SelectInput } from './SelectInput';\r\n\r\nexport const ToolBar = (props) => {\r\n  return (\r\n    <StyledCard px={3} py={2}>\r\n      <Typography variant=\"h6\">{props.title}</Typography>\r\n      {props.showtools && (\r\n        <>\r\n          <Box display=\"flex\" justifyContent=\"flex-end\" alignItems=\"center\">\r\n            <PrimaryButton text={props.createButtonText} onClick={props.onCreate} />\r\n          </Box>\r\n          <Box\r\n            mt={2}\r\n            display=\"flex\"\r\n            justifyContent=\"space-between\"\r\n            alignItems=\"center\">\r\n             <Box style={{width: '40%'}}> \r\n                <SelectInput />\r\n             </Box>   \r\n           \r\n            <Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\r\n              <TransaparentButton\r\n                text=\"Import\"\r\n                endIcon={<Icon>download</Icon>}\r\n              />\r\n              <Box ml={2}>\r\n                <TransaparentButton\r\n                  text=\"Export\"\r\n                  endIcon={<Icon>upload</Icon>}\r\n                />\r\n              </Box>\r\n            </Box>\r\n          </Box>\r\n        </>\r\n      )}\r\n    </StyledCard>\r\n  );\r\n};\r\n","import styled from 'styled-components';\r\nimport { Box, Button, Typography } from '@material-ui/core';\r\nimport { Table, Form } from 'antd';\r\nimport { getCenter } from '../utils/getCenter';\r\nimport { desktop } from '../globalAssets/fontSize';\r\n\r\nexport const StyledImageDrop = styled(Box)`\r\n  border: 2px ${({isImage, theme}) => \r\n    isImage? theme.subtleBlack :theme.primaryColor} ${props => props.isImage? 'solid': 'dashed'};\r\n  width: 100%;\r\n  height: 40vh;\r\n  background-color: ${props => props.theme.faintBlue};\r\n  ${getCenter({ flexDirection: 'column' })};\r\n \r\n    overflow: hidden;\r\n  & > :first-child {\r\n    font-size: ${desktop.large};\r\n    color: ${(props) => props.theme.subtleBlack};\r\n  }\r\n`;\r\n\r\nexport const StyledImagePreview = styled(Box)`\r\n  width: 100%;\r\n  overflow: hidden;\r\n  & img {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: contain;\r\n  }\r\n`;\r\n\r\nexport const StyledMutedText = styled(Typography)`\r\n  color: ${(props) => props.theme.subtleBlack};\r\n`;\r\n\r\nexport const StyledBottomImage = styled(Box)`\r\n  cursor: pointer;\r\n  margin-left: 8px;\r\n  width: 25%;\r\n  border: ${(props) =>\r\n    props.isActive ? `1px solid ${props.theme.primaryColor}` : 'none'};\r\n  overflow: hidden;\r\n  height: 10vmin;\r\n\r\n  &:first-child {\r\n    margin-left: 0px;\r\n  }\r\n\r\n  & img {\r\n    height: auto;\r\n    width: 100%;\r\n    object-fit: cover;\r\n  }\r\n`;\r\n\r\nexport const StyledTable = styled(Table)`\r\n\r\n    & .ant-table-row{\r\n        color: #fff;\r\n        background-color: ${props => props.theme.foreground}; \r\n        color: ${props => props.theme.boldText};\r\n       \r\n        &:nth-child(even){\r\n            background-color: ${props => props.theme.faintBlue};\r\n            \r\n        } \r\n    }\r\n\r\n    & .ant-table-tbody > tr > td {\r\n        border-bottom: none; \r\n    }\r\n\r\n    & .ant-table-tbody > tr.ant-table-row:hover > td{\r\n        background-color: ${props => props.theme.highlight}; \r\n        color: ${props => props.theme.boldText};\r\n    }\r\n\r\n    & .ant-table-thead > tr > td {\r\n        border-bottom: none; \r\n\r\n    }\r\n\r\n    & .ant-table-thead > tr > th{\r\n        background-color: ${props => props.theme.foreground}; \r\n        color: ${props => props.theme.boldText};\r\n    }\r\n\r\n`\r\n","export const getBase64 = file => new Promise((resolve, reject) => {\r\n    const reader = new FileReader();\r\n    reader.readAsDataURL(file);\r\n    reader.onload = () => resolve(reader.result);\r\n    reader.onerror = error => reject(error);\r\n});","\r\n//const hostname = \"https://apps.ezoneerp.com/gateway/inventoryserv/api/v1\";\r\nconst hostname = \"https://dev.ezoneapps.com/gateway/inventoryserv/api/v1\";\r\n\r\nexport default hostname;\r\n\r\n"," const routes = {\r\n   createItemGroupRoute: \"/add_item_group\",\r\n   getAllItemGroupRoute: \"/get_all_item_groups\",\r\n   getItemGroupsByOrgId: (orgId) => `/get_item_group_by_orgid/${orgId}`,\r\n   updateItemGroupRoute: (id) => `/update_item_group/${id}`,\r\n   getItemGroupNumber: \"/get_number_of_item_groups\",\r\n   getSingleItemGroup: (id) => `/get_item_group_by_id/${id}`,\r\n   deleteItemGroup: (id) => `/delete_contact_group/${id}`,\r\n   addWarehouse: \"/add_warehouse\",\r\n   getAllWarehouse: \"/get_all_warehouses\",\r\n   deleteWarehouse: (id) => `/delete_warehouse/${id}`,\r\n   updateWarehouse: (id) => `/update_warehouse/${id}`,\r\n   getSingleWarehouse: (id) => `/get_single_warehouse/${id}`,\r\n   itemsRoute: \"/items\",\r\n   userProfileRoute: \"/users/profile\",\r\n   userByOrgRoute: (orgid) => `/users/get_by_orgid/${orgid}`,\r\n   invoiceRoute: \"/invoices\",\r\n   customersRoute: \"/customers\",\r\n   paymentRoute: \"/payments/invoice_id\",\r\n   logoutRoute: \"/logout\",\r\n   getSingleInvoice: (id) => `invoices/${id}/single`,\r\n   vendorRoute: \"/vendor\",\r\n   createReceiptRoute: \"/receipts\",\r\n   getAllReceiptsRoute: \"/receipts/getAllReceipts\",\r\n   getSingleReceiptRoute: (id) => `/receipts/getReceipts/${id}`,\r\n   issueItemRoute: `/issue-items`,\r\n   getAllTransfarOrderRoute: `/get_all_transfer_orders`,\r\n   addTransfarOrderRoute: `/add_transfer_orders`,\r\n   adjustmentsListRoute: `/get_all_adjustments`,\r\n   addAdjustmentsRoute: `/add_adjustments`\r\n };\r\n\r\nexport default routes;","import hostname from \"./domain\";\r\nimport routes from \"./routes\";\r\nimport axios from \"axios\";\r\nimport getURLParams from \"./Components/utils/getParams\";\r\nimport { PanoramaSharp } from \"@material-ui/icons\";\r\n\r\n\r\n// export const mainDomain = \"https://api.ezoneerp.com/gateway/inventoryserv/api/v1\";\r\n\r\nexport const mainDomain = \"https://dev.ezoneapps.com/gateway/inventoryserv/api/v1\";\r\n\r\n\r\n\r\nclass Services {\r\n  static createItemGroup(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.createItemGroupRoute}`,\r\n      data: payload.data,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static fetchItemGroupsByOrgId({ page, size, orgId }) {\r\n    const params = getURLParams({ page, size });\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getItemGroupsByOrgId(orgId)}${params}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static fetchItemGroupNumber() {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getItemGroupNumber}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static fetchAllItemGroups(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getAllItemGroupRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async updateItemGroups(payload) {\r\n    return axios({\r\n      method: \"PUT\",\r\n      url: `${hostname}${routes.updateItemGroupRoute(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n  static async deleteItemGroup(payload) {\r\n    return axios({\r\n      method: \"DELETE\",\r\n      url: `${hostname}${routes.deleteItemGroup(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static fetchSingleItemGroup(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getSingleItemGroup(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async addWarehouse(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.addWarehouse}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async getAllWarehouse(payload) {\r\n    const params = getURLParams(payload);\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getAllWarehouse}${params}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async fetchSingleWarehouse(payload) {\r\n    console.log(\"...FETCH\");\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getSingleWarehouse(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async updateWarehouse(payload) {\r\n    return axios({\r\n      method: \"PUT\",\r\n      url: `${hostname}${routes.updateWarehouse(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async deleteWarehouse(payload) {\r\n    return axios({\r\n      method: \"DELETE\",\r\n      url: `${hostname}${routes.deleteWarehouse(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getAllItems(payload) {\r\n    const params = getURLParams(payload);\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.itemsRoute}${params}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getSingleItem(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.itemsRoute}/${payload.id}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async createItem(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.itemsRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async deleteItem(payload) {\r\n    return axios({\r\n      method: \"DELETE\",\r\n      url: `${hostname}${routes.itemsRoute}/${payload.id}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async updateItem(payload) {\r\n    return axios({\r\n      method: \"PUT\",\r\n      url: `${hostname}${routes.itemsRouteId}/${payload.id}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async getUserProfile(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${mainDomain}${routes.userProfileRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getUsersByOrg(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${mainDomain}${routes.userByOrgRoute(\r\n        payload.orgId\r\n      )}?start=0&limit=10`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getCustomers(payload) {\r\n    const params = getURLParams(payload);\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.customersRoute}${params}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async createCustomers(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.customersRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async editCustomers(payload) {\r\n    return axios({\r\n      method: \"PUT\",\r\n      url: `${hostname}${routes.customersRoute}/${payload.id}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async createVendors(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.vendorRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async getVendors(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.vendorRoute}/listAllVendors/${payload.page}/${payload.size}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async editVendors(payload) {\r\n    return axios({\r\n      method: \"PUT\",\r\n      url: `${hostname}${routes.vendorRoute}/update/${payload.id}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async getAllInvoice(payload) {\r\n    const params = getURLParams(payload);\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.invoiceRoute}${params}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getInvoice(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.invoiceRoute}/${payload.id}`,\r\n      /* url: `${hostname}/${routes.getSingleInvoice(payload.id)}`, */\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async createInvoice(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.invoiceRoute}/customer_id/${payload.id}/add_invoice`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async getPaymentInfo(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.paymentRoute}/${payload.id}/init_payment`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async makePayment(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.paymentRoute}/${payload.id}/pay`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  static async logout() {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${mainDomain}${routes.logoutRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  //create Receipt\r\n  static async createReceipt(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.createReceiptRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getAllReceipt(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getAllReceiptsRoute}/${payload.page}/${payload.size}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async getSingleReceipt(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getSingleReceiptRoute(payload.id)}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  static async issueItem(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.issueItemRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  // get all TRANSFAR ORDER\r\n  static async getAllTransfarOrder(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.getAllTransfarOrderRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  //create transfar order\r\n  static async createTransfarOrder(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.addTransfarOrderRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  //add Adjustments\r\n  static async createAdjustment(payload) {\r\n    return axios({\r\n      method: \"POST\",\r\n      url: `${hostname}${routes.addAdjustmentsRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken}`,\r\n      },\r\n      data: payload.data,\r\n    });\r\n  }\r\n\r\n  //Adjustments List\r\n  static async getAllAdjustments(payload) {\r\n    return axios({\r\n      method: \"GET\",\r\n      url: `${hostname}${routes.adjustmentsListRoute}`,\r\n      headers: {\r\n        Authorization: `Bearer ${localStorage.invToken},`,\r\n      },\r\n    });\r\n  }\r\n}\r\n\r\n\r\nexport default Services;\r\n\r\n// /api/v1/add_transfer_orders\r\n\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst warehouseSlice = createSlice({\r\n  name: \"warehouseSlice\",\r\n  initialState: {\r\n    warehouseList: [],\r\n    paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n    singleWarehouse: {},\r\n  },\r\n\r\n  reducers: {\r\n    addWarehouseList: (state, { payload }) => {\r\n      state.warehouseList = payload;\r\n    },\r\n\r\n    addPaginationProps: (state, { payload }) => {\r\n      state.paginationProps = payload;\r\n    },\r\n\r\n    addSingleWarehouse: (state, { payload }) => {\r\n      state.singleWarehouse = payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { addWarehouseList, addPaginationProps, addSingleWarehouse } =\r\n  warehouseSlice.actions;\r\n\r\nexport const getAllWarehouse = (payload) => (dispatcher) => {\r\n  return Services.getAllWarehouse(payload)\r\n    .then((response) => {\r\n      const {currentPage: page, totalPages, warehouses} = response.data.data;\r\n      dispatcher(addPaginationProps({page, totalPages, totalItems: warehouses.filter(item => !item.delFlag).length}) \r\n      );\r\n      dispatcher(addWarehouseList(warehouses.filter(item => !item.delFlag)));\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const createWarehouse = (payload) => (dispatcher) => {\r\n  return Services.addWarehouse(payload)\r\n    .then((response) => {\r\n        return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const getSingleWarehouse = (payload) => (dispatcher) => {\r\n  return Services.fetchSingleWarehouse(payload)\r\n    .then((response) => {\r\n          // console.log(response, 'getSingleWarahouse')\r\n        dispatcher(addSingleWarehouse(response.data.data));\r\n        return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const selectWarehouse = (state) => state.warehouseReducer;\r\n\r\nexport default warehouseSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport Services from '../../../services';\r\n\r\nconst itemSlice = createSlice({\r\n    name: 'itemSlice',\r\n    initialState: {\r\n        itemList: [],\r\n        singleItem: {},\r\n        paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n    },\r\n    reducers: {\r\n        addItemList: (state, {payload}) => {\r\n            state.itemList = payload;\r\n        },\r\n        addSingleItem: (state, {payload}) => {\r\n            state.singleItem = payload;\r\n        },\r\n        addPaginationProps: (state, {payload}) => {\r\n            state.paginationProps = payload;\r\n        }\r\n    }\r\n})\r\n\r\nexport const { addItemList, addPaginationProps, addSingleItem } = itemSlice.actions;\r\n\r\nexport const fetchAllItems = payload => dispatcher => {\r\n    return Services.getAllItems(payload).then(\r\n        response => {\r\n            console.log(response, 'item234')\r\n            const {currentPage: page, totalPages, totalItems, items} = response.data.data;\r\n            dispatcher(addPaginationProps({page, totalPages, totalItems}));\r\n            dispatcher(addItemList(items.filter(item => !item.delFlag)))\r\n            return Promise.resolve(response.data.data);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            return Promise.reject(error.response.data);\r\n        }\r\n    })\r\n}\r\n\r\n\r\nexport const createItem = payload => dispatcher => {\r\n    return Services.createItem(payload)\r\n    .then((response) => {\r\n            return Promise.resolve(response.data.data);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            return Promise.reject(error.response.data);\r\n        }\r\n    })\r\n}\r\n\r\nexport const selectItems = state => state.itemReducer;\r\n\r\nexport default itemSlice.reducer;","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst itemGroupSlice = createSlice({\r\n  name: \"itemGroupSlice\",\r\n  initialState: {\r\n    itemGroupList: [],\r\n    paginationProps: { page: 0, totalPages: 0, totalItemGroup: 0 },\r\n    singleItemGroup: {},\r\n  },\r\n  reducers: {\r\n    addItemGroup: (state, { payload }) => {\r\n      state.itemGroupList = payload;\r\n    },\r\n    addPaginationProps: (state, { payload }) => {\r\n      state.paginationProps = payload;\r\n    },\r\n    addSingleItemGroup: (state, { payload }) => {\r\n      state.singleItemGroup = payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const {\r\n  addItemGroup,\r\n  addPaginationProps,\r\n  addSingleItemGroup,\r\n} = itemGroupSlice.actions;\r\n\r\nexport const createItemGroup = (payload) => (dispatcher) => {\r\n  return Services.createItemGroup(payload)\r\n    .then((response) => {      \r\n      return Promise.resolve(response.data.data);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const fetchAllItemGroups = (payload) => (dispatcher) => {\r\n  return Services.fetchAllItemGroups(payload)\r\n    .then((response) => {\r\n       dispatcher(\r\n         addItemGroup(response.data.data.filter((item) => !item.delFlag))\r\n       );\r\n      return Promise.resolve(response.data.data);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        \r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const fetchItemGroupsByOrg = (payload) => (dispatcher) => {\r\n  return Services.fetchItemGroupsByOrgId(payload)\r\n    .then((response) => {\r\n      const {currentPage: page, totalPages, totalItemGroup, item_group} = response.data;\r\n      dispatcher(addPaginationProps({page, totalPages, totalItemGroup}));\r\n      dispatcher(addItemGroup(item_group.filter((item) => !item.delFlag)));\r\n      return Promise.resolve(item_group.filter(item => !item.delFlag));\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const fetchSingleItemGroup = (payload) => (dispatcher) => {\r\n  return Services.fetchSingleItemGroup(payload)\r\n    .then((response) => {\r\n      console.log(response.data, 'singleItemGroup222')\r\n      dispatcher(addSingleItemGroup(response.data));\r\n      return Promise.resolve(response.data);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const selectItemGroups = (state) => state.itemGroupReducer;\r\n\r\nexport default itemGroupSlice.reducer;\r\n","import React from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nconst Alert = React.forwardRef(function Alert(props, ref) {\r\n  return <MuiAlert elevation={6} ref={ref} variant=\"filled\" {...props} />;\r\n});\r\n\r\nexport function Feedback(props) {\r\n  const [open, setOpen] = React.useState(false);\r\n\r\n  const handleClick = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = (event, reason) => {\r\n    if (reason === 'clickaway') {\r\n      return;\r\n    }\r\n\r\n    setOpen(false);\r\n  };\r\n\r\n  return (\r\n      <Snackbar open={props.open} autoHideDuration={6000} onClose={props.onClose}>\r\n        <Alert onClose={props.onClose} severity={props.type} sx={{ width: '100%' }}>\r\n          {props.message}\r\n        </Alert>\r\n      </Snackbar>\r\n    \r\n  );\r\n}","import Services, { mainDomain } from \"../../services\";\r\n\r\nexport const switchURL = (URL) => {\r\n    return mainDomain.split(\"api\").length > 2\r\n      ? URL.replace(/dev/, \"apps\")\r\n      : URL.replace(/apps/, \"dev\");\r\n  };","import { createSlice } from '@reduxjs/toolkit';\r\nimport Services from '../../services';\r\nimport { switchURL } from '../utils/switchURL';\r\n\r\nconst dashboardSlice = createSlice({\r\n    name: 'dashboardSlice',\r\n    initialState: {\r\n        usersByOrg: [],\r\n        userProfile:{},\r\n        itemGroupCount: 0,\r\n    },\r\n    reducers: {\r\n        addUserProfile: (state, {payload}) => {\r\n            state.userProfile = payload;\r\n        },\r\n        addUsersByOrg: (state, { payload }) => {\r\n            state.usersByOrg = payload;\r\n        }\r\n    }\r\n});\r\n\r\nexport const { addUserProfile,  addUsersByOrg } = dashboardSlice.actions;\r\n\r\nexport const getUsersByOrg = payload => dispatcher => {\r\n    return Services.getUsersByOrg(payload).then(\r\n        response => {\r\n            dispatcher(addUsersByOrg(response.data));\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            Promise.reject(error.response.data)\r\n        }\r\n    })\r\n}\r\n\r\n\r\nexport const getUserProfile = payload => dispatcher => {\r\n    return Services.getUserProfile(payload).then(\r\n        response => {\r\n            dispatcher(addUserProfile(response.data));\r\n            dispatcher(getUsersByOrg({orgId: response.data.organisation.orgId}));\r\n            return Promise.resolve(response.data);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            console.log(error.response.status);\r\n            if(error.response.status === 401){\r\n                window.location.assign(switchURL(\"http://apps.ezoneerp.com/login\"));\r\n            }\r\n           return Promise.reject(error.response.data)\r\n        }\r\n    })\r\n}\r\n\r\nexport const getItemGroupNumber = payload => dispatcher => {\r\n    return Services.fetchItemGroupNumber().then(\r\n        response => {\r\n            console.log('STAT',response);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            return Promise.reject(error.response.data)\r\n         }\r\n    })\r\n}\r\n\r\n\r\n\r\nexport const selectDashboard = state => state.dashboardReducer;\r\n\r\nexport default dashboardSlice.reducer;\r\n\r\n","export const convertStringToNumber = (obj) => {\r\n    return Object.fromEntries(\r\n        Object.entries(obj).map((val) => {\r\n          if (!isNaN(val[1] * 1)) {\r\n            val[1] = parseInt(val[1]).toFixed() * 1;\r\n          }\r\n          return val;\r\n        })\r\n      );\r\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst vendorSlice = createSlice({\r\n  name: \"vendorSlice\",\r\n  initialState: {\r\n    vendorList: [],\r\n    paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n  },\r\n\r\n  reducers: {\r\n    addVendorList: (state, { payload }) => {\r\n      state.vendorList = payload;\r\n    },\r\n\r\n    addPaginationProps: (state, { payload }) => {\r\n      state.paginationProps = payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { addVendorList, addPaginationProps } =\r\nvendorSlice.actions;\r\n\r\nexport const getAllVendor = (payload) => (dispatcher) => {\r\n  return Services.getVendors(payload)\r\n    .then((response) => {\r\n      const {currentPage: page, totalPages, totalVendors: totalItems, vendors} = response.data;\r\n      dispatcher(addPaginationProps({page, totalPages, totalItems}));\r\n      dispatcher(addVendorList(vendors));\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        console.log(error.response.status);\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const createVendor = (payload) => (dispatcher) => {\r\n  return Services.createVendors(payload)\r\n    .then((response) => {\r\n        return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const selectVendor = (state) => state.vendorReducer;\r\n\r\nexport default vendorSlice.reducer;\r\n","import React, { useState,  useCallback } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { Form, Input, Select, Row, Col, Space, DatePicker } from \"antd\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport {  useHistory } from \"react-router\";\r\nimport {\r\n  Box,\r\n  Grid,\r\n  Typography,\r\n  Checkbox,\r\n  withStyles,\r\n  Collapse,\r\n} from \"@material-ui/core\";\r\n\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport {\r\n  StyledInputContainer,\r\n  StyleLabel,\r\n\r\n  StyledNormalText,\r\n} from \"../../globalComponents/styles\";\r\nimport {\r\n  StyledImagePreview,\r\n  StyledImageDrop,\r\n  StyledMutedText,\r\n  StyledBottomImage,\r\n} from \"../styles\";\r\nimport { FiCamera, FiPlus } from \"react-icons/fi\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { getBase64 } from \"../../utils/getBase64\";\r\nimport {  selectWarehouse } from \"../Warehouse/slice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { createItem,  fetchAllItems } from \"./slice\";\r\nimport { selectItemGroups } from \"../ItemGroups/slice\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport { convertStringToNumber } from \"../../utils/convertStringToNumber\";\r\nimport { selectVendor } from '../../Clients/Vendors/slice';\r\nconst { TextArea } = Input;\r\nconst { Option } = Select;\r\n\r\nconst CheckboxWithStyle = withStyles((theme) => ({\r\n  root: {\r\n    color: theme.boldText,\r\n    \"&$checked\": {\r\n      color: theme.boldText,\r\n    },\r\n  },\r\n}))((props) => <Checkbox color=\"default\" {...props} />);\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nconst formFields1 = [\r\n  { name: \"itemName\", label: \"Item Name\", isRequired: true, type: \"text\" },\r\n  { name: \"sku\", label: \"SKU\", isRequired: false, type: \"text\" },\r\n  { name: \"itemGroup\", label: \"Item Group\", isRequired: false, type: \"select\" },\r\n  { name: \"itemType\", label: \"Item Type\", isRequired: false, type: \"select\" },\r\n  {\r\n    name: \"itemCategory\",\r\n    label: \"Item Category\",\r\n    isRequired: true,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"description\",\r\n    label: \"Description\",\r\n    isRequired: false,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst formFields2 = [\r\n  {\r\n    name: \"partNumber\",\r\n    label: \"Part Number\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"sellingPrice\",\r\n    label: \"Selling Price\",\r\n    isRequired: true,\r\n    type: \"number\",\r\n  },\r\n  { name: \"costPrice\", label: \"Cost Price\", isRequired: false, type: \"number\" },\r\n  {\r\n    name: \"unit\",\r\n    label: \"Unit\",\r\n    isRequired: true,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"itemDimension\",\r\n    label: \"Dimension\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"lastUnitCost\",\r\n    label: \"Last Unit Cost\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  { name: \"itemWeight\", label: \"Weight\", isRequired: false, type: \"number\" },\r\n];\r\n\r\nconst warehouseFields = [\r\n  { name: \"warehouse1\", label: \"Warehouse\", isRequired: true, type: \"select\" },\r\n  {\r\n    name: \"openStock1\",\r\n    label: \"Opening Stock\",\r\n    isRequired: true,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst sales = [\r\n  {\r\n    name: \"salesAccountId\",\r\n    label: \"Sales Account\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\nconst purchase = [\r\n  {\r\n    name: \"purchaseAccountId\",\r\n    label: \"Purchase Account\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\nconst inventoryAcct = [\r\n  {\r\n    name: \"inventoryAccountId\",\r\n    label: \"Inventory Account\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst taxAcct = [\r\n  {\r\n    name: \"taxAccountId\",\r\n    label: \"Tax Account\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst reorder = [\r\n  {\r\n    name: \"reOrderPoint\",\r\n    label: \"Reorder point\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"reOrderQuantity\",\r\n    label: \"Reorder Quantity\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"maxInventory\",\r\n    label: \"Maximum Inventory\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst vendor = [\r\n  {\r\n    name: \"vendorId\",\r\n    label: \"Preferred Vendor\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\n\r\n\r\nconst missingParams = {\r\n  accountId: 5,\r\n  wareHouseId: 2,\r\n  barcode: \"sdfsdf\",\r\n  manufacturer: \"jqjdijqefok\",\r\n  trashed: false,\r\n  fileFormat: \"ijqwpokwep\",\r\n  fileUrl: \"sadfaijosdf\",\r\n  quantity: 432,\r\n  accountingNumber: 4232342,\r\n  /* vendorId: 2, */\r\n};\r\n\r\n//item Category\r\nconst itemCategoryEnum = [\r\n  { value: \"STOCK_ITEM\", name: \"Stock Item\" },\r\n  { value: \"COMPONENT_ITEM\", name: \"Component Item\" },\r\n];\r\n\r\n//item Type\r\nconst itemTypeEnum = [\r\n  { value: \"GOODS\", name: \"Goods\" },\r\n  { value: \"SERVICE\", name: \"Service\" },\r\n];\r\n\r\nconst units = [\"Pieces\", \"Kg\", \"Dozen\", \"Packs\"];\r\n\r\nexport const AddItem = (props) => {\r\n  const [warehouseState, setWarehouseState] = useState(warehouseFields);\r\n  const [openAccounting, setOpenAccounting] = useState(false);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [imageArr, setImageArr] = useState([]);\r\n  const [buttonLoading, setButtonLoading] = useState(false);\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n  //useSelector\r\n  const { warehouseList } = useSelector(selectWarehouse);\r\n  const { itemGroupList } = useSelector(selectItemGroups);\r\n  const { vendorList } = useSelector(selectVendor);\r\n  const { userProfile } = useSelector(selectDashboard);\r\n\r\n  const [form] = Form.useForm();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n  //\r\n  // console.log(warehouseList, 'warehouseList');\r\n  // console.log(itemGroupList, 'itemGroupList');\r\n  // console.log(vendorList, \"vendorList\");\r\n    //vendor list\r\n  const vendorListOption = vendorList.map((item, index) => {\r\n    return (\r\n      <Option key={index} value={item.id}>\r\n        {`${item.firstName} ${item.lastName}`}\r\n      </Option>\r\n    );\r\n  });\r\n  //warehouse list\r\n  const warehouseOptions = warehouseList.map((item, index) => {\r\n    return (\r\n      <Option key={index} value={item.id}>\r\n        {item.name ?? `item${index}`}\r\n      </Option>\r\n    );\r\n  });\r\n    // Item category\r\n  const itemCategoryOptions = itemCategoryEnum.map((item, index) => {\r\n    return (\r\n      <Option value={item.value} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  //Item Type\r\n  const itemTypeOptions = itemTypeEnum.map((item, index) => {\r\n    return (\r\n      <Option value={item.value} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  // Item Group(useSelector)\r\n  const itemGroupOption = itemGroupList.map((item, index) => {\r\n    return (\r\n      <Option key={index} value={item.id}>\r\n        {item.groupName}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const unitsOption = units.map((item, index) => {\r\n    return (\r\n      <Option value={item} key={index}>\r\n        {item}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const firstSection = formFields1.map((item, index) => {\r\n    if (item.name === \"itemCategory\") {\r\n      return getInput(item, handleSelectChange, itemCategoryOptions);\r\n    }\r\n\r\n    if (item.name === \"itemType\") {\r\n      return getInput(item, handleSelectChange, itemTypeOptions);\r\n    }\r\n\r\n    if (item.name === \"itemGroup\") {\r\n      return getInput(item, handleSelectChange, itemGroupOption);\r\n    }\r\n\r\n    return getInput(item);\r\n  });\r\n\r\n  const secondSection = formFields2.map((item, index) => {\r\n    return <Col sm={12}>{getInput(item, handleSelectChange, unitsOption)}</Col>;\r\n  });\r\n\r\n  const warehouseStateList = [...warehouseState].map((item) => {\r\n    return (\r\n      <Col sm={12}>{getInput(item, handleSelectChange, warehouseOptions)}</Col>\r\n    );\r\n  });\r\n\r\n  const salesAccountList = sales.map((item) =>\r\n    getInput(item, handleSelectChange)\r\n  );\r\n\r\n  const purchaseAccountList = purchase.map((item) =>\r\n    getInput(item, handleSelectChange)\r\n  );\r\n\r\n  const inventoryAccountList = inventoryAcct.map((item) =>\r\n    getInput(item, handleSelectChange)\r\n  );\r\n\r\n  const taxAccountList = taxAcct.map((item) =>\r\n    getInput(item, handleSelectChange)\r\n  );\r\n\r\n  const reorderList = reorder.map((item) => {\r\n    return <Col xs={8}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const vendorInputList = vendor.map((item) => getInput(item, handleSelectChange, vendorListOption));\r\n\r\n  const handleAddWarehouse = () => {\r\n    const prevWarehouse = [...warehouseState];\r\n    const newWarehouse = [\r\n      {\r\n        name: `warehouse1${prevWarehouse.length}`,\r\n        label: \"Warehouse\",\r\n        isRequired: false,\r\n        type: \"select\",\r\n      },\r\n      {\r\n        name: `openStock1${prevWarehouse.length}`,\r\n        label: \"Opening Stock\",\r\n        isRequired: false,\r\n        type: \"number\",\r\n      },\r\n    ];\r\n\r\n    setWarehouseState((prevState) => [...prevState, ...newWarehouse]);\r\n  };\r\n\r\n  const handleOpenAccounting = (e) => {\r\n    setOpenAccounting(e.target.checked);\r\n  };\r\n\r\n  //come back to this for debug images\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setButtonLoading(true);\r\n\r\n      const selectInputValues = { ...selectValues };\r\n\r\n      const formattedValues = Object.fromEntries(\r\n        Object.entries(values).map(([key, value]) => {\r\n          value = selectInputValues[key] ?? value;\r\n          return [key, value];\r\n        })\r\n      );\r\n\r\n      const itemStocks = Object.entries(formattedValues).filter(\r\n        ([key, value]) => key.startsWith(\"openStock\")\r\n      );\r\n\r\n      const itemStockWithWarehouse = Object.entries(formattedValues)\r\n        .filter(([key, value]) => key.startsWith(\"warehouse\"))\r\n        .map(([warehouseKey, warehouseValue], index) => {\r\n          const [stockKey, stockValue] = itemStocks[index];\r\n          return { warehouseID: warehouseValue, openingStock: stockValue };\r\n        });\r\n\r\n      let valuesWithoutItemStockAndWarehouse = Object.fromEntries(\r\n        Object.entries(formattedValues).filter(\r\n          ([key, value]) =>\r\n            !key.startsWith(\"openStock\") && !key.startsWith(\"warehouse\")\r\n        )\r\n      );\r\n\r\n      valuesWithoutItemStockAndWarehouse.wareHouseRequest =\r\n        itemStockWithWarehouse;\r\n      const refineImage = [...imageArr].map((item) => ({ productImage: item }));\r\n\r\n      valuesWithoutItemStockAndWarehouse.imageList = refineImage;\r\n      valuesWithoutItemStockAndWarehouse.orgId =\r\n        userProfile?.organisation?.orgId;\r\n      valuesWithoutItemStockAndWarehouse = Object.fromEntries(\r\n        Object.entries(valuesWithoutItemStockAndWarehouse).filter(\r\n          ([key, value]) => value !== undefined\r\n        )\r\n      );\r\n      valuesWithoutItemStockAndWarehouse.purchaseAccountId = 34;\r\n      valuesWithoutItemStockAndWarehouse.salesAccountId = 54;\r\n      const refinedValues = convertStringToNumber(\r\n        valuesWithoutItemStockAndWarehouse\r\n      );\r\n        // console.log({values}, 'values');\r\n      await dispatcher(\r\n        createItem({ data: { ...refinedValues, ...missingParams, values } })\r\n      );\r\n      await dispatcher(fetchAllItems({}));\r\n      setButtonLoading(false);\r\n      setFeedbackProps((prevState) => ({\r\n        ...prevState,\r\n        message: \"Item has been created\",\r\n        open: true,\r\n        type: \"success\",\r\n      }));\r\n      history.push(\"/items\");\r\n    } catch (error) {\r\n      console.log(error);\r\n      setButtonLoading(false);\r\n      setFeedbackProps((prevState) => ({\r\n        ...prevState,\r\n        message: error?.message ?? \"Error Occurred, please try again later\",\r\n        open: true,\r\n        type: \"error\",\r\n      }));\r\n    }\r\n  };\r\n\r\n  const getImage = (imageBase64Arr) => {\r\n    setImageArr(imageBase64Arr);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Add Item\" />\r\n      <Form onFinish={onFinish} {...layout} form={form}>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={6}>\r\n            <ItemImageComponent getImage={getImage} imageArr={imageArr} />\r\n          </Grid>\r\n          <Grid item xs={6}>\r\n            <Box px={3}>{firstSection}</Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box px={3}>\r\n              <Row gutter={16}>{secondSection}</Row>\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box px={3}>\r\n              <Typography variant=\"subtitle1\">Warehouse</Typography>\r\n            </Box>\r\n            <Box px={3} mt={2}>\r\n              <Row gutter={16}>{warehouseStateList}</Row>\r\n            </Box>\r\n            <Box px={3} mt={2}>\r\n              <PrimaryButton\r\n                text=\"Add Warehouse\"\r\n                onClick={handleAddWarehouse}\r\n              />\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mb={2} mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box display=\"flex\" px={2} alignItems=\"center\">\r\n              <CheckboxWithStyle onChange={handleOpenAccounting} />\r\n              <Typography variant=\"subtitle1\">Inventory Accounting</Typography>\r\n            </Box>\r\n            <Collapse in={openAccounting}>\r\n              <Box px={3} mt={6}>\r\n                <Row gutter={16}>\r\n                  <Col xs={12}>\r\n                    <Box mb={6}>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Sales{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {salesAccountList}\r\n                    </Box>\r\n                    <Box>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Inventory{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {inventoryAccountList}\r\n                    </Box>\r\n                  </Col>\r\n                  <Col xs={12} pt=\"2\">\r\n                    <Box mb={6}>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Purchase{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {purchaseAccountList}\r\n                    </Box>\r\n                    <Box mb={2}>\r\n                      <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                        {\" \"}\r\n                        Tax{\" \"}\r\n                      </Typography>\r\n                    </Box>\r\n                    {taxAccountList}\r\n                  </Col>\r\n                </Row>\r\n              </Box>\r\n            </Collapse>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard>\r\n          <Box pt={4} px={6}>\r\n            <Typography variant=\"subtitle1\">\r\n              Reorder point Parameters\r\n            </Typography>\r\n          </Box>\r\n          <Box px={6}>\r\n            <Row gutter={16}>{reorderList}</Row>\r\n          </Box>\r\n        </StyledCard>\r\n        <StyledCard>\r\n          <Grid xs={6}>\r\n            <Box pt={4} px={6} mt={2}>\r\n              {vendorInputList}\r\n            </Box>\r\n          </Grid>\r\n          <Grid xs={12}>\r\n            <Box pb={6} mt={6} display=\"flex\" justifyContent=\"center\">\r\n              <TransaparentButton\r\n                style={{ width: \"30%\", marginRight: \"20px\" }}\r\n                text=\"Cancel\"\r\n              />\r\n              <PrimaryButton\r\n                style={{ width: \"30%\" }}\r\n                text=\"Save\"\r\n                type=\"submit\"\r\n                loading={buttonLoading}\r\n              />\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n      </Form>\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={() =>\r\n          setFeedbackProps((prevState) => ({ ...prevState, open: false }))\r\n        }\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport const ItemImageComponent = (props) => {\r\n  const [activeImage, setActiveImage] = useState(0);\r\n\r\n  const onDrop = useCallback((acceptedFiles) => {\r\n    let newImages = [];\r\n    acceptedFiles.slice(0, 3).forEach(async (file, index) => {\r\n      const response = await getBase64(file).catch((e) => console.log(e));\r\n      newImages = [...newImages, response];\r\n\r\n      if (newImages.length === acceptedFiles.slice(0, 3).length) {\r\n        props.getImage(newImages);\r\n        /* setImagesState(newImages); */\r\n      }\r\n    });\r\n  }, []);\r\n\r\n  const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });\r\n\r\n  const imageList =  [...props.imageArr].map((item, index) => {\r\n    return (\r\n      <StyledBottomImage\r\n        key={index}\r\n        onClick={() => setActiveImage(index)}\r\n        isActive={activeImage === index}\r\n      >\r\n        <img src={props.imageArr[index]} alt=\"\" />\r\n      </StyledBottomImage>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <Box px={3} pt={2}>\r\n        <StyledImageDrop isImage={props.imageArr.length} {...getRootProps()}>\r\n          <input {...getInputProps()} />\r\n          {isDragActive ? (\r\n            <p>Drop the image(s) here ...</p>\r\n          ) : !props.imageArr.length ? (\r\n            <>\r\n              <FiCamera />\r\n              <StyledMutedText variant=\"body1\">\r\n                Drag image to upload\r\n              </StyledMutedText>\r\n              <Box mt={2}>\r\n                <PrimaryButton text=\"Choose Image\" />\r\n              </Box>\r\n            </>\r\n          ) : (\r\n            <StyledImagePreview>\r\n              <img src={props.imageArr[activeImage]} alt=\"\" />\r\n            </StyledImagePreview>\r\n          )}\r\n        </StyledImageDrop>\r\n      </Box>\r\n      {!props.hideFooterText && (\r\n        <Box px={3}>\r\n          <Typography variant=\"caption\">You can add up to 3 images</Typography>\r\n        </Box>\r\n      )}\r\n      <Box mt={3} px={3} display=\"flex\" alignItems=\"center\">\r\n        {imageList}\r\n      </Box>\r\n    </>\r\n  );\r\n};\r\n\r\nexport const getInput = (\r\n  inputObject,\r\n  onChange,\r\n  selectOptions = [],\r\n  searchObject = {},\r\n  onFooterClicked\r\n) => {\r\n  if (\r\n    inputObject.type === \"text\" ||\r\n    inputObject.type === \"number\" ||\r\n    inputObject.type === \"phone\"\r\n  ) {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <Input\r\n            required={inputObject.isRequired}\r\n            type={inputObject.type}\r\n            disabled={inputObject.disabled}\r\n            defaultValue={inputObject.defaultValue}\r\n            bordered={false}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"textarea\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <TextArea\r\n            defaultValue={inputObject.defaultValue}\r\n            bordered={false}\r\n            autoSize={{ minRows: 3 }}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"select\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        {/*  <StyledInputContainer> */}\r\n        <StyledSelectInput\r\n          /*    required={true} */\r\n          placeholder={`Select ${inputObject.label}`}\r\n          style={{ width: \"100%\", textAlign: \"left\" }}\r\n          bordered={false}\r\n          onChange={onChange(inputObject.name)}\r\n          defaultValue={inputObject.defaultValue}\r\n        >\r\n          {selectOptions.length > 0 ? (\r\n            selectOptions\r\n          ) : (\r\n            <>\r\n              <Option value=\"jack\">Jack</Option>\r\n              <Option value=\"lucy\">Lucy</Option>\r\n              <Option value=\"disabled\" disabled>\r\n                Disabled\r\n              </Option>\r\n              <Option value=\"Yiminghe\">yiminghe</Option>\r\n            </>\r\n          )}\r\n        </StyledSelectInput>\r\n        {/*  </StyledInputContainer> */}\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"date\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <DatePicker\r\n            onChange={onChange(inputObject.name)}\r\n            defaultValue={inputObject.defaultValue}\r\n            placeholder=\"\"\r\n            style={{ width: \"100%\" }}\r\n            bordered={false}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"search\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <Select\r\n            showSearch\r\n            style={{ width: \"100%\", textAlign: \"left\" }}\r\n            placeholder={`Select ${inputObject.label}`}\r\n            bordered={false}\r\n            optionFilterProp=\"children\"\r\n            onChange={onChange(inputObject.name)}\r\n            onFocus={searchObject?.onFocus}\r\n            onBlur={searchObject?.onBlur}\r\n            onSearch={searchObject?.onSearch}\r\n            filterOption={(input, option) => {\r\n              return (\r\n                option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n              );\r\n            }}\r\n            defaultValue={inputObject.defaultValue}\r\n          >\r\n            {selectOptions.length > 0 ? (\r\n              selectOptions\r\n            ) : (\r\n              <>\r\n                <Option value=\"jack\">Jack</Option>\r\n                <Option value=\"lucy\">Lucy</Option>\r\n                <Option value=\"disabled\" disabled>\r\n                  Disabled\r\n                </Option>\r\n                <Option value=\"Yiminghe\">yiminghe</Option>\r\n              </>\r\n            )}\r\n          </Select>\r\n        </StyledInputContainer>\r\n        {onFooterClicked && (\r\n          <Box\r\n            onClick={() => onFooterClicked(inputObject.name)}\r\n            style={{ cursor: \"pointer\", color: \"red\" }}\r\n            mt={1}\r\n            display=\"flex\"\r\n            alignItems=\"center\"\r\n            justifyContent=\"flex-end\"\r\n          >\r\n            <FiPlus />\r\n            <StyledNormalText style={{ color: \"red\" }} variant=\"caption\">\r\n              Add Customer\r\n            </StyledNormalText>\r\n          </Box>\r\n        )}\r\n      </Form.Item>\r\n    );\r\n  }\r\n};\r\n\r\nconst StyledSelect = styled(Select)`\r\n  /* border: 1px solid ${(props) => props.theme.border}; */\r\n  width: 100%;\r\n  padding: 4px;\r\n  border-radius: 5px;\r\n  & .ant-select:not(.ant-select-disabled):hover .ant-select-selector {\r\n    border-color: ${(props) => props.theme.border} !important;\r\n    padding: 4px !important;\r\n    border-radius: 5px !important;\r\n  }\r\n\r\n  & .ant-form-item .ant-select, .ant-form-item .ant-cascader-picker{\r\n    border-color: ${(props) => props.theme.border} !important;\r\n    padding: 4px !important;\r\n    border-radius: 5px !important;\r\n  }\r\n  & p {\r\n    color: ${(props) => props.theme.lightText};\r\n  }\r\n`;\r\n\r\nexport const StyledSelectInput = styled(Select)`\r\n    border: 1px solid ${(props) => props.theme.border};\r\n    background-color: ${props => props.theme.secondaryColor};\r\n    box-shadow: none;\r\n    padding: 4px;\r\n    border-radius: 5px !important;\r\n\r\n    &:focus, &:hover{\r\n        /* border: 1px solid ${props => props.theme.primaryColor}; */\r\n       /*  background-color: ${props => props.theme.secondaryColor}; */\r\n        outline: 0;\r\n    }\r\n\r\n\r\n  `\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { Row, Col } from \"antd\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport { useParams } from \"react-router\";\r\nimport { Box, Grid } from \"@material-ui/core\";\r\nimport {\r\n  StyledNormalText,\r\n  StyledBoldText,\r\n} from \"../../globalComponents/styles\";\r\nimport Services from \"../../../services\";\r\nimport { ItemImageComponent } from './AddItem';\r\n\r\nconst firstSegment = [\r\n  {\r\n    title: \"Item Name\",\r\n    value: \"Mike Bamidele\",\r\n    key: \"itemName\",\r\n  },\r\n  {\r\n    title: \"Item ID\",\r\n    value: \"Lucas John\",\r\n    key: \"id\",\r\n  },\r\n  {\r\n    title: \"Item Category\",\r\n    value: \"Service\",\r\n    key: \"itemCategory\",\r\n  },\r\n  { key: \"itemGroup\", title: \"Item Group\", value: \"\" },\r\n  { key: \"itemType\", title: \"Item Type\", value: \"\" },\r\n  {\r\n    title: \"SKU/UPC\",\r\n    value: \"dd/mm/yy\",\r\n    key: \"sku\",\r\n  },\r\n  {\r\n    title: \"Description\",\r\n    value:\r\n      \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis tempor, tincidunt. Eget molestie placerat mattis sed eget hendrerit quam leo eget.\",\r\n    key: \"description\",\r\n  },\r\n];\r\n\r\nconst secondSegment = [\r\n  {\r\n    key: \"partNumber\",\r\n    title: \"Part Number\",\r\n    value: \"\",\r\n  },\r\n  {\r\n    key: \"sellingPrice\",\r\n    title: \"Selling Price\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  { key: \"costPrice\", title: \"Cost Price\", isRequired: false, type: \"number\" },\r\n  {\r\n    key: \"unit\",\r\n    title: \"Unit\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    key: \"itemDimension\",\r\n    title: \"Dimension\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    key: \"lastUnitCost\",\r\n    title: \"Last Unit Cost\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  { key: \"itemWeight\", title: \"Weight\", isRequired: false, type: \"number\" },\r\n];\r\n\r\nconst stock = [\r\n  {\r\n    title: \"Quantity on Hand\",\r\n    value: \"2000\",\r\n    key: \"quantity\",\r\n  },\r\n  {\r\n    title: \"Reorder Level\",\r\n    value: \"20\",\r\n    key: \"reOrderPoint\",\r\n  },\r\n  /*   {\r\n    title: 'Opening Stock',\r\n    value: '40',\r\n    key: 'openingStock'\r\n  }, */\r\n];\r\n\r\nconst sales = [\r\n  {\r\n    title: \"Sales Account\",\r\n    value: \"Income\",\r\n    key: \"salesAccountId\",\r\n  },\r\n \r\n];\r\n\r\nconst purchase = [\r\n  {\r\n    title: \"Purchase Account\",\r\n    value: \"Cost of good sold\",\r\n    key: \"purchaseAccountId\",\r\n  },\r\n  \r\n];\r\n\r\nconst inventory = [\r\n  {\r\n    title: \"Inventory Account\",\r\n    value: \"Income\",\r\n    key: \"inventoryAccountCode\",\r\n  },\r\n];\r\n\r\nconst tax = [\r\n  {\r\n    title: \"Tax Account\",\r\n    value: \"Income\",\r\n    key: \"taxAccountId\",\r\n  },\r\n];\r\n\r\nconst columns = [\r\n  {\r\n    title: \"Warehouse Name\",\r\n    dataIndex: \"key\",\r\n    key: \"key\",\r\n  },\r\n  {\r\n    title: \"Quantity at Hand\",\r\n    dataIndex: \"quantity\",\r\n    key: \"quantity\",\r\n  },\r\n];\r\n\r\nconst data = [\r\n  {\r\n    key: \"Ojota Zone\",\r\n    quantity: 200,\r\n  },\r\n  {\r\n    key: \"Ikeja Zone\",\r\n    quantity: 200,\r\n  },\r\n  {\r\n    key: \"Abuja Zone\",\r\n    quantity: 200,\r\n  },\r\n  {\r\n    key: \"Aba Zone\",\r\n    quantity: 200,\r\n  },\r\n];\r\n\r\nexport const ItemDetails = (props) => {\r\n  const  {id}  = useParams();\r\n  const [singleItem, setItem] = useState({ itemsImages: [] });\r\n\r\n  useEffect(() => {\r\n    (async () => {\r\n      try {\r\n        const response = await Services.getSingleItem({id});\r\n        console.log(response, 'singleItem')\r\n        setItem(response.data.data);\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    })();\r\n  }, [id]);\r\n \r\n\r\n  const firstSeg = firstSegment.map((item, index) => {\r\n    if (item.key === \"itemCategory\") {\r\n      item.value = singleItem[item.key]\r\n        ? singleItem[item.key].split(\"_\").join(\" \")\r\n        : \"No value\";\r\n    } else if (item.key === \"itemGroup\") {\r\n      item.value = singleItem?.itemGroups?.id;\r\n    } else {\r\n      item.value = singleItem[item.key] ?? \"No value\";\r\n    }\r\n\r\n    return (\r\n      <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n    );\r\n  });\r\n\r\n  const secondSeg = secondSegment.map((item, index) => {\r\n    if (item.key === \"itemType\") {\r\n      item.value =\r\n        singleItem[item.key] === \"1\"\r\n          ? \"Goods\"\r\n          : singleItem[item.key] === \"2\"\r\n          ? \"Service\"\r\n          : \"No value\";\r\n    } else {\r\n      item.value = singleItem[item.key] ?? \"No value\";\r\n    }\r\n\r\n    return (\r\n      <Col xs={12}>\r\n        <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n      </Col>\r\n    );\r\n  });\r\n\r\n  const stockSeg = stock.map((item, index) => {\r\n    item.value = singleItem[item.key] ?? \"No value\";\r\n    return (\r\n      <Col xs={12}>\r\n        <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n      </Col>\r\n    );\r\n  });\r\n\r\n  const salesSeg = sales.map((item, index) => {\r\n    item.value = singleItem[item.key] ?? \"No value\";\r\n    return (\r\n      <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n    );\r\n  });\r\n\r\n  const purchaseSeg = purchase.map((item, index) => {\r\n    item.value = singleItem[item.key] ?? \"No value\";\r\n    return (\r\n      <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n    );\r\n  });\r\n\r\n  const inventorySeg = inventory.map((item, index) => {\r\n    item.value = singleItem[item.key] ?? \"No value\";\r\n    return (\r\n      <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n    );\r\n  });\r\n\r\n  const taxSeg = tax.map((item, index) => {\r\n    item.value = singleItem[item.key] ?? \"No value\";\r\n    return (\r\n      <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n    );\r\n  });\r\n\r\n\r\n  const imageArr = singleItem?.itemsImages?.map((item) => {\r\n    console.log(item, '888')\r\n    return item.fileUrl;\r\n  });\r\n  // const imagearr2 = singleItem.itemGroups.items.map((itm)=>{\r\n  //   console.log(itm.itemsImages.map((itm2)=>{\r\n  //     console.log(itm2.fileUrl, \"itm2\");\r\n  //   }), \"111\");\r\n  // });\r\n\r\n  //? work in progress....\r\n  const image123 = singleItem.itemGroups.items\r\n   const imagearr2 = image123.map((itm) => {\r\n     const image345 = itm.itemsImages;\r\n    const image567 = image345.map((itm2)=>{\r\n       return itm2.fileName;\r\n     })\r\n     return image567;\r\n    \r\n   });\r\n  \r\n  console.log(imagearr2, \"imageArr\");\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Product Name\" />\r\n      <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n        <Grid xs={5}>\r\n          <ItemImageComponent imageArr={`data:image/jpg,base64,${imageArr}`} hideFooterText={true} />\r\n        </Grid>\r\n        <Grid xs={7}>\r\n          <Box ml={6} mt={2}>\r\n            {firstSeg}\r\n          </Box>\r\n        </Grid>\r\n      </StyledCard>\r\n      <StyledCard mt={2} px={4} pt={4}>\r\n        <Row>{secondSeg}</Row>\r\n      </StyledCard>\r\n      <StyledCard mt={2} px={4} pt={4}>\r\n        <SegmentTitle text=\"Physical Stock\" />\r\n        <Row>{stockSeg}</Row>\r\n      </StyledCard>\r\n      <StyledCard mt={2} px={4} pt={4}>\r\n        <Row style={{ marginBottom: 32 }}>\r\n          <Col xs={12}>\r\n            <SegmentTitle text=\"Sales\" />\r\n            {salesSeg}\r\n          </Col>\r\n          <Col xs={12}>\r\n            <SegmentTitle text=\"Purchase\" />\r\n            {purchaseSeg}\r\n          </Col>\r\n        </Row>\r\n        <Row>\r\n          <Col xs={12}>\r\n            <SegmentTitle text=\"Inventory\" />\r\n            {inventorySeg}\r\n          </Col>\r\n          <Col xs={12}>\r\n            <SegmentTitle text=\"Tax\" />\r\n            {taxSeg}\r\n          </Col>\r\n        </Row>\r\n      </StyledCard>\r\n      {/* <StyledCard mt={2} px={4} pt={4} pb={6}>\r\n            <Box mb={2} display='flex' justifyContent='space-between' alignItems='center'>\r\n            <SegmentTitle text=\"Stock Locations\" />\r\n            <PrimaryButton text='Add another Warehouse'/>\r\n            </Box>\r\n            <Box>\r\n                <StyledTable columns={columns} dataSource={data}/>\r\n            </Box>\r\n      </StyledCard> */}\r\n    </>\r\n  );\r\n};\r\n\r\nexport const SingleItemProperty = ({ title, value, ...props }) => {\r\n  return (\r\n    <Box display=\"flex\" alignItems=\"flex-start\">\r\n      <Box flexShrink={0} flexBasis=\"40%\" mb={4}>\r\n        <StyledBoldText variant=\"body1\">{title}</StyledBoldText>\r\n      </Box>\r\n      <Box flexBasis=\"auto\" mx={2}>\r\n        <StyledBoldText style={{ fontWeight: 500 }} variant=\"body1\">\r\n          :\r\n        </StyledBoldText>\r\n      </Box>\r\n      <Box flexBasis=\"auto\">\r\n        <StyledNormalText variant=\"body1\">{value}</StyledNormalText>\r\n      </Box>\r\n    </Box>\r\n  );\r\n};\r\n\r\n\r\nconst SegmentTitle = (props) => {\r\n  return (\r\n    <Box mb={3}>\r\n      <StyledBoldText variant=\"subtitle2\">{props.text}</StyledBoldText>\r\n    </Box>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport {\r\n  InputAdornment,\r\n  Typography,\r\n  Box,\r\n  Modal,\r\n  Backdrop,\r\n  Fade,\r\n  makeStyles,\r\n  Slide\r\n} from '@material-ui/core';\r\nimport { StyledModal } from './styles';\r\nimport { themes } from '../globalAssets/theme';\r\nimport { Form } from 'antd';\r\n\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n    modal: {\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        justifyContent: 'center',\r\n      },\r\n}))\r\n\r\nexport const ModalComponent = (props) => {\r\n  const classes = useStyles();\r\n\r\n  return (\r\n    <Modal\r\n      aria-labelledby=\"transition-modal-title\"\r\n      aria-describedby=\"transition-modal-description\"\r\n      className={classes.modal}\r\n      open={props.open}\r\n      onClose={props.onClose}\r\n      closeAfterTransition\r\n      BackdropComponent={Backdrop}\r\n      BackdropProps={{\r\n        timeout: 500,\r\n      }}>\r\n     {/*  <Fade in={props.open}>{props.children}</Fade> */}\r\n     <Slide direction=\"up\" in={props.open} mountOnEnter unmountOnExit>\r\n     {props.children}\r\n    </Slide>\r\n    </Modal>\r\n  );\r\n};\r\n\r\n\r\nexport const AntFormModal = (props) => {\r\n  const onOk = () => {\r\n    props.form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title={props.title}\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText={props.okText || \"Create\"}\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form\r\n        initialValues={props.initialValues}\r\n        form={props.form}\r\n        {...layout}\r\n        onFinish={props.onFinish}\r\n      >\r\n        {props.children}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n\r\n\r\nexport const AntModal = (props) => {\r\n \r\n\r\n  return (\r\n    <StyledModal\r\n      title={props.title}\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={props.onOk}\r\n      okText={props.okText ?? \"Create\"}\r\n      onCancel={props.onCancel}\r\n    >\r\n      {props.children}\r\n    </StyledModal>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { ModalComponent } from './Modal';\r\nimport { Paper, Box } from '@material-ui/core';\r\nimport { StyledNormalText, StyledBoldText } from './styles';\r\nimport { TransaparentButton, CancelButton} from './Buttons';\r\n \r\nexport function DeleteModal(props) {\r\n    return (\r\n        <ModalComponent\r\n            open={props.open}\r\n            onClose={props.onClose}\r\n        >\r\n            <Paper style={{ minWidth: '30vw', padding: '16px' }}>\r\n                <Box>\r\n                    <StyledBoldText align='center' variant='subtitle1'>{props.title}</StyledBoldText>\r\n                </Box>\r\n                <Box mt={3}>\r\n                    <StyledNormalText variant='body2' align='center'>Do you want to delete <strong>{props.itemName}</strong>?</StyledNormalText>\r\n                </Box>\r\n                <Box p={3} display='flex' justifyContent='flex-end'>\r\n                    <Box mr={2}>\r\n                        <TransaparentButton onClick={props.onClose} text='Cancel' />\r\n                    </Box>\r\n                    <CancelButton loading={props.loading} onClick={props.onDelete} type='submit' text='Delete' />\r\n                </Box>\r\n            </Paper>\r\n        </ModalComponent>\r\n    )\r\n}","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {  Form, Input, Select, Row, Col,  DatePicker } from \"antd\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport { useParams, useHistory } from \"react-router\";\r\nimport {\r\n  Box,\r\n  Grid,\r\n  Typography,\r\n  Checkbox,\r\n  withStyles,\r\n  Collapse,\r\n} from \"@material-ui/core\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport {\r\n  StyledInputContainer,\r\n  StyleLabel,\r\n  StyledNormalText,\r\n} from \"../../globalComponents/styles\";\r\nimport {\r\n  StyledImagePreview,\r\n  StyledImageDrop,\r\n  StyledMutedText,\r\n  StyledBottomImage,\r\n} from \"../styles\";\r\nimport { FiCamera, FiPlus } from \"react-icons/fi\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { getBase64 } from \"../../utils/getBase64\";\r\nimport {  selectWarehouse } from \"../Warehouse/slice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { selectItemGroups } from \"../ItemGroups/slice\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport Services from '../../../services';\r\nimport {fetchAllItemGroups} from '../ItemGroups/slice';\r\nimport { selectVendor } from '../../Clients/Vendors/slice';\r\n\r\nconst { TextArea } = Input;\r\nconst { Option } = Select;\r\n\r\nconst CheckboxWithStyle = withStyles((theme) => ({\r\n  root: {\r\n    color: theme.boldText,\r\n    \"&$checked\": {\r\n      color: theme.boldText,\r\n    },\r\n  },\r\n}))((props) => <Checkbox color=\"default\" {...props} />);\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nconst formFields1 = [\r\n  { name: \"itemName\", label: \"Item Name\", isRequired: true, type: \"text\" },\r\n   { name: \"sku\", label: \"SKU\", isRequired: true, type: \"text\" },\r\n  { name: \"itemGroup\", label: \"Item Group\", isRequired: false, type: \"select\" },\r\n  { name: \"itemType\", label: \"Item Type\", isRequired: false, type: \"select\" },\r\n  {\r\n    name: \"itemCategory\",\r\n    label: \"Item Category\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"description\",\r\n    label: \"Description\",\r\n    isRequired: true,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst formFields2 = [\r\n  {\r\n    name: \"partNumber\",\r\n    label: \"Part Number\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"sellingPrice\",\r\n    label: \"Selling Price\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  { name: \"costPrice\", label: \"Cost Price\", isRequired: false, type: \"number\" },\r\n   {\r\n    name: \"unit\",\r\n    label: \"Unit\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"itemDimension\",\r\n    label: \"Dimension\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"lastUnitCost\",\r\n    label: \"Last Unit Cost\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  { name: \"itemWeight\", label: \"Weight\", isRequired: false, type: \"number\" },\r\n];\r\n\r\nconst warehouseFields = [\r\n  { name: \"warehouse1\", label: \"Warehouse\", isRequired: false, type: \"select\" },\r\n  {\r\n    name: \"openStock1\",\r\n    label: \"Opening Stock\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  }\r\n];\r\n\r\nconst sales = [\r\n  {\r\n    name: \"salesAccountId\",\r\n    label: \"Sales Account\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\nconst purchase = [\r\n  {\r\n    name: \"purchaseAccountId\",\r\n    label: \"Purchase Account\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\nconst inventoryAcct = [\r\n  {\r\n    name: \"inventoryAccountId\",\r\n    label: \"Inventory Account\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst taxAcct = [\r\n  {\r\n    name: \"taxAccountId\",\r\n    label: \"Tax Account\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst reorder = [\r\n  {\r\n    name: \"reOrderPoint\",\r\n    label: \"Reorder point\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"reOrderQuantity\",\r\n    label: \"Reorder Quantity\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"maxInventory\",\r\n    label: \"Maximum Inventory\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst vendor = [\r\n  {\r\n    name: \"vendorId\",\r\n    label: \"Preferred Vendor\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n];\r\n\r\n\r\nconst missingParams = {\r\n  accountId: 5,\r\n  wareHouseId: 2,\r\n  barcode: \"sdfsdf\",\r\n  manufacturer: \"jqjdijqefok\",\r\n  trashed: false,\r\n  fileFormat: \"ijqwpokwep\",\r\n  fileUrl: \"sadfaijosdf\",\r\n  quantity: 432,\r\n  accountingNumber: 4232342,\r\n  vendorId: 2,\r\n};\r\n\r\nconst itemCategoryEnum = [\r\n  { value: \"STOCK_ITEM\", name: \"Stock Item\" },\r\n  { value: \"COMPONENT_ITEM\", name: \"Component Item\" },\r\n];\r\n\r\nconst itemTypeEnum = [\r\n  { value: \"GOODS\", name: \"Goods\" },\r\n  { value: \"SERVICE\", name: \"Service\" },\r\n]\r\n\r\nconst units = [\r\n  'Pieces', 'Kg', 'Dozen', 'Packs',\r\n]\r\n\r\nexport const EditItem = (props) => {\r\n  //useselector\r\n  const { warehouseList } = useSelector(selectWarehouse);\r\n  const { itemGroupList } = useSelector(selectItemGroups);\r\n  const { userProfile } = useSelector(selectDashboard);\r\n  const { vendorList } = useSelector(selectVendor);\r\n\r\n  //console log\r\n  \r\n\r\n\r\n  //useState\r\n  const [warehouseState, setWarehouseState] = useState(warehouseFields);\r\n  const [openAccounting, setOpenAccounting] = useState(true);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [imageArr, setImageArr] = useState([]);\r\n  const [buttonLoading, setButtonLoading] = useState(false);\r\n  const [form] = Form.useForm();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n  const [singleItem, setItem] = useState({});\r\n  /* itemsImages:[] */\r\nconst {id} = useParams();\r\nconst [formFields1State, setFormField1] = useState([]);\r\nconst [formField2State, setFormField2] = useState([]);\r\nconst [warehouseFieldsState, setWarehouseFields] = useState(warehouseFields);\r\nconst [salesState, setSales] = useState([]);\r\nconst [purchaseState, setPurchase] = useState([]);\r\nconst [inventoryAcctState, setInventoryAcct] = useState([])\r\nconst [taxAccountListState, setTaxAccountList] = useState([]);\r\nconst [reorderListState, setReorderList] = useState([])\r\nconst [vendorListState, setVendorList] = useState([]);\r\n\r\n\r\nuseEffect(() => {\r\n    (async () => {\r\n      try {\r\n        const response = await Services.getSingleItem({id});\r\n        \r\n        setItem(response.data.data);\r\n        form.setFieldsValue({\r\n            ...response.data.data,\r\n            itemType:  response.data.data[\"itemType\"] === '1'? \"Goods\" : \"Service\",\r\n            itemCategory: response.data.data[\"itemCategory\"]  === '1'? \"Stock Item\" : \"Component Item\",\r\n            itemGroup: response.data.data[\"itemGroups\"].groupName,\r\n            vendorId: vendorList.find(vendor => vendor.id === response.data.data['vendorId'])\r\n        });\r\n        /* setFormField1(formFields1State.map(item => {\r\n            item.defaultValue = response.data.data[item.name];\r\n            return item;\r\n        })) */\r\n\r\n        const firstSection = formFields1.map((item, index) => {\r\n            item.defaultValue =  response.data.data[item.name]\r\n            if (item.name === \"itemCategory\") {\r\n                item.defaultValue =  (response.data.data[item.name] * 1) === 1? \"Stock Item\" : \"Component Item\";\r\n              return getInput(item, handleSelectChange, itemCategoryOptions);\r\n            }\r\n        \r\n            if (item.name === \"itemType\") {\r\n                item.defaultValue =  (response.data.data[item.name] * 1) === 1? \"Goods\" : \"Service\";\r\n              return getInput(item, handleSelectChange, itemTypeOptions);\r\n            }\r\n        \r\n            if (item.name === \"itemGroup\") {\r\n              const itemGroupOption = itemGroupList.map((item, index) => {  \r\n                return (\r\n                  <Option key={index} value={item.groupName}>\r\n                    {item.groupName}\r\n                  </Option>\r\n                );\r\n              });\r\n\r\n              item.defaultValue = response.data.data[\"itemGroups\"].groupName \r\n              return getInput(item, handleSelectChange, itemGroupOption);\r\n            }\r\n        \r\n            return getInput(item);\r\n          });\r\n\r\n          const secondSection = formFields2.map((item, index) => {\r\n            item.defaultValue =  response.data.data[item.name]\r\n            return (\r\n              <Col sm={12}>\r\n                {getInput(item, handleSelectChange, unitsOption)}\r\n              </Col>\r\n            );\r\n          });\r\n\r\n\r\n          const salesAccountList = sales.map((item) => {\r\n            item.defaultValue =  response.data.data[item.name]\r\n            return getInput(item, handleSelectChange)\r\n          });\r\n\r\n          const purchaseAccountList = purchase.map((item) =>{\r\n            item.defaultValue =  response.data.data[item.name]\r\n            return getInput(item, handleSelectChange)\r\n          });\r\n\r\n\r\n          const inventoryAccountList = inventoryAcct.map((item) =>{\r\n            item.defaultValue =  response.data.data[item.name]\r\n            return getInput(item, handleSelectChange)\r\n          });\r\n\r\n          const taxAccountList = taxAcct.map((item) =>{\r\n            item.defaultValue =  response.data.data[item.name];\r\n            return getInput(item, handleSelectChange)\r\n          });\r\n\r\n          const reorderList = reorder.map((item) => {\r\n            item.defaultValue =  response.data.data[item.name];\r\n            return <Col xs={8}>{getInput(item, handleSelectChange)}</Col>;\r\n          });\r\n\r\n          const vendorInputList = vendor.map((item) => {\r\n\r\n            const vendorListOption = vendorList.map((item, index) => {  \r\n              return (\r\n                <Option key={index} value={item.id}>\r\n                   {`${item.firstName} ${item.lastName}`}\r\n                </Option>\r\n              );\r\n            });\r\n\r\n            item.defaultValue =  response.data.data[item.name]?.id;\r\n              return getInput(item, handleSelectChange, vendorListOption)\r\n            });\r\n\r\n\r\n            setVendorList(vendorInputList);\r\n\r\n\r\n          setReorderList(reorderList)\r\n\r\n\r\n          setTaxAccountList(taxAccountList)\r\n\r\n          setInventoryAcct(inventoryAccountList)\r\n\r\n          setPurchase(purchaseAccountList)\r\n          setSales(salesAccountList)\r\n\r\n          setFormField2(secondSection)\r\n\r\n          setFormField1(firstSection)\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    })()\r\n }, [id, itemGroupList])\r\n\r\n\r\n useEffect(() => {  \r\n/*     console.log({singleItem}); */\r\n    if(Object.entries(singleItem).length === 0){\r\n        form.resetFields()\r\n    }else{\r\n        form.setFieldsValue(singleItem);\r\n    }\r\n   \r\n }, [singleItem])\r\n\r\n\r\n  const warehouseOptions = warehouseList.map((item, index) => {\r\n    return (\r\n      <Option key={index} value={item.id}>\r\n        {item.name ?? `item${index}`}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const itemCategoryOptions = itemCategoryEnum.map((item, index) => {\r\n    return (\r\n      <Option value={item.value} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const itemTypeOptions = itemTypeEnum.map((item, index) => {\r\n    return (\r\n      <Option value={item.value} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n\r\n\r\n\r\n  \r\n\r\n  const unitsOption = units.map((item, index) => {\r\n    return (\r\n      <Option value={item} key={index}>{item}</Option>\r\n    )\r\n  })\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n\r\n\r\n  const warehouseStateList = [...warehouseState].map((item) => {\r\n    item.defaultValue = singleItem[item.name];\r\n    return (\r\n      <Col sm={12}>{getInput(item, handleSelectChange, warehouseOptions)}</Col>\r\n    );\r\n  });\r\n\r\n \r\n\r\n  const handleAddWarehouse = () => {\r\n    const prevWarehouse = [...warehouseState];\r\n    const newWarehouse = [\r\n      {\r\n        name: `warehouse1${prevWarehouse.length}`,\r\n        label: \"Warehouse\",\r\n        isRequired: false,\r\n        type: \"select\",\r\n      },\r\n      {\r\n        name: `openStock1${prevWarehouse.length}`,\r\n        label: \"Opening Stock\",\r\n        isRequired: false,\r\n        type: \"number\",\r\n      },\r\n    ];\r\n\r\n    setWarehouseState((prevState) => [...prevState, ...newWarehouse]);\r\n  };\r\n\r\n  const handleOpenAccounting = (e) => {\r\n    setOpenAccounting(e.target.checked);\r\n  };\r\n\r\n\r\n  const onFinish = async (values) => {\r\n      try {\r\n        const prevItemState = {\r\n            ...singleItem,\r\n            itemType:  singleItem[\"itemType\"]  === '1'? \"GOODS\": \"SERVICE\",\r\n            itemCategory: singleItem[\"itemCategory\"] === '1'? \"STOCK_ITEM\" : \"COMPONENT_ITEM\",\r\n        }\r\n    \r\n        const selectInputValues = { ...selectValues };\r\n    \r\n        values.itemType = values[\"itemType\"]  === '1'? \"GOODS\" : \"SERVICE\";\r\n        values.itemCategory = values[\"itemCategory\"] === '1'? \"STOCK_ITEM\" : \"COMPONENT_ITEM\";\r\n       \r\n        //values.itemGroup = values.itemGroups.groupName;\r\n    \r\n        let currentItem = Object.fromEntries(\r\n            Object.entries(values).map(([key, value]) => {\r\n              value = selectInputValues[key] ?? value ??  prevItemState[key];\r\n              return [key, value];\r\n            })\r\n          );\r\n\r\n\r\n    \r\n        currentItem = Object.fromEntries(Object.entries(prevItemState).map(([key, value]) => {\r\n              value = currentItem[key] ?? value;\r\n              return [key, value];\r\n            }))\r\n\r\n            currentItem.itemGroup = currentItem.itemGroups.groupName;\r\n            delete currentItem.itemGroups;\r\n            currentItem.imageList = [{productImage: 'sdevfewferf'}];\r\n\r\n            console.log(values,'valuesEdit');\r\n            const response = await Services.updateItem({data:currentItem,  id: currentItem.id });\r\n            console.log(response, 'editItem');\r\n          // console.log(Object.fromEntries(currentItem), prevItemState);\r\n      } catch (error) {\r\n          console.log(error);\r\n      }\r\n      \r\n  \r\n  };\r\n\r\n  const getImage = (imageBase64Arr) => {\r\n    setImageArr(imageBase64Arr);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Edit Item\" />\r\n      <Form initialValues={singleItem} onFinish={onFinish} {...layout} form={form}>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={6}>\r\n            <ItemImageComponent getImage={getImage} imageArr={imageArr} />\r\n          </Grid>\r\n          <Grid item xs={6}>\r\n            <Box px={3}>{formFields1State}</Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box px={3}>\r\n              <Row gutter={16}>{formField2State}</Row>\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box px={3}>\r\n              <Typography variant=\"subtitle1\">Warehouse</Typography>\r\n            </Box>\r\n            <Box px={3} mt={2}>\r\n              <Row gutter={16}>{warehouseStateList}</Row>\r\n            </Box>\r\n            <Box px={3} mt={2}>\r\n              <PrimaryButton\r\n                text=\"Add Warehouse\"\r\n                onClick={handleAddWarehouse}\r\n              />\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard mb={2} mt={2} py={3} px={4} display=\"flex\">\r\n          <Grid item xs={12}>\r\n            <Box display=\"flex\" px={2} alignItems=\"center\">\r\n              <CheckboxWithStyle onChange={handleOpenAccounting} />\r\n              <Typography variant=\"subtitle1\">Inventory Accounting</Typography>\r\n            </Box>\r\n            <Collapse in={openAccounting}>\r\n              <Box px={3} mt={6}>\r\n                <Row gutter={16}>\r\n                  <Col xs={12}>\r\n                    <Box mb={6}>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Sales{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {salesState}\r\n                    </Box>\r\n                    <Box>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Inventory{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {inventoryAcctState}\r\n                    </Box>\r\n                  </Col>\r\n                  <Col xs={12} pt=\"2\">\r\n                    <Box mb={6}>\r\n                      <Box mb={2}>\r\n                        <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                          {\" \"}\r\n                          Purchase{\" \"}\r\n                        </Typography>\r\n                      </Box>\r\n                      {purchaseState}\r\n                    </Box>\r\n                    <Box mb={2}>\r\n                      <Typography gutterBottom={true} variant=\"subtitle2\">\r\n                        {\" \"}\r\n                        Tax{\" \"}\r\n                      </Typography>\r\n                    </Box>\r\n                    {taxAccountListState}\r\n                  </Col>\r\n                </Row>\r\n              </Box>\r\n            </Collapse>\r\n          </Grid>\r\n        </StyledCard>\r\n        <StyledCard>\r\n          <Box pt={4} px={6}>\r\n            <Typography variant=\"subtitle1\">\r\n              Reorder point Parameters\r\n            </Typography>\r\n          </Box>\r\n          <Box px={6}>\r\n            <Row gutter={16}>{reorderListState}</Row>\r\n          </Box>\r\n        </StyledCard>\r\n        <StyledCard>\r\n          <Grid xs={6}>\r\n            <Box pt={4} px={6} mt={2}>\r\n              {vendorListState}\r\n            </Box>\r\n          </Grid>\r\n          <Grid xs={12}>\r\n            <Box pb={6} mt={6} display=\"flex\" justifyContent=\"center\">\r\n              <TransaparentButton\r\n                style={{ width: \"30%\", marginRight: \"20px\" }}\r\n                text=\"Cancel\"\r\n              />\r\n              <PrimaryButton\r\n                style={{ width: \"30%\" }}\r\n                text=\"Save\"\r\n                type=\"submit\"\r\n                loading={buttonLoading}\r\n              />\r\n            </Box>\r\n          </Grid>\r\n        </StyledCard>\r\n      </Form>\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={() =>\r\n          setFeedbackProps((prevState) => ({ ...prevState, open: false }))\r\n        }\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport const ItemImageComponent = (props) => {\r\n  const [activeImage, setActiveImage] = useState(0);\r\n\r\n  const onDrop = useCallback((acceptedFiles) => {\r\n    let newImages = [];\r\n    acceptedFiles.slice(0, 3).forEach(async (file, index) => {\r\n      const response = await getBase64(file).catch((e) => console.log(e));\r\n      newImages = [...newImages, response];\r\n\r\n      if (newImages.length === acceptedFiles.slice(0, 3).length) {\r\n        props.getImage(newImages);\r\n        /* setImagesState(newImages); */\r\n      }\r\n    });\r\n  }, []);\r\n\r\n  const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });\r\n\r\n  const imageList = [...props.imageArr].map((item, index) => {\r\n    return (\r\n      <StyledBottomImage\r\n        key={index}\r\n        onClick={() => setActiveImage(index)}\r\n        isActive={activeImage === index}\r\n      >\r\n        <img src={props.imageArr[index]} alt=\"\" />\r\n      </StyledBottomImage>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <Box px={3} pt={2}>\r\n        <StyledImageDrop isImage={props.imageArr.length} {...getRootProps()}>\r\n          <input {...getInputProps()} />\r\n          {isDragActive ? (\r\n            <p>Drop the image(s) here ...</p>\r\n          ) : !props.imageArr.length ? (\r\n            <>\r\n              <FiCamera />\r\n              <StyledMutedText variant=\"body1\">\r\n                Drag image to upload\r\n              </StyledMutedText>\r\n              <Box mt={2}>\r\n                <PrimaryButton text=\"Choose Image\" />\r\n              </Box>\r\n            </>\r\n          ) : (\r\n            <StyledImagePreview>\r\n              <img src={props.imageArr[activeImage]} alt=\"\" />\r\n            </StyledImagePreview>\r\n          )}\r\n        </StyledImageDrop>\r\n      </Box>\r\n      {!props.hideFooterText && (\r\n        <Box px={3}>\r\n          <Typography variant=\"caption\">You can add up to 3 images</Typography>\r\n        </Box>\r\n      )}\r\n      <Box mt={3} px={3} display=\"flex\" alignItems=\"center\">\r\n        {imageList}\r\n      </Box>\r\n    </>\r\n  );\r\n};\r\n\r\nexport const getInput = (\r\n  inputObject,\r\n  onChange,\r\n  selectOptions = [],\r\n  searchObject = {},\r\n  onFooterClicked\r\n) => {\r\n    \r\n  if (inputObject.type === \"text\" || inputObject.type === \"number\" || inputObject.type === \"phone\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <Input\r\n            required={inputObject.isRequired}\r\n            type={inputObject.type}\r\n            disabled={inputObject.disabled}\r\n            defaultValue={inputObject.defaultValue}\r\n            bordered={false}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } \r\n  else if (inputObject.type === \"textarea\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <TextArea\r\n            defaultValue={inputObject.defaultValue}\r\n            bordered={false}\r\n            autoSize={{ minRows: 3 }}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"select\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <Select\r\n            placeholder={`Select ${inputObject.label}`}\r\n            style={{ width: \"100%\", textAlign: \"left\" }}\r\n            bordered={false}\r\n            onChange={onChange(inputObject.name)}\r\n            defaultValue={inputObject.defaultValue}\r\n          >\r\n            {selectOptions.length > 0 ? (\r\n              selectOptions\r\n            ) : (\r\n              <>\r\n                <Option value=\"jack\">Jack</Option>\r\n                <Option value=\"lucy\">Lucy</Option>\r\n                <Option value=\"disabled\" disabled>\r\n                  Disabled\r\n                </Option>\r\n                <Option value=\"Yiminghe\">yiminghe</Option>\r\n              </>\r\n            )}\r\n          </Select>\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"date\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <DatePicker\r\n            onChange={onChange(inputObject.name)}\r\n            defaultValue={inputObject.defaultValue}\r\n            placeholder=\"\"\r\n            style={{ width: \"100%\" }}\r\n            bordered={false}\r\n          />\r\n        </StyledInputContainer>\r\n      </Form.Item>\r\n    );\r\n  } else if (inputObject.type === \"search\") {\r\n    return (\r\n      <Form.Item\r\n        key={inputObject.name}\r\n        name={inputObject.name}\r\n        label={<StyleLabel>{inputObject.label}</StyleLabel>}\r\n        rules={[{ required: inputObject.isRequired }]}\r\n      >\r\n        <StyledInputContainer>\r\n          <Select\r\n            showSearch\r\n            style={{ width: \"100%\", textAlign: \"left\" }}\r\n            placeholder={`Select ${inputObject.label}`}\r\n            bordered={false}\r\n            optionFilterProp=\"children\"\r\n            onChange={onChange(inputObject.name)}\r\n            onFocus={searchObject?.onFocus}\r\n            onBlur={searchObject?.onBlur}\r\n            onSearch={searchObject?.onSearch}\r\n            filterOption={(input, option) => {\r\n              return (\r\n                option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\r\n              );\r\n            }}\r\n            defaultValue={inputObject.defaultValue}\r\n          >\r\n            {selectOptions.length > 0 ? (\r\n              selectOptions\r\n            ) : (\r\n              <>\r\n                <Option value=\"jack\">Jack</Option>\r\n                <Option value=\"lucy\">Lucy</Option>\r\n                <Option value=\"disabled\" disabled>\r\n                  Disabled\r\n                </Option>\r\n                <Option value=\"Yiminghe\">yiminghe</Option>\r\n              </>\r\n            )}\r\n          </Select>\r\n        </StyledInputContainer>\r\n        {onFooterClicked && (\r\n          <Box\r\n            onClick={() => onFooterClicked(inputObject.name)}\r\n            style={{ cursor: \"pointer\", color: \"red\" }}\r\n            mt={1}\r\n            display=\"flex\"\r\n            alignItems=\"center\"\r\n            justifyContent=\"flex-end\"\r\n          >\r\n            <FiPlus />\r\n            <StyledNormalText style={{ color: \"red\" }} variant=\"caption\">\r\n              Add Customer\r\n            </StyledNormalText>\r\n          </Box>\r\n        )}\r\n      </Form.Item>\r\n    );\r\n  }\r\n};\r\n","import React, {  useState } from \"react\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {  Popover, Space } from \"antd\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport { AddItem } from \"./AddItem\";\r\nimport { ItemDetails } from \"./ItemDetails\";\r\nimport { selectItems, fetchAllItems } from \"./slice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { FiMoreVertical } from \"react-icons/fi\";\r\nimport Services from \"../../../services\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { DeleteModal } from \"../../globalComponents/deleteModal\";\r\nimport { EditItem } from './EditItem';\r\n\r\nexport const Items = (props) => {\r\n  const [page, setPage] = React.useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n  const { itemList, paginationProps } = useSelector(selectItems);\r\n  const dispatcher = useDispatch();\r\n  \r\n  console.log({itemList, paginationProps }, 'itemlist');\r\n\r\n\r\n  const [deleteModalProps, setDeleteModalProps] = useState({\r\n    visible: false,\r\n    name: \"\",\r\n    id: null,\r\n    loading: false,\r\n  });\r\n\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n\r\n  const columns = [\r\n    {\r\n      title: \"Item\",\r\n      dataIndex: \"itemName\",\r\n      key: \"itemName\",\r\n    },\r\n    /*  {\r\n      title: 'Item ID',\r\n      dataIndex: 'itemId',\r\n      key: 'itemId',\r\n    }, */\r\n    {\r\n      title: \"Item Class\",\r\n      dataIndex: \"itemCategory\",\r\n      key: \"itemCategory\",\r\n      render: (data) => {\r\n        return data === \"1\" ? \"Stock Item\" : \"Component Item\";\r\n      },\r\n    },\r\n    {\r\n      title: \"Unit Price\",\r\n      dataIndex: \"lastUnitCost\",\r\n      key: \"lastUnitCost\",\r\n    },\r\n    {\r\n      title: \"Unit Cost\",\r\n      dataIndex: \"costPrice\",\r\n      key: \"costPrice\",\r\n    },\r\n    {\r\n      title: \"Stock on hand\",\r\n      dataIndex: \"quantity\",\r\n      key: \"quantity\",\r\n    },\r\n    {\r\n      title: \"Warehouse\",\r\n      dataIndex: \"wareHouseName\",\r\n      key: \"wareHouseName\",\r\n    },\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p\r\n              style={{ cursor: \"pointer\" }}\r\n              onClick={() => history.push(`${url}/${allData.id}`)}\r\n            >\r\n              View Detail\r\n            </p>\r\n            <p\r\n              style={{ cursor: \"pointer\" }}\r\n              onClick={() => history.push(`${url}/${allData.id}/edit`)}\r\n            >\r\n              Edit\r\n            </p>\r\n            <p\r\n              onClick={() =>\r\n                setDeleteModalProps({\r\n                  name: allData.itemName,\r\n                  id: allData.id,\r\n                  visible: true,\r\n                })\r\n              }\r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n        return (\r\n          <Popover content={content} trigger=\"click\">\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n\r\n\r\n  /* useEffect(() => {\r\n    getAllItems();\r\n  },[]) */\r\n\r\n  /*  const handleChangePage = (event, newPage) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    setRowsPerPage(parseInt(event.target.value, 10));\r\n    setPage(0);\r\n  };\r\n */\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(fetchAllItems({ page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        fetchAllItems({ page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n\r\n  const gotoAddItem = () => {\r\n    history.push(`${url}/add-item`);\r\n  };\r\n\r\n  const handleItemDelete = async () => {\r\n    try {\r\n      setDeleteModalProps((prevState) => ({ ...prevState, loading: true }));\r\n       await Services.deleteItem({\r\n        id: deleteModalProps.id,\r\n      });\r\n      await dispatcher(fetchAllItems({ page, size: rowsPerPage }));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        message: `${deleteModalProps.name} has been deleted`,\r\n        open: true,\r\n      });\r\n      setDeleteModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        visible: false,\r\n      }));\r\n    } catch (error) {\r\n      console.log(error);\r\n      setDeleteModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        message: `Please try again`,\r\n        open: true,\r\n      });\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"All Items\"\r\n          showtools\r\n          onCreate={gotoAddItem}\r\n          createButtonText=\"Create Item\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            total={paginationProps.totalItems}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={itemList}\r\n            /*  onRow={handleTableRow} */\r\n          />\r\n        </StyledCard>\r\n        <DeleteModal\r\n          open={deleteModalProps.visible}\r\n          loading={deleteModalProps.loading}\r\n          itemName={deleteModalProps.name}\r\n          onClose={() =>\r\n            setDeleteModalProps((prevState) => ({\r\n              ...prevState,\r\n              visible: false,\r\n            }))\r\n          }\r\n          onDelete={handleItemDelete}\r\n          title=\"Delete Warehouse\"\r\n        />\r\n       \r\n        <Feedback\r\n          open={feedbackProps.open}\r\n          message={feedbackProps.message}\r\n          type={feedbackProps.type}\r\n          onClose={() =>\r\n            setFeedbackProps((prevState) => ({ ...prevState, open: false }))\r\n          }\r\n        />\r\n      </Route>\r\n      <Route path={`${path}/add-item`}>\r\n        <AddItem />\r\n      </Route>\r\n      <Route exact path={`${path}/:id`}>\r\n        <ItemDetails />\r\n      </Route>\r\n      <Route path={`${path}/:id/edit`}>\r\n          <EditItem/>\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n","import { notification } from \"antd\";\r\n\r\nexport const notificationAlert = (type, message, description, placement='topRight') => {\r\n    notification[type]({\r\n      message,\r\n      description,\r\n      placement\r\n    });\r\n  };","import React, { useState } from \"react\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport {\r\n  useParams,\r\n} from \"react-router\";\r\nimport { Row, Col, Statistic } from \"antd\";\r\nimport { SingleItemProperty } from \"../Items/ItemDetails\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { fetchSingleItemGroup } from \"./slice\";\r\n\r\n\r\n\r\nexport const ItemGroupDetails = (props) => {\r\n  const { id } = useParams();\r\n    const dispatcher = useDispatch();\r\n    const [itemGroupData, setItemGroupData] = useState([]);\r\n    const [itemList, setItemList] = useState([])\r\n\r\n\r\n    const columns = [\r\n      {\r\n        title: \"Item\",\r\n        dataIndex: \"itemName\",\r\n        key: \"itemName\",\r\n      },\r\n      {\r\n        title: \"Item Class\",\r\n        dataIndex: \"itemCategory\",\r\n        key: \"itemCategory\",\r\n        render: (data) => {\r\n          return data === \"1\" ? \"Stock Item\" : \"Component Item\";\r\n        },\r\n      },\r\n      {\r\n        title: \"Unit Price\",\r\n        dataIndex: \"sellingPrice\",\r\n        key: \"sellingPrice\",\r\n        render: (data) => <Statistic valueStyle={{fontSize: '1vw'}} value={data} prefix='₦' precision={2} />\r\n      },\r\n      {\r\n        title: \"Unit Cost\",\r\n        dataIndex: \"lastUnitCost\",\r\n        key: \"lastUnitCost\",\r\n        render: (data) => <Statistic valueStyle={{fontSize: '1vw'}} value={data} prefix='₦' precision={2} />\r\n      },\r\n      {\r\n        title: \"Stock on hand\",\r\n        dataIndex: \"quantity\",\r\n        key: \"quantity\",\r\n      },\r\n      /* {\r\n        title: \"Action\",\r\n        dataIndex: \"action\",\r\n        key: \"action\",\r\n        width: \"5%\",\r\n        render: (data, allData) => {\r\n          const content = (\r\n            <Space direction=\"vertical\" size=\"small\">\r\n              <p\r\n                style={{ cursor: \"pointer\" }}\r\n                onClick={() => history.push(`${url}/${allData.id}`)}\r\n              >\r\n                View Detail\r\n              </p>\r\n              <p \r\n              style={{ cursor: \"pointer\" }}\r\n              onClick={() => history.push(`${url}/${allData.id}/edit`)}\r\n              >Edit</p>\r\n              <p\r\n                onClick={() =>\r\n                  setDeleteModalProps({\r\n                    name: allData.itemName,\r\n                    id: allData.id,\r\n                    visible: true,\r\n                  })\r\n                }\r\n                style={{ color: \"red\", cursor: \"pointer\" }}\r\n              >\r\n                Delete\r\n              </p>\r\n            </Space>\r\n          );\r\n          return (\r\n            <Popover content={content} trigger=\"click\">\r\n              <FiMoreVertical />\r\n            </Popover>\r\n          );\r\n        },\r\n      }, */\r\n    ];\r\n\r\n  React.useEffect(() => {\r\n    (async () => {\r\n      try {\r\n        const response = await dispatcher(fetchSingleItemGroup({ id}));\r\n        // console.log(response, \"singleitemGroup\");\r\n        const {items, ...itemGroupData} = response;\r\n        const refinedItemGroupData = Object.entries(itemGroupData).map(([key, value]) => {\r\n            return ({title: key, value});\r\n        }).filter(item => item.value )\r\n        setItemGroupData(refinedItemGroupData);\r\n        setItemList(items)\r\n        // console.log({items, itemGroupData}, 'group');\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    })();\r\n  }, [id]);\r\n\r\n  const secondSeg = itemGroupData.map((item, index) => {\r\n    return (\r\n      <Col xs={12}>\r\n        <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n      </Col>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Item Group Details\" />\r\n      <StyledCard mt={2} p={4}>\r\n        <Row>{secondSeg}</Row>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          columns={columns}\r\n          dataSource={itemList}\r\n          hidePagination={true}\r\n        />\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledCard,\r\n  StyledNormalText,\r\n  StyledModal,\r\n} from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport { FiMoreVertical } from \"react-icons/fi\";\r\nimport { ModalComponent } from \"../../globalComponents/Modal\";\r\nimport { Box, Paper } from \"@material-ui/core\";\r\nimport { getInput } from \"../Items/AddItem\";\r\nimport { Form, Popover, Space } from \"antd\";\r\nimport { Divider } from \"@material-ui/core\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n  CancelButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { createItemGroup, fetchAllItemGroups, fetchSingleItemGroup,fetchItemGroupsByOrg, selectItemGroups } from \"./slice\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport Services from \"../../../services\";\r\nimport { loadProgressBar } from \"axios-progress-bar\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport { selectDashboard } from '../../Dashboard/slice';\r\nimport { ItemGroupDetails } from './ItemGroupDetails';\r\n\r\n\r\nconst addGroupInput = [\r\n  {\r\n    name: \"groupName\",\r\n    label: \"Group Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"groupDescription\",\r\n    label: \"Description\",\r\n    isRequired: true,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const ItemGroups = (props) => {\r\n  //useSelector\r\n  const { userProfile } = useSelector(selectDashboard)\r\n  const { itemGroupList, paginationProps } = useSelector(selectItemGroups);\r\n  console.log(itemGroupList, \"itemGroupList\");\r\n  \r\n\r\n  //useForm & useState\r\n  const [createGroupForm] = Form.useForm();\r\n  const [editGroupForm] = Form.useForm();\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const [isSubmitDisabled, setSubmitButton] = useState(false);\r\n  const [addGroupModalProps, setAddGroupModalProps] = useState({\r\n    isVisible: false,\r\n  });\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n  const [deleteModalProps, setDeleteModalProps] = useState({\r\n    visible: false,\r\n    name: \"\",\r\n    id: null,\r\n    loading: false,\r\n  });\r\n  const [editModalProps, setEditModalProps] = useState({\r\n    isVisible: false,\r\n    selectedItemInput: [],\r\n    loading: false,\r\n    initialValues:{}\r\n  });\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n  useEffect(() => {\r\n    editGroupForm.resetFields();\r\n  }, [editModalProps.isVisible]);\r\n\r\n\r\n  const handleViewItemGroup = (id) => async () => {\r\n    history.push(`${url}/${id}`)\r\n    //  try {\r\n    //   const response = await dispatcher(fetchSingleItemGroup({id}));\r\n    //   console.log(response);\r\n    // } catch (error) {\r\n    //   console.log(error);\r\n    // } \r\n  }\r\n\r\n  const columns = [\r\n    {\r\n      title: \"ID \",\r\n      dataIndex: \"id\",\r\n      key: \"id\",\r\n    },\r\n    {\r\n      title: \"Name\",\r\n      dataIndex: \"groupName\",\r\n      key: \"groupName\",\r\n    },\r\n    {\r\n      title: \"Description\",\r\n      dataIndex: \"groupDescription\",\r\n      key: \"groupDescription\",\r\n      width: \"40%\",\r\n    },\r\n    /* {\r\n      title: \"Item Count\",\r\n      dataIndex: \"items\",\r\n      key: \"items\",\r\n      render: (data) => data.length,\r\n    }, */\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p \r\n             onClick={() => {\r\n              const newData = addGroupInput.map((item) => {\r\n                item.defaultValue = allData[item.name];\r\n                return getInput(\r\n                  item\r\n                );\r\n              });\r\n              setEditModalProps((prevState) => ({\r\n                ...prevState,\r\n                selectedItemInput: newData,\r\n                isVisible: true,\r\n                initialValues: allData,\r\n              }));\r\n            }}\r\n            style={{ cursor: \"pointer\" }}>Edit</p>\r\n            <p\r\n              onClick={handleViewItemGroup(allData.id)}\r\n              style={{ cursor: \"pointer\" }}\r\n            >\r\n              View Detail\r\n            </p>\r\n            <p\r\n              onClick={() =>\r\n                setDeleteModalProps({\r\n                  name: allData.groupName,\r\n                  id: allData.id,\r\n                  visible: true,\r\n                })\r\n              }\r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n        return (\r\n          <Popover content={content} trigger=\"click\">\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n \r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(fetchItemGroupsByOrg({orgId: userProfile.organisation.orgId,  page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        fetchItemGroupsByOrg({ orgId: userProfile.organisation.orgId, page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n\r\n  const groupInputs = addGroupInput.map((item) => getInput(item));\r\n  \r\n\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setSubmitButton(true);\r\n      await dispatcher(createItemGroup({ data: values }));\r\n      await dispatcher(fetchItemGroupsByOrg({orgId: userProfile.organisation.orgId, page, size: rowsPerPage}));\r\n      \r\n      await dispatcher(fetchAllItemGroups({}))\r\n      setSubmitButton(false);\r\n      setAddGroupModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: false,\r\n      }));\r\n      setFeedbackProps({\r\n        open: true,\r\n        type: \"success\",\r\n        message: `${values.groupName} was created`,\r\n      });\r\n      // window.location.href(`${url}/item-groups`);\r\n      window.location.reload();\r\n      // history.push(`${url}/item-groups`);\r\n    } catch (error) {\r\n      setSubmitButton(false);\r\n      setFeedbackProps({\r\n        open: true,\r\n        type: \"error\",\r\n        message: error.message || \"Error occurred\",\r\n      });\r\n    }\r\n  };\r\n\r\n \r\n\r\n  const handleFeedbackClose = (event, reason) => {\r\n    if (reason === \"clickaway\") {\r\n      return;\r\n    }\r\n    setFeedbackProps((prevState) => ({ ...prevState, open: false }));\r\n  };\r\n\r\n  const handleItemGroupDelete = async () => {\r\n    try {\r\n      setDeleteModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      const response = await Services.deleteItemGroup({\r\n        id: deleteModalProps.id,\r\n      });\r\n      await dispatcher(fetchItemGroupsByOrg({orgId: userProfile.organisation.orgId, page, size: rowsPerPage}));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        message: `${deleteModalProps.name} has been deleted`,\r\n        open: true,\r\n      });\r\n      setDeleteModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        visible: false,\r\n      }));\r\n      window.location.reload();\r\n\r\n    } catch (error) {\r\n      console.log(error);\r\n      setDeleteModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        message: `Please try again`,\r\n        open: true,\r\n      });\r\n    }\r\n  };\r\n\r\n\r\n  const onEditFinish = async (values) => {\r\n    console.log(values, 'editgruop');\r\n    try {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      await Services.updateItemGroups({data: values, id: editModalProps.initialValues.id});\r\n      await dispatcher(fetchItemGroupsByOrg({orgId: userProfile.organisation.orgId, page, size: rowsPerPage}));\r\n      setEditModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        isVisible: false,\r\n      }));\r\n      notificationAlert(\r\n        \"success\",\r\n        \"Item Group updated\",\r\n        `${editModalProps.initialValues.groupName} has been updated`\r\n      );\r\n    } catch (error) {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      if (error.response) {\r\n        notificationAlert(\r\n          \"error\",\r\n          \"Error Occurred\",\r\n          error.response.data.message || \"Please try again later\"\r\n        );\r\n      } else {\r\n        notificationAlert(\"error\", \"Error Occurred\", \"Please try again later\");\r\n      }\r\n    }\r\n  }\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n      <ToolBar\r\n        title=\"All Item Groups\"\r\n        showtools\r\n        onCreate={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: true,\r\n          }))\r\n        }\r\n        createButtonText=\"Create Item Group\"\r\n      />\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          rowsPerPage={rowsPerPage}\r\n          page={page}\r\n          total={paginationProps.totalPages * rowsPerPage}\r\n          handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n          handleChangePage={handleChangePage}\r\n          columns={columns}\r\n          dataSource={itemGroupList}\r\n        />\r\n      </StyledCard>\r\n      <ModalScaffold\r\n        form={createGroupForm}\r\n        onCancel={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        title=\"New Item Group\"\r\n        visible={addGroupModalProps.isVisible}\r\n        loading={isSubmitDisabled}\r\n        onFinish={onFinish}\r\n      >\r\n        {groupInputs}\r\n      </ModalScaffold>\r\n      <ModalScaffold\r\n        form={editGroupForm}\r\n        onCancel={() =>\r\n          setEditModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        title=\"Edit Item Group\"\r\n        visible={editModalProps.isVisible}\r\n        loading={editModalProps.loading}\r\n        onFinish={onEditFinish}\r\n        initialValues={editModalProps.initialValues}\r\n      >\r\n        {editModalProps.selectedItemInput}\r\n      </ModalScaffold>\r\n\r\n      <ModalComponent\r\n        open={deleteModalProps.visible}\r\n        onClose={() =>\r\n          setDeleteModalProps((prevState) => ({ ...prevState, visible: false }))\r\n        }\r\n      >\r\n        <Paper style={{ minWidth: \"30vw\", padding: \"16px\" }}>\r\n          <Box>\r\n            <StyledBoldText align=\"center\" variant=\"subtitle1\">\r\n              Delete Item Group\r\n            </StyledBoldText>\r\n          </Box>\r\n          <Box mt={3}>\r\n            <StyledNormalText variant=\"body2\" align=\"center\">\r\n              Do you want to delete <strong>{deleteModalProps.name}</strong>?\r\n            </StyledNormalText>\r\n          </Box>\r\n          <Box p={3} display=\"flex\" justifyContent=\"flex-end\">\r\n            <Box mr={2}>\r\n              <TransaparentButton\r\n                onClick={() =>\r\n                  setDeleteModalProps((prevState) => ({\r\n                    ...prevState,\r\n                    visible: false,\r\n                  }))\r\n                }\r\n                text=\"Cancel\"\r\n              />\r\n            </Box>\r\n            <CancelButton\r\n              loading={deleteModalProps.loading}\r\n              onClick={handleItemGroupDelete}\r\n              type=\"submit\"\r\n              text=\"Delete\"\r\n            />\r\n          </Box>\r\n        </Paper>\r\n      </ModalComponent>\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={handleFeedbackClose}\r\n      />\r\n      </Route>\r\n      <Route path={`${path}/:id`}>\r\n        <ItemGroupDetails/>\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n\r\nconst ModalScaffold = (props) => {\r\n    \r\n  const onOk = () => {\r\n    props.form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title={props.title}\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form\r\n        initialValues={props.initialValues}\r\n        form={props.form}\r\n        {...layout}\r\n        onFinish={props.onFinish}\r\n      >\r\n        {props.children}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { StyledCard } from \"../../globalComponents/styles\";\r\nimport {  \r\n  useParams,\r\n} from \"react-router\";\r\nimport { Row, Col, Statistic} from \"antd\";\r\nimport { SingleItemProperty } from \"../Items/ItemDetails\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getSingleWarehouse } from \"./slice\";\r\n\r\nconst columns = [\r\n    {\r\n      title: \"Item\",\r\n      dataIndex: \"itemName\",\r\n      key: \"itemName\",\r\n    },\r\n    {\r\n      title: \"Item Class\",\r\n      dataIndex: \"itemCategory\",\r\n      key: \"itemCategory\",\r\n      render: (data) => {\r\n        return data === \"1\" ? \"Stock Item\" : \"Component Item\";\r\n      },\r\n    },\r\n    {\r\n      title: \"Unit Price\",\r\n      dataIndex: \"sellingPrice\",\r\n      key: \"sellingPrice\",\r\n      render: (data) => <Statistic valueStyle={{fontSize: '1vw'}} value={data} prefix='₦' precision={2} />\r\n    },\r\n    {\r\n      title: \"Unit Cost\",\r\n      dataIndex: \"lastUnitCost\",\r\n      key: \"lastUnitCost\",\r\n      render: (data) => <Statistic valueStyle={{fontSize: '1vw'}} value={data} prefix='₦' precision={2} />\r\n    },\r\n    {\r\n      title: \"Stock on hand\",\r\n      dataIndex: \"quantity\",\r\n      key: \"quantity\",\r\n    },\r\n    /* {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p\r\n              style={{ cursor: \"pointer\" }}\r\n              onClick={() => history.push(`${url}/${allData.id}`)}\r\n            >\r\n              View Detail\r\n            </p>\r\n            <p \r\n            style={{ cursor: \"pointer\" }}\r\n            onClick={() => history.push(`${url}/${allData.id}/edit`)}\r\n            >Edit</p>\r\n            <p\r\n              onClick={() =>\r\n                setDeleteModalProps({\r\n                  name: allData.itemName,\r\n                  id: allData.id,\r\n                  visible: true,\r\n                })\r\n              }\r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n        return (\r\n          <Popover content={content} trigger=\"click\">\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    }, */\r\n  ];\r\n\r\nconst data = [\r\n  {\r\n    item: \"Drilling Machine\",\r\n    previousQuantity: 30,\r\n    adjustedBy: \"-10\",\r\n    adjustedQuantity: 20,\r\n  },\r\n];\r\nexport const WarehouseDetails = (props) => {\r\n  const { id } = useParams();\r\n    const dispatcher = useDispatch();\r\n    const [warehouseData, setWarehouseData] = useState([]);\r\n    const [itemList, setItemList] = useState([])\r\n\r\n  React.useEffect(() => {\r\n    (async () => {\r\n      try {\r\n        const response = await dispatcher(getSingleWarehouse({ id }));\r\n        // console.log(response, 'singlewarehouse')\r\n        const {items, ...warehouseData} = response.data.data;\r\n        const refinedWarehouseData = Object.entries(warehouseData).map(([key, value]) => {\r\n            return ({title: key, value});\r\n        }).filter(item => item.value )\r\n        setWarehouseData(refinedWarehouseData);\r\n        setItemList(items)\r\n        \r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    })();\r\n  }, [id]);\r\n\r\n  const secondSeg = warehouseData.map((item, index) => {\r\n    return (\r\n      <Col xs={12}>\r\n        <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n      </Col>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Warehouse Details\" />\r\n      <StyledCard mt={2} p={4}>\r\n        <Row>{secondSeg}</Row>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          columns={columns}\r\n          dataSource={itemList}\r\n          hidePagination={true}\r\n        />\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledCard,\r\n  StyledModal,\r\n} from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport { FiMoreVertical } from \"react-icons/fi\";\r\nimport { ModalComponent } from \"../../globalComponents/Modal\";\r\nimport { Box, Paper } from \"@material-ui/core\";\r\nimport { getInput } from \"../Items/AddItem\";\r\nimport { Form, Space, Popover, Select, notification } from \"antd\";\r\nimport { Divider } from \"@material-ui/core\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport Services from \"../../../services\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { DeleteModal } from \"../../globalComponents/deleteModal\";\r\nimport { createWarehouse, getAllWarehouse, selectWarehouse } from \"./slice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport { getSingleWarehouse } from \"./slice\";\r\nimport { WarehouseDetails } from './WarehouseDetails'\r\n\r\nconst { Option } = Select;\r\n\r\nconst addWarehouseInput = [\r\n  {\r\n    name: \"name\",\r\n    label: \"Warehouse Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"warehousePhoneNumber\",\r\n    label: \"Phone\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"firstStreet\",\r\n    label: \"First Street\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"secondStreet\",\r\n    label: \"Second Street\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"city\",\r\n    label: \"City\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"state\",\r\n    label: \"State\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"zipCode\",\r\n    label: \"Zip Code\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"wareHouseContactEmail\",\r\n    label: \"Warehouse Email\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"headOfWareHouseId\",\r\n    label: \"Head of Warehouse Name\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n  },\r\n  /*  {\r\n    name: 'headOfWareHouseEmailAddress',\r\n    label: 'Head of Warehouse Email',\r\n    isRequired: false,\r\n    type: 'text',\r\n    defaultValue:''\r\n  },\r\n  {\r\n    name: 'headOfWareHouseId',\r\n    label: 'Head of Warehouse ID',\r\n    isRequired: false,\r\n    type: 'number',\r\n    defaultValue:''\r\n  }, */\r\n];\r\n\r\n\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const Warehouse = (props) => {\r\n  const { warehouseList, paginationProps } = useSelector(selectWarehouse);\r\n  const { usersByOrg, userProfile } = useSelector(selectDashboard);\r\n\r\n  // console.log({warehouseList, paginationProps}, 'warehouse')\r\n  const [editWarehouseForm] = Form.useForm();\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const [allWarehouse, setAllWarehouse] = useState([]);\r\n  const {path, url} = useRouteMatch();\r\n  const history = useHistory();\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [addGroupModalProps, setAddGroupModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n  const [deleteModalProps, setDeleteModalProps] = useState({\r\n    visible: false,\r\n    name: \"\",\r\n    id: null,\r\n    loading: false,\r\n  });\r\n  const [editModalProps, setEditModalProps] = useState({\r\n    isVisible: false,\r\n    selectedItemInput: [],\r\n    loading: false,\r\n    initialValues: {},\r\n  });\r\n  const dispatcher = useDispatch();\r\n\r\n  useEffect(() => {\r\n    editWarehouseForm.resetFields();\r\n  }, [editModalProps.isVisible]);\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const userList = [...usersByOrg].map((user, index) => {\r\n    return (\r\n      <Option key={index} value={user.id}>\r\n        {user.fullName !== \" \" ? user.fullName : \"Adefisayo Adeniji\"}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const searchObject = {\r\n    onSearch: (val) => {},\r\n  };\r\n\r\n  const handleViewDetail = (id) => async () => {\r\n   /*  try {\r\n      const response = await dispatcher(getSingleWarehouse({id}));\r\n      console.log(response);\r\n    } catch (error) {\r\n      console.log(error);\r\n    } */\r\n\r\n    history.push(`${url}/${id}`)\r\n  }\r\n\r\n  const columns = [\r\n    // {\r\n    //   title: \"S/N\",\r\n    //   dataIndex: \"id\",\r\n    //   key: \"id\",\r\n    // },\r\n    {\r\n      title: \"Name\",\r\n      dataIndex: \"name\",\r\n      key: \"name\",\r\n    },\r\n    {\r\n      title: \"Email\",\r\n      dataIndex: \"wareHouseContactEmail\",\r\n      key: \"wareHouseContactEmail\",\r\n    },\r\n    {\r\n      title: \"Phone Number\",\r\n      dataIndex: \"warehousePhoneNumber\",\r\n      key: \"warehousePhoneNumber\",\r\n    },\r\n    {\r\n      title: \"Head of Warehouse\",\r\n      dataIndex: \"headOfWarehouseName\",\r\n      key: \"headOfWarehouseName\",\r\n    },\r\n    {\r\n      title: \"City\",\r\n      dataIndex: \"city\",\r\n      key: \"city\",\r\n    },\r\n\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        // console.log(allData, 'allDate')\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p onClick={handleViewDetail(allData.id)}  style={{ cursor: \"pointer\" }}>View Detail</p>\r\n            <p\r\n              onClick={() => {\r\n                const newData = addWarehouseInput.map((item) => {\r\n                  item.defaultValue = allData[item.name];\r\n                  return getInput(\r\n                    item,\r\n                    handleSelectChange,\r\n                    userList,\r\n                    searchObject\r\n                  );\r\n                });\r\n                setEditModalProps((prevState) => ({\r\n                  ...prevState,\r\n                  selectedItemInput: newData,\r\n                  isVisible: true,\r\n                  initialValues: allData,\r\n                }));\r\n              }}\r\n              style={{ cursor: \"pointer\" }}\r\n            >\r\n              Edit\r\n            </p>\r\n            <p\r\n              onClick={() =>\r\n                setDeleteModalProps((prevState) => ({\r\n                  ...prevState,\r\n                  visible: true,\r\n                  name: allData.name,\r\n                  id: allData.id,\r\n                }))\r\n              }\r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n\r\n        const handlePopoverClick = () => {};\r\n        return (\r\n          <Popover\r\n            onClick={handlePopoverClick}\r\n            content={content}\r\n            trigger=\"click\"\r\n          >\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(getAllWarehouse({ page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        getAllWarehouse({ page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n\r\n  const warehouseInputs = addWarehouseInput.map((item) =>\r\n    getInput(item, handleSelectChange, userList, searchObject)\r\n    // console.log(item)\r\n  );\r\n\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      values.headOfWareHouseId = selectValues.headOfWareHouseId;\r\n      values.orgId = userProfile.orgId;\r\n      values.uuid = userProfile.uuId;\r\n      await dispatcher(createWarehouse({ data: values }));\r\n      await dispatcher(getAllWarehouse({}));\r\n      setAddGroupModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: false,\r\n        loading: false,\r\n      }));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        open: true,\r\n        message: \"Warehouse has been added\",\r\n      });\r\n    } catch (error) {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        open: true,\r\n        message: \"An error occurred, please try again later\",\r\n      });\r\n    }\r\n  };\r\n\r\n  const handleFeedbackClose = (event, reason) => {\r\n    if (reason === \"clickaway\") {\r\n      return;\r\n    }\r\n    setFeedbackProps((prevState) => ({ ...prevState, open: false }));\r\n  };\r\n\r\n  const handleWarehouseDelete = async () => {\r\n    try {\r\n      setDeleteModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      await Services.deleteWarehouse({ id: deleteModalProps.id });\r\n      await dispatcher(getAllWarehouse({}));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        open: true,\r\n        message: \"Warehouse has been Deleted\",\r\n      });\r\n      setDeleteModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        visible: false,\r\n      }));\r\n    } catch (error) {\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        open: true,\r\n        message: \"An error occurred, please try again\",\r\n      });\r\n    }\r\n  };\r\n\r\n  const onEditFinish = async (values) => {\r\n    try {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      await Services.updateWarehouse({\r\n        data: values,\r\n        id: editModalProps.initialValues.id,\r\n      });\r\n      await dispatcher(getAllWarehouse({ page, size: rowsPerPage }));\r\n      setEditModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        isVisible: false,\r\n      }));\r\n      notificationAlert(\r\n        \"success\",\r\n        \"Warehouse updated\",\r\n        `${editModalProps.initialValues.name} has been updated`\r\n      );\r\n    } catch (error) {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      if (error.response) {\r\n        notificationAlert(\r\n          \"error\",\r\n          \"Error Occurred\",\r\n          error.response.data.message || \"Please try again later\"\r\n        );\r\n      } else {\r\n        notificationAlert(\"error\", \"Error Occurred\", \"Please try again later\");\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n      <ToolBar\r\n        title=\"All Warehouses\"\r\n        showtools\r\n        onCreate={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: true,\r\n          }))\r\n        }\r\n        createButtonText=\"Add new warehouse\"\r\n      />\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          rowsPerPage={rowsPerPage}\r\n          page={page}\r\n          total={paginationProps.totalItems}\r\n          handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n          handleChangePage={handleChangePage}\r\n          columns={columns}\r\n          dataSource={warehouseList}\r\n        />\r\n      </StyledCard>\r\n      <CreateWarehouseModal\r\n        visible={addGroupModalProps.isVisible}\r\n        onCancel={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        onFinish={onFinish}\r\n        loading={addGroupModalProps.loading}\r\n        warehouseInputs={warehouseInputs}\r\n      />\r\n      <EditWarehouseModal\r\n        visible={editModalProps.isVisible}\r\n        onCancel={() =>\r\n          setEditModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        onFinish={onEditFinish}\r\n        loading={editModalProps.loading}\r\n        warehouseInputs={editModalProps.selectedItemInput}\r\n        form={editWarehouseForm}\r\n        initialValues={editModalProps.initialValues}\r\n      />\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={handleFeedbackClose}\r\n      />\r\n      <DeleteModal\r\n        open={deleteModalProps.visible}\r\n        loading={deleteModalProps.loading}\r\n        itemName={deleteModalProps.name}\r\n        onClose={() =>\r\n          setDeleteModalProps((prevState) => ({ ...prevState, visible: false }))\r\n        }\r\n        onDelete={handleWarehouseDelete}\r\n        title=\"Delete Warehouse\"\r\n      />\r\n      </Route>\r\n      <Route path={`${path}/:id`}>\r\n        <WarehouseDetails/>\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n\r\nconst CreateWarehouseModal = (props) => {\r\n  const [form] = Form.useForm();\r\n\r\n  const onOk = () => {\r\n    form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\" New Warehouse\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form form={form} {...layout} onFinish={props.onFinish}>\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n\r\nconst EditWarehouseModal = (props) => {\r\n  const onOk = () => {\r\n    props.form.submit();\r\n  };\r\n\r\n  const cancelAndReset = () => {\r\n    props.onCancel();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\"Edit Warehouse\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={cancelAndReset}\r\n    >\r\n      <Form\r\n        initialValues={props.initialValues}\r\n        form={props.form}\r\n        {...layout}\r\n        onFinish={props.onFinish}\r\n      >\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { StyledBoldText, StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { FiMoreVertical, FiTrash2 } from 'react-icons/fi';\r\nimport { ModalComponent } from '../../globalComponents/Modal';\r\nimport { Box, Paper } from '@material-ui/core';\r\nimport { getInput } from '../Items/AddItem';\r\nimport { Form, Row, Col, Input, Select } from 'antd';\r\nimport { Divider } from '@material-ui/core';\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from '../../globalComponents/Buttons';\r\nimport {\r\n  StyledInputContainer,\r\n  StyleLabel,\r\n} from '../../globalComponents/styles';\r\nimport { SingleItemProperty } from '../Items/ItemDetails';\r\n\r\nconst secondSegment = [\r\n  {\r\n    title: 'Warehouse',\r\n    value: 'Ojota Zone',\r\n  },\r\n  {\r\n    title: 'Account',\r\n    value: 'Mike Bamidele',\r\n  },\r\n  {\r\n    title: 'Ref no',\r\n    value: '000999000YU',\r\n  },\r\n  {\r\n    title: 'Date',\r\n    value: '3rd Jul,2020',\r\n  },\r\n  {\r\n    title: 'Reason',\r\n    value:\r\n      'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Convallis tempor, tincidunt. Eget molestie placerat mattis sed eget hendrerit quam leo eget.',\r\n  },\r\n];\r\n\r\nconst columns = [\r\n    {\r\n        title: 'Item',\r\n        dataIndex: 'item',\r\n        key: 'item',\r\n    },\r\n    {\r\n        title: 'Previous Quantity',\r\n        dataIndex: 'previousQuantity',\r\n        key: 'previousQuantity',\r\n    },\r\n    {\r\n        title: 'Adjusted By',\r\n        dataIndex: 'adjustedBy',\r\n        key: 'adjustedBy',\r\n    },\r\n    {\r\n        title: 'Adjusted Quantity',\r\n        dataIndex: 'adjustedQuantity',\r\n        key: 'adjustedQuantity',\r\n    },\r\n]\r\n\r\n\r\nconst data = [\r\n    {\r\n        item: 'Drilling Machine',\r\n        previousQuantity: 30,\r\n        adjustedBy: '-10',\r\n        adjustedQuantity: 20\r\n\r\n    }\r\n]\r\nexport const AdjustmentDetails = (props) => {\r\n  const secondSeg = secondSegment.map((item, index) => {\r\n    return (\r\n      <Col xs={12}>\r\n        <SingleItemProperty key={index} title={item.title} value={item.value} />\r\n      </Col>\r\n    );\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"New Inventory Adjustments\" />\r\n      <StyledCard mt={2} p={4}>\r\n        <Row>{secondSeg}</Row>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          columns={columns}\r\n          dataSource={data}\r\n      /*     onRow={handleTableRow} */\r\n          hidePagination={true}\r\n        />\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst customerSlice = createSlice({\r\n  name: \"customerSlice\",\r\n  initialState: {\r\n    customerList: [],\r\n    paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n  },\r\n\r\n  reducers: {\r\n    addCustomerList: (state, { payload }) => {\r\n      state.customerList = payload;\r\n    },\r\n\r\n    addPaginationProps: (state, { payload }) => {\r\n      state.paginationProps = payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { addCustomerList, addPaginationProps } =\r\ncustomerSlice.actions;\r\n\r\nexport const getAllCustomer = (payload) => (dispatcher) => {\r\n  return Services.getCustomers(payload)\r\n    .then((response) => {\r\n      const {currentPage: page, totalPages,count, customers} = response.data.data;\r\n      dispatcher(addPaginationProps({page, totalPages, totalItems: count}));\r\n      dispatcher(addCustomerList(customers));\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        console.log(error.response.status);\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const createCustomer = (payload) => (dispatcher) => {\r\n  return Services.createCustomers(payload)\r\n    .then((response) => {\r\n        return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\nexport const selectCustomer = (state) => state.customerReducer;\r\n\r\nexport default customerSlice.reducer;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst adjustmentsSlice = createSlice({\r\n  name: \"adjustmentsSlice\",\r\n  initialState: {\r\n    adjustmentsList: [],\r\n    singleAdjustments: {},\r\n    paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n  },\r\n\r\n        reducers:{\r\n            allAdjustments: (state, {payload}) =>{\r\n                state.adjustmentsList = payload\r\n            },\r\n            singleAdjustments: (state, {payload}) => {\r\n                    state.singleAdjustments = payload;\r\n                },\r\n            addPaginationProps: (state, { payload }) => {\r\n                    state.paginationProps = payload;\r\n                },\r\n        }\r\n});\r\nexport const { allAdjustments, singleAdjustments, addPaginationProps } = adjustmentsSlice.actions;\r\n\r\nexport const fetchAllAdjustments = (payload) => (dispatcher) => {\r\n  return Services.getAllAdjustments(payload).then(\r\n    (response) => {\r\n      console.log(response, \"allAdjustment\");\r\n      const {\r\n        currentPage: page,\r\n        totalPages,\r\n        totalItems,\r\n        adjustments,\r\n      } = response.data;\r\n      dispatcher(allAdjustments(adjustments));\r\n      dispatcher(addPaginationProps({ page, totalPages, totalItems }));\r\n      return Promise.resolve(adjustments);\r\n    },\r\n    (error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    }\r\n  );\r\n};\r\n\r\nexport const createAddjustments = (payload) => (dispatcher) => {\r\n  return Services.createAdjustment(payload)\r\n    .then((response) => {\r\n      console.log(response, \"create addjustment\");\r\n      return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n  export const selectAdjustments = (state) => state.adjustmentsReducer;\r\n\r\n  export default adjustmentsSlice.reducer;\r\n\r\n","import React, { useEffect, useState } from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { selectWarehouse } from \"../../Inventory/Warehouse/slice\";\r\nimport { selectItems } from \"../../Inventory/Items/slice\";\r\n// import { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { StyledBoldText, StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { FiMoreVertical, FiTrash2 } from 'react-icons/fi';\r\nimport { ModalComponent } from '../../globalComponents/Modal';\r\nimport { Box, Paper } from '@material-ui/core';\r\nimport { getInput } from '../Items/AddItem';\r\nimport { Form, Row, Col, Input, Select } from 'antd';\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport { Divider } from '@material-ui/core';\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from '../../globalComponents/Buttons';\r\nimport {\r\n  StyledInputContainer,\r\n  StyleLabel,\r\n} from '../../globalComponents/styles';\r\nimport moment from \"moment\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { selectCustomer } from '../../Clients/Customers/slice';\r\nimport { createAddjustments, fetchAllAdjustments } from './slice';\r\n\r\nconst { Option } = Select;\r\n\r\nconst addAdjustmentsInput = [\r\n  {\r\n    name: \"warehouseName\",\r\n    label: \"Warehouse Name\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  // {\r\n  //   name: \"addedBy\",\r\n  //   label: \"Adjusted By\",\r\n  //   isRequired: false,\r\n  //   type: \"select\",\r\n  // },\r\n  {\r\n    name: \"referenceNumber\",\r\n    label: \"Reference Number\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"inventoryAdjustedDate\",\r\n    label: \" Adjusted Date\",\r\n    isRequired: false,\r\n    type: \"date\",\r\n  },\r\n  {\r\n    name: \"reason\",\r\n    label: \"Reason\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"reasonDescription\",\r\n    label: \"Reason Description\",\r\n    isRequired: false,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nconst data = [\r\n  {\r\n    item: [\r\n      { itemName: \"Rice\", count: 20 },\r\n      { itemName: \"Beans\", count: 15 },\r\n    ],\r\n    previousQuantity: 0,\r\n    adjustedQuantity: \"\",\r\n    itemDescription: \"\",\r\n    itemId: \"\",\r\n    itemName: \"\",\r\n    orgId: \"ORG-1593451692921\",\r\n  },\r\n];\r\n\r\nexport const AdjustItem = (props) => {\r\n  const [itemsState, setItemsState] = useState(data);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [activeRowIndex, setActiveRowIndex] = useState(null);\r\n  const [createInvoiceLoading, setCreateInvoiceLoading] = useState(false);\r\n  const [basicInfoForm] = Form.useForm();\r\n  const dispatcher = useDispatch();\r\n\r\n\r\n\r\n\r\n  const { warehouseList } = useSelector(selectWarehouse);\r\n  const { itemList } = useSelector(selectItems);\r\n  const { customerList } = useSelector(selectCustomer);\r\n  const profile = useSelector(selectDashboard);\r\n  const userProfile2 = profile.userProfile.workShift;\r\n\r\n  console.log({ warehouseList, itemList, customerList }, \"selectedItem\");\r\n\r\n  const handleSelectChange = (selectName) => (value, dateString) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    if (selectName === \"inventoryAdjustedDate\") {\r\n      prevSelectValues[selectName] = moment(dateString).toISOString();\r\n    } else {\r\n      prevSelectValues[selectName] = value;\r\n    }\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const AdjustmentsInput = addAdjustmentsInput.map((item) => {\r\n    return <Col xs={11}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const getSelectedItem = (currentItemState) => {\r\n    return currentItemState.find((item, index) => index === activeRowIndex);\r\n  };\r\n\r\n  const reduceQuantity = (quantity, reduceBy) => {\r\n    return quantity < reduceBy ? quantity : quantity - reduceBy;\r\n  };\r\n\r\n  const increaseQuantity = (quantity, increaseBy) => {\r\n    return quantity + increaseBy;\r\n  };\r\n\r\n  useEffect(() => {\r\n    const newItemsState = [...itemsState].map((itm) => {\r\n      itm.item = itemList;\r\n      return itm;\r\n    });\r\n    setItemsState(newItemsState);\r\n  }, [itemList]);\r\n\r\n  const replaceItem = (currentItemState, selecedItem) => {\r\n    currentItemState.splice(activeRowIndex, 1, selecedItem);\r\n    setItemsState(currentItemState);\r\n  };\r\n  const handleAdjustedBy = (e) => {\r\n    const adjustedBy = parseInt(e.target.value);\r\n    const currentItemState = [...itemsState];\r\n    const selecedItem = getSelectedItem(currentItemState);\r\n\r\n    if (e.target.value === \"\") {\r\n      selecedItem.adjustedQuantity = \"\";\r\n      replaceItem(currentItemState, selecedItem);\r\n      return;\r\n    }\r\n\r\n    if (!isNaN(adjustedBy)) {\r\n      const selectedItemQuantityOnHand = parseInt(selecedItem.quantityOnHand);\r\n      selecedItem.adjustedQuantity =\r\n        Math.sign(adjustedBy) === -1\r\n          ? reduceQuantity(selectedItemQuantityOnHand, Math.abs(adjustedBy))\r\n          : increaseQuantity(selectedItemQuantityOnHand, Math.abs(adjustedBy));\r\n      replaceItem(currentItemState, selecedItem);\r\n      return;\r\n    }\r\n  };\r\n\r\n  const handleDeleteRow = () => {\r\n    const currentItemState = [...itemsState];\r\n    currentItemState.splice(activeRowIndex, 1);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  // const handleItemSelect = (itemId) => {\r\n  //   const currentItemState = [...itemsState];\r\n  //   const selectedItemObj = getSelectedItem(currentItemState);\r\n  //   const selectedItem = selectedItemObj.item.find((itm) => itm.id === itemId);\r\n  //   console.log(selectedItem, 'hello')\r\n  //   selectedItemObj.itemId = itemId;\r\n  //   // selectedItemObj.itemName = selectedItem.itemName;\r\n  //   // selectedItemObj.previousQuantity = selectedItem.quantity;\r\n\r\n  //   // selectedItem.quantityOnHand = value;\r\n  //   replaceItem(currentItemState, selectedItem);\r\n  // };\r\n\r\n  const handleItemSelect = (itemId) => {\r\n    const currentItemState = [...itemsState];\r\n    const selectedItemObj = getSelectedItem(currentItemState);\r\n    const selecteditem = selectedItemObj.item.find((itm) => itm.id === itemId);\r\n    selectedItemObj.itemId = itemId;\r\n    selectedItemObj.itemName = selecteditem.itemName;\r\n    selectedItemObj.itemDescription = selecteditem.description;\r\n    selectedItemObj.previousQuantity = selecteditem.quantity;\r\n\r\n    replaceItem(currentItemState, selectedItemObj);\r\n  };\r\n\r\n  //*handleQuantitytransfar\r\n  const handleQuantityTransfar = (e) => {\r\n    const currentItemState = [...itemsState];\r\n    const selectedItemObj = getSelectedItem(currentItemState);\r\n    const qty = e.target.value;\r\n    selectedItemObj.adjustedQuantity = qty;\r\n    //  selectedItemObj.itemSku = qty\r\n    //  selectedItemObj.amount =\r\n    //    parseInt(qty || 0) * parseInt(selectedItemObj.price);\r\n    replaceItem(currentItemState, selectedItemObj);\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: \"Item\",\r\n      dataIndex: \"item\",\r\n      key: \"item\",\r\n      render: (data) => {\r\n        const optionList = data.map((item, index) => {\r\n          return (\r\n            <Option key={index} value={item.id}>\r\n              {item.itemName}\r\n            </Option>\r\n          );\r\n        });\r\n        return (\r\n          <StyledInputContainer>\r\n            <Select\r\n              onChange={handleItemSelect}\r\n              placeholder=\"Select Item\"\r\n              style={{ width: \"100%\" }}\r\n              bordered={false}\r\n            >\r\n              {optionList}\r\n              {/* { console.log(optionList, 'optionList')} */}\r\n            </Select>\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: \"Item Description\",\r\n      dataIndex: \"itemDescription\",\r\n      key: \"itemDescription\",\r\n      render: (data) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input bordered={false} value={data} disabled />\r\n\r\n            {/* <Input\r\n              type=\"text\"\r\n              onChange={handleSelectChange}\r\n              value={data}\r\n              bordered={false}\r\n              placeholder=\"type here\"\r\n            /> */}\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: \"Quantity on Hand\",\r\n      dataIndex: \"previousQuantity\",\r\n      key: \"previousQuantity\",\r\n      render: (data) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input bordered={false} value={data} disabled />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n\r\n    // {\r\n    //   title: \"Adjust By\",\r\n    //   dataIndex: \"adjustBy\",\r\n    //   key: \"adjustBy\",\r\n    //   render: (data) => {\r\n    //     return (\r\n    //       <StyledInputContainer>\r\n    //         <Input\r\n    //           bordered={false}\r\n    //           onChange={handleAdjustedBy}\r\n    //           placeholder=\"Eg +10. -10\"\r\n    //         />\r\n    //       </StyledInputContainer>\r\n    //     );\r\n    //   },\r\n    // },\r\n    {\r\n      title: \"Adjusted Quantity\",\r\n      dataIndex: \"adjustedQuantity\",\r\n      key: \"adjustedQuantity\",\r\n      render: (data) => {\r\n        return (\r\n          <Box display=\"flex\" alignItems=\"center\">\r\n            <StyledInputContainer>\r\n              {/* <Input bordered={false} value={data} disabled /> */}\r\n              <Input\r\n                type=\"number\"\r\n                onChange={handleQuantityTransfar}\r\n                value={data}\r\n                bordered={false}\r\n                placeholder=\"Eg +10. -10\"\r\n              />\r\n            </StyledInputContainer>\r\n            {itemsState.length > 1 && (\r\n              <FiTrash2\r\n                onClick={handleDeleteRow}\r\n                style={{ fontSize: \"1.4vw\", marginLeft: \"20px\" }}\r\n              />\r\n            )}\r\n          </Box>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleTableRow = (data, index) => {\r\n    return {\r\n      onClick: (e) => {\r\n        setActiveRowIndex(index);\r\n      },\r\n    };\r\n  };\r\n\r\n  // const AddAdjustableRow = () => {\r\n  //   const row = {\r\n  //     item: [\r\n  //       { name: \"Rice\", count: 20 },\r\n  //       { name: \"Beans\", count: 15 },\r\n  //     ],\r\n  //     quantityOnHand: 0,\r\n  //     adjustedQuantity: \"\",\r\n  //   };\r\n\r\n  //   setItemsState((prevState) => [...prevState, row]);\r\n  // };\r\n  const AddAdjustableRow = () => {\r\n    const row = {\r\n      item: itemList,\r\n      previousQuantity: 0,\r\n      adjustedQuantity: \"\",\r\n      itemDescription: \"\",\r\n      itemId: \"\",\r\n      itemName: \"\",\r\n    };\r\n\r\n    setItemsState((prevState) => [...prevState, row]);\r\n  };\r\n\r\n  // const customerOptionList = customerList.map((item, index) => {\r\n  //   return (\r\n  //     <Option value={item.id} key={index}>\r\n  //       {`${item.firstName} ${item.lastName}`}\r\n  //     </Option>\r\n  //   );\r\n  // });\r\n\r\n  const warehouseOptionList = warehouseList.map((item, index) => {\r\n    return (\r\n      <Option value={item.id} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const getAdjustmentsInput = [...addAdjustmentsInput].map((item) => {\r\n    if (item.name === \"warehouseName\") {\r\n      return (\r\n        <Col sm={12}>\r\n          {getInput(item, handleSelectChange, warehouseOptionList)}\r\n        </Col>\r\n      );\r\n    }\r\n    return <Col sm={10}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const handleFormSubmit = (e) => {\r\n    e.preventDefault();\r\n    basicInfoForm.submit();\r\n  };\r\n\r\n  // on finish\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setCreateInvoiceLoading(true);\r\n      values.warehouseName = selectValues.warehouseName;\r\n      values.inventoryAdjustedDate = selectValues.inventoryAdjustedDate;\r\n      values.orgId = userProfile2.orgId;\r\n\r\n      // values.referenceNumber = selectValues.referenceNumber;\r\n      // values.reason = selectValues.reason;\r\n      // values.reasonDescription = selectValues.reasonDescription;\r\n      // values.orgId = ORG - 1593451692921;\r\n\r\n      const items = itemsState.map((item) => {\r\n        return {\r\n          itemId: item.itemId,\r\n          itemName: item.itemName,\r\n          previousQuantity: item.previousQuantity,\r\n          adjustedQuantity: item.adjustedQuantity,\r\n          itemDescription: item.itemDescription,\r\n          orgId: \"ORG-1593451692921\",\r\n        };\r\n      });\r\n\r\n      values.items = items;\r\n      console.log(values, \"values\");\r\n       await dispatcher(createAddjustments({ data: values }));\r\n        await dispatcher(fetchAllAdjustments({}));\r\n        notificationAlert(\r\n          \"success\",\r\n          \"Adjustments was successfully created\"\r\n        );\r\n        setCreateInvoiceLoading(false);\r\n      //   // history.push(\"/invoice\");\r\n    } catch (error) {\r\n      setCreateInvoiceLoading(false);\r\n      notificationAlert(\r\n        \"error\",\r\n        \"Failed\",\r\n        error?.response?.data?.message || \"Please try again later\"\r\n      );\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"Add Inventory Adjustments\" />\r\n      <StyledCard p={4} mt={2}>\r\n        <Form form={basicInfoForm} onFinish={onFinish} {...layout}>\r\n          <Row justify=\"space-between\">{getAdjustmentsInput}</Row>\r\n        </Form>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          columns={columns}\r\n          dataSource={itemsState}\r\n          onRow={handleTableRow}\r\n          hidePagination={true}\r\n        />\r\n      </StyledCard>\r\n      <Box p={4}>\r\n        <PrimaryButton onClick={AddAdjustableRow} text=\"Add Row\" />\r\n        <Box mt={6} pb={5} display=\"flex\" justifyContent=\"flex-start\">\r\n          <PrimaryButton\r\n            loading={createInvoiceLoading}\r\n            onClick={handleFormSubmit}\r\n            text=\"Save &amp; Submit\"\r\n          />\r\n        </Box>\r\n      </Box>\r\n    </>\r\n  );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Menu } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { AdjustmentDetails } from './AdjustmentDetails';\r\nimport { AdjustItem } from './AdjustItem';\r\nimport { selectAdjustments, adjustmentsList, paginationProps, fetchAllAdjustments,  } from \"./slice\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst columns = [\r\n  {\r\n    title: \"Date\",\r\n    dataIndex: \"inventoryAdjustedDate\",\r\n    key: \"inventoryAdjustedDate\",\r\n  },\r\n  {\r\n    title: \"Warehouse Name\",\r\n    dataIndex: \"warehouseName\",\r\n    key: \"warehouseName\",\r\n  },\r\n  {\r\n    title: \"Status\",\r\n    dataIndex: \"status\",\r\n    key: \"status\",\r\n  },\r\n  {\r\n    title: \"Reference Number\",\r\n    dataIndex: \"referenceNumber\",\r\n    key: \"referenceNumber\",\r\n  },\r\n  {\r\n    title: \"Adjusted by\",\r\n    dataIndex: \"addedBy\",\r\n    key: \"addedBy\",\r\n  },\r\n];\r\n\r\nconst data = [\r\n  {\r\n    date: 'July, 27 2021',\r\n    warehouse: 'Ojota Zone',\r\n    status: 'Pending',\r\n    reference: '0900388YU',\r\n    adjustedBy: 'Grace Jacobs',\r\n  },\r\n  {\r\n    date: 'July, 27 2021',\r\n    warehouse: 'Ojota Zone',\r\n    status: 'Pending',\r\n    reference: '0900388YU',\r\n    adjustedBy: 'Grace Jacobs',\r\n  },\r\n  {\r\n    date: 'July, 27 2021',\r\n    warehouse: 'Ojota Zone',\r\n    status: 'Pending',\r\n    reference: '0900388YU',\r\n    adjustedBy: 'Grace Jacobs',\r\n  },\r\n  {\r\n    date: 'July, 27 2021',\r\n    warehouse: 'Ojota Zone',\r\n    status: 'Pending',\r\n    reference: '0900388YU',\r\n    adjustedBy: 'Grace Jacobs',\r\n  },\r\n  {\r\n    date: 'July, 27 2021',\r\n    warehouse: 'Ojota Zone',\r\n    status: 'Pending',\r\n    reference: '0900388YU',\r\n    adjustedBy: 'Grace Jacobs',\r\n  },\r\n]\r\n\r\nexport const InventoryAdjustment = (props) => {\r\n  const { paginationProps, adjustmentsList } = useSelector(selectAdjustments);\r\n  console.log(adjustmentsList, 'adjustmentsLists')\r\n  const [page, setPage] = React.useState(2);\r\n  const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    setRowsPerPage(parseInt(event.target.value, 10));\r\n    setPage(0);\r\n  };\r\n\r\n  const handleClick = (e) => {\r\n  };\r\n\r\n  const gotoAdjustItem = () => {\r\n    history.push(`${url}/adjust-item`);\r\n  };\r\n\r\n  const handleTableRow = (record, rowIndex) => {\r\n    return {\r\n      onClick: event => {\r\n        history.push(`${url}/adjustmentDetails`);\r\n      }, \r\n    }\r\n  }\r\n\r\n   useEffect(() => {\r\n     (async () => {\r\n       await dispatcher(fetchAllAdjustments({ page: 0, size: 10 }));\r\n     })();\r\n     //  dispatcher(getAllTransfarOrder({ page: 0, size: 10 }));\r\n   }, []);\r\n  \r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"Inventory Adjustments\"\r\n          showtools\r\n          onCreate={gotoAdjustItem}\r\n          createButtonText=\"New Adjustment\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={adjustmentsList}\r\n            onRow={handleTableRow}\r\n          />\r\n        </StyledCard>\r\n      </Route>\r\n      <Route path={`${path}/adjust-item`}>\r\n        <AdjustItem />\r\n      </Route>\r\n      <Route path={`${path}/adjustmentDetails`}>\r\n        <AdjustmentDetails />\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n","//Transfar order slice\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\nimport Services from \"../../../services\";\r\n\r\nconst transfarOrderSlice = createSlice({\r\n    //Slice Name\r\n  name: \"transfarOrderSlice\",\r\n  // InitialState\r\n  initialState: {\r\n    transfarOrderList: [],\r\n    paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n    singleTransfarOrder: {},\r\n  },\r\n\r\n  reducers: {\r\n    addtransfarOrderList: (state, { payload }) => {\r\n      state.transfarOrderList = payload;\r\n    },\r\n\r\n    addPaginationProps: (state, { payload }) => {\r\n      state.paginationProps = payload;\r\n    },\r\n\r\n    singleTransfarOrder: (state, { payload }) => {\r\n      state.singleTransfarOrder = payload;\r\n    },\r\n  },\r\n});\r\n\r\nexport const { addtransfarOrderList, addPaginationProps, singleTransfarOrder } =\r\n  transfarOrderSlice.actions;\r\n\r\n\r\n  // get all transfar orders\r\n  export const getAllTransfarOrder = (payload) => (dispatcher) => {\r\n  return Services.getAllTransfarOrder(payload)\r\n    .then((response) => {\r\n      // console.log(response, 'transfaroder234')\r\n      const { data } = response.data;\r\n      dispatcher(addtransfarOrderList(data.filter((item) => !item.delFlag)));\r\n      return Promise.resolve(data.filter((item) => !item.delFlag));\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\n//create Transfar order\r\nexport const createTransfarOrder = (payload) => (dispatcher) => {\r\n  return Services.createTransfarOrder(payload)\r\n    .then((response) => {\r\n      console.log(response, \"createTransfar\");\r\n      return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\n\r\nexport const selectTransfarOrder = (state) => state.transfarOrderReducer;\r\n\r\nexport default transfarOrderSlice.reducer;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport styled from 'styled-components';\r\nimport { selectWarehouse } from \"../../Inventory/Warehouse/slice\";\r\nimport { selectItems } from \"../../Inventory/Items/slice\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport { createTransfarOrder, getAllTransfarOrder } from \"./slice\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Menu } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n} from '../../globalComponents/styles';\r\nimport { Box,Grid } from '@material-ui/core';\r\nimport { Input, Select, Col, Row, Form } from \"antd\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from '../../globalComponents/Buttons';\r\nimport { FiTrash2 } from 'react-icons/fi';\r\n\r\n\r\n\r\n\r\nconst { Option } = Select;\r\n\r\nconst transferOrderInput = [\r\n  {\r\n    name: \"referenceNumber\",\r\n    label: \"Reference Number\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"sourceWarehouseId\",\r\n    label: \"Source WarehouseId\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n  },\r\n  {\r\n    name: \"destinationWarehouseId\",\r\n    label: \"Destination Warehouse\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n  },\r\n  {\r\n    name: \"reason\",\r\n    label: \"Reason\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n];\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nconst data = [\r\n  {\r\n    item: [\r\n      { name: \"Rice\", sku: 20 },\r\n      { name: \"Beans\", sku: 15 },\r\n    ],\r\n    itemSku: \"\",\r\n    transferQuantity: 0,\r\n  },\r\n];\r\n\r\nexport const AddTransferOrder = (props) => {\r\n  //useselector\r\n  const { warehouseList } = useSelector(selectWarehouse);\r\n  const { itemList } = useSelector(selectItems);\r\n  const  profile  = useSelector(selectDashboard);\r\n  const userProfile2 = profile.userProfile.workShift;\r\n\r\n\r\n\r\n\r\n\r\n  console.log(\r\n    { warehouseList, itemList, profile, userProfile2 },\r\n    \"selectedItem\"\r\n  );\r\n\r\n  //useState\r\n  const [itemsState, setItemsState] = useState(data);\r\n  const [activeRowIndex, setActiveRowIndex] = useState(null);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [createInvoiceLoading, setCreateInvoiceLoading] = useState(false);\r\n\r\n  //useForm\r\n  const [basicInfoForm] = Form.useForm();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n\r\n    useEffect(() => {\r\n      dispatcher(getAllTransfarOrder({ page: 0, size: 10 }));\r\n    }, []);\r\n\r\n//get new Items\r\n  useEffect(()=>{\r\n    const newItemsState = [...itemsState].map(itm=>{\r\n       itm.item = itemList;\r\n      return itm;\r\n    })\r\n    setItemsState(newItemsState);\r\n  },[itemList])\r\n\r\n  const getSelectedItem = (currentItemState) => {\r\n    return currentItemState.find((item, index) => index === activeRowIndex);\r\n  };\r\n\r\n  const replaceItem = (currentItemState, selecedItem) => {\r\n    currentItemState.splice(activeRowIndex, 1, selecedItem);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  //handle select change\r\n const handleSelectChange = (selectName) => (value) => {\r\n   const prevSelectValues = { ...selectValues };\r\n   prevSelectValues[selectName] = value;\r\n   setSelectValues(prevSelectValues);\r\n };\r\n\r\n  //handleItemSelect\r\n   const handleItemSelect = (itemId) => {\r\n     const currentItemState = [...itemsState];\r\n     const selectedItemObj = getSelectedItem(currentItemState);\r\n     const selecteditem = selectedItemObj.item.find((itm) => itm.id === itemId);\r\n     selectedItemObj.itemId = itemId;\r\n     selectedItemObj.itemName = selecteditem.itemName;\r\n     selectedItemObj.itemSku = selecteditem.sku;\r\n\r\n     replaceItem(currentItemState, selectedItemObj);\r\n   };\r\n\r\n   \r\n   //*handleQuantitytransfar\r\n   const handleQuantityTransfar = (e) => {\r\n     const currentItemState = [...itemsState];\r\n     const selectedItemObj = getSelectedItem(currentItemState);\r\n     const qty = e.target.value;\r\n     selectedItemObj.transferQuantity = qty;\r\n    //  selectedItemObj.itemSku = qty\r\n    //  selectedItemObj.amount =\r\n    //    parseInt(qty || 0) * parseInt(selectedItemObj.price);\r\n     replaceItem(currentItemState, selectedItemObj);\r\n   };\r\n\r\n\r\n  const handleDeleteRow = () => {\r\n    const currentItemState = [...itemsState];\r\n    currentItemState.splice(activeRowIndex, 1);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: 'Item',\r\n      dataIndex: 'item',\r\n      key: 'item',\r\n      render: (data) => {\r\n        const optionList = data.map((item, index) => {\r\n          return (\r\n            <Option key={index} value={item.id}>\r\n              {item.itemName}\r\n            </Option>\r\n          );\r\n        });\r\n        return (\r\n          <StyledInputContainer>\r\n            <Select\r\n              onChange={handleItemSelect} \r\n              placeholder=\"Select Item\"\r\n              style={{ width: '100%' }}\r\n              bordered={false}>\r\n              {optionList}\r\n            </Select>\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: 'Item Sku',\r\n      dataIndex: 'itemSku',\r\n      key: 'itemSku',\r\n      render: (data) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n              // onChange={handleSelectChange}\r\n              bordered={false}\r\n              value={data}\r\n              disabled\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n\r\n    {\r\n      title: 'Transfer Quantity',\r\n      dataIndex: 'transferQuantity',\r\n      key: 'transferQuantity',\r\n      render: (data) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n              type=\"number\"\r\n              onChange={handleQuantityTransfar}\r\n              value={data}\r\n              bordered={false}\r\n              placeholder=\"Eg +10. -10\"\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n\r\n    {\r\n      title: 'Delete',\r\n      dataIndex: 'delete',\r\n      key: 'delete',\r\n      render: (data) => {\r\n        return (\r\n          itemsState.length > 1 && (\r\n            <FiTrash2\r\n              onClick={handleDeleteRow}\r\n              style={{ fontSize: '1.4vw', marginLeft: '20px', color: 'red' }}\r\n            />\r\n          )\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleTableRow = (data, index) => {\r\n    return {\r\n      onClick: (e) => {\r\n        setActiveRowIndex(index);\r\n      },\r\n    };\r\n  };\r\n\r\n  const AddAdjustableRow = () => {\r\n    const row = {\r\n      item: itemList,\r\n      itemSKU: \"\",\r\n      transferQuantity: 0,\r\n    };\r\n\r\n    setItemsState((prevState) => [...prevState, row]);\r\n  };\r\n\r\n  //get source warehouse list\r\n  const warehouseOptionList = warehouseList.map((item, index) =>{\r\n    return (\r\n      <Option value={item.id} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  })\r\n  const warehouseOptionList2 = warehouseList.map((item, index) => {\r\n    return (\r\n      <Option value={item.id} key={index}>\r\n        {item.name}\r\n      </Option>\r\n    );\r\n  });\r\n  \r\n\r\n  const getTransfarOrderInput = [...transferOrderInput].map((item)=>{\r\n    if (item.name === \"sourceWarehouseId\") {\r\n      return (\r\n        <Col sm={12}>\r\n          {getInput(\r\n            item,\r\n            handleSelectChange,\r\n            warehouseOptionList\r\n          )}\r\n        </Col>\r\n      );\r\n    }\r\n     if (item.name === \"destinationWarehouseId\") {\r\n       return (\r\n         <Col sm={12}>\r\n           {getInput(item, handleSelectChange, warehouseOptionList2)}\r\n         </Col>\r\n       );\r\n     }\r\n    \r\n    return <Col sm={12}>{getInput(item, handleSelectChange)}</Col>;\r\n  })\r\n\r\n\r\n\r\n  // handle Submit\r\n  const handleFormSubmit = (e) => {\r\n    e.preventDefault();\r\n    basicInfoForm.submit();\r\n  };\r\n\r\n  // on finish\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setCreateInvoiceLoading(true);\r\n      values.sourceWarehouseId = selectValues.sourceWarehouseId;\r\n      values.destinationWarehouseId = selectValues.destinationWarehouseId;\r\n      values.orgId = userProfile2.orgId;\r\n\r\n      const items = itemsState.map((item) => {\r\n        return {\r\n          itemId: item.itemId,\r\n          itemSku: item.itemSku,\r\n          transferQuantity: item.transferQuantity,\r\n        };\r\n      });\r\n\r\n      values.items = items;\r\n\r\n      console.log(values, \"values\");\r\n       await dispatcher(createTransfarOrder({data: values}));\r\n        await dispatcher(getAllTransfarOrder({}));\r\n        notificationAlert(\r\n          \"success\",\r\n          \"transfar order was successfully created\"\r\n        );\r\n        setCreateInvoiceLoading(false);\r\n        // history.push(\"/invoice\");\r\n    } \r\n    catch (error) {\r\n      setCreateInvoiceLoading(false);\r\n      notificationAlert(\r\n        \"error\",\r\n        \"Failed\",\r\n        error?.response?.data?.message || \"Please try again later\"\r\n      );\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"New Transfer Order\" />\r\n      <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n        <Grid item xs={12}>\r\n          {/*  <Box px={3}>\r\n            <StyledBoldText variant=\"subtitle1\">Warehouse</StyledBoldText>\r\n          </Box> */}\r\n          <Box px={3} mt={2}>\r\n            <Form form={basicInfoForm} onFinish={onFinish} {...layout}>\r\n              <Row gutter={16}>{getTransfarOrderInput}</Row>\r\n            </Form>\r\n          </Box>\r\n        </Grid>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          dataSource={itemsState}\r\n          onRow={handleTableRow}\r\n          columns={columns}\r\n          hidePagination\r\n        />\r\n        <Box p={4} display=\"flex\" justifyContent=\"space-between\">\r\n          <PrimaryButton onClick={AddAdjustableRow} text=\"Add Row\" />\r\n          <Box mt={6} pb={5} display=\"flex\" justifyContent=\"flex-start\">\r\n            <Box mr={2}>\r\n              <TransaparentButton text=\"Cancel\" />\r\n            </Box>\r\n            {/*  <Box mr={2}>\r\n              <PrimaryButton text=\"Save to Draft\" />\r\n            </Box> */}\r\n            <PrimaryButton\r\n              loading={createInvoiceLoading}\r\n              onClick={handleFormSubmit}\r\n              text=\"Save &amp; Submit\"\r\n            />\r\n          </Box>\r\n        </Box>\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n","import React, {useEffect, useState} from 'react';\r\nimport styled from 'styled-components';\r\nimport moment from \"moment\";\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Menu } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { selectTransfarOrder, getAllTransfarOrder } from \"./slice\";\r\n\r\nimport { AddTransferOrder } from \"./AddTransferOrder\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\n\r\nconst columns = [\r\n  // {\r\n  //   title: \"S/N\",\r\n  //   dataIndex: \"sn\",\r\n  //   key: \"sn\",\r\n  // },\r\n  {\r\n    title: \"Transfer Date\",\r\n    dataIndex: \"transferDate\",\r\n    key: \"transferDate\",\r\n    render: (data) => {\r\n      return moment(data).format(\"dddd, MMMM Do, YYYY\");\r\n    },\r\n  },\r\n  {\r\n    title: \"transferred Quantity\",\r\n    dataIndex: \"transferredQuantity\",\r\n    key: \"transferredQuantity\",\r\n  },\r\n  {\r\n    title: \"Ref No\",\r\n    dataIndex: \"referenceNumber\",\r\n    key: \"referenceNumber\",\r\n  },\r\n  {\r\n    title: \"Source Warehouse\",\r\n    dataIndex: \"sourceWarehouse\",\r\n    key: \"sourceWarehouse\",\r\n  },\r\n  {\r\n    title: \"Destination Warehouse\",\r\n    dataIndex: \"destinationWarehouseUuid\",\r\n    key: \"destinationWarehouseUuid\",\r\n  },\r\n];\r\n\r\nconst data = [\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n];\r\n\r\nexport const TransferOrder = (props) => {\r\n  const dispatcher = useDispatch();\r\n\r\n  //useSelector\r\n  const { transfarOrderList, paginationProps } = useSelector(selectTransfarOrder);\r\n  console.log({transfarOrderList, paginationProps}, 'transfarorder')\r\n\r\n  const [page, setPage] = React.useState(2);\r\n  const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n\r\n\r\n   useEffect(() => {\r\n     (async () => {\r\n       await dispatcher(getAllTransfarOrder());\r\n     })();\r\n    //  dispatcher(getAllTransfarOrder({ page: 0, size: 10 }));\r\n   }, []);\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    setRowsPerPage(parseInt(event.target.value, 10));\r\n    setPage(0);\r\n  };\r\n\r\n\r\n  const gotoAddOrder = () => {\r\n    history.push(`${url}/add-order`);\r\n  };\r\n\r\n  const handleTableRow = (record, rowIndex) => {\r\n    return {\r\n      onClick: (event) => {\r\n        history.push(`${url}/item-details`);\r\n      },\r\n    };\r\n  };\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"All Transfer Orders\"\r\n          showtools\r\n          onCreate={gotoAddOrder}\r\n          createButtonText=\"Create Transfer Order\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={transfarOrderList}\r\n            onRow={handleTableRow}\r\n          />\r\n        </StyledCard>\r\n      </Route>\r\n      <Route path={`${path}/add-order`}>\r\n        <AddTransferOrder />\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Menu } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n} from '../../globalComponents/styles';\r\nimport { Box, Grid} from '@material-ui/core';\r\nimport { Input, Select, Col, Row , Form } from 'antd';\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from '../../globalComponents/Buttons';\r\nimport { FiTrash2 } from 'react-icons/fi';\r\nimport { getInput } from '../../Inventory/Items/AddItem';\r\n\r\nconst { Option } = Select;\r\n\r\nconst data = [\r\n  {\r\n    item: [\r\n      { name: 'Rice', sku: 20 },\r\n      { name: 'Beans', sku: 15 },\r\n    ],\r\n    description: '',\r\n    quantity: '',\r\n    price: '',\r\n    tax: [\r\n        { name: 'Freet(10%)', sku: 20 },\r\n        { name: 'Freet(20%)', sku: 15 },\r\n      ],\r\n  },\r\n];\r\n\r\n\r\nconst salesOrder = [\r\n    {\r\n      name: 'customer',\r\n      label: 'Customer',\r\n      isRequired: false,\r\n      type: 'select',\r\n    },\r\n    {\r\n      name: 'salesOrderNumber',\r\n      label: 'Sales Order number',\r\n      isRequired: false,\r\n      type: 'text',\r\n    },\r\n    {\r\n      name: 'salesOrderDate*',\r\n      label: 'Sales Order Date',\r\n      isRequired: false,\r\n      type: 'date',\r\n    },\r\n    {\r\n        name: 'dueDate',\r\n        label: 'Due date',\r\n        isRequired: false,\r\n        type: 'date',\r\n      },\r\n      {\r\n        name: 'warehouse',\r\n        label: 'Warehouse*',\r\n        isRequired: false,\r\n        type: 'select',\r\n      },\r\n      {\r\n        name: 'salesPerson',\r\n        label: 'Sales person',\r\n        isRequired: false,\r\n        type: 'select',\r\n      },\r\n      {\r\n        name: 'notes',\r\n        label: 'Notes',\r\n        isRequired: false,\r\n        type: 'textarea',\r\n      },\r\n  ];\r\n\r\n\r\n  const layout = {\r\n    labelCol: { span: 24 },\r\n    wrapperCol: { span: 24 },\r\n  };\r\n  \r\n\r\nexport const AddSalesOrder = (props) => {\r\n  const [itemsState, setItemsState] = useState(data);\r\n  const [activeRowIndex, setActiveRowIndex] = useState(null);\r\n\r\n  const handleDeleteRow = () => {\r\n    const currentItemState = [...itemsState];\r\n    currentItemState.splice(activeRowIndex, 1);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: 'Item',\r\n      dataIndex: 'item',\r\n      key: 'item',\r\n      render: (data) => {\r\n        const optionList = data.map((item, index) => {\r\n          return (\r\n            <Option key={index} value={item.sku}>\r\n              {item.name}\r\n            </Option>\r\n          );\r\n        });\r\n        return (\r\n          <StyledInputContainer>\r\n            <Select\r\n              /*  onChange={handleItemSelect} */\r\n              placeholder=\"Select Item\"\r\n              style={{ width: '100%' }}\r\n              bordered={false}>\r\n              {optionList}\r\n            </Select>\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n        title: 'Description',\r\n        dataIndex: 'description',\r\n        key: 'description',\r\n        render: (data) => {\r\n          return (\r\n            <StyledInputContainer>\r\n              <Input bordered={false} />\r\n            </StyledInputContainer>\r\n          );\r\n        },\r\n      },\r\n\r\n    {\r\n      title: 'Quantity',\r\n      dataIndex: 'quantity',\r\n      key: 'quantity',\r\n      render: (data) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n                type='number'\r\n              bordered={false}\r\n              /*  onChange={handleAdjustedBy} */\r\n              placeholder=\"\"\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n        title: 'Price',\r\n        dataIndex: 'price',\r\n        key: 'price',\r\n        render: (data) => {\r\n          return (\r\n            <StyledInputContainer>\r\n              <Input\r\n                  type='number'\r\n                bordered={false}\r\n                /*  onChange={handleAdjustedBy} */\r\n                placeholder=\"\"\r\n              />\r\n            </StyledInputContainer>\r\n          );\r\n        },\r\n      },\r\n      {\r\n        title: 'Tax',\r\n        dataIndex: 'tax',\r\n        key: 'tax',\r\n        render: (data) => {\r\n          const optionList = data.map((item, index) => {\r\n            return (\r\n              <Option key={index} value={item.sku}>\r\n                {item.name}\r\n              </Option>\r\n            );\r\n          });\r\n          return (\r\n            <StyledInputContainer>\r\n              <Select\r\n                /*  onChange={handleItemSelect} */\r\n                placeholder=\"Select Item\"\r\n                style={{ width: '100%' }}\r\n                bordered={false}>\r\n                {optionList}\r\n              </Select>\r\n            </StyledInputContainer>\r\n          );\r\n        },\r\n      },\r\n\r\n    {\r\n      title: 'Delete',\r\n      dataIndex: 'delete',\r\n      key: 'delete',\r\n      render: (data) => {\r\n        return (\r\n          itemsState.length > 1 && (\r\n            <FiTrash2\r\n              onClick={handleDeleteRow}\r\n              style={{ fontSize: '1.4vw', marginLeft: '20px', color: 'red' }}\r\n            />\r\n          )\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleTableRow = (data, index) => {\r\n    return {\r\n      onClick: (e) => {\r\n        setActiveRowIndex(index);\r\n      },\r\n    };\r\n  };\r\n\r\n  const AddAdjustableRow = () => {\r\n    const row =  {\r\n        item: [\r\n          { name: 'Rice', sku: 20 },\r\n          { name: 'Beans', sku: 15 },\r\n        ],\r\n        description: '',\r\n        quantity: '',\r\n        price: '',\r\n        tax: [\r\n            { name: 'Freet(10%)', sku: 20 },\r\n            { name: 'Freet(20%)', sku: 15 },\r\n          ],\r\n      };\r\n\r\n    setItemsState((prevState) => [...prevState, row]);\r\n  };\r\n\r\n  const handleSelectChange = (selectName) => values => {\r\n    \r\n  }\r\n\r\n  const salesOrderList = [...salesOrder].map((item) => {\r\n    return <Col sm={12}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const onFinish = (values) => {\r\n\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"New Sales Order\" />\r\n      <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n        <Grid item xs={12}>\r\n          <Box px={3}>\r\n            <StyledBoldText variant=\"subtitle1\">Warehouse</StyledBoldText>\r\n          </Box>\r\n          <Box px={3} mt={2}>\r\n            <Form onFinish={onFinish} {...layout}>\r\n              <Row gutter={16}>{salesOrderList}</Row>\r\n            </Form>\r\n          </Box>\r\n          {/* <Box px={3} mt={2}>\r\n            <PrimaryButton text=\"Add Warehouse\" onClick={handleAddWarehouse} />\r\n          </Box> */}\r\n        </Grid>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          dataSource={itemsState}\r\n          onRow={handleTableRow}\r\n          columns={columns}\r\n          hidePagination\r\n        />\r\n        <Box p={4}>\r\n          <PrimaryButton onClick={AddAdjustableRow} text=\"Add Row\" />\r\n        </Box>\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Menu, Space, Popover } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { FiMoreVertical } from 'react-icons/fi';\r\nimport { AddSalesOrder } from './AddSalesOrder';\r\n\r\n\r\nconst columns = [\r\n  {\r\n    title: 'S/N',\r\n    dataIndex: 'sn',\r\n    key: 'sn',\r\n  },\r\n  {\r\n    title: 'Name',\r\n    dataIndex: 'name',\r\n    key: 'name',\r\n  },\r\n  {\r\n    title: 'SKU',\r\n    dataIndex: 'barcode',\r\n    key: 'barcode',\r\n  },\r\n  {\r\n    title: 'Stock On Hand',\r\n    dataIndex: 'stockOnHand',\r\n    key: 'stockOnHand',\r\n  },\r\n\r\n  {\r\n    title: 'Action',\r\n    dataIndex: 'action',\r\n    key: 'action',\r\n    width: '5%',\r\n    render: (data, allData) => {\r\n      const content = (\r\n        <Space direction='vertical' size='small'>\r\n          <p>Edit</p>\r\n          <p style={{color: 'red', cursor: 'pointer'}}>Delete</p>\r\n        </Space>\r\n      )\r\n      return (\r\n        <Popover content={content} trigger='click'>\r\n           <FiMoreVertical />\r\n        </Popover>\r\n      )\r\n    },\r\n  },\r\n \r\n];\r\n\r\nconst data = [\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n  {\r\n    item: 'Building',\r\n    itemId: '00009',\r\n    itemClass: 'Stock Item',\r\n    unitCost: '30000',\r\n    unitPrice: '15000',\r\n    stockOnHand: 23000,\r\n  },\r\n];\r\n\r\nexport const SalesOrders = (props) => {\r\n  const [page, setPage] = React.useState(2);\r\n  const [rowsPerPage, setRowsPerPage] = React.useState(10);\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    setRowsPerPage(parseInt(event.target.value, 10));\r\n    setPage(0);\r\n  };\r\n\r\n  const handleClick = (e) => {\r\n    console.log('click ', e);\r\n  };\r\n\r\n \r\n  const handleTableRow = (record, rowIndex) => {\r\n    return {\r\n      onClick: (event) => {\r\n        history.push(`${url}/item-details`);\r\n      },\r\n    };\r\n  };\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"Sales Orders\"\r\n          showtools\r\n          onCreate={() => history.push(`${url}/add-order`)}\r\n          createButtonText=\"Create Sales Order\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={data}\r\n            /* onRow={handleTableRow} */\r\n          />\r\n        </StyledCard>\r\n      </Route>\r\n      <Route path={`${path}/add-order`}>\r\n        <AddSalesOrder />\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledCard,\r\n  StyledModal,\r\n} from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport { FiMoreVertical } from \"react-icons/fi\";\r\nimport { AntFormModal } from \"../../globalComponents/Modal\";\r\nimport { Box, Paper } from \"@material-ui/core\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { Form, Space, Popover, Select, notification } from \"antd\";\r\nimport { Divider } from \"@material-ui/core\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport Services from \"../../../services\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { DeleteModal } from \"../../globalComponents/deleteModal\";\r\nimport { createCustomer, getAllCustomer, selectCustomer } from \"./slice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\n\r\nconst { Option } = Select;\r\n\r\nexport const addCustomerInput = [\r\n  {\r\n    name: \"first_name\",\r\n    label: \"First Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    id: 'firstName',\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"last_name\",\r\n    label: \"Last Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id: 'lastName'\r\n  },\r\n  {\r\n    name: \"email\",\r\n    label: \"Email\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id: 'email'\r\n  },\r\n  {\r\n    name: \"phone_number\",\r\n    label: \"Phone Number\",\r\n    isRequired: true,\r\n    type: \"phone\",\r\n    defaultValue: \"\",\r\n    id: 'phoneNumber'\r\n  },\r\n  {\r\n    name: \"address\",\r\n    label: \"Address\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id :'address'\r\n  },\r\n /*  {\r\n    name: \"state\",\r\n    label: \"State\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"zipCode\",\r\n    label: \"Zip Code\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"wareHouseContactEmail\",\r\n    label: \"Warehouse Email\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  }, */\r\n  /*{\r\n    name: \"headOfWareHouseId\",\r\n    label: \"Head of Warehouse Name\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n  },\r\n    {\r\n    name: 'headOfWareHouseEmailAddress',\r\n    label: 'Head of Warehouse Email',\r\n    isRequired: false,\r\n    type: 'text',\r\n    defaultValue:''\r\n  },\r\n  {\r\n    name: 'headOfWareHouseId',\r\n    label: 'Head of Warehouse ID',\r\n    isRequired: false,\r\n    type: 'number',\r\n    defaultValue:''\r\n  }, */\r\n];\r\n\r\n\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const Customers = (props) => {\r\n  const [editForm] = Form.useForm();\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const [allWarehouse, setAllWarehouse] = useState([]);\r\n  const { customerList, paginationProps } = useSelector(selectCustomer);\r\n  const { usersByOrg, userProfile } = useSelector(selectDashboard);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [addGroupModalProps, setAddGroupModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n\r\n  const [editModalProps, setEditModalProps] = useState({\r\n    isVisible: false,\r\n    selectedItemInput: [],\r\n    loading: false,\r\n    initialValues: {},\r\n  });\r\n  \r\n /*  const [deleteModalProps, setDeleteModalProps] = useState({\r\n    visible: false,\r\n    name: \"\",\r\n    id: null,\r\n    loading: false,\r\n  });\r\n \r\n\r\n */\r\n  const dispatcher = useDispatch();\r\n\r\n  useEffect(() => {\r\n    editForm.resetFields();\r\n    const formattedInitialValues = Object.entries(editModalProps.initialValues).map(([key, value]) => {\r\n      if(key === 'firstName') {\r\n        key = 'first_name'\r\n        return [key, value];\r\n      }\r\n      if(key === 'lastName'){\r\n        key = 'last_name';\r\n        return [key, value];\r\n      }\r\n      if(key === 'phoneNumber'){\r\n        key = 'phone_number';\r\n        return [key, value];\r\n      }\r\n\r\n      return [key, value]\r\n    });\r\n\r\n    editForm.setFieldsValue(Object.fromEntries(formattedInitialValues));\r\n  }, [editModalProps.isVisible]);\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const userList = [...usersByOrg].map((user, index) => {\r\n    return (\r\n      <Option key={index} value={user.id}>\r\n        {user.fullName !== \" \" ? user.fullName : \"Adefisayo Adeniji\"}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const searchObject = {\r\n    onSearch: (val) => {},\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: \"ID\",\r\n      dataIndex: \"customerNumber\",\r\n      key: \"customerNumber\",\r\n    },\r\n    {\r\n      title: \"Name\",\r\n      dataIndex: \"name\",\r\n      key: \"name\",\r\n      render: (data, allData) => {\r\n        return `${allData.firstName} ${allData.lastName}`\r\n      }\r\n    },\r\n    {\r\n      title: \"Email\",\r\n      dataIndex: \"email\",\r\n      key: \"email\",\r\n    },\r\n    {\r\n      title: \"Phone Number\",\r\n      dataIndex: \"phoneNumber\",\r\n      key: \"phoneNumber\",\r\n    },\r\n    {\r\n      title: \"Address\",\r\n      dataIndex: \"address\",\r\n      key: \"address\",\r\n    },\r\n\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p\r\n               onClick={() => {\r\n                const newData = addCustomerInput.map((item) => {\r\n                  item.defaultValue = allData[item.id];\r\n                  return getInput(\r\n                    item,\r\n                  );\r\n                });\r\n                setEditModalProps((prevState) => ({\r\n                  ...prevState,\r\n                  selectedItemInput: newData,\r\n                  isVisible: true,\r\n                  initialValues: allData,\r\n                }));\r\n              }}\r\n              style={{ cursor: \"pointer\" }}\r\n            >\r\n              Edit\r\n            </p>\r\n            <p\r\n              \r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n\r\n  \r\n        return (\r\n          <Popover\r\n            content={content}\r\n            trigger=\"click\"\r\n          >\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(getAllCustomer({ page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        getAllCustomer({ page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n\r\n  const customerInputs = addCustomerInput.map((item) =>\r\n    getInput(item)\r\n  );\r\n\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      values.headOfWareHouseId = selectValues.headOfWareHouseId;\r\n      values.orgId = userProfile.orgId;\r\n      await dispatcher(createCustomer({ data: values }));\r\n      await dispatcher(getAllCustomer({page, size: rowsPerPage}));\r\n      setAddGroupModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: false,\r\n        loading: false,\r\n      }));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        open: true,\r\n        message: \"customer has been added\",\r\n      });\r\n    } catch (error) {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        open: true,\r\n        message: \"An error occurred, please try again later\",\r\n      });\r\n    }\r\n  };\r\n\r\n  const handleFeedbackClose = (event, reason) => {\r\n    if (reason === \"clickaway\") {\r\n      return;\r\n    }\r\n    setFeedbackProps((prevState) => ({ ...prevState, open: false }));\r\n  };\r\n\r\n\r\n\r\n const onEditFinish = async (values) => {\r\n    try {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      await Services.editCustomers({\r\n        data: values,\r\n        id: editModalProps.initialValues.id,\r\n      });\r\n      await dispatcher(getAllCustomer({ page, size: rowsPerPage }));\r\n      setEditModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        isVisible: false,\r\n      }));\r\n      notificationAlert(\r\n        \"success\",\r\n        \"Customer updated\",\r\n        `${editModalProps.initialValues.name} has been updated`\r\n      );\r\n    } catch (error) {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      if (error.response) {\r\n        notificationAlert(\r\n          \"error\",\r\n          \"Error Occurred\",\r\n          error.response.data.message || \"Please try again later\"\r\n        );\r\n      } else {\r\n        notificationAlert(\"error\", \"Error Occurred\", \"Please try again later\");\r\n      }\r\n    }\r\n  }; \r\n\r\n\r\n\r\n  return (\r\n    <>\r\n      <ToolBar\r\n        title=\"All Customer\"\r\n        showtools\r\n        onCreate={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: true,\r\n          }))\r\n        }\r\n        createButtonText=\"Add new customer\"\r\n      />\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          rowsPerPage={rowsPerPage}\r\n          page={page}\r\n          total={paginationProps.totalItems}\r\n          handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n          handleChangePage={handleChangePage}\r\n          columns={columns}\r\n          dataSource={customerList}\r\n        />\r\n      </StyledCard>\r\n      <CreateCustomerModal\r\n        visible={addGroupModalProps.isVisible}\r\n        onCancel={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        onFinish={onFinish}\r\n        loading={addGroupModalProps.loading}\r\n        warehouseInputs={customerInputs}\r\n      />\r\n      <AntFormModal\r\n        title=\"Edit Customer\"\r\n        visible={editModalProps.isVisible}\r\n        onCancel={() =>\r\n          setEditModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        form={editForm}\r\n        loading={editModalProps.loading}\r\n        onFinish={onEditFinish}\r\n      >\r\n        {editModalProps.selectedItemInput}\r\n      </AntFormModal>\r\n\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={handleFeedbackClose}\r\n      />\r\n      {/* <DeleteModal\r\n        open={deleteModalProps.visible}\r\n        loading={deleteModalProps.loading}\r\n        itemName={deleteModalProps.name}\r\n        onClose={() =>\r\n          setDeleteModalProps((prevState) => ({ ...prevState, visible: false }))\r\n        }\r\n        onDelete={handleWarehouseDelete}\r\n        title=\"Delete Warehouse\"\r\n      /> */}\r\n    </>\r\n  );\r\n};\r\n\r\nexport const CreateCustomerModal = (props) => {\r\n  const [form] = Form.useForm();\r\n\r\n  const onOk = () => {\r\n    form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\" New Customer\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form form={form} {...layout} onFinish={props.onFinish}>\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n\r\nconst EditWarehouseModal = (props) => {\r\n  const onOk = () => {\r\n    props.form.submit();\r\n  };\r\n\r\n  const cancelAndReset = () => {\r\n    props.onCancel();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\"Edit Warehouse\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={cancelAndReset}\r\n    >\r\n      <Form\r\n        initialValues={props.initialValues}\r\n        form={props.form}\r\n        {...layout}\r\n        onFinish={props.onFinish}\r\n      >\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport Services from '../../../services';\r\n\r\n\r\nconst invoiceSlice = createSlice({\r\n    name: 'invoiceSlice',\r\n    initialState: {\r\n        invoiceList: [],\r\n        singleInvoice: { customer: {}, charges:[]},\r\n        paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n    },\r\n    reducers: {\r\n        addSingleInvoice: (state, {payload}) => {\r\n            state.singleInvoice = payload;\r\n        },\r\n        addInvoiceList: (state, {payload}) => {\r\n            state.invoiceList = payload;\r\n        },\r\n        addPaginationProps: (state, { payload }) => {\r\n            state.paginationProps = payload;\r\n        },\r\n    }\r\n});\r\n\r\n\r\nexport const { addSingleInvoice, addInvoiceList, addPaginationProps} = invoiceSlice.actions;\r\n\r\n\r\nexport const getAllInvoice = payload => dispatcher => {\r\n    return Services.getAllInvoice(payload).then(\r\n        response => {\r\n            const {currentPage: page, totalPages, totalItems, invoices} = response.data.data;\r\n            dispatcher(addPaginationProps({page, totalPages, totalItems}));\r\n            dispatcher(addInvoiceList(invoices));\r\n            \r\n            return Promise.resolve(response.data.data);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            return Promise.reject(error.response.data);\r\n        }\r\n    })\r\n}\r\n\r\n\r\nexport const getInvoice = payload => dispatcher => {\r\n    return Services.getInvoice(payload).then(\r\n        response => {\r\n            \r\n            dispatcher(addSingleInvoice(response.data.data));\r\n            return Promise.resolve(response.data.data);\r\n        }\r\n    ).catch(error => {\r\n        if(error.response){\r\n            return Promise.reject(error.response.data);\r\n        }\r\n    })\r\n}\r\n\r\n\r\n\r\n\r\nexport const selectInvoice = state =>  state.invoiceReducer;\r\n\r\nexport default invoiceSlice.reducer;","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { Menu, notification, Statistic } from \"antd\";\r\nimport { StyledCard, StyledModal } from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n  StyledNormalText,\r\n} from \"../../globalComponents/styles\";\r\nimport { Box, Grid, makeStyles, Divider } from \"@material-ui/core\";\r\nimport { Input, Select, Col, Row, Form } from \"antd\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport { FiTrash2 } from \"react-icons/fi\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { AntFormModal } from \"../../globalComponents/Modal\";\r\nimport {\r\n  CreateCustomerModal,\r\n  addCustomerInput,\r\n} from \"../../Clients/Customers/index\";\r\nimport { useSelector } from 'react-redux';\r\nimport { selectItems } from '../../Inventory/Items/slice';\r\nimport { selectCustomer } from '../../Clients/Customers/slice';\r\nimport { selectDashboard } from '../../Dashboard/slice';\r\nimport moment from 'moment';\r\nimport Services from \"../../../services\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport { createCustomer, getAllCustomer } from '../../Clients/Customers/slice';\r\nimport {useDispatch} from 'react-redux';\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { getAllInvoice } from './slice';\r\n\r\n\r\n\r\nconst { Option } = Select;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n  icons: {\r\n    fontSize: \"1.4vw\",\r\n    color: theme.grey,\r\n    marginRight: \"15px\",\r\n    \"&:hover\": {\r\n      color: theme.primaryColor,\r\n      cursor: \"pointer\",\r\n    },\r\n  },\r\n\r\n  historyIcon: {\r\n    color: theme.primaryColor,\r\n    fontSize: \"1.4vw\",\r\n    marginRight: \"10px\",\r\n  },\r\n  arroweft: {\r\n    width: 0,\r\n    height: 0,\r\n    borderTop: \"20px solid transparent\",\r\n    borderBottom: \"20px solid transparent\",\r\n\r\n    borderRight: `20px solid ${theme.foreground}`,\r\n  },\r\n  logo: {\r\n    width: \"15%\",\r\n    height: \"auto\",\r\n  },\r\n  totalBackground: {\r\n    backgroundColor: theme.background,\r\n  },\r\n}));\r\n\r\nconst data = [\r\n  {\r\n    item: [\r\n      { itemName: \"Rice\", price: 20, id: 1 },\r\n      { itemName: \"Beans\", price: 15 , id: 2},\r\n    ],    \r\n    quantity: 0,\r\n    price: 0,\r\n    amount: 0,\r\n    itemId: '',\r\n    itemName: ''\r\n  },\r\n];\r\n\r\nconst salesOrder = [\r\n  {\r\n    name: \"customer_id\",\r\n    label: \"Customer\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n  },\r\n  /* {\r\n    name: \"invoice\",\r\n    label: \"Invoice\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"INV/000001\",\r\n    disabled: true,\r\n  }, */\r\n  /* {\r\n    name: \"invoiceDate\",\r\n    label: \"Invoice Date\",\r\n    isRequired: false,\r\n    type: \"date\",\r\n  }, */\r\n  {\r\n    name: \"due_date\",\r\n    label: \"Due date\",\r\n    isRequired: false,\r\n    type: \"date\",\r\n  },\r\n /*  {\r\n    name: \"sopo_number\",\r\n    label: \"SO/PO Number\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  }, */\r\n  {\r\n    name: \"sales_person\",\r\n    label: \"Sales person\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"notes\",\r\n    label: \"Notes\",\r\n    isRequired: false,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst chargesFields = [\r\n  {\r\n    name: \"name\",\r\n    label: \"Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"amount\",\r\n    label: \"Amount\",\r\n    isRequired: true,\r\n    type: \"number\",\r\n  },\r\n];\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nconst customerArr = [\"ade\", \"toyin\"];\r\n\r\nexport const AddInvoice = (props) => {\r\n  const { usersByOrg, userProfile } = useSelector(selectDashboard);\r\n  const { customerList } = useSelector(selectCustomer);\r\n  const { itemList } = useSelector(selectItems);\r\n\r\n  // console.log({ usersByOrg, customerList, itemList }, \"addInvoice\");\r\n\r\n\r\n  const classes = useStyles();\r\n  const [chargesForm] = Form.useForm();\r\n  const [basicInfoForm] = Form.useForm();\r\n  const [itemsState, setItemsState] = useState(data);\r\n  const [activeRowIndex, setActiveRowIndex] = useState(null);\r\n  const [otherCharges, setOtherCharges] = useState([]);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [createInvoiceLoading, setCreateInvoiceLoading] = useState(false);\r\n  const [addChargesModal, setAddChargesModal] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const [addCustomerModalProps, setAddCustomerModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n\r\n  useEffect(() => {\r\n    const formattedItemsState = [...itemsState].map(itm => {\r\n       itm.item = itemList;\r\n      return itm;\r\n    })\r\n    setItemsState(formattedItemsState);\r\n  }, [itemList])\r\n\r\n\r\n  const customerInputs = addCustomerInput.map((item) => getInput(item));\r\n\r\n  const handleDeleteRow = () => {\r\n    const currentItemState = [...itemsState];\r\n    currentItemState.splice(activeRowIndex, 1);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  const getSelectedItem = (currentItemState) => {\r\n    return currentItemState.find((item, index) => index === activeRowIndex);\r\n   \r\n  };\r\n\r\n  const replaceItem = (currentItemState, selecedItem) => {\r\n    currentItemState.splice(activeRowIndex, 1, selecedItem);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  const handleItemSelect = (itemId) => {\r\n    const currentItemState = [...itemsState];\r\n    const selectedItemObj = getSelectedItem(currentItemState);\r\n    const selecteditem = selectedItemObj.item.find(itm => itm.id === itemId);\r\n    selectedItemObj.itemId = itemId;\r\n    selectedItemObj.itemName =  selecteditem.itemName\r\n    selectedItemObj.price = parseInt(selecteditem.sellingPrice);\r\n    replaceItem(currentItemState, selectedItemObj);\r\n  }\r\n \r\n\r\n  const handleQuantityChange = (e) => {\r\n    const currentItemState = [...itemsState];\r\n    const selectedItemObj = getSelectedItem(currentItemState);\r\n    const qty = e.target.value;\r\n    selectedItemObj.quantity = qty;\r\n    selectedItemObj.amount = parseInt(qty || 0) * parseInt(selectedItemObj.price);\r\n    replaceItem(currentItemState, selectedItemObj);\r\n  }\r\n\r\n  const columns = [\r\n    {\r\n      title: \"Item\",\r\n      dataIndex: \"item\",\r\n      key: \"item\",\r\n      render: (data) => {\r\n        const optionList = data.map((item, index) => {\r\n          return (\r\n            <Option key={index} value={item.id}>\r\n              {item.itemName }\r\n            </Option>\r\n          );\r\n        });\r\n        return (\r\n          <StyledInputContainer>\r\n            <Select\r\n               onChange={handleItemSelect}\r\n              placeholder=\"Select Item\"\r\n              style={{ width: \"100%\" }}\r\n              bordered={false}\r\n            >\r\n              {optionList}\r\n             {/* { console.log(optionList, 'optionList')} */}\r\n              \r\n            </Select>\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: \"Quantity\",\r\n      dataIndex: \"quantity\",\r\n      key: \"quantity\",\r\n      render: (data, allData) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n              type=\"number\"\r\n              disabled={!Boolean(allData.price)}\r\n              bordered={false}\r\n               onChange={handleQuantityChange}\r\n              placeholder=\"\"\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: \"Price\",\r\n      dataIndex: \"price\",\r\n      key: \"price\",\r\n      render: (data) => {\r\n      \r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n              type=\"number\"\r\n              bordered={false}\r\n              disabled={true}\r\n              value={data}\r\n              /*  onChange={handleAdjustedBy} */\r\n              placeholder=\"\"\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    /* {\r\n      title: \"Tax\",\r\n      dataIndex: \"tax\",\r\n      key: \"tax\",\r\n      render: (data) => {\r\n        const optionList = data.map((item, index) => {\r\n          return (\r\n            <Option key={index} value={item.sku}>\r\n              {item.name}\r\n            </Option>\r\n          );\r\n        });\r\n        return (\r\n          <StyledInputContainer>\r\n            <Select\r\n               onChange={handleItemSelect}\r\n              placeholder=\"Select Item\"\r\n              style={{ width: \"100%\" }}\r\n              bordered={false}\r\n            >\r\n              {optionList}\r\n            </Select>\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    }, */\r\n    {\r\n      title: \"Amount\",\r\n      dataIndex: \"amount\",\r\n      key: \"amount\",\r\n      render: (data, allData) => {\r\n        return (\r\n          <StyledInputContainer>\r\n            <Input\r\n              type=\"number\"\r\n              bordered={false}\r\n              value={data}\r\n              placeholder=\"\"\r\n              disabled={true}\r\n            />\r\n          </StyledInputContainer>\r\n        );\r\n      },\r\n    },\r\n    {\r\n      title: \"Del\",\r\n      dataIndex: \"delete\",\r\n      key: \"delete\",\r\n      width: \"1%\",\r\n      render: (data) => {\r\n        return (\r\n          itemsState.length > 1 && (\r\n            <FiTrash2\r\n              onClick={handleDeleteRow}\r\n              style={{ fontSize: \"1.4vw\", marginLeft: \"20px\", color: \"red\" }}\r\n            />\r\n          )\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleTableRow = (data, index) => {\r\n    return {\r\n      onClick: (e) => {\r\n        setActiveRowIndex(index);\r\n      },\r\n    };\r\n  };\r\n\r\n  const AddAdjustableRow = () => {\r\n    const row = {\r\n      item: itemList,    \r\n      quantity: 0,\r\n      price: 0,\r\n      amount: 0,\r\n      itemId: '',\r\n      itemName: ''\r\n    };\r\n\r\n    setItemsState((prevState) => [...prevState, row]);\r\n  };\r\n\r\n  const handleSelectChange = (selectName) => (value, dateString) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    if(selectName === 'due_date'){\r\n      prevSelectValues[selectName] = moment(dateString).toISOString();\r\n    }else {\r\n      prevSelectValues[selectName]  = value;\r\n    }\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n  const onFooterClick = (name) => {\r\n    if (name === \"customer_id\") {\r\n      setAddCustomerModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: true,\r\n      }));\r\n    }\r\n  };\r\n\r\n  const customerOptionList = customerList.map((item, index) => {\r\n    return (\r\n      <Option value={item.id} key={index}>\r\n        {`${item.firstName} ${item.lastName}`}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const userList = [...usersByOrg].map((user, index) => {\r\n    return (\r\n      <Option key={index} value={user.id}>\r\n        {user.fullName !== \" \" ? user.fullName : \"Adefisayo Adeniji\"}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const salesOrderList = [...salesOrder].map((item) => {\r\n    if (item.name === \"customer_id\") {\r\n      return (\r\n        <Col sm={12}>\r\n          {getInput(\r\n            item,\r\n            handleSelectChange,\r\n            customerOptionList,\r\n            null,\r\n            onFooterClick\r\n          )}\r\n        </Col>\r\n      );\r\n    }\r\n\r\n    if(item.name === 'sales_person'){\r\n      return (\r\n        <Col sm={12}>\r\n          {getInput(\r\n            item,\r\n            handleSelectChange,\r\n            userList,\r\n          )}\r\n        </Col>\r\n      );\r\n    }\r\n    return <Col sm={12}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const chargesInput = [...chargesFields].map((item) => {\r\n    return getInput(item);\r\n  });\r\n\r\n  const onAddCharges = (values) => {\r\n    setOtherCharges((prevState) => [...prevState, values]);\r\n    setAddChargesModal((prevState) => ({ ...prevState, isVisible: false }));\r\n  };\r\n\r\n  const otherChargesList = [...otherCharges].map((item, index) => {\r\n    return <OtherChargesComponent data={item} key={index} />;\r\n  });\r\n\r\n \r\n\r\n  const getOtherCharges = () => {\r\n    return otherCharges.reduce((prev, curr) => {\r\n      return  prev + parseInt(curr.amount);\r\n    }, 0);\r\n  }\r\n\r\n\r\n  const getSubTotal = () => {\r\n    return itemsState.reduce((prev, curr) => {\r\n        return prev + parseInt(curr.amount);\r\n    }, 0);\r\n  }\r\n\r\n  const getTotal = () => {\r\n    return  getSubTotal() + getOtherCharges();\r\n  }\r\n\r\n  const handleFormSubmit = (e) => {\r\n    e.preventDefault();\r\n    \r\n    basicInfoForm.submit()\r\n    \r\n  }\r\n\r\n  const onFinish = async (values) => {\r\n    try {\r\n      setCreateInvoiceLoading(true)\r\n      values.sales_person = selectValues.sales_person;\r\n      values.customer_id = selectValues.customer_id;\r\n      values.due_date = selectValues.due_date;\r\n      const items =  itemsState.map(item => {\r\n        return ({id: item.itemId, quantity: item.quantity, price: item.price, itemName: item.itemName});\r\n      })\r\n     \r\n      values.items = items;\r\n      values.total_amount = getSubTotal() + getOtherCharges();\r\n      values.charges = otherCharges;\r\n\r\n      console.log(values, 'values')\r\n      await Services.createInvoice({data: values, id: values.customer_id});\r\n      await  dispatcher(getAllInvoice({page: 0, size: 10}));\r\n      notificationAlert('success', 'Invoice Created', 'Invoice was successfully created');\r\n      setCreateInvoiceLoading(false);\r\n      history.push('/invoice');\r\n    } catch (error) {\r\n      setCreateInvoiceLoading(false);\r\n      notificationAlert('error', 'Failed', error?.response?.data?.message || 'Please try again later');\r\n    }\r\n  };\r\n\r\n  const handleFeedbackClose = (event, reason) => {\r\n    if (reason === \"clickaway\") {\r\n      return;\r\n    }\r\n    setFeedbackProps((prevState) => ({ ...prevState, open: false }));\r\n  };\r\n\r\n\r\n  const onAddCustomer = async (values) => {\r\n    try {\r\n      setAddCustomerModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      values.headOfWareHouseId = selectValues.headOfWareHouseId;\r\n      values.orgId = userProfile.orgId;\r\n      await dispatcher(createCustomer({ data: values }));\r\n      await dispatcher(getAllCustomer({}));\r\n      setAddCustomerModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: false,\r\n        loading: false,\r\n      }));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        open: true,\r\n        message: \"customer has been added\",\r\n      });\r\n    } catch (error) {\r\n      setAddCustomerModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        open: true,\r\n        message: \"An error occurred, please try again later\",\r\n      });\r\n    }\r\n  }\r\n  return (\r\n    <>\r\n      <ToolBar title=\"New Invoice\" />\r\n      <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n        <Grid item xs={12}>\r\n         {/*  <Box px={3}>\r\n            <StyledBoldText variant=\"subtitle1\">Warehouse</StyledBoldText>\r\n          </Box> */}\r\n          <Box px={3} mt={2}>\r\n            <Form form={basicInfoForm} onFinish={onFinish} {...layout}>\r\n              <Row gutter={16}>{salesOrderList}</Row>\r\n            </Form>\r\n          </Box>\r\n        </Grid>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          dataSource={itemsState}\r\n          onRow={handleTableRow}\r\n          columns={columns}\r\n          hidePagination\r\n          // onRow={handleTableRow}\r\n        />\r\n      </StyledCard>\r\n      <Box p={4} display=\"flex\" justifyContent=\"space-between\">\r\n        <PrimaryButton onClick={AddAdjustableRow} text=\"Add Row\" />\r\n        <Box flexBasis=\"40%\">\r\n          <Box px={1}>{otherChargesList}</Box>\r\n\r\n          <Divider />\r\n          <TotalComponent title=\"Sub-total\" amount={getSubTotal()} />\r\n          <TotalComponent title=\"Total\" amount={getTotal()} />\r\n          <TransaparentButton\r\n            onClick={() =>\r\n              setAddChargesModal((prevState) => ({\r\n                ...prevState,\r\n                isVisible: true,\r\n              }))\r\n            }\r\n            text=\"Add Charges\"\r\n          />\r\n          <Box mt={6} pb={5} display=\"flex\" justifyContent=\"flex-start\">\r\n            <Box mr={2}>\r\n              <TransaparentButton text=\"Cancel\" />\r\n            </Box>\r\n           {/*  <Box mr={2}>\r\n              <PrimaryButton text=\"Save to Draft\" />\r\n            </Box> */}\r\n            <PrimaryButton loading={createInvoiceLoading} onClick={handleFormSubmit} text=\"Save &amp; Submit\" />\r\n          </Box>\r\n        </Box>\r\n      </Box>\r\n\r\n      <AntFormModal\r\n        title=\"Add Charges\"\r\n        visible={addChargesModal.isVisible}\r\n        onCancel={() =>\r\n          setAddChargesModal((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        form={chargesForm}\r\n        loading={addChargesModal.loading}\r\n        onFinish={onAddCharges}\r\n      >\r\n        {chargesInput}\r\n      </AntFormModal>\r\n      <CreateCustomerModal\r\n        visible={addCustomerModalProps.isVisible}\r\n        onCancel={() =>\r\n          setAddCustomerModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n         onFinish={onAddCustomer}\r\n        loading={addCustomerModalProps.loading}\r\n        warehouseInputs={customerInputs}\r\n      />\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={handleFeedbackClose}\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport const TotalComponent = (props) => {\r\n  const classes = useStyles();\r\n  return (\r\n    <StyledCard\r\n      display=\"flex\"\r\n      justifyContent=\"space-between\"\r\n      alignItems=\"center\"\r\n      mb={2}\r\n      mt={2}\r\n      p={2}\r\n    >\r\n      <StyledBoldText>{props.title}</StyledBoldText>\r\n      <Box p={1} flexBasis=\"80%\" className={classes.totalBackground}>\r\n        <Statistic valueStyle={{fontSize: '1.2vw', color: themes.boldText}}  value={props.amount} prefix='₦' />\r\n      </Box>\r\n    </StyledCard>\r\n  );\r\n};\r\n\r\nexport const OtherChargesComponent = (props) => {\r\n  return (\r\n    <Box\r\n      display=\"flex\"\r\n      justifyContent=\"space-between\"\r\n      alignItems=\"center\"\r\n      mb={2}\r\n    >\r\n      <StyledNormalText>{props.data.name}</StyledNormalText>\r\n      <Statistic valueStyle={{fontSize: '1.2vw', color: themes.boldText}}  value={props.data.amount} prefix='₦' />\r\n    </Box>\r\n  );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/companyLogo.38837c7b.jpeg\";","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { Menu, Statistic} from \"antd\";\r\nimport {\r\n  StyledCard,\r\n  StyledModal,\r\n  StyledNormalText,\r\n  StyledTable,\r\n} from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n} from \"../../globalComponents/styles\";\r\nimport { Box, Divider, Grid, makeStyles } from \"@material-ui/core\";\r\nimport { Input, Select, Col, Row, Form, Popover } from \"antd\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport { FiTrash2, FiMail, FiSend } from \"react-icons/fi\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { AntFormModal } from \"../../globalComponents/Modal\";\r\nimport { BiPrinter, BiHistory } from \"react-icons/bi\";\r\nimport { IoMdRefresh } from \"react-icons/io\";\r\nimport { FaRegFilePdf } from \"react-icons/fa\";\r\nimport companyLogo from \"../../images/companyLogo.jpeg\";\r\nimport { AntModal } from \"../../globalComponents/Modal\";\r\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\r\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\r\nimport { getInvoice, selectInvoice, getAllInvoice} from './slice';\r\nimport { useParams } from \"react-router\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectItems } from '../../Inventory/Items/slice';\r\nimport { OtherChargesComponent, TotalComponent} from './AddInvoice';\r\nimport Services from \"../../../services\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\nimport moment from 'moment';\r\nimport { file } from './file';\r\n\r\n\r\nconst { Option } = Select;\r\nconst layout = {\r\n  labelCol: { span: 6 },\r\n  wrapperCol: { span: 18 },\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n  icons: {\r\n    fontSize: \"1.4vw\",\r\n    color: theme.grey,\r\n    marginRight: \"15px\",\r\n    \"&:hover\": {\r\n      color: theme.primaryColor,\r\n      cursor: \"pointer\",\r\n    },\r\n  },\r\n\r\n  historyIcon: {\r\n    color: theme.primaryColor,\r\n    fontSize: \"1.4vw\",\r\n    marginRight: \"10px\",\r\n  },\r\n  arroweft: {\r\n    width: 0,\r\n    height: 0,\r\n    borderTop: \"20px solid transparent\",\r\n    borderBottom: \"20px solid transparent\",\r\n\r\n    borderRight: `20px solid ${theme.foreground}`,\r\n  },\r\n  logo: {\r\n    width: \"15%\",\r\n    height: \"auto\",\r\n  },\r\n  totalBackground: {\r\n    backgroundColor: theme.background,\r\n  },\r\n}));\r\n\r\nconst data = [\r\n  {\r\n    item: \"Hp laptops\",\r\n    description: \"Lorem ipsum dolor\",\r\n    quantity: \"2\",\r\n    rate: \"$600\",\r\n    amount: \"$600\",\r\n  },\r\n];\r\n\r\nconst sendInvoiceFields = [\r\n  {\r\n    name: \"from\",\r\n    label: \"From\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"to\",\r\n    label: \"To\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"cc\",\r\n    label: \"Cc\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n  {\r\n    name: \"subject\",\r\n    label: \"Subject\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n  },\r\n];\r\n\r\nconst paymentFields = [\r\n  {\r\n    name: \"customer_name\",\r\n    label: \"Customer\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: '',\r\n    disabled: true\r\n  },\r\n  {\r\n    name: \"receipt_number\",\r\n    label: \"Receipt Number\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    disabled: true\r\n  },\r\n  {\r\n    name: \"amount_received\",\r\n    label: \"Amount received(NGN)\",\r\n    isRequired: true,\r\n    type: \"number\",\r\n  },\r\n  {\r\n    name: \"bank_changes\",\r\n    label: \"Bank Charges\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n  },\r\n/*   {\r\n    name: \"paymentDate\",\r\n    label: \"Payment date\",\r\n    isRequired: false,\r\n    type: \"date\",\r\n  }, */\r\n  {\r\n    name: \"account_to_deposit\",\r\n    label: \"Account to Deposit\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"payment_method\",\r\n    label: \"Payment Method\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"notes\",\r\n    label: \"Notes\",\r\n    isRequired: false,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst paymentMethods = [\r\n  \"DEFAULT\",\r\n  \"CASH\",\r\n  \"CHECK\",\r\n  \"BANK_TRANSFER\",\r\n  \"CREDIT_DEBIT_CARD\",\r\n  \"INTERNET_BANKING\"\r\n];\r\n\r\nconst accountDeposit = [\"Cash on hand\", \"Cash in bank\"];\r\n\r\nexport const SingleInvoice = (props) => {\r\n  const classes = useStyles();\r\n  const [paymentForm] = Form.useForm();\r\n  const [paymentInfo, setPaymentInfo] = useState({})\r\n  const [paymentFieldsState, setPaymentFields] = useState(paymentFields)\r\n  const [sendInvoiceModalProps, setSendInvoiceModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const [paymentModalProps, setPaymentModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const [selectValues, setSelectValues] = useState({});\r\n\r\n  const { singleInvoice } = useSelector(selectInvoice);\r\n  const { id } = useParams();\r\n  const dispatcher = useDispatch();\r\n  const { itemList } = useSelector(selectItems);\r\n\r\n  \r\n\r\n  useEffect(() => {\r\n    (async () => {\r\n      try {\r\n\r\n        const invoiceInfo = await dispatcher(getInvoice({id}));\r\n        const {data: {data: paymentData}}  = await Services.getPaymentInfo({id});\r\n        \r\n\r\n     \r\n          const initValues = {\r\n            customer_name: `${paymentData.customer.firstName} ${paymentData.customer.lastName}`,\r\n            receipt_number: paymentData.receipt_number\r\n          }\r\n    \r\n          const paymentFieldsDefault = [...paymentFieldsState].map(item => {\r\n            item.defaultValue = initValues[item.name];\r\n            return item\r\n          })\r\n    \r\n          setPaymentFields(paymentFieldsDefault);\r\n    \r\n         /*  paymentForm.setFieldsValue({\r\n            customer_name: `${paymentData.customer.firstName} ${paymentData.customer.lastName}`,\r\n            receipt_number: paymentData.receipt_number\r\n          }) */\r\n\r\n        setPaymentInfo(paymentData);\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    })()\r\n  }, [])\r\n\r\n/* \r\n  useEffect(() => {\r\n    if(Object.entries(paymentInfo).length > 0 && paymentModalProps.isVisible){\r\n      const initValues = {\r\n        customer_name: `${paymentInfo.customer.firstName} ${paymentInfo.customer.lastName}`,\r\n        receipt_number: paymentInfo.receipt_number\r\n      }\r\n\r\n      const paymentFieldsDefault = [...paymentFieldsState].map(item => {\r\n        item.defaultValue = initValues[item.name];\r\n        return item\r\n      })\r\n\r\n      setPaymentFields(paymentFieldsDefault);\r\n\r\n      paymentForm.setFieldsValue({\r\n        customer_name: `${paymentInfo.customer.firstName} ${paymentInfo.customer.lastName}`,\r\n        receipt_number: paymentInfo.receipt_number\r\n      })\r\n    }\r\n    \r\n  }, [paymentInfo, paymentModalProps.isVisible]) */\r\n\r\n\r\n  \r\nconst columns = [\r\n  {\r\n    title: \"ID\",\r\n    dataIndex: \"id\",\r\n    key: \"id\",\r\n  },\r\n  {\r\n    title: \"Name\",\r\n    dataIndex: \"itemName\",\r\n    key: \"itemName\",\r\n  },\r\n  {\r\n    title: \"Quantity\",\r\n    dataIndex: \"quantity\",\r\n    key: \"quantity\",\r\n  },\r\n  {\r\n    title: \"Price\",\r\n    dataIndex: \"price\",\r\n    key: \"price\",\r\n  },\r\n  {\r\n    title: \"Amount\",\r\n    dataIndex: \"amount\",\r\n    key: \"amount\",\r\n    render: (data, allData) => parseInt(allData?.quantity) * parseInt(allData?.price)\r\n  },\r\n];\r\n\r\n\r\n  const sendInvoiceInput = [...sendInvoiceFields].map((item) => {\r\n    return getInput(item);\r\n  });\r\n\r\n  const paymentMethodList = paymentMethods.map((item) => {\r\n    return (\r\n      <Option value={item} key={item}>\r\n        {item}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const accountDepositList = accountDeposit.map((item) => {\r\n    return (\r\n      <Option value={item} key={item}>\r\n        {item}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  \r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const paymentInput = [...paymentFieldsState].map((item) => {\r\n    if (item.name === \"payment_method\") {\r\n      return (\r\n        <Col xs={11}>\r\n          {getInput(item, handleSelectChange, paymentMethodList)}\r\n        </Col>\r\n      );\r\n    }\r\n\r\n    if (item.name === \"account_to_deposit\") {\r\n      return (\r\n        <Col xs={12}>\r\n          {getInput(item, handleSelectChange, accountDepositList)}\r\n        </Col>\r\n      );\r\n    }\r\n    return <Col xs={12}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const openPaymentRecordModal = async() => {\r\n    setPaymentModalProps((prevState) => ({ ...prevState, isVisible: true }));\r\n\r\n\r\n    /* if(Object.entries(paymentInfo).length > 0){\r\n      const initValues = {\r\n        customer_name: `${paymentInfo.customer.firstName} ${paymentInfo.customer.lastName}`,\r\n        receipt_number: paymentInfo.receipt_number\r\n      }\r\n\r\n      const paymentFieldsDefault = [...paymentFieldsState].map(item => {\r\n        item.defaultValue = initValues[item.name];\r\n        return item\r\n      })\r\n\r\n      setPaymentFields(paymentFieldsDefault);\r\n\r\n      paymentForm.setFieldsValue({\r\n        customer_name: `${paymentInfo.customer.firstName} ${paymentInfo.customer.lastName}`,\r\n        receipt_number: paymentInfo.receipt_number\r\n      })\r\n    } */\r\n  };\r\n\r\n  const openSendInvoiceModal = () => {\r\n    setSendInvoiceModalProps((prevState) => ({\r\n      ...prevState,\r\n      isVisible: true,\r\n    }));\r\n  };\r\n\r\n  const handleToolClick = (name) => {\r\n    switch (name) {\r\n      case \"recordPayment\":\r\n        openPaymentRecordModal();\r\n        break;\r\n      case \"send\":\r\n        openSendInvoiceModal();\r\n        break;\r\n      default:\r\n        return;\r\n    }\r\n  };\r\n\r\n  const otherCharges = singleInvoice?.charges?.map((item, index) => {\r\n    return <OtherChargesComponent data={item} key={index}/>\r\n  });\r\n\r\n  const onPaymentMade = async (values) => {\r\n    try {\r\n      values.payment_method = selectValues.payment_method;\r\n      values.account_to_deposit = selectValues.account_to_deposit;\r\n      values.receipt_id =  paymentInfo.receipt_id;\r\n      values.receipt_number = paymentInfo.receipt_number;\r\n      values.customer_name = `${paymentInfo.customer.firstName} ${paymentInfo.customer.lastName}`;\r\n      values.payment_date = moment().format('YYYY-MM-DD');\r\n      values.org_key = \"\";\r\n      /* values.file = file; */\r\n\r\n     \r\n      //values.amount_to_deposit = \"\";\r\n      delete values.bank_changes;\r\n\r\n       setPaymentModalProps(prevState => ({...prevState, loading: true}));\r\n      await Services.makePayment({data: values, id: singleInvoice.id})\r\n      await  dispatcher(getAllInvoice({page: 0, size: 10}));\r\n      setPaymentModalProps(prevState => ({...prevState, loading: false, isVisible: false}));\r\n      notificationAlert('success', 'Payment Successful', `Payment was made`)\r\n    } catch (error) {\r\n      console.log(error)\r\n      setPaymentModalProps(prevState => ({...prevState, loading: false}));\r\n\r\n      if(error.response){\r\n        notificationAlert('error', 'Payment Failed', error.response.data.message || 'Please try again');\r\n      }else {\r\n        notificationAlert('error', 'Payment Failed', 'Please try again');\r\n      }\r\n    }\r\n   \r\n\r\n  }\r\n\r\n\r\n  return (\r\n    <>\r\n      <ToolBar onClick={handleToolClick} />\r\n      <HistoryBar />\r\n      <StyledCard mt={2}>\r\n        <Box\r\n          display=\"flex\"\r\n          alignItems=\"center\"\r\n          style={{ backgroundColor: \"#A3B1BC\", width: \"fit-content\" }}\r\n        >\r\n          <Box\r\n            display=\"flex\"\r\n            justifyContent=\"center\"\r\n            alignItems=\"center\"\r\n            py={1}\r\n            px={6}\r\n          >\r\n            <StyledBoldText style={{ color: themes.white }} variant=\"body2\">\r\n              Unsent\r\n            </StyledBoldText>\r\n          </Box>\r\n          <Box className={classes.arroweft}></Box>\r\n        </Box>\r\n        <Box p={3}>\r\n          <img className={classes.logo} src={companyLogo} alt=\"company logo\" />\r\n          <Box mt={5}>\r\n            <StyledBoldText variant=\"h4\">Invoice</StyledBoldText>\r\n          </Box>\r\n          <Box\r\n            mt={3}\r\n            pb={2}\r\n            display=\"flex\"\r\n            justifyContent=\"space-between\"\r\n            alignItems=\"center\"\r\n          >\r\n            <Box flexBasis=\"30%\">\r\n              <Box\r\n                display=\"flex\"\r\n                justifyContent=\"space-between\"\r\n                alignItems=\"center\"\r\n              >\r\n                <StyledBoldText\r\n                  style={{ fontWeight: \"bold\" }}\r\n                  variant=\"subtitle1\"\r\n                >\r\n                  Invoice number:\r\n                </StyledBoldText>\r\n                <StyledBoldText\r\n                  align=\"left\"\r\n                  style={{ fontWeight: \"bold\" }}\r\n                  variant=\"subtitle1\"\r\n                >\r\n                  {singleInvoice?.invoice_number}\r\n                </StyledBoldText>\r\n              </Box>\r\n              <Box\r\n                display=\"flex\"\r\n                justifyContent=\"space-between\"\r\n                alignItems=\"center\"\r\n              >\r\n                <StyledBoldText\r\n                  style={{ fontWeight: \"bold\" }}\r\n                  variant=\"subtitle1\"\r\n                >\r\n                  Invoice Date :\r\n                </StyledBoldText>\r\n                <StyledNormalText align=\"left\" variant=\"subtitle1\">\r\n                  8th Aug 2019\r\n                </StyledNormalText>\r\n              </Box>\r\n              <Box\r\n                display=\"flex\"\r\n                justifyContent=\"space-between\"\r\n                alignItems=\"center\"\r\n              >\r\n                <StyledBoldText\r\n                  style={{ fontWeight: \"bold\" }}\r\n                  variant=\"subtitle1\"\r\n                >\r\n                  Due Date :\r\n                </StyledBoldText>\r\n                <StyledNormalText align=\"left\" variant=\"subtitle1\">\r\n                  {singleInvoice?.invoice_date}\r\n                </StyledNormalText>\r\n              </Box>\r\n            </Box>\r\n            <Box>\r\n              <StyledBoldText\r\n                style={{ fontWeight: \"bold\" }}\r\n                variant=\"subtitle1\"\r\n              >\r\n                Bill To\r\n              </StyledBoldText>\r\n              <StyledNormalText align=\"left\" variant=\"subtitle1\">\r\n                {`${singleInvoice?.customer.firstName} ${singleInvoice?.customer.lastName}`}\r\n              </StyledNormalText>\r\n             {/*  <StyledNormalText align=\"left\" variant=\"subtitle1\">\r\n                Holder’s Limited\r\n              </StyledNormalText> */}\r\n              <StyledNormalText align=\"left\" variant=\"subtitle1\">\r\n              {singleInvoice?.customer.address}\r\n              </StyledNormalText>\r\n            </Box>\r\n          </Box>\r\n          <Divider />\r\n          <Box py={2}>\r\n            <StyledBoldText>Notes</StyledBoldText>\r\n            <StyledNormalText>\r\n            {singleInvoice?.notes}\r\n            </StyledNormalText>\r\n          </Box>\r\n          <Divider />\r\n          <Box mt={3}>\r\n            <StyledTable\r\n              columns={columns}\r\n              dataSource={singleInvoice?.items}\r\n              pagination={false}\r\n            />\r\n          </Box>\r\n          <Divider />\r\n          <Box\r\n            mt={3}\r\n            display=\"flex\"\r\n            justifyContent=\"space-between\"\r\n            alignItems=\"center\"\r\n          >\r\n            <Box>\r\n              {/* <StyledBoldText>Attachment</StyledBoldText> */}\r\n              <TransaparentButton text=\"attach a file\" />\r\n            </Box>\r\n            <Box flexBasis=\"40%\">\r\n              { otherCharges }\r\n              <Divider />\r\n              <Box\r\n                display=\"flex\"\r\n                justifyContent=\"space-between\"\r\n                alignItems=\"center\"\r\n                mb={2}\r\n                mt={2}\r\n              >\r\n                <StyledBoldText>Total</StyledBoldText>\r\n                <Statistic valueStyle={{fontSize: '1.2vw', color: themes.boldText}}  value={singleInvoice?.total_amount} prefix='₦' />\r\n               {/*  <StyledBoldText>{singleInvoice?.total_amount}</StyledBoldText> */}\r\n              </Box>\r\n              {/* <TotalComponent title='Total' amount={singleInvoice?.total_amount}/> */}\r\n              {/* <Box\r\n                display=\"flex\"\r\n                justifyContent=\"space-between\"\r\n                alignItems=\"center\"\r\n                mb={2}\r\n                className={classes.totalBackground}\r\n                p={2}\r\n              >\r\n                <StyledBoldText>Amount Due</StyledBoldText>\r\n                <StyledBoldText>$600</StyledBoldText>\r\n              </Box> */}\r\n            </Box>\r\n          </Box>\r\n        </Box>\r\n      </StyledCard>\r\n      <AntModal\r\n        title=\"Send Invoice\"\r\n        visible={sendInvoiceModalProps.isVisible}\r\n        onCancel={() =>\r\n          setSendInvoiceModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n      >\r\n        <Form\r\n          colon={false}\r\n          labelCol={{\r\n            span: 4,\r\n          }}\r\n          wrapperCol={{\r\n            span: 20,\r\n          }}\r\n        >\r\n          {sendInvoiceInput}\r\n        </Form>\r\n        <Box mt={3}>\r\n          <StyledBoldText gutterBottom={true} variant=\"body2\" align=\"left\">\r\n            Message\r\n          </StyledBoldText>\r\n          <CKEditor\r\n            editor={ClassicEditor}\r\n            data=\"<p>Write Message</p>\"\r\n            onReady={(editor) => {\r\n              // You can store the \"editor\" and use when it is needed.\r\n              // console.log(\"Editor is ready to use!\", editor);\r\n            }}\r\n            onChange={(event, editor) => {\r\n              const data = editor.getData();\r\n              \r\n            }}\r\n            onBlur={(event, editor) => {\r\n              \r\n            }}\r\n            onFocus={(event, editor) => {\r\n              // console.log(\"Focus.\", editor);\r\n            }}\r\n          />\r\n        </Box>\r\n      </AntModal>\r\n      <AntFormModal\r\n        title={singleInvoice.invoice_number}\r\n        visible={paymentModalProps.isVisible}\r\n        form={paymentForm}\r\n        initialValues={{customer: 'Adefisayo'}}\r\n        onCancel={() =>{\r\n          paymentForm.resetFields();\r\n\r\n          setPaymentModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        }\r\n        onFinish={onPaymentMade}\r\n      >\r\n        <Row gutter={16}>{paymentInput}</Row>\r\n      </AntFormModal>\r\n    </>\r\n  );\r\n};\r\n\r\nconst SingleHistory = (props) => {\r\n  return (\r\n    <StyledSingleHistory pl={4} pr={2} py={2} mb={3}>\r\n      <StyledBoldText variant=\"body2\">\r\n        Payment of N 300,000.00 using cash received by Essien Joy\r\n      </StyledBoldText>\r\n      <Box display=\"flex\" alignItems=\"center\">\r\n        <StyledNormalText variant=\"overline\">3rd Jul 2019</StyledNormalText>\r\n        <Box ml={2}>\r\n          <StyledNormalText variant=\"overline\">3:00pm</StyledNormalText>\r\n        </Box>\r\n      </Box>\r\n    </StyledSingleHistory>\r\n  );\r\n};\r\n\r\nexport const HistoryBar = (props) => {\r\n  const classes = useStyles();\r\n  const content = (\r\n    <Box\r\n      px={6}\r\n      py={2}\r\n      style={{ minWidth: \"50vw\", maxHeight: \"50vh\", overflow: \"auto\" }}\r\n    >\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n      <SingleHistory />\r\n    </Box>\r\n  );\r\n\r\n  return (\r\n    <StyledCard mt={2} py={3} px={3}>\r\n      <Popover placement=\"bottomLeft\" content={content} trigger=\"click\">\r\n        <Box\r\n          style={{ cursor: \"pointer\" }}\r\n          display=\"flex\"\r\n          justifyContent=\"flex-start\"\r\n          alignItems=\"center\"\r\n        >\r\n          <BiHistory className={classes.historyIcon} />\r\n          <StyledBoldText\r\n            style={{ color: themes.primaryColor, fontWeight: \"bold\" }}\r\n            variant=\"body2\"\r\n          >\r\n            Activity ( Comments and History)\r\n          </StyledBoldText>\r\n        </Box>\r\n      </Popover>\r\n    </StyledCard>\r\n  );\r\n};\r\n\r\nexport const ToolBar = (props) => {\r\n  const classes = useStyles();\r\n  return (\r\n    <StyledCard\r\n      display=\"flex\"\r\n      justifyContent=\"flex-end\"\r\n      alignItems=\"center\"\r\n      py={3}\r\n      px={3}\r\n    >\r\n      <FaRegFilePdf className={classes.icons} />\r\n      <IoMdRefresh className={classes.icons} />\r\n      <BiPrinter className={classes.icons} />\r\n      <FiMail className={classes.icons} />\r\n      <FiTrash2 className={classes.icons} />\r\n      {/* <FiSend className={classes.icons} onClick={() => props.onClick(\"send\")} /> */}\r\n      {!props.hidePaymentButton && <TransaparentButton\r\n        style={{ textTransform: \"capitalize \" }}\r\n        text=\"Record a Payment\"\r\n        onClick={() => props.onClick(\"recordPayment\")}\r\n      />}\r\n    </StyledCard>\r\n  );\r\n};\r\n\r\nconst StyledSingleHistory = styled(Box)`\r\n  border: 1px solid ${themes.border};\r\n  width: 100%;\r\n  border-radius: 0px 20px 20px 20px;\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\nimport styled from 'styled-components';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Space, Popover, Statistic, Table, notification } from 'antd';\r\nimport { StyledCard } from '../../globalComponents/styles';\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { FiMoreVertical } from 'react-icons/fi';\r\nimport { AddInvoice } from './AddInvoice';\r\nimport { SingleInvoice } from './SingleInvoice';\r\nimport { useDispatch, useSelector} from 'react-redux';\r\nimport { getAllInvoice, selectInvoice } from './slice';\r\nimport { themes } from '../../globalAssets/theme';\r\nimport { AntModal } from \"../../globalComponents/Modal\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n} from \"../../globalComponents/styles\";\r\nimport { IconButton } from '@material-ui/core';\r\nimport Services from '../../../services';\r\nimport { notificationAlert } from '../../utils/notificationAlert';\r\n\r\n\r\nexport const Invoice = (props) => {\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const {invoiceList, paginationProps} = useSelector(selectInvoice);\r\n  console.log(invoiceList, \"invoiceLis\");\r\n  \r\n  const [itemShipmentProps, setItemShipmentProps] = useState({\r\n    visible: false,\r\n    items: [],\r\n    invoiceId: null,\r\n    shipmentStatus: '',\r\n    loading: false\r\n  });\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n  const dispatcher = useDispatch();\r\n\r\n\r\n\r\n  useEffect(() => {\r\n    (async () => {\r\n      await  dispatcher(getAllInvoice({page: 0, size: 10}));\r\n    })()\r\n  }, [])\r\n\r\nconst itemShipmentColumn = [\r\n  {\r\n    title: 'Item Name',\r\n    dataIndex: 'itemName',\r\n    key: 'itemName',\r\n  },\r\n  {\r\n    title: 'Quantity',\r\n    dataIndex: 'quantity',\r\n    key: 'quantity',\r\n  },\r\n]\r\n\r\n  \r\nconst columns = [\r\n  {\r\n    title: 'Invoice Number',\r\n    dataIndex: 'invoice_number',\r\n    key: 'invoice_number',\r\n  },\r\n  {\r\n    title: 'Customer',\r\n    dataIndex: 'customer',\r\n    key: 'customer',\r\n    render: (data) => `${data.firstName} ${data.lastName}`\r\n    \r\n  },\r\n  {\r\n    title: 'Date',\r\n    dataIndex: 'invoice_date',\r\n    key: 'invoice_date',\r\n  },\r\n  {\r\n    title: 'Amount',\r\n    dataIndex: 'total_amount',\r\n    key: 'total_amount',\r\n    render: (data) => <Statistic valueStyle={{fontSize: '1.1vw', color: themes.boldText}}  value={data} prefix='₦' />\r\n  },\r\n  {\r\n    title: 'Outstanding Balance',\r\n    dataIndex: 'amount_due',\r\n    key: 'amount_due',\r\n    render: (data, allData) => <Statistic valueStyle={{fontSize: '1.1vw', color: themes.boldText}}  value={data} prefix='₦' />\r\n  },\r\n  {\r\n    title: 'Payment Status',\r\n    dataIndex: 'status',\r\n    key: 'status',\r\n  },\r\n  {\r\n    title: 'Shipment Status',\r\n    dataIndex: 'shipmentStatus',\r\n    key: 'shipmentStatus',\r\n  },\r\n\r\n  {\r\n    title: 'Action',\r\n    dataIndex: 'action',\r\n    key: 'action',\r\n    width: '5%',\r\n    render: (data, allData) => {\r\n      const content = (\r\n        <Space direction='vertical' size='small'>\r\n          <p style={{cursor: 'pointer'}} onClick={() =>  history.push(`${url}/${allData.id}`)}>View Details</p>\r\n          <p style={{cursor: 'pointer'}} onClick={() => {\r\n            setItemShipmentProps(prevState => ({...prevState, items: allData.items, invoiceId: allData.id, visible: true, shipmentStatus: allData.shipmentStatus}))\r\n          }}>Issue out items</p>\r\n          <p style={{color: 'red', cursor: 'pointer'}}>Delete</p>\r\n        </Space>\r\n      )\r\n      return (\r\n        <Popover content={content} trigger='click'>\r\n          <IconButton>\r\n            <FiMoreVertical />\r\n          </IconButton>\r\n           \r\n        </Popover>\r\n      )\r\n    },\r\n  },\r\n \r\n];\r\n\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(getAllInvoice({ page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        getAllInvoice({ page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n \r\n  const handleItemShipment = async () => {\r\n      try {\r\n        setItemShipmentProps(prevState => ({...prevState, loading: true}));\r\n\r\n        if(itemShipmentProps.shipmentStatus === 'ISSUED'){\r\n          notificationAlert('error', 'Action denied', 'Items was previously issued'); \r\n          setItemShipmentProps(prevState => ({...prevState, loading: false, visible: false}));\r\n\r\n          return;\r\n        }\r\n        const data = {\r\n          invoiceId: itemShipmentProps.invoiceId,\r\n          items: itemShipmentProps.items.map(item => ({id: item.id, quantity: item.quantity}))\r\n        };\r\n        const response = await Services.issueItem({data});\r\n        await  dispatcher(getAllInvoice({page: page, size: rowsPerPage}));\r\n       \r\n        notificationAlert('success', 'Item Issued', 'Item has been successfully issued');\r\n        setItemShipmentProps(prevState => ({...prevState, loading: false, visible: false}));\r\n      } catch (error) {\r\n        setItemShipmentProps(prevState => ({...prevState, loading: false}));\r\n        if(error.response){\r\n          notificationAlert('error', 'Failed', error.response.data.message ?? 'Please try again later');\r\n        }\r\n      }\r\n     \r\n  }\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"Invoice\"\r\n          showtools\r\n          onCreate={() => history.push(`${url}/add-invoice`)}\r\n          createButtonText=\"Create Invoice\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            total={paginationProps.totalItems}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={invoiceList}\r\n            //onRow={handleTableRow}\r\n          />\r\n        </StyledCard>\r\n        <AntModal\r\n          visible={itemShipmentProps.visible}\r\n          title='Issue out Items'\r\n          okText='Confirm'\r\n          loading={itemShipmentProps.loading}\r\n          onOk={handleItemShipment}\r\n          onCancel={() => setItemShipmentProps(prevState => ({...prevState, visible: false}))}\r\n        >\r\n            <StyledBoldText>Are sure of issuing out the following Items?</StyledBoldText>\r\n            <Table\r\n              columns={itemShipmentColumn}\r\n              dataSource={itemShipmentProps.items}\r\n              pagination={false}\r\n            />\r\n        </AntModal>\r\n      </Route>\r\n      <Route path={`${path}/add-invoice`}>\r\n        <AddInvoice />\r\n      </Route>\r\n      <Route path={`${path}/:id`}>\r\n        <SingleInvoice/>\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport { Menu } from \"antd\";\r\nimport { StyledCard, StyledModal } from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledInputContainer,\r\n} from \"../../globalComponents/styles\";\r\nimport { Box, Grid } from \"@material-ui/core\";\r\nimport { Input, Select, Col, Row, Form } from \"antd\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport { FiTrash2 } from \"react-icons/fi\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { AntFormModal } from \"../../globalComponents/Modal\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst data = [\r\n  {\r\n    item: [\r\n      { name: \"Rice\", sku: 20 },\r\n      { name: \"Beans\", sku: 15 },\r\n    ],\r\n    description: \"\",\r\n    quantity: \"\",\r\n    price: \"\",\r\n    tax: [\r\n      { name: \"Freet(10%)\", sku: 20 },\r\n      { name: \"Freet(20%)\", sku: 15 },\r\n    ],\r\n    amount: \"\"\r\n  },\r\n];\r\n\r\nconst salesOrder = [\r\n  {\r\n    name: \"customer\",\r\n    label: \"Customer\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"accountToDeposit\",\r\n    label: \"Account to Deposit\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"paymentMethod\",\r\n    label: \"paymentMethod\",\r\n    isRequired: false,\r\n    type: \"select\",\r\n  },\r\n  {\r\n    name: \"notes\",\r\n    label: \"Notes\",\r\n    isRequired: false,\r\n    type: \"textarea\",\r\n  },\r\n];\r\n\r\nconst chargesFields = [\r\n    {\r\n      name: \"title\",\r\n      label: \"Title\",\r\n      isRequired: true,\r\n      type: \"text\",\r\n    },\r\n    {\r\n      name: \"amount\",\r\n      label: \"Amount\",\r\n      isRequired: true,\r\n      type: \"text\",\r\n    }\r\n  ];\r\n  \r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const AddReceipt = (props) => {\r\n  const [chargesForm] = Form.useForm();\r\n  const [itemsState, setItemsState] = useState(data);\r\n  const [activeRowIndex, setActiveRowIndex] = useState(null);\r\n  const [addChargesModal, setAddChargesModal] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const handleDeleteRow = () => {\r\n    const currentItemState = [...itemsState];\r\n    currentItemState.splice(activeRowIndex, 1);\r\n    setItemsState(currentItemState);\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: \"Invoice\",\r\n      dataIndex: \"invoice\",\r\n      key: \"invoice\",\r\n    },\r\n    {\r\n      title: \"Due Date\",\r\n      dataIndex: \"dueDate\",\r\n      key: \"dueDate\",\r\n    },\r\n    {\r\n      title: \"Invoice Amount\",\r\n      dataIndex: \"invoiceAmount\",\r\n      key: \"invoiceAmount\",\r\n    },\r\n    {\r\n      title: \"Amount Due\",\r\n      dataIndex: \"amountDue\",\r\n      key: \"amountDue\",\r\n    },\r\n    {\r\n        title: \"Payment\",\r\n        dataIndex: \"payment\",\r\n        key: \"payment\",\r\n        render: (data) => {\r\n          return (\r\n            <StyledInputContainer>\r\n              <Input\r\n                type=\"number\"\r\n                bordered={false}\r\n                /*  onChange={handleAdjustedBy} */\r\n                placeholder=\"\"\r\n              />\r\n            </StyledInputContainer>\r\n          );\r\n        },\r\n      },\r\n  ];\r\n\r\n  const handleTableRow = (data, index) => {\r\n    return {\r\n      onClick: (e) => {\r\n        setActiveRowIndex(index);\r\n      },\r\n    };\r\n  };\r\n\r\n  const AddAdjustableRow = () => {\r\n    const row = {\r\n      item: [\r\n        { name: \"Rice\", sku: 20 },\r\n        { name: \"Beans\", sku: 15 },\r\n      ],\r\n      description: \"\",\r\n      quantity: \"\",\r\n      price: \"\",\r\n      tax: [\r\n        { name: \"Freet(10%)\", sku: 20 },\r\n        { name: \"Freet(20%)\", sku: 15 },\r\n      ],\r\n    };\r\n\r\n    setItemsState((prevState) => [...prevState, row]);\r\n  };\r\n\r\n  const handleSelectChange = (selectName) => (values) => {};\r\n\r\n  const salesOrderList = [...salesOrder].map((item) => {\r\n    return <Col sm={12}>{getInput(item, handleSelectChange)}</Col>;\r\n  });\r\n\r\n  const chargesInput = [...chargesFields].map((item) => {\r\n      return getInput(item)\r\n  })\r\n  const onFinish = (values) => {};\r\n\r\n  return (\r\n    <>\r\n      <ToolBar title=\"New Reciept\" />\r\n      <StyledCard mt={2} py={3} px={4} display=\"flex\">\r\n        <Grid item xs={12}>\r\n          <Box px={3}>\r\n            <StyledBoldText variant=\"subtitle1\">Warehouse</StyledBoldText>\r\n          </Box>\r\n          <Box px={3} mt={2}>\r\n            <Form onFinish={onFinish} {...layout}>\r\n              <Row gutter={16}>{salesOrderList}</Row>\r\n            </Form>\r\n          </Box>\r\n        </Grid>\r\n      </StyledCard>\r\n      <StyledCard mt={2}>\r\n          <Box pl={4} py={3}>\r\n          <StyledBoldText variant='subtitle1'>All Unpaid Invoices </StyledBoldText> \r\n          </Box>\r\n\r\n        <TableWithPagination\r\n          dataSource={itemsState}\r\n          onRow={handleTableRow}\r\n          columns={columns}\r\n          hidePagination\r\n        />\r\n        <Box p={4} display=\"flex\" justifyContent=\"space-between\">\r\n          <PrimaryButton onClick={AddAdjustableRow} text=\"Add Row\" />\r\n          <TransaparentButton\r\n            onClick={() =>\r\n              setAddChargesModal((prevState) => ({\r\n                ...prevState,\r\n                isVisible: true,\r\n              }))\r\n            }\r\n            text=\"Add Charges\"\r\n          />\r\n          \r\n        </Box>\r\n      </StyledCard>\r\n      <AntFormModal\r\n        title=\"Add Charges\"\r\n        visible={addChargesModal.isVisible}\r\n        onCancel={() =>\r\n          setAddChargesModal((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        form={chargesForm}\r\n        loading={addChargesModal.loading}\r\n      >\r\n          { chargesInput }\r\n      </AntFormModal>\r\n    </>\r\n  );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/companyLogo2.38837c7b.jpeg\";","import { createSlice } from '@reduxjs/toolkit';\r\nimport Services from '../../../services';\r\n\r\n\r\nconst receiptSlice = createSlice({\r\n    name: 'receiptSlice',\r\n    initialState: {\r\n        allReceipts: [],\r\n        singleReceipt: {},\r\n        paginationProps: { page: 0, totalPages: 0, totalItems: 0 },\r\n    },\r\n\r\n    reducers: {\r\n        addAllReceipts: (state, {payload}) => {\r\n            state.allReceipts = payload;\r\n        },\r\n        addSingleReceipt: (state, {payload}) => {\r\n            state.singleReceipt = payload;\r\n        },\r\n        addPaginationProps: (state, { payload }) => {\r\n            state.paginationProps = payload;\r\n        },\r\n    }\r\n});\r\n\r\n\r\nexport const { addAllReceipts, addSingleReceipt, addPaginationProps } = receiptSlice.actions;\r\n\r\nexport const fetchAllReceipt = (payload) => (dispatcher) => {\r\n    return Services.getAllReceipt(payload).then(\r\n        response => {\r\n            console.log(response.data, 'allReceipt22')\r\n            const {currentPage: page, totalPages, totalItems, receipts} = response.data;\r\n            dispatcher(addAllReceipts(receipts));\r\n            dispatcher(addPaginationProps({page, totalPages, totalItems}));\r\n\r\n            return Promise.resolve(receipts);\r\n        },\r\n        error => {\r\n            if(error.response){\r\n                return Promise.reject(error.response.data);\r\n            }\r\n        }\r\n    )\r\n}\r\n\r\nexport const fetchSingleReceipt = payload => dispatcher => {\r\n    return Services.getSingleReceipt(payload).then(\r\n        response => {\r\n            console.log(response, 'singleReceipt')\r\n            dispatcher(addSingleReceipt(response.data));\r\n            return Promise.resolve(response.data);\r\n        },\r\n        error => {\r\n            if(error.response){\r\n                return Promise.reject(error.response.data);\r\n            }\r\n        }\r\n    )\r\n}\r\n\r\n//create Receipt\r\nexport const createReceipt = (payload) => (dispatcher) => {\r\n  return Services.createReceipt(payload)\r\n    .then((response) => {\r\n      console.log(response, \"createReceipt\");\r\n      return Promise.resolve(response);\r\n    })\r\n    .catch((error) => {\r\n      if (error.response) {\r\n        return Promise.reject(error.response.data);\r\n      }\r\n    });\r\n};\r\n\r\n\r\nexport const selectReceipts = state =>  state.receiptReducer;\r\n\r\nexport default receiptSlice.reducer;\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {\r\n  StyledCard,\r\n  StyledNormalText,\r\n} from \"../../globalComponents/styles\";\r\nimport {\r\n  StyledBoldText,\r\n} from \"../../globalComponents/styles\";\r\nimport { Box, Divider } from \"@material-ui/core\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport companyLogo from \"../../images/companyLogo2.jpeg\";\r\nimport { ToolBar, HistoryBar } from \"../Invoice/SingleInvoice\";\r\nimport { useParams } from \"react-router\";\r\nimport { useDispatch, useSelector} from 'react-redux';\r\nimport { fetchSingleReceipt, selectReceipts } from './slice';\r\nimport moment from 'moment';\r\nimport { Statistic } from 'antd';\r\n\r\nconst initialBillInfo = [\r\n  {\r\n    title: \"bill To\",\r\n    value: \"\",\r\n  },\r\n  {\r\n    title: \"Payment Date\",\r\n    value: \"\",\r\n  },\r\n  {\r\n    title: \"Payment Method\",\r\n    value: \"\",\r\n  },\r\n];\r\n\r\nexport const ReceiptDetail = (props) => {\r\n  const { singleReceipt } = useSelector(selectReceipts);\r\n  const [billInfo, setBillInfo] = useState(initialBillInfo)\r\n  const { id } = useParams();\r\n  const dispatcher = useDispatch()\r\n\r\n\r\n\r\n  useEffect(() => {\r\n    dispatcher(fetchSingleReceipt({id}))\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    const billInfo = [\r\n      {\r\n        title: \"bill To\",\r\n        value: singleReceipt.billTo,\r\n      },\r\n      {\r\n        title: \"Payment Date\",\r\n        value: moment(singleReceipt.created_at).format('Do MMM, YYYY'),\r\n      },\r\n      {\r\n        title: \"Payment Method\",\r\n        value: singleReceipt.paymentMethod,\r\n      },\r\n    ];\r\n    setBillInfo(billInfo);\r\n  }, [singleReceipt])\r\n\r\n    const billInfoList = billInfo.map((item, index) => {\r\n        return <SingleDetail data={item} key={index}/>\r\n    })\r\n\r\n  return (\r\n    <>\r\n      <ToolBar hidePaymentButton />\r\n      <HistoryBar />\r\n      <StyledCard pb={6} mt={3} px={4} py={2}>\r\n        <Box mb={6} display=\"flex\" alignItems=\"flex-end\">\r\n          <StyledImage src={companyLogo} alt=\"logo\" />\r\n          <StyledBoldText variant=\"h5\">First Marine</StyledBoldText>\r\n        </Box>\r\n        <StyledBoldText gutterBottom={true} variant=\"h4\">\r\n          Receipt\r\n        </StyledBoldText>\r\n        <Box display=\"flex\">\r\n          <StyledBoldText variant=\"subtitle2\">Receipt Number:</StyledBoldText>\r\n          <Box ml={3}>\r\n            <StyledBoldText variant=\"subtitle2\">{singleReceipt.receiptNumber}</StyledBoldText>\r\n          </Box>\r\n        </Box>\r\n        <StyledReciptBody>\r\n          <Box display=\"flex\">\r\n            <Box\r\n              px={6}\r\n              py={4}\r\n              flexBasis=\"50%\"\r\n              style={{ backgroundColor: \"#F3F6FC\" }}\r\n            >\r\n                {billInfoList}\r\n            </Box>\r\n            <Box\r\n              px={6}\r\n              py={4}\r\n              flexBasis=\"50%\"\r\n              style={{\r\n                backgroundColor: themes.primaryColor,\r\n                color: themes.white,\r\n              }}\r\n            >\r\n              <StyledBoldText\r\n                style={{ color: themes.white }}\r\n                gutterBottom={true}\r\n                align=\"center\"\r\n                variant=\"body1\"\r\n              >\r\n                Payment Amount\r\n              </StyledBoldText>\r\n\r\n              <Statistic valueStyle={{color: themes.white, fontSize: '3vw', fontWeight: 'bolder', textAlign: 'center'}} value={singleReceipt.paymentAmount} prefix=\"₦\"  precision={2}/>\r\n             {/*  <StyledBoldText\r\n                style={{ color: themes.white }}\r\n                align=\"center\"\r\n                variant=\"h3\"\r\n              >\r\n                ${singleReceipt.paymentAmount}\r\n              </StyledBoldText> */}\r\n            </Box>\r\n          </Box>\r\n          <Box mt={6} py={4} px={6} style={{ backgroundColor: \"#F3F6FC\" }}>\r\n              <Box display='flex' justifyContent='space-between'>\r\n                  <SingleDetail data={{title: 'invoice number', value: singleReceipt.invoiceNumber}}/>\r\n                  <SingleDetail isamount data={{title: 'Invoice Amount', value: singleReceipt.invoiceAmount}}/>\r\n              </Box>\r\n              {/* <Box px={6} mt={4} mb={2}>\r\n                  <Divider/>\r\n              </Box>\r\n              <Box display='flex' justifyContent='space-between'>\r\n                  <SingleDetail data={{title: 'invoice number', value: 'INV/0000001'}}/>\r\n                  <SingleDetail data={{title: 'Invoice Amount', value: 'N 300,0001'}}/>\r\n              </Box> */}\r\n          </Box>\r\n        </StyledReciptBody>\r\n      </StyledCard>\r\n    </>\r\n  );\r\n};\r\n\r\nconst SingleDetail = (props) => {\r\n  return (\r\n    <Box mt={2} display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\r\n      <StyledBoldText\r\n        style={{ textTransform: \"capitalize\" }}\r\n        variant=\"subtitle2\"\r\n      >\r\n        {props.data.title}:\r\n      </StyledBoldText>\r\n      <Box ml={4}>\r\n        {\r\n          props.isamount? \r\n          <Statistic value={props.data.value} prefix=\"₦\"  precision={2}/>\r\n          :\r\n        <StyledNormalText\r\n          style={{ textTransform: \"capitalize\" }}\r\n          variant=\"body2\"\r\n          align='left'\r\n        >\r\n          {props.data.value}\r\n        </StyledNormalText>\r\n}\r\n      </Box>\r\n    </Box>\r\n  );\r\n};\r\nconst StyledReciptBody = styled(Box)`\r\n  width: 90%;\r\n  margin: 0 auto;\r\n  margin-top: 24px;\r\n`;\r\nconst StyledImage = styled.img`\r\n  width: 10%;\r\n`;\r\n","import React, {useEffect, useState} from 'react';\r\nimport { TableWithPagination } from '../../globalComponents/TableWithPagination';\r\nimport { ToolBar } from '../../globalComponents/ToolBar';\r\nimport { Space, Popover, Form, Select } from \"antd\";\r\nimport { StyledCard, StyledModal } from \"../../globalComponents/styles\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { selectCustomer } from \"../../Clients/Customers/slice\";\r\nimport {  selectInvoice } from \"../../Sales/Invoice/slice\";\r\n\r\n\r\nimport { useRouteMatch, Route, Switch, useHistory } from 'react-router';\r\nimport { FiMoreVertical } from 'react-icons/fi';\r\nimport { AddReceipt } from './AddReceipt'\r\nimport { ReceiptDetail } from './SingleReceipt';\r\nimport { fetchAllReceipt, selectReceipts } from './slice';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nconst { Option } = Select;\r\n\r\nconst data = [\r\n  {\r\n    bill_to: \"\",\r\n    branch_id: \"\",\r\n    invoice_amount: 0,\r\n    invoice_date: \"2022-03-17T03:20:00.610Z\",\r\n    invoice_number: \"\",\r\n    notes: \"\",\r\n    org_key: \"\",\r\n    payment_amount: 0,\r\n    payment_method: \"\",\r\n  },\r\n];\r\n\r\n\r\nconst addReceiptInput = [\r\n  {\r\n    name: \"bill_to\",\r\n    label: \"Customer Name\",\r\n    isRequired: true,\r\n    type: \"search\",\r\n    // defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"invoice_number\",\r\n    label: \"Invoice Number\",\r\n    isRequired: false,\r\n    type: \"search\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"invoice_amount\",\r\n    label: \"Invoice Amount\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"invoice_date\",\r\n    label: \"Invoice Date\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"payment_amount\",\r\n    label: \"Payment Amount\",\r\n    isRequired: false,\r\n    type: \"number\",\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"payment_method\",\r\n    label: \"Payment Method\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n  },\r\n  \r\n  {\r\n    name: \"receipt_number\",\r\n    // label: \"Receipt Number\",\r\n    // isRequired: false,\r\n    // type: \"number\",\r\n    // defaultValue: \"\",\r\n  },\r\n  // {\r\n  //   name: \"wareHouseContactEmail\",\r\n  //   label: \"Warehouse Email\",\r\n  //   isRequired: false,\r\n  //   type: \"text\",\r\n  //   defaultValue: \"\",\r\n  // },\r\n  // {\r\n  //   name: \"headOfWareHouseId\",\r\n  //   label: \"Head of Warehouse Name\",\r\n  //   isRequired: false,\r\n  //   type: \"search\",\r\n  // },\r\n];\r\n\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const Receipt = (props) => {\r\n  const [page, setPage] = useState(2);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [itemsState, setItemsState] = useState(data);\r\n\r\n  const [addGroupModalProps, setAddGroupModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n  const { url, path } = useRouteMatch();\r\n  const history = useHistory();\r\n  const dispatch = useDispatch();\r\n  const { paginationProps, allReceipts } = useSelector(selectReceipts);\r\n  const { invoiceList } = useSelector(selectInvoice);\r\n  const { customerList } = useSelector(selectCustomer);\r\n  console.log({ allReceipts, customerList, invoiceList }, \"allreceipcts\");\r\n\r\n  useEffect(() => {\r\n    dispatch(fetchAllReceipt({ page: 0, size: 10 }));\r\n  }, []);\r\n\r\n  // useEffect(() => {\r\n  //   const newItemsState = [...itemsState].map((itm) => {\r\n  //     console.log(itm, 'hello2')\r\n\r\n  //     // itm.item = invoiceList;\r\n  //     // return itm;\r\n  //   });\r\n  //   console.log(newItemsState);\r\n  //   // setItemsState(newItemsState);\r\n  // }, [invoiceList]);\r\n\r\n  const columns = [\r\n    {\r\n      title: \"Reciept Number\",\r\n      dataIndex: \"receiptNumber\",\r\n      key: \"receiptNumber\",\r\n    },\r\n    {\r\n      title: \"Customer\",\r\n      dataIndex: \"customer\",\r\n      key: \"customer\",\r\n    },\r\n    {\r\n      title: \"Date\",\r\n      dataIndex: \"invoiceDate\",\r\n      key: \"invoiceDate\",\r\n      render: (data) => moment(data).format(\"Do, MMM YYYY\"),\r\n    },\r\n\r\n    {\r\n      title: \"Invoice Number\",\r\n      dataIndex: \"invoiceNumber\",\r\n      key: \"invoiceNumber\",\r\n    },\r\n    {\r\n      title: \"Payment Method\",\r\n      dataIndex: \"paymentMethod\",\r\n      key: \"paymentMethod\",\r\n    },\r\n    {\r\n      title: \"Amount Paid\",\r\n      dataIndex: \"paymentAmount\",\r\n      key: \"paymentAmount\",\r\n    },\r\n    {\r\n      title: \"Total Amount\",\r\n      dataIndex: \"invoiceAmount\",\r\n      key: \"invoiceAmount\",\r\n    },\r\n    /* {\r\n      title: 'Balance',\r\n      dataIndex: 'balance',\r\n      key: 'balance',\r\n      render: (data, allData) => {\r\n        return (<p>{parseInt(allData.invoiceAmount) - parseInt(allData.paymentAmount)}</p>)\r\n      }\r\n    }, */\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p\r\n              style={{ cursor: \"pointer\" }}\r\n              onClick={() => history.push(`${url}/${allData.id}`)}\r\n            >\r\n              View Details\r\n            </p>\r\n            <p style={{ color: \"red\", cursor: \"pointer\" }}>Delete</p>\r\n          </Space>\r\n        );\r\n        return (\r\n          <Popover content={content} trigger=\"click\">\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    setPage(newPage);\r\n    dispatch(fetchAllReceipt({ page: newPage, size: rowsPerPage }));\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    setRowsPerPage(parseInt(event.target.value, 10));\r\n    setPage(0);\r\n    dispatch(\r\n      fetchAllReceipt({ page: 0, size: parseInt(event.target.value, 10) })\r\n    );\r\n  };\r\n\r\n  //handleItemSelect\r\n    const handleItemSelect = (invoiceId) => {\r\n    const currentItemState = [...itemsState];\r\n    const selectedItemObj = currentItemState;\r\n    const selecteditem = selectedItemObj.invoiceList.find(\r\n      (itm) => itm.id === invoiceId\r\n    );\r\n    selectedItemObj.invoiceId = selecteditem.id;\r\n    selectedItemObj.bill_to = selecteditem.bill_to;\r\n    selectedItemObj.invoice_number = selecteditem.invoice_number;\r\n    selectedItemObj.invoice_amount = selecteditem.amount_due;\r\n    selectedItemObj.invoice_date = selecteditem.invoice_date;\r\n    selectedItemObj.orgId = selecteditem.orgId;\r\n\r\n    // replaceItem(currentItemState, selectedItemObj);\r\n  };\r\n\r\n  // const receiptInputs34 = addReceiptInput.map((item) =>\r\n  //   // getInput(item, handleSelectChange)\r\n  //   console.log(item.name === \"invoice_number\")\r\n  // );\r\n\r\n  const customerOptionList = invoiceList.map((item, index) => {\r\n    return (\r\n      <Option value={item.id} key={index}>\r\n        {`${item.bill_to}`}\r\n      </Option>\r\n    );\r\n  });\r\n  \r\n\r\n  const receiptInputs = addReceiptInput.map(\r\n    (item) =>\r\n      getInput(item, handleSelectChange, customerOptionList, handleItemSelect)\r\n    // console.log(item)\r\n  );\r\n\r\n  return (\r\n    <Switch>\r\n      <Route exact path={path}>\r\n        <ToolBar\r\n          title=\"Receipt\"\r\n          showtools\r\n          // onCreate={() => history.push(`${url}/add-receipt`)}\r\n          // createButtonText=\"Create Receipt\"\r\n          onCreate={() =>\r\n            setAddGroupModalProps((prevState) => ({\r\n              ...prevState,\r\n              isVisible: true,\r\n            }))\r\n          }\r\n          createButtonText=\"Create Receipt\"\r\n        />\r\n        <StyledCard mt={2}>\r\n          <TableWithPagination\r\n            rowsPerPage={rowsPerPage}\r\n            page={page}\r\n            total={paginationProps.totalItems}\r\n            handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n            handleChangePage={handleChangePage}\r\n            columns={columns}\r\n            dataSource={allReceipts}\r\n          />\r\n        </StyledCard>\r\n        <CreateReceiptModal\r\n          visible={addGroupModalProps.isVisible}\r\n          onCancel={() =>\r\n            setAddGroupModalProps((prevState) => ({\r\n              ...prevState,\r\n              isVisible: false,\r\n            }))\r\n          }\r\n          //  onFinish={onFinish}\r\n          loading={addGroupModalProps.loading}\r\n          receiptInputs={receiptInputs}\r\n        />\r\n        ;\r\n      </Route>\r\n      {/* <Route path={`${path}/add-receipt`}>\r\n        <AddReceipt />\r\n      </Route> */}\r\n      <Route path={`${path}/:id`}>\r\n        <ReceiptDetail />\r\n      </Route>\r\n    </Switch>\r\n  );\r\n};\r\n\r\nconst CreateReceiptModal = (props) => {\r\n  const [form] = Form.useForm();\r\n\r\n  const onOk = () => {\r\n    form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\" New Receipt\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form form={form} {...layout} onFinish={props.onFinish}>\r\n        {props.receiptInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};","import React from \"react\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport styled from \"styled-components\";\r\nimport { StyledNormalText, StyledCard } from \"../globalComponents/styles\";\r\nimport { Statistic } from \"antd\";\r\nimport { themes } from \"../globalAssets/theme\";\r\nimport { selectItemGroups } from \"../Inventory/ItemGroups/slice\";\r\nimport { selectItems } from \"../Inventory/Items/slice\";\r\nimport { selectWarehouse } from \"../Inventory/Warehouse/slice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst stat = [\r\n  /*  { name: \"Total Items\", count: 2000 }, */\r\n  /*  { name: \"Total Active Items\", count: 1900 },\r\n  { name: \"Total Inactive Items\", count: 100 }, */\r\n  /*  { name: \"Total Item Group\", count: 2000 }, */\r\n  /*   { name: \"Total Warehouse\", count: 2000 }, */\r\n  /*  { name: \"Total Warehouse\", count: 2000 }, */\r\n];\r\nexport function Dashboard(props) {\r\n  const { paginationProps: totalItemGroup, itemGroupList } = useSelector(selectItemGroups);\r\n  const {itemList} = useSelector(selectItems);\r\n  const { warehouseList } = useSelector(selectWarehouse);\r\n\r\n\r\n  return (\r\n    <>\r\n      <StyledStatContainer>\r\n        <SingleStat count={itemList.length} name=\"Total Item\" />\r\n        <SingleStat count={totalItemGroup.totalItemGroup} name=\"Total Item Group\" />\r\n        <SingleStat count={warehouseList.length} name=\"Total Warehouse\" />\r\n      </StyledStatContainer>\r\n    </>\r\n  );\r\n}\r\n\r\nconst SingleStat = (props) => {\r\n  return (\r\n    <StyledStatCard>\r\n      <Statistic\r\n        valueStyle={{\r\n          color: themes.primaryColor,\r\n          fontWeight: \"bold\",\r\n          fontSize: \"2.5vw\",\r\n        }}\r\n        value={props.count}\r\n      />\r\n      <StyledNormalText variant=\"body2\">{props.name}</StyledNormalText>\r\n    </StyledStatCard>\r\n  );\r\n};\r\n\r\nconst StyledStatContainer = styled(Box)`\r\n  display: flex;\r\n  justify-content: flex-start;\r\n  align-items: center;\r\n  flex-wrap: wrap;\r\n`;\r\n\r\nconst StyledStatCard = styled(StyledCard)`\r\n  flex-basis: 23%;\r\n  display: grid;\r\n  place-items: center;\r\n  padding: 20px;\r\n  margin-right: 2%;\r\n  margin-bottom: 15px;\r\n`;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { TableWithPagination } from \"../../globalComponents/TableWithPagination\";\r\nimport { ToolBar } from \"../../globalComponents/ToolBar\";\r\nimport {\r\n  StyledBoldText,\r\n  StyledCard,\r\n  StyledModal,\r\n} from \"../../globalComponents/styles\";\r\nimport { useRouteMatch, Route, Switch, useHistory } from \"react-router\";\r\nimport { FiMoreVertical } from \"react-icons/fi\";\r\nimport { AntFormModal } from \"../../globalComponents/Modal\";\r\nimport { Box, Paper } from \"@material-ui/core\";\r\nimport { getInput } from \"../../Inventory/Items/AddItem\";\r\nimport { Form, Space, Popover, Select, notification } from \"antd\";\r\nimport { Divider } from \"@material-ui/core\";\r\nimport {\r\n  PrimaryButton,\r\n  TransaparentButton,\r\n} from \"../../globalComponents/Buttons\";\r\nimport Services from \"../../../services\";\r\nimport { Feedback } from \"../../globalComponents/Feedback\";\r\nimport { DeleteModal } from \"../../globalComponents/deleteModal\";\r\nimport { createVendor, getAllVendor, selectVendor } from \"./slice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { selectDashboard } from \"../../Dashboard/slice\";\r\nimport { themes } from \"../../globalAssets/theme\";\r\nimport { notificationAlert } from \"../../utils/notificationAlert\";\r\n\r\nconst { Option } = Select;\r\n\r\nexport const addCustomerInput = [\r\n  {\r\n    name: \"first_name\",\r\n    label: \"First Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    id: 'firstName',\r\n    defaultValue: \"\",\r\n  },\r\n  {\r\n    name: \"last_name\",\r\n    label: \"Last Name\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id: 'lastName'\r\n  },\r\n  {\r\n    name: \"other_name\",\r\n    label: \"Other Name\",\r\n    isRequired: false,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id: 'otherName'\r\n  },\r\n  {\r\n    name: \"email\",\r\n    label: \"Email\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id: 'email'\r\n  },\r\n  {\r\n    name: \"phone_number\",\r\n    label: \"Phone Number\",\r\n    isRequired: true,\r\n    type: \"phone\",\r\n    defaultValue: \"\",\r\n    id: 'phoneNumber'\r\n  },\r\n  {\r\n    name: \"address\",\r\n    label: \"Address\",\r\n    isRequired: true,\r\n    type: \"text\",\r\n    defaultValue: \"\",\r\n    id :'address',\r\n  }\r\n];\r\n\r\n\r\n\r\nconst layout = {\r\n  labelCol: { span: 24 },\r\n  wrapperCol: { span: 24 },\r\n};\r\n\r\nexport const Vendor = (props) => {\r\n  const [editForm] = Form.useForm();\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(10);\r\n  const { vendorList, paginationProps } = useSelector(selectVendor);\r\n  const { usersByOrg, userProfile } = useSelector(selectDashboard);\r\n  const [selectValues, setSelectValues] = useState({});\r\n  const [addGroupModalProps, setAddGroupModalProps] = useState({\r\n    isVisible: false,\r\n    loading: false,\r\n  });\r\n\r\n  const [feedbackProps, setFeedbackProps] = useState({\r\n    open: false,\r\n    type: \"\",\r\n    message: \"\",\r\n  });\r\n\r\n  const [editModalProps, setEditModalProps] = useState({\r\n    isVisible: false,\r\n    selectedItemInput: [],\r\n    loading: false,\r\n    initialValues: {},\r\n  });\r\n\r\n\r\n  console.log({vendorList});\r\n  \r\n /*  const [deleteModalProps, setDeleteModalProps] = useState({\r\n    visible: false,\r\n    name: \"\",\r\n    id: null,\r\n    loading: false,\r\n  });\r\n \r\n\r\n */\r\n  const dispatcher = useDispatch();\r\n\r\n  useEffect(() => {\r\n    editForm.resetFields();\r\n    const formattedInitialValues = Object.entries(editModalProps.initialValues).map(([key, value]) => {\r\n      if(key === 'firstName') {\r\n        key = 'first_name'\r\n        return [key, value];\r\n      }\r\n      if(key === 'lastName'){\r\n        key = 'last_name';\r\n        return [key, value];\r\n      }\r\n      if(key === 'phoneNumber'){\r\n        key = 'phone_number';\r\n        return [key, value];\r\n      }\r\n\r\n      return [key, value]\r\n    });\r\n\r\n    editForm.setFieldsValue(Object.fromEntries(formattedInitialValues));\r\n  }, [editModalProps.isVisible]);\r\n\r\n  const handleSelectChange = (selectName) => (value) => {\r\n    const prevSelectValues = { ...selectValues };\r\n    prevSelectValues[selectName] = value;\r\n    setSelectValues(prevSelectValues);\r\n  };\r\n\r\n  const userList = [...usersByOrg].map((user, index) => {\r\n    return (\r\n      <Option key={index} value={user.id}>\r\n        {user.fullName !== \" \" ? user.fullName : \"Adefisayo Adeniji\"}\r\n      </Option>\r\n    );\r\n  });\r\n\r\n  const searchObject = {\r\n    onSearch: (val) => {},\r\n  };\r\n\r\n  const columns = [\r\n    {\r\n      title: \"ID\",\r\n      dataIndex: \"id\",\r\n      key: \"id\",\r\n    },\r\n    {\r\n      title: \"Name\",\r\n      dataIndex: \"name\",\r\n      key: \"name\",\r\n      render: (data, allData) => {\r\n        return `${allData.firstName} ${allData.lastName}`\r\n      }\r\n    },\r\n    {\r\n      title: \"Email\",\r\n      dataIndex: \"email\",\r\n      key: \"email\",\r\n    },\r\n    {\r\n      title: \"Phone Number\",\r\n      dataIndex: \"phoneNumber\",\r\n      key: \"phoneNumber\",\r\n    },\r\n    {\r\n      title: \"Address\",\r\n      dataIndex: \"address\",\r\n      key: \"address\",\r\n    },\r\n\r\n    {\r\n      title: \"Action\",\r\n      dataIndex: \"action\",\r\n      key: \"action\",\r\n      width: \"5%\",\r\n      render: (data, allData) => {\r\n        const content = (\r\n          <Space direction=\"vertical\" size=\"small\">\r\n            <p\r\n               onClick={() => {\r\n                const newData = addCustomerInput.map((item) => {\r\n                  item.defaultValue = allData[item.id];\r\n                  return getInput(\r\n                    item,\r\n                  );\r\n                });\r\n                setEditModalProps((prevState) => ({\r\n                  ...prevState,\r\n                  selectedItemInput: newData,\r\n                  isVisible: true,\r\n                  initialValues: allData,\r\n                }));\r\n              }}\r\n              style={{ cursor: \"pointer\" }}\r\n            >\r\n              Edit\r\n            </p>\r\n            <p\r\n              \r\n              style={{ color: \"red\", cursor: \"pointer\" }}\r\n            >\r\n              Delete\r\n            </p>\r\n          </Space>\r\n        );\r\n\r\n  \r\n        return (\r\n          <Popover\r\n            content={content}\r\n            trigger=\"click\"\r\n          >\r\n            <FiMoreVertical />\r\n          </Popover>\r\n        );\r\n      },\r\n    },\r\n  ];\r\n\r\n  const handleChangePage = (event, newPage) => {\r\n    (async () => {\r\n      setPage(newPage);\r\n      await dispatcher(getAllVendor({ page: newPage, size: rowsPerPage }));\r\n    })();\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event) => {\r\n    (async () => {\r\n      setRowsPerPage(parseInt(event.target.value, 10));\r\n      setPage(0);\r\n      await dispatcher(\r\n        getAllVendor({ page: 0, size: parseInt(event.target.value, 10) })\r\n      );\r\n    })();\r\n  };\r\n\r\n  const customerInputs = addCustomerInput.map((item) =>\r\n    getInput(item)\r\n  );\r\n\r\n  const onFinish = async (values) => {\r\n    const data = {\r\n      /* \"other_name\": \"kdfwlfjwo\", */\r\n      \"vendor_image\": \"lkwfowefpowefkwpeofk\"\r\n    }\r\n    try {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      values.headOfWareHouseId = selectValues.headOfWareHouseId;\r\n      values.orgId = userProfile.orgId;\r\n      await dispatcher(createVendor({ data: {...data, ...values} }));\r\n      await dispatcher(getAllVendor({page, size: rowsPerPage}));\r\n      setAddGroupModalProps((prevState) => ({\r\n        ...prevState,\r\n        isVisible: false,\r\n        loading: false,\r\n      }));\r\n      setFeedbackProps({\r\n        type: \"success\",\r\n        open: true,\r\n        message: \"customer has been added\",\r\n      });\r\n    } catch (error) {\r\n      setAddGroupModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      setFeedbackProps({\r\n        type: \"error\",\r\n        open: true,\r\n        message: \"An error occurred, please try again later\",\r\n      });\r\n    }\r\n  };\r\n\r\n  const handleFeedbackClose = (event, reason) => {\r\n    if (reason === \"clickaway\") {\r\n      return;\r\n    }\r\n    setFeedbackProps((prevState) => ({ ...prevState, open: false }));\r\n  };\r\n\r\n\r\n\r\n const onEditFinish = async (values) => {\r\n   console.log(values);\r\n    try {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: true }));\r\n      await Services.editVendors({\r\n        data: values,\r\n        id: editModalProps.initialValues.id,\r\n      });\r\n      await dispatcher(getAllVendor({ page, size: rowsPerPage }));\r\n      setEditModalProps((prevState) => ({\r\n        ...prevState,\r\n        loading: false,\r\n        isVisible: false,\r\n      }));\r\n      notificationAlert(\r\n        \"success\",\r\n        \"Vendor updated\",\r\n        `${editModalProps.initialValues.name} has been updated`\r\n      );\r\n    } catch (error) {\r\n      setEditModalProps((prevState) => ({ ...prevState, loading: false }));\r\n      if (error.response) {\r\n        notificationAlert(\r\n          \"error\",\r\n          \"Error Occurred\",\r\n          error.response.data.message || \"Please try again later\"\r\n        );\r\n      } else {\r\n        notificationAlert(\"error\", \"Error Occurred\", \"Please try again later\");\r\n      }\r\n    }\r\n  }; \r\n\r\nconsole.log({paginationProps});\r\n\r\n  return (\r\n    <>\r\n      <ToolBar\r\n        title=\"All Vendor\"\r\n        showtools\r\n        onCreate={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: true,\r\n          }))\r\n        }\r\n        createButtonText=\"Add new Vendor\"\r\n      />\r\n      <StyledCard mt={2}>\r\n        <TableWithPagination\r\n          rowsPerPage={rowsPerPage}\r\n          page={page}\r\n          total={paginationProps.totalItems}\r\n          handleChangeRowsPerPage={handleChangeRowsPerPage}\r\n          handleChangePage={handleChangePage}\r\n          columns={columns}\r\n          dataSource={vendorList}\r\n        />\r\n      </StyledCard>\r\n      <CreateCustomerModal\r\n        visible={addGroupModalProps.isVisible}\r\n        onCancel={() =>\r\n          setAddGroupModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        onFinish={onFinish}\r\n        loading={addGroupModalProps.loading}\r\n        warehouseInputs={customerInputs}\r\n      />\r\n      <AntFormModal\r\n        title=\"Edit Vendor\"\r\n        visible={editModalProps.isVisible}\r\n        onCancel={() =>\r\n          setEditModalProps((prevState) => ({\r\n            ...prevState,\r\n            isVisible: false,\r\n          }))\r\n        }\r\n        form={editForm}\r\n        okText='Submit'\r\n        loading={editModalProps.loading}\r\n        onFinish={onEditFinish}\r\n      >\r\n        {editModalProps.selectedItemInput}\r\n      </AntFormModal>\r\n\r\n      <Feedback\r\n        open={feedbackProps.open}\r\n        message={feedbackProps.message}\r\n        type={feedbackProps.type}\r\n        onClose={handleFeedbackClose}\r\n      />\r\n      {/* <DeleteModal\r\n        open={deleteModalProps.visible}\r\n        loading={deleteModalProps.loading}\r\n        itemName={deleteModalProps.name}\r\n        onClose={() =>\r\n          setDeleteModalProps((prevState) => ({ ...prevState, visible: false }))\r\n        }\r\n        onDelete={handleWarehouseDelete}\r\n        title=\"Delete Warehouse\"\r\n      /> */}\r\n    </>\r\n  );\r\n};\r\n\r\nexport const CreateCustomerModal = (props) => {\r\n  const [form] = Form.useForm();\r\n\r\n  const onOk = () => {\r\n    form.submit();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\" New Vendor\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={props.onCancel}\r\n    >\r\n      <Form form={form} {...layout} onFinish={props.onFinish}>\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n\r\nconst EditWarehouseModal = (props) => {\r\n  const onOk = () => {\r\n    props.form.submit();\r\n  };\r\n\r\n  const cancelAndReset = () => {\r\n    props.onCancel();\r\n  };\r\n\r\n  return (\r\n    <StyledModal\r\n      title=\"Edit Warehouse\"\r\n      visible={props.visible}\r\n      okButtonProps={{\r\n        loading: props.loading,\r\n        htmlType: \"submit\",\r\n        style: {\r\n          backgroundColor: themes.primaryColor,\r\n          border: `1px solid ${themes.primaryColor}`,\r\n        },\r\n      }}\r\n      cancelButtonProps={{\r\n        type: \"danger\",\r\n      }}\r\n      onOk={onOk}\r\n      okText=\"Create\"\r\n      onCancel={cancelAndReset}\r\n    >\r\n      <Form\r\n        initialValues={props.initialValues}\r\n        form={props.form}\r\n        {...layout}\r\n        onFinish={props.onFinish}\r\n      >\r\n        {props.warehouseInputs}\r\n      </Form>\r\n    </StyledModal>\r\n  );\r\n};\r\n","import React from \"react\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport {\r\n  darkTheme,\r\n  lightTheme,\r\n  GlobalStyle,\r\n} from \"./Components/globalAssets/theme\";\r\nimport {\r\n  ThemeProvider as MuiThemeProvider,\r\n  makeStyles,\r\n  StylesProvider,\r\n} from \"@material-ui/core/styles\";\r\nimport { ThemeProvider } from \"styled-components\";\r\n/* import { useTheme } from '@material-ui/core/styles'; */\r\nimport { Container, Box, Button } from \"@material-ui/core\";\r\nimport { TopBar } from \"./Components/globalComponents/TopBar\";\r\nimport { SideBar } from \"./Components/globalComponents/SideBar\";\r\nimport { BsFillBellFill } from \"react-icons/bs\";\r\nimport { IoMdArrowDropdown } from \"react-icons/io\";\r\nimport { DropDown } from \"./Components/globalComponents/DropDown\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport { Switch, Route, useLocation } from \"react-router-dom\";\r\n\r\nimport { Menu, Select, Table, Avatar, Badge } from \"antd\";\r\nimport { UserOutlined } from \"@ant-design/icons\";\r\nimport { Items as InventoryItems } from \"./Components/Inventory/Items/index\";\r\nimport { ItemGroups as InventoryItemGroups } from \"./Components/Inventory/ItemGroups/index\";\r\nimport { Warehouse as InventoryWarehouse } from \"./Components/Inventory/Warehouse/index\";\r\nimport { InventoryAdjustment } from \"./Components/Inventory/Adjustment/index\";\r\nimport { TransferOrder as InventoryTransferOrders } from \"./Components/Inventory/TransferOrders/index\";\r\nimport { SalesOrders } from \"./Components/Sales/SalesOrders/index\";\r\nimport { loadProgressBar } from \"axios-progress-bar\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useEffect } from \"react\";\r\nimport { getAllWarehouse } from \"./Components/Inventory/Warehouse/slice\";\r\nimport {\r\n  fetchAllItemGroups,\r\n  fetchItemGroupsByOrg,\r\n} from \"./Components/Inventory/ItemGroups/slice\";\r\nimport {\r\n  getUserProfile,\r\n  getUsersByOrg,\r\n  selectDashboard,\r\n  getItemGroupNumber,\r\n} from \"./Components/Dashboard/slice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Invoice } from \"./Components/Sales/Invoice/index\";\r\nimport { Receipt } from \"./Components/Sales/Receipt/index\";\r\nimport { Customers } from \"./Components/Clients/Customers/index\";\r\nimport { fetchAllItems } from \"./Components/Inventory/Items/slice\";\r\nimport { getAllCustomer } from \"./Components/Clients/Customers/slice\";\r\nimport { Dashboard } from \"./Components/Dashboard/index\";\r\nimport Services, { mainDomain } from \"./services\";\r\nimport hostname from \"./domain\";\r\nimport { Vendor } from \"./Components/Clients/Vendors\";\r\nimport { getAllVendor } from \"./Components/Clients/Vendors/slice\";\r\n\r\nconst { Option } = Select;\r\nconst { SubMenu } = Menu;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n  root: {\r\n    display: \"flex\",\r\n    \"& > *\": {\r\n      margin: theme.spacing(1),\r\n    },\r\n  },\r\n  small: {\r\n    width: theme.spacing(3),\r\n    height: theme.spacing(3),\r\n    fontSize: \"1.2vw\",\r\n  },\r\n  large: {\r\n    width: theme.spacing(7),\r\n    height: theme.spacing(7),\r\n  },\r\n}));\r\n\r\nfunction App() {\r\n  loadProgressBar();\r\n  const [isLightMood, setMood] = React.useState(true);\r\n  const classes = useStyles();\r\n  const [open, setOpen] = React.useState(false);\r\n  const anchorRef = React.useRef(null);\r\n  const dispatcher = useDispatch();\r\n  const { userProfile } = useSelector(selectDashboard);\r\n  const location = useLocation();\r\n\r\n  useEffect(() => {\r\n    const params = new URLSearchParams(location.search);\r\n    const token = params.get(\"token\");\r\n    if (token) {\r\n      localStorage.invToken = token;\r\n    }\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    (async () => {\r\n      try{\r\n        if (\r\n          localStorage.invToken !== undefined &&\r\n          localStorage.invToken !== null\r\n        ) {\r\n          dispatcher(getAllWarehouse({}));\r\n          dispatcher(fetchAllItemGroups({}));\r\n          dispatcher(getUserProfile({}));\r\n          dispatcher(fetchAllItems({ page: 0, size: 10 }));\r\n          dispatcher(getAllCustomer({ page: 0, size: 10 }));\r\n          dispatcher(getAllVendor({ page: 0, size: 10 }));\r\n         // dispatcher(getItemGroupNumber());\r\n        }\r\n      }catch(error){\r\n          console.log(error.statusCode);\r\n      }\r\n    \r\n    })();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (Object.entries(userProfile).length > 0) {\r\n      dispatcher(\r\n        fetchItemGroupsByOrg({\r\n          orgId: userProfile.organisation.orgId,\r\n          page: 0,\r\n          size: 10,\r\n        })\r\n      );\r\n    }\r\n  }, [userProfile]);\r\n\r\n  const handleToggle = () => {\r\n    setOpen((prevOpen) => !prevOpen);\r\n  };\r\n\r\n  const switchURL = (URL) => {\r\n    return mainDomain.split(\"api\").length > 2\r\n      ? URL.replace(/dev/, \"apps\")\r\n      : URL.replace(/apps/, \"dev\");\r\n  };\r\n\r\n  const handleLogout = async () => {\r\n    try {\r\n      const response = await Services.logout();\r\n      console.log(response);\r\n      localStorage.removeItem(\"invToken\");\r\n      window.location.assign(switchURL(\"http://apps.ezoneerp.com/login\"));\r\n    } catch (error) {}\r\n  };\r\n\r\n  const handleClose = (event, itemName) => {\r\n    if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n      if (itemName === \"Logout\") {\r\n        /* localStorage.removeItem('invToken');\r\n        window.location.assign(\"http://apps.ezoneerp.com/login\"); */\r\n        handleLogout();\r\n      } else if (itemName === \"My Account\") {\r\n        window.location.assign(\r\n          switchURL(\"http://apps.ezoneerp.com/user-profile\")\r\n        );\r\n      } else if (itemName === \"Subscriptions\") {\r\n        window.location.assign(\r\n          switchURL(\"http://apps.ezoneerp.com/subscriptions\")\r\n        );\r\n      } else if (itemName === \"Help\") {\r\n        window.location.assign(switchURL(\"http://apps.ezoneerp.com/help\"));\r\n      }\r\n      console.log(itemName);\r\n      return;\r\n    }\r\n\r\n    setOpen(false);\r\n  };\r\n\r\n  function handleListKeyDown(event) {\r\n    if (event.key === \"Tab\") {\r\n      event.preventDefault();\r\n      setOpen(false);\r\n    }\r\n  }\r\n\r\n  // return focus to the button when we transitioned from !open -> open\r\n  const prevOpen = React.useRef(open);\r\n  React.useEffect(() => {\r\n    if (prevOpen.current === true && open === false) {\r\n      anchorRef.current.focus();\r\n    }\r\n\r\n    prevOpen.current = open;\r\n  }, [open]);\r\n\r\n  return (\r\n    <StylesProvider injectFirst>\r\n      <MuiThemeProvider theme={isLightMood ? lightTheme : darkTheme}>\r\n        <ThemeProvider theme={isLightMood ? lightTheme : darkTheme}>\r\n          <GlobalStyle />\r\n          <CssBaseline />\r\n          <Container disableGutters={true} maxWidth={false}>\r\n            <TopBar />\r\n            <SideBar />\r\n            <StyledContainer>\r\n              <TopBar hidden />\r\n              <StyledUserBar>\r\n                <StyledInnerUserBar1></StyledInnerUserBar1>\r\n                <StyledInnerUserBar>\r\n                  <Box></Box>\r\n                  <Box></Box>\r\n                </StyledInnerUserBar>\r\n                <StyledUserToolBar ref={anchorRef} px={2}>\r\n                  <Badge\r\n                    overflowCount={10}\r\n                    offset={[5, 0]}\r\n                    style={{ border: \"none\", boxShadow: \"none\" }}\r\n                    size=\"small\"\r\n                    count={9}\r\n                  >\r\n                    <BsFillBellFill\r\n                      style={{ fontSize: \"1.6vw\", color: \"#CCCCCC\" }}\r\n                    />\r\n                  </Badge>\r\n                  <Box\r\n                    style={{ color: \"#fff\" }}\r\n                    ml={4}\r\n                    display=\"flex\"\r\n                    alignItems=\"center\"\r\n                  >\r\n                    <Box mr={2}>\r\n                      <Avatar size=\"small\" icon={<UserOutlined />} />\r\n                    </Box>\r\n                    <Box>\r\n                      <Button\r\n                        endIcon={<IoMdArrowDropdown />}\r\n                        onClick={handleToggle}\r\n                        style={{ color: \"#fff\" }}\r\n                      >\r\n                        {userProfile.fullName === \" \"\r\n                          ? `${userProfile.firstName} ${userProfile.lastName}`\r\n                          : userProfile.fullName}\r\n                      </Button>\r\n                      <DropDown\r\n                        items={[\r\n                          \"My Account\",\r\n                          \"Subscriptions\",\r\n                          \"Help\",\r\n                          \"Logout\",\r\n                        ]}\r\n                        handleListKeyDown={handleListKeyDown}\r\n                        ref={anchorRef}\r\n                        open={open}\r\n                        handleClose={handleClose}\r\n                      />\r\n                    </Box>\r\n                  </Box>\r\n                </StyledUserToolBar>\r\n              </StyledUserBar>\r\n              <Box mx={2} my={2}>\r\n                <Switch>\r\n                  <Route exact path=\"/\">\r\n                    <Dashboard />\r\n                  </Route>\r\n                  <Route path=\"/items\">\r\n                    <InventoryItems />\r\n                  </Route>\r\n                  <Route path=\"/item-groups\">\r\n                    <InventoryItemGroups />\r\n                  </Route>\r\n                  <Route path=\"/warehouse\">\r\n                    <InventoryWarehouse />\r\n                  </Route>\r\n                  <Route path=\"/inventory-adjustment\">\r\n                    <InventoryAdjustment />\r\n                  </Route>\r\n                  <Route path=\"/transfer-orders\">\r\n                    <InventoryTransferOrders />\r\n                  </Route>\r\n                  <Route path=\"/sales-orders\">\r\n                    <SalesOrders />\r\n                  </Route>\r\n                  <Route path=\"/invoice\">\r\n                    <Invoice />\r\n                  </Route>\r\n                  <Route path=\"/receipts\">\r\n                    <Receipt />\r\n                  </Route>\r\n                  <Route path=\"/customers\">\r\n                    <Customers />\r\n                  </Route>\r\n                  <Route path=\"/vendors\">\r\n                    <Vendor/>\r\n                  </Route>\r\n                </Switch>\r\n              </Box>\r\n            </StyledContainer>\r\n          </Container>\r\n        </ThemeProvider>\r\n      </MuiThemeProvider>\r\n    </StylesProvider>\r\n  );\r\n}\r\n\r\nconst StyledContainer = styled(Box)`\r\n  width: 83%;\r\n  margin-left: 17%;\r\n`;\r\n\r\nconst StyledUserBar = styled(Box)`\r\n  background-color: ${(props) => props.theme.primaryColor};\r\n  width: 100%;\r\n  border-top-left-radius: 5vw;\r\n  border-bottom-right-radius: 5vw;\r\n  height: 10vh;\r\n  display: flex;\r\n  justify-content: flex-start;\r\n`;\r\n\r\nconst StyledInnerUserBar = styled(Box)`\r\n  width: 50%;\r\n  height: 100%;\r\n\r\n  display: flex;\r\n\r\n  & > div {\r\n    width: 50%;\r\n    transform: skewX(40deg);\r\n  }\r\n\r\n  & > div:first-child {\r\n    background-color: ${(props) => props.theme.primaryColor2};\r\n    opacity: 0.4;\r\n  }\r\n\r\n  & > div:nth-child(2) {\r\n    background-color: ${(props) => props.theme.primaryColor3};\r\n  }\r\n`;\r\nconst StyledInnerUserBar1 = styled(Box)`\r\n  width: 25%;\r\n  background-color: #200990;\r\n  display: relative;\r\n  z-index: -1;\r\n`;\r\n\r\nconst StyledUserToolBar = styled(Box)`\r\n  display: flex;\r\n  width: 25%;\r\n  align-items: center;\r\n`;\r\nexport default App;\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport itemGroupReducer from '../Components/Inventory/ItemGroups/slice';\r\nimport itemReducer from '../Components/Inventory/Items/slice';\r\nimport warehouseReducer from '../Components/Inventory/Warehouse/slice';\r\nimport dashboardReducer from '../Components/Dashboard/slice';\r\nimport invoiceReducer from '../Components/Sales/Invoice/slice';\r\nimport customerReducer from '../Components/Clients/Customers/slice';\r\nimport vendorReducer from '../Components/Clients/Vendors/slice';\r\nimport receiptReducer from '../Components/Sales/Receipt/slice';\r\nimport adjustmentsReducer from '../Components/Inventory/Adjustment/slice'\r\nimport transfarOrderReducer from \"../Components/Inventory/TransferOrders/slice\";\r\n\r\n\r\nexport const store = configureStore({\r\n  reducer: {\r\n    itemGroupReducer,\r\n    itemReducer,\r\n    warehouseReducer,\r\n    dashboardReducer,\r\n    invoiceReducer,\r\n    customerReducer,\r\n    vendorReducer,\r\n    receiptReducer,\r\n    adjustmentsReducer,\r\n    transfarOrderReducer,\r\n  },\r\n});\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.0/8 are considered localhost for IPv4.\r\n    window.location.hostname.match(\r\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n    )\r\n);\r\n\r\nexport function register(config) {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config);\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n          );\r\n        });\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then((registration) => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        if (installingWorker == null) {\r\n          return;\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n              console.log(\r\n                'New content is available and will be used when all ' +\r\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n              );\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration);\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration);\r\n              }\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch((error) => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl, {\r\n    headers: { 'Service-Worker': 'script' },\r\n  })\r\n    .then((response) => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type');\r\n      if (\r\n        response.status === 404 ||\r\n        (contentType != null && contentType.indexOf('javascript') === -1)\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then((registration) => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log(\r\n        'No internet connection found. App is running in offline mode.'\r\n      );\r\n    });\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready.then((registration) => {\r\n      registration.unregister();\r\n    });\r\n  }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport { store } from './app/store';\r\nimport { Provider } from 'react-redux';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport 'antd/dist/antd.css';\r\nimport { BrowserRouter as Router } from 'react-router-dom';\r\nimport 'axios-progress-bar/dist/nprogress.css'\r\n\r\nReactDOM.render(\r\n  <React.StrictMode>\r\n    <Provider store={store}>\r\n      <Router>\r\n        <App />\r\n      </Router>\r\n    </Provider>\r\n  </React.StrictMode>,\r\n  document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}

Zerion Mini Shell 1.0