{"version":3,"sources":["components/controls/button.js","components/controls/pageHeader.js","components/controls/actionButton.js","components/controls/popup.js","components/controls/notification.js","components/controls/confirmPopup.js","components/controls/pickMonth.js","components/controls/popUpNotification.js","components/controls/Controls.js","components/controls/input.js","components/controls/label.js","components/controls/inputFile.js","components/controls/textarea.js","components/controls/checkbox.js","components/controls/select.js","components/controls/checkbox2.js","components/controls/pickDate.js","components/controls/pickDateRange.js","components/controls/pickDateRangeCustom.js","components/controls/radio.js","components/useForm.js","config/const.js","account/SignIn.js","AppContext.js","components/adminDrawer.js","dashboard/dashboard.js","components/useTable.js","procurement/management.js","product/components/components.js","product/list/detail.js","product/management/deletion.js","product/management/update.js","product/management/archiveProduct.js","product/management/helper/promoprice.js","product/management/completion.js","marketing/bannerList.js","sales/offline.js","services/auth.service.js","sales/SummaryItem.js","sales/Summary.js","sales/SalesDetails.js","sales/online.js","product/management/unarchiveProduct.js","product/management/promoprice.js","marketing/management/deletePromo.js","marketing/management/updatePromo.js","marketing/management/updateVoucher.js","marketing/management/deleteVoucher.js","marketing/voucher.js","marketing/promotions.js","vouchers/helper/VouchersHelper.js","whatsapp/Whatsapp.js","sales/Wishlist.js","product/stock/StockHarian.js","sales/analytics/ProductRank.js","sales/analytics/SalesCharts.js","sales/analytics/HourlyCharts.js","sales/analytics/Analytics.js","teamtoko/TeamTokoDialog.js","teamtoko/TeamCard.js","teamtoko/TeamToko.js","teamtoko/Presensi.js","kpi/sales-analysis/SalesCharts.js","kpi/sales-analysis/SalesAnalysis.js","kpi/member-analysis/KPIMember.js","kpi/member-analysis/UserCharts.js","kpi/member-analysis/MemberAnalysis.js","kpi/insert/Insert.js","analytics/Staff.js","sales/InsertOffline.js","analytics/gajian/utils/hooks/useDateRangePicker.js","analytics/gajian/utils/helpers/getDifferenceBetweenDates.js","analytics/gajian/utils/api/getGajianStaff.js","analytics/gajian/utils/helpers/fillEveryPeriodWIthGajianData.js","analytics/gajian/utils/helpers/createPeriods.js","analytics/gajian/utils/hooks/useDataByPeriods.js","analytics/gajian/pages/staff/components/GajianTable.js","analytics/gajian/pages/staff/components/GajianSplitRange.js","analytics/gajian/pages/staff/components/GajianFullRange.js","analytics/gajian/pages/staff/GajianStaff.js","analytics/gajian/pages/toko/components/GajianKetua.js","analytics/gajian/pages/toko/components/GajianTable.js","analytics/gajian/pages/toko/components/GajianStaff.js","analytics/gajian/pages/toko/GajianToko.js","kpi/member/MemberCharts.js","kpi/member/StoreMember.js","sales/UploadOnlineSales.js","routes-management/RoutesManagement.js","product/oper-stok/pages/components/Dialog.js","product/oper-stok/pages/OperStok.js","product/oper-stok/pages/MovedList.js","analytics/gajian/pages/trainee/components/GajianTable.js","product/oper-stok/pages/DeadProducts.js","product/oper-stok/pages/OperStokBySKU.js","teampabrik/TeamTokoDialog.js","teampabrik/TeamToko.js","analytics/gajian/pages/pabrik/components/GajianPabrikTable.js","RoleRoutes.js","sales/insertonlinesales.js","vouchers/VouchersClaimed.js","vouchers/PointsAdded.js","teampabrik/Presensi.js","teampabrik/Absensi.js","teamtoko/Absensi.js","product/list/complete.js","product/list/incomplete.js","product/list/archived.js","product/insert/createSKU.js","procurement/transaction.js","finance/paymentTesting.js","marketing/uploadBanner.js","analytics/gajian/pages/cost/GajianCost.js","analytics/gajian/pages/trainee/GajianTrainee.js","analytics/gajian/pages/pabrik/GajianPabrik.js","kpi/sales/Sales.js","email/email.js","help/help.js","account/account.js","App.js","reportWebVitals.js","index.js"],"names":["useStyles","makeStyles","theme","root","margin","spacing","label","textTransform","Button","text","size","icon","color","variant","onClick","type","other","classes","backgroundColor","marginBottom","pageHeader","display","pageIcon","padding","pageTitle","paddingLeft","opacity","marginTop","minWidth","secondary","palette","light","main","primary","dialogWrapper","position","width","dialogTitle","paddingRight","top","dialog","textAlign","dialogContent","dialogAction","justifyContent","titleIcon","cursor","fontSize","datesInMonths","0","1","2","3","4","5","6","7","8","9","10","11","MonthPicker","error","setDates","dateRanges","chartPeriod","useState","Date","getFullYear","getMonth","startDate","setStartDate","handleDates","date","tmpDateStart","tmpDateEnd","getTime","currentMonth","setDate","getDate","useEffect","style","zIndex","selected","onChange","dateFormat","showMonthYearPicker","className","Controls","Input","name","placeholder","value","Label","others","InputFile","props","multiple","TextArea","Checkbox","options","border","borderRadius","map","option","Fragment","event","Select","otherStyle","noneLabel","defaultValue","noNone","FormControl","paddingTop","paddingBottom","MenuItem","item","id","code","PageHeader","title","subTitle","Paper","elevation","square","Card","Typography","component","ActionButton","bgcolor","children","Popup","openPopup","setOpenPopup","onClose","Dialog","open","maxWidth","paper","DialogTitle","flexGrow","e","stopPropagation","DialogContent","dividers","Notification","notify","setNotify","handleClose","reason","isOpen","Snackbar","autoHideDuration","anchorOrigin","vertical","horizontal","Alert","severity","message","ConfirmPopup","confirmPopup","setConfirmPopup","IconButton","disableRipple","subtitle","DialogActions","onConfirm","Checkbox2","checked","Checked","DatePicker","minDate","DateRangePicker","endDate","selectsRange","update","DateRangeCustomPicker","PopUpNotification","popUpNotification","setPopUpNotification","history","useHistory","push","Radio","RadioGroup","aria-label","FormControlLabel","useForm","initialValues","validateOnChange","validate","values","setValues","errors","setErrors","handleInputChange","target","handleFileInputChange","files","handleDatePicker","checkboxSelected","setCheckboxSelected","handleCheckBoxInputChange","currentIndex","indexOf","splice","handleChecked","resetForm","padingLeft","Form","autoComplete","baseUrl","SignIn","state","dispatch","username","email","role","accessToken","msg","success","setSuccess","isLoading","setLoading","handleLoading","fieldValues","temp","length","password","Object","every","x","login","preventDefault","axios","post","then","response","data","payload","user","console","log","catch","err","height","onSubmit","disable","CircularProgress","localData","JSON","parse","localStorage","getItem","initialState","isAuthenticated","onlineSalesList","completeProductList","incompleteProductList","archivedProductList","brandList","colorList","departmentList","categoryList","promotedProductList","supplierList","bannerList","promotionList","vouchersClaimed","pointsAdded","listKasir","reducer","action","setItem","stringify","clear","AuthContext","createContext","AdminDrawer","mobileOpen","setMobileOpen","matchSm","useMediaQuery","useContext","topMenuItems","setTopMenuItems","active","appBar","drawer","flexShrink","overflow","drawerPaper","scrollbarWidth","drawerContainer","content","handleDrawerToggle","getFeRoutes","a","get","params","bottomMenuItems","Icon","path","TopMenuItem","Component","items","undefined","constructor","Array","hasChildren","Multilevel","SingleLevel","ListItem","button","location","pathname","ListItemText","setOpen","Collapse","in","timeout","unmountOnExit","List","child","key","useLocation","CssBaseline","AppBar","Toolbar","edge","marginRight","noWrap","marginLeft","aria-controls","aria-haspopup","AccountCircle","Drawer","disableScrollLock","index","Divider","ListItemIcon","Dashboard","StyledTableCell","withStyles","whiteSpace","TableCell","useTable","records","headCells","filterFn","noPagination","table","fontWeight","container","maxHeight","page","setPage","pages","rowsPerPage","setRowsPerPage","order","setOrder","orderBy","setOrderBy","descendingComparator","b","TblContainer","TableContainer","Table","stickyHeader","TblHead","styles","TableHead","TableRow","headCell","sortDirection","disableSorting","TableSortLabel","direction","cellId","TblPagination","TablePagination","rowsPerPageOptions","count","onChangePage","newPage","handleChangePage","onChangeRowsPerPage","handleChangeRowsPerPage","TableFooter","recordsAfterPagingAndSorting","array","comparator","stabilizedThis","el","sort","stableSort","fn","getComparator","slice","styledTableCell","modalStyles","left","right","bottom","transform","overlay","zindex","useTableStyles","EditSupplier","phone","address","contact","test","editSupplier","param","put","EditOutlined","encType","Grid","xs","lg","pageContent","newButton","pageContentTitle","Brand","suppliers","setSuppliers","setFilterFn","supplier","getBrand","Axios","brand","minwidth","getSuppliers","addNewBrand","deleteItem","delete","inputprops","startAdornment","InputAdornment","Search","filter","toLowerCase","includes","startIcon","TableBody","record","hover","tabIndex","Category","getCategory","category","addNewCategory","Color","getColor","addNewColor","Department","getDepartment","department","addNewDepartment","DetailProduct","images","setIndex","property","setProperty","limit","sm","src","alt","prev","disabled","flexDirection","sku","pname","description","material","quantity","price1","price2","price3","price4","pricebs","datein","dateupdate","status","ProductDeletion","productStatus","UpdateProduct","newImages","fileName","file","formData","FormData","keys","append","addNewSize","setAddNewSize","isHidden","hideDelete","setHideDelete","openSizePopup","setOpenSizePopup","handleNewSize","hidden","URL","createObjectURL","cols","rows","deleteNewSize","DeleteOutline","newSize","submitNewSize","autoFocus","ArchiveProduct","archiveProduct","getFormInfo","setFilteringKeys","departments","results","categories","ProductCompletion","formInfo","setFormInfo","iv","setIv","brandid","departmentid","categoryid","colorid","pgol","find","EditBanner","startdate","enddate","updateBanner","toLocaleDateString","paddingInline","moment","format","BannerList","getBanners","image","bannerImage","setBannerImage","selectedCategory","setSelectedCategory","deleteBanner","FormLabel","row","control","banner","SummaryItem","productImage","productCode","productSize","productColor","productPrice","productQty","totalPrice","cellPadding","cellSpacing","Summary","subtotalPrice","shippingFee","cart","borderCollapse","borderSpacing","align","product","price","qty","SalesDetails","shippingAddress","invoice","class","firstname","lastname","city","zipcode","CheckShipment","dateshipped","shippingcompany","waybillnumber","UnarchiveProduct","unarchiveProduct","ManagePromoPrice","promotions","setPromotions","discount","newPrice","getAllPromotions","managePromotionPrice","required","SelectedProducts","deleteSelectedProduct","DeletePromo","deletePromo","UpdatePromo","updatePromo","UpdateVoucher","updateVoucher","DeleteVoucher","deleteVoucher","AddVoucher","syarat","nominal","minimal","alignItems","Vouchers","useTheme","breakpoints","up","setRecords","detailItem","setDetailItem","getAllVouchers","req","res","toggleQuickClaim","toDateString","Switch","defaultChecked","quickClaim","TambahPromo","addNewPromotion","CheckProducts","getPromoProducts","dataKasir","listPoinPenjualan","httpsAgent","https","Agent","rejectUnauthorized","variableCategory","tipeLangganan","Whatsapp","currentFile","previewImage","progress","isError","imageInfos","setImages","setMessage","members","toko","setToko","variables","setVariables","langgananToko","setLanggananToko","shareType","setShareType","langgananTerpilih","setLanggananTerpilih","headers","langgananType","hasil","charAt","toUpperCase","getStoreMembers","flexWrap","latestVariables","htmlFor","accept","reader","FileReader","onloadend","result","readAsDataURL","minHeight","langganan","getLanggananToko","variable","TextField","inputProps","varCopy","newVar","v","unshift","forEach","multiline","kategoriProduk","Wishlist","wishlists","setWishlists","selectedStore","setSelectedStore","search","setSearch","getWishlist","wishlist","kategori","daterequested","month","day","year","StockHarian","setFile","loading","lastUpdated","setLastUpdated","submitFile","getLastUpdated","updatedat","toLocaleString","ProductRank","modalOpen","setModalOpen","setProductImage","filteringContent","setFilteringContent","filtered","setFiltered","getTopSellingProducts","clearTimeout","setTimeout","peringkat","getProductImage","Klkode","Klnama","totalPembelian","objectFit","YtickFormatter","parseInt","XtickFormatter","dateArr","split","tooltipFormatter","Intl","NumberFormat","labelFormatter","Chart","displayedData","ResponsiveContainer","LineChart","Line","animationDuration","dataKey","stroke","CartesianGrid","strokeDasharray","XAxis","tickFormatter","YAxis","Tooltip","formatter","SalesCharts","chartData","setChartData","chartDataAll","setChartDataAll","setDisplayedData","getSalesRecords","groupedData","Kltgklr","reorderedDisplayed","total","reduce","curr","Klgd","Klrp","getFilteredSales","opt","Number","HourlyCharts","hour","Kljam","substring","Analytics","setChartPeriod","now","setDateRanges","TeamTokoDialog","dialogText","onConfirmAction","confirmText","DialogContentText","roles","jenistidur","CardListItem","getMembers","member","underlineRow","alreadyPresence","listToko","memberModal","setMemberModal","deleteModal","setDeleteModal","cutiModal","setCutiModal","disableCutiModal","setDisableCutiModal","handleMemberModal","handleDeleteModal","handleCutiModal","cuti","setCutiFields","alasan","editMemberFields","setEditMemberFields","cutiFields","editMember","staff_username","staff_toko","cutiMember","staff","tanggal","disableCutiStaff","deleteMember","textDecoration","textDecorationColor","ListItemSecondaryAction","Edit","labelPlacement","toISOString","fullWidth","select","TeamCard","teamMembers","cardStyle","presensiModal","setPresensiModal","setAlreadyPresence","handlePresensiModal","sendPresensi","checkPresensi","presensi","CardContent","dense","TeamToko","teams","setTeams","setMembers","setListToko","newMemberFields","setNewMemberFields","registerNewMember","getListToko","c","isArray","groupMembersToTeams","Box","weekday","AddCircleRounded","gap","team","Presensi","presensiToko","setPresensiToko","columns","field","headerName","valueGetter","renderCell","Link","rel","href","toString","getPresensi","getListKasir","components","GridToolbar","checkboxSelection","disableSelectionOnClick","SimpleCard","counts","countsCompared","percentage","period","comparedDates","dateDiff","end","start","Math","floor","segmentation","productsSales","getGroupedSales","performancePercentage","previousQty","comparedDateRanges","totalOmzet","SalesAnalysis","KPIMember","selectedSales","setSelectedSales","getKPIStoreMember","storeMembers","formatDateLocale","dateString","timeZone","dateStyle","timeStyle","poin","last_purchase","second_last_purchase","third_last_purchase","jumlah_pembelian","UserCharts","getUsersAnalyticsData","join","userAnalyticsData","wanita","pria","anak","harian","pollux","sports","aksesoris","sneakers","MenuProps","MemberAnalysis","getRandomInt","random","handleFormikNestedFieldError","formik","subField","Boolean","touched","handleFormikNestedFieldHelperText","Suggestions","allSuggestions","setAllSuggestions","openModalForm","toggleModalForm","isEditing","edit","setEdit","deleteDialog","setDeleteDialog","formSchema","yup","suggestions","of","shape","score","suggestion","useFormik","String","validationSchema","updateSuggestion","insertSuggestion","handleToggleModalForm","handleCloseModalForm","poinsaran","getAllSuggestions","deleteSuggestion","getSpecificSuggestions","datagridParams","_suggestions","setTouched","aria-labelledby","aria-describedby","handleSubmit","handleChange","flex","helperText","suggestionId","deletedIndex","findIndex","setFieldValue","deleteSuggestionWithinModalForm","Delete","nextKey","addSuggestionWithinModalForm","StoreTarget","allStoreTarget","setAllStoreTarget","omzet","poinpenjualan","newmember","updateStoreTarget","insertStoreTarget","getAllStoreTarget","deleteStoreTarget","storetarget","getSpecificStoreTarget","InputLabel","labelId","BonusIndex","allStoreMonthlyBonuses","setAllStoreMonthlyBonuses","bonuses","bonus","updateBonusIndex","insertBonusIndex","getAllStoreMonthlyBonuses","deleteBonusIndex","getSpecificStoreMonthlyBonus","_bonuses","bonusId","deleteBonusWithinModalForm","addBonusWithinModalForm","Insert","Staff","payrollData","setPayrollData","getSPGPerformance","formInputLists","Klfak","Klhfak","Klqty","Kasir","Klsal","Nomor","Komisi","InsertOfflineSales","sales","setSales","sendModal","setSendModal","addSales","editRowsModel","setEditRowsModel","sale","_sales","handleSendModal","insertOfflineSales","editable","newSales","deleteSales","flexBasis","autoHeight","onEditRowsModelChange","model","useDateRangePicker","getDifferenceBetweenDates","diffTime","abs","ceil","partai","Error","getGajianStaff","dataByPeriods","periodIndex","per","fillEveryPeriodWithGajianData","formatDate","d","createPeriods","firstDate","numberOfWeeks","remainderDays","_periodsGroupedData","i","useDataByPeriods","periods","setPeriods","setDataByPeriods","handlePeriod","useCallback","weekCounts","remainder","_dataByPeriods","fetchPeriodData","GajianTable","periodData","numberize","psHeadCells","disableColumnMenu","pollux_wanita","aksesoris_kaoskaki","tas","pollux_pria","rpHeadCells","komisi","komisi_lain_lain","komisi_pengganti_ketua","komisi_total","pedoman","total_gaji","PsTblHead","PsTblContainer","PsTableCell","rsRecordsAfterPagingAndSorting","RpTblHead","RpTblContainer","RpTableCell","rpRecordsAfterPagingAndSorting","GajianSplitRange","ref","useRef","trigger","current","documentTitle","p","GajianFullRange","allData","setAllData","keyList","obj","st","stIndex","reshapeAllData","GajianStaff","GajianKetua","gajianKetua","setGajianKetua","getGajianKetua","sortable","komisi_ketua","bonus_pollux","bonus_pedoman","pedoman_total","GajianToko","MemberCharts","registeredUsers","createdat","totalRegisteredUsers","totalPreviousRegisteredUsers","StoreMember","disableFullMonth","UploadOnlineSales","RoutesManagement","setRoles","routes","setRoutes","addRouteModal","setAddRouteModal","revokeRouteModal","setRevokeRouteModal","userRoutes","setUserRoutes","route","routeForm","setRouteForm","handleAddRouteModal","handleRevokeRouteModal","getRoles","getAvailableRoutes","getUserRoutes","updateRoutes","route_id","revokeRoutes","route_name","PaperProps","OperDialog","withoutActions","cancelText","disableBtn","SuggestionModalContent","segment","totalSolds","currentStocks","occurences","purchaseRate","availableStok","setAvailableStok","bufferOper","setBufferOper","approvedOper","setApprovedOper","productRank","setProductRank","dialogOpen","setDialogOpen","isRankLoading","setRankLoading","isApprovedLoading","setApprovedLoading","setProductQty","isSending","setIsSending","handleDialog","moveProduct","productArray","buf","origin","originStock","approvedAt","getApproved","getAvailableStok","movedProduct","TblHeadApproved","TblContainerApproved","TblPaginationApproved","TableCellApproved","approvedRecords","TblHeadRank","TblContainerRank","TblPaginationRank","TableCellRank","rankRecords","qualifiedTargetProducts","availableOrigin","getProductRank","kemunculan","updatedStok","_productQty","InputProps","min","max","FormHelperTextProps","uuidv4","stok","addStok","origin_stock","rank","disabledBtn","MovedList","gajianTrainee","setGajianTrainee","getGajianTrainee","tanggalmasuk","total_presensi","gaji_pokok","regex","kode","TblHeadBuffer","TblContainerBuffer","TblPaginationBuffer","TableCellBuffer","bufferRecords","getTarget","purchase_rate","_bufferOper","DeadProducts","allPossibleSuggestions","setAllPossibleSuggestions","isPossibleSugLoading","setIsPossibleSugLoading","suggestionHeadCells","noDate","getAllPossibleSuggestions","qualifiedSuggestions","TblHeadAllPS","TblContainerAllPS","TblPaginationHeadAllPS","TableCellAllPS","allPSRecords","OperStokBySKU","tipeStaff","keaktifan","CutiComponent","cutiOffModalOpen","setCutiOffModalOpen","handleModal","handleCutiOffModal","DeleteComponent","EditComponent","updated_at","memberData","setMemberData","formatToIndonesianCurrency","amount","isInteger","currency","minimumFractionDigits","GajianPabrik","gajianPabrik","setGajianPabrik","totalGaji","setTotalGaji","getGajianPabrik","totalabsen","totalpresensi","totaltidaktercatat","totalmenitterlambat","totalgaji","bank","bankaccount","bankaccountname","salesRecords","setSalesRecords","invoiceSelected","setInvoiceSelected","productSales","setProductSales","transactionInfo","setTransactionInfo","completeShippingModal","setCompleteShippingModal","confirmOrderDeliveredPopup","setConfirmOrderDeliveredPopup","resi","etd","getOnlineSalesRecords","confirmTransactionProducts","invoiceid","setTransactionStatus","completeShipping","waybillNumber","customeremail","customercontact","setOrderDelivered","getProductSales","getTransactionInfo","shippingfee","address1","subtotal","substr","confirmed","shipped","delivered","completed","faktur","setFaktur","currentDate","fullYear","filteredDisplay","handleFilter","paymentmethod","paid","salesproduct","productsku","addNewSales","itemsku","novoucher","dayclaimed","getClaimedVouchers","dateFormatted","customerid","nofaktur","getPointsAdded","customerphone","rowHeight","density","absenPabrik","setAbsenPabrik","getAbsensi","absensiToko","setAbsensiToko","filterContent","setFilterContent","getRecords","verticalAlign","getIncompleteProducts","getArchivedProducts","background","selectAll","setSelectAll","selectedProducts","setSelectedProducts","getCompleteProducts","selectProduct","concat","pgol_label","promo_code","promostatus","openModal","setOpenModal","query","openAddNewSupplier","addNewSupplier","deleteSupplier","contentLabel","md","evelvation","appendedCost","setAppendedCost","dateRangesKetua","setDateRangesKetua","setOmzet","appendKetuaAndStaffCost","appended","ketua","trainee","getKetuaCost","staffCost","dataPerPeriod","staffs","_staff","round","pedoman_in_toko_only","sumStaffCost","getTraineeCost","staffIndex","_sta","getOmzet","toFixed","completeDialog","setCompleteDialog","cancelDialog","setCancelDialog","globalScore","setGlobalScore","selectedRow","setSelectedRow","handleCompleteDialog","handleCancelDialog","getOperRecords","cancelOper","updatedAt","approved_at","sent_at","completed_at","cancelled_at","rejection_reason","date_difference","deadProducts","setDeadProducts","selectedProduct","setSelectedProduct","getProductDemandList","throwBackDate","deadStocks","p0_purchaseRate","p0_totalPembelian","p0_purchaseRateAvg","p1_purchaseRate","p1_totalPembelian","p1_purchaseRateAvg","allStorePerformance","setAllStorePerformance","CardMedia","omzetTargetPercentage","buildStyles","pathColor","textColor","omzet_target","currentOmzet","omzetScore","polluxTargetPercentage","polluxPairsTarget","totalPolluxSold","headerAlign","polluxScore","getAllStorePerformance","RoleRoutes","feRoutes","setFeRoutes","acc","_route","r","exact","Email","Help","Account","logout","RegExp","createUser","creatorRole","App","useReducer","cookies","Cookies","remove","checkSession","Provider","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","defaults","withCredentials","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.eb2ff2ff.chunk.js","sourcesContent":["import { Button as MuiButton, makeStyles } from \"@material-ui/core\";\nimport React from \"react\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: theme.spacing(0.5),\n },\n label: {\n textTransform: \"none\",\n },\n}));\n\nexport default function Button({\n text,\n size,\n icon,\n color,\n variant,\n onClick,\n type,\n ...other\n}) {\n // const {text,size,icon , color, variant, onClick, type,...other} = props\n const classes = useStyles();\n return (\n \n {text} {icon}\n \n );\n}\n","import React from 'react'\nimport { Paper, Card, Typography, makeStyles, Button } from '@material-ui/core'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: '#fdfdff',\n marginBottom: \"40px\"\n },\n pageHeader:{\n display:'flex',\n marginBottom:theme.spacing(1)\n },\n pageIcon:{\n display:'inline-block',\n padding:theme.spacing(1),\n color:'#3c44b1'\n },\n pageTitle:{\n paddingLeft:theme.spacing(2),\n '& .MuiTypography-subtitle2':{\n opacity:'0.6'\n },\n marginTop:theme.spacing(2)\n }\n}))\n\nexport default function PageHeader({title, subTitle, icon}) {\n\n const classes = useStyles();\n return (\n \n
\n \n {icon}\n \n
\n \n {title}\n \n {subTitle}\n
\n
\n
\n )\n}","import React from 'react'\nimport { Button, makeStyles } from '@material-ui/core';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n minWidth: 0,\n margin: theme.spacing(0.5)\n },\n secondary: {\n backgroundColor: theme.palette.secondary.light,\n '& .MuiButton-label': {\n color: theme.palette.secondary.main,\n }\n },\n primary: {\n backgroundColor: theme.palette.primary.light,\n '& .MuiButton-label': {\n color: theme.palette.primary.main,\n }\n },\n}))\n\nexport default function ActionButton({bgcolor, color, children, onClick }) {\n\n const classes = useStyles();\n\n return (\n \n {children}\n \n )\n}","import React from \"react\";\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n makeStyles,\n Typography,\n} from \"@material-ui/core\";\nimport Controls from \"../controls/Controls\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nconst useStyles = makeStyles((theme) => ({\n dialogWrapper: {\n padding: theme.spacing(3),\n position: \"absolute\",\n width: \"100%\",\n },\n dialogTitle: {\n paddingRight: \"0px\",\n },\n}));\n\nexport default function Popup({\n title,\n children,\n openPopup,\n setOpenPopup,\n onClose,\n}) {\n const classes = useStyles();\n\n return (\n \n \n
\n \n {title}\n \n {\n e.stopPropagation();\n setOpenPopup(false);\n onClose();\n }}\n >\n \n \n
\n
\n {children}\n \n );\n}\n","import React from \"react\";\nimport { Snackbar, makeStyles } from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n top: theme.spacing(9),\n },\n}));\n\nexport default function Notification({ notify, setNotify }) {\n const classes = useStyles();\n const handleClose = (event, reason) => {\n // if(reason === 'clickaway'){\n // return window.location.href= notify.location !== '' ? notify.location : null\n // }\n setNotify({\n ...notify,\n isOpen: false,\n });\n // return window.location.href= notify.location !== '' ? notify.location : null\n };\n return (\n \n \n {notify.message}\n \n \n );\n}\n","import React from 'react'\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Typography, makeStyles, IconButton } from '@material-ui/core'\nimport Controls from '../controls/Controls'\nimport NotListedLocationIcon from '@material-ui/icons/NotListedLocation';\n\nconst useStyles = makeStyles(theme => ({\n dialog: {\n padding: theme.spacing(2),\n position: 'absolute',\n top: theme.spacing(5)\n },\n dialogTitle: {\n textAlign: 'center'\n },\n dialogContent: {\n textAlign: 'center'\n },\n dialogAction: {\n justifyContent: 'center'\n },\n titleIcon: {\n backgroundColor: theme.palette.secondary.light,\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: theme.palette.secondary.light,\n cursor: 'default'\n },\n '& .MuiSvgIcon-root': {\n fontSize: '8rem',\n }\n }\n}))\n\nexport default function ConfirmPopup({confirmPopup,setConfirmPopup}){\n const classes = useStyles()\n return (\n \n \n \n \n \n \n \n \n {confirmPopup.title}\n \n \n {confirmPopup.subtitle}\n \n \n \n setConfirmPopup({ ...confirmPopup, isOpen: false })}\n />\n \n \n \n )\n}","import React, { useEffect, useState } from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"./controls.css\";\n\nconst datesInMonths = {\n 0: 31,\n 1: 28,\n 2: 31,\n 3: 30,\n 4: 31,\n 5: 30,\n 6: 31,\n 7: 31,\n 8: 30,\n 9: 31,\n 10: 30,\n 11: 31,\n};\n\nconst MonthPicker = ({ error, setDates, dateRanges, chartPeriod }) => {\n const [startDate, setStartDate] = useState(\n new Date(dateRanges[0].getFullYear(), dateRanges[0].getMonth(), 1)\n );\n\n function handleDates(date) {\n let tmpDateStart = new Date(date.getFullYear(), date.getMonth(), 1);\n let tmpDateEnd = new Date(tmpDateStart.getTime());\n\n // jika current month kurang dari month yang dicari\n // maka gunakan full month\n let currentMonth = new Date().getMonth();\n\n if (tmpDateEnd.getMonth() < currentMonth) {\n tmpDateEnd.setDate(\n tmpDateEnd.getDate() + datesInMonths[tmpDateEnd.getMonth()] - 1\n );\n } else {\n tmpDateEnd = new Date();\n }\n\n setDates([tmpDateStart, tmpDateEnd]);\n setStartDate(tmpDateStart);\n }\n\n useEffect(() => {\n if (chartPeriod === \"monthly\") {\n handleDates(dateRanges[0]);\n }\n }, [chartPeriod]); //eslint-disable-line\n\n return (\n
\n {\n setStartDate(date);\n handleDates(date);\n }}\n dateFormat=\"MM/yyyy\"\n showMonthYearPicker\n />\n {error}\n
\n );\n};\n\nexport default MonthPicker;\n","import { Dialog, DialogActions, DialogContent, DialogTitle, IconButton, makeStyles, Typography } from '@material-ui/core'\nimport React, { useState } from 'react'\nimport NotListedLocationIcon from '@material-ui/icons/NotListedLocation';\nimport Controls from './Controls';\nimport { useHistory } from 'react-router';\n\nconst useStyles = makeStyles(theme => ({\n dialog : {\n padding : theme.spacing(2),\n position : 'absolute',\n top : theme.spacing(5)\n },\n dialogTitle : {\n textAlign :'center'\n },\n dialogContent : {\n textAlign : 'center'\n },\n dialogAction : {\n justifyContent :'center'\n },\n titleIcon: {\n backgroundColor: theme.palette.secondary.light,\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: theme.palette.secondary.light,\n cursor: 'default'\n },\n '& .MuiSvgIcon-root': {\n fontSize: '8rem',\n }\n }\n}))\nexport default function PopUpNotification({popUpNotification,setPopUpNotification}){\n const classes = useStyles()\n const history = useHistory()\n return(\n
\n \n \n \n \n \n \n \n \n {popUpNotification.title}\n \n \n {popUpNotification.subTitle}\n \n \n \n {\n setPopUpNotification({\n ...popUpNotification,\n isOpen : false\n })\n history.push(\"/\") \n }} />\n \n \n
\n )\n}","import Input from \"./input\";\nimport Label from \"./label\";\nimport InputFile from \"./inputFile\";\nimport TextArea from \"./textarea\";\nimport Button from \"./button\";\nimport Checkbox from \"./checkbox\";\nimport Select from \"./select\";\nimport PageHeader from \"./pageHeader\";\nimport ActionButton from \"./actionButton\";\nimport Popup from \"./popup\";\nimport Notification from \"./notification\";\nimport ConfirmPopup from \"./confirmPopup\";\nimport Checkbox2 from \"./checkbox2\";\nimport DatePicker from \"./pickDate\";\nimport DateRangePicker from \"./pickDateRange\";\nimport DateRangeCustomPicker from \"./pickDateRangeCustom\";\nimport MonthPicker from \"./pickMonth\";\nimport PopUpNotification from \"./popUpNotification\";\nimport Radio from \"./radio\";\n\nconst Controls = {\n Input,\n Label,\n InputFile,\n TextArea,\n Button,\n Checkbox,\n Select,\n PageHeader,\n ActionButton,\n Popup,\n Notification,\n ConfirmPopup,\n Checkbox2,\n DatePicker,\n DateRangePicker,\n DateRangeCustomPicker,\n MonthPicker,\n PopUpNotification,\n Radio,\n};\n\nexport default Controls;\n","import React from \"react\";\nimport \"./controls.css\";\n\nexport default function Input({\n name,\n placeholder,\n type,\n value,\n error = null,\n onChange,\n style,\n ...other\n}) {\n return (\n
\n \n {error}\n
\n );\n}\n","import React from 'react'\nimport {InputLabel} from '@material-ui/core'\n\nexport default function Label({label,...others}){\n return (\n \n )\n}","import React from 'react'\nimport '../controls/controls.css'\n\nexport default function InputFile(props){\n const {name,value,error=null,onChange} = props\n return (\n
\n \n {error}\n
\n\n )\n}","import React from 'react'\nimport './controls.css'\n\nexport default function TextArea({name, value, onChange, error=null,placeholder,...other}){\n return (\n
\n \n {error}\n
\n )\n}","import React,{useState} from 'react'\nimport {FormControl, Checkbox as MuiCheckBox} from '@material-ui/core'\nimport '../controls/controls.css'\n\nexport default function Checkbox(props){\n const {name,value,options,onChange,error=null,...other} = props\n return (\n
\n {options.map((option) => (\n \n {option}\n onChange(option,event)} \n /> \n \n ))}\n {error}\n
\n )\n}","import React, { useEffect, useState } from \"react\";\nimport {\n FormControl,\n InputLabel,\n Select as MuiSelect,\n MenuItem,\n FormHelperText,\n} from \"@material-ui/core\";\nimport \"../controls/controls.css\";\n\nexport default function Select({\n name,\n value,\n onChange,\n error = null,\n options,\n otherStyle,\n noneLabel,\n defaultValue,\n noNone = false,\n ...other\n}) {\n return (\n
\n \n \n {!noNone && (\n {noneLabel ? noneLabel : \"None\"}\n )}\n {options.map((item) => (\n \n {item.name}\n \n ))}\n \n {error}\n \n
\n );\n}\n","import React from 'react'\nimport {FormControl, Checkbox as MuiCheckBox} from '@material-ui/core'\nimport '../controls/controls.css'\n\nexport default function Checkbox2(props){\n return (\n
\n \n {props.value}\n \n \n {/* {options.map((option) => (\n\n ))} */}\n {/* {error} */}\n
\n //
\n // \n // \n //
\n )\n}","import React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport moment from \"moment\";\nimport \"./controls.css\";\n\nexport default function PickDate({\n name,\n minDate,\n value,\n selected,\n onChange,\n error = null,\n placeholder,\n}) {\n return (\n
\n \n {error}\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"./controls.css\";\n\nexport default function DateRangePicker({\n name,\n error = null,\n setDates,\n dateRanges,\n chartPeriod,\n}) {\n const startDate = new Date(dateRanges[0].getTime());\n const endDate = new Date(startDate.getTime());\n endDate.setDate(startDate.getDate() + 6);\n\n useEffect(() => {\n if (chartPeriod === \"weekly\") {\n setDates([startDate, endDate]);\n }\n }, []); //eslint-disable-line\n\n return (\n
\n {\n update[1] = new Date(update[0].getTime());\n update[1].setDate(update[1].getDate() - 6);\n\n setDates([update[1], update[0]]);\n }}\n />\n {error}\n
\n );\n}\n","import React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"./controls.css\";\n\nexport default function DateRangeCustomPicker({\n name,\n error = null,\n setDates,\n dateRanges,\n}) {\n return (\n
\n {\n setDates([update[0], update[1]]);\n }}\n />\n {error}\n
\n );\n}\n","import React, { useEffect, useState } from 'react'\nimport {FormControl,InputLabel,Select as MuiSelect,MenuItem,FormHelperText, Radio, RadioGroup, FormControlLabel} from '@material-ui/core'\nimport '../controls/controls.css'\n\nexport default function Select({name,value,onChange,error=null,options}){\n return (\n \n {options.map((item) => {\n } label={item.name} />\n })}\n \n )\n}\n","import { makeStyles } from '@material-ui/core'\nimport { SignalCellularNull } from '@material-ui/icons'\nimport React, { useEffect, useState } from 'react'\n\n/**\n * @param {any} initialValues contains initial values of each state\n * @param {boolean} validateOnChange marks when the element starts controlling value onChange\n * @param {*} validate function starts when param validateOnChange === true\n * @returns values, setValues, errors, setErrors, handleInputChange, handleFileInputChange,resetForm\n */\n\nexport function useForm(initialValues,validateOnChange = false, validate){\n const [values,setValues] = useState(initialValues)\n const [errors,setErrors] = useState({})\n \n const handleInputChange = (e) => {\n const {name,value} = e.target\n setValues({\n ...values,\n [name] : value,\n })\n if(validateOnChange === true){\n validate({[name]:value})\n }\n }\n\n const handleFileInputChange = (e) => {\n const {name,files} = e.target\n setValues({\n ...values,\n [name]:files\n })\n if(validateOnChange === true){\n validate({[name] : files})\n }\n }\n\n const handleDatePicker = (name,date) => {\n setValues({\n ...values,\n [name]:date\n })\n if(validateOnChange === true){\n validate({[name] : date})\n } \n }\n\n const [checkboxSelected,setCheckboxSelected] = useState([])\n // for(let i = 0;i {\n let {name,value} = event.target\n \n const currentIndex = checkboxSelected.indexOf(option)\n value = [...checkboxSelected]\n if(currentIndex === -1){\n value.push(option)\n }else {\n value.splice(currentIndex,1)\n }\n setCheckboxSelected(value)\n setValues({\n ...values,\n [name] : value\n })\n if(validateOnChange === true){\n validate({[name] : value})\n }\n } \n\n\n const handleChecked = (option) => {\n if(checkboxSelected.indexOf(option) === -1){\n return false\n }else {\n return true\n }\n }\n\n const resetForm = () => {\n setValues(initialValues)\n setErrors({})\n }\n\n return {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n handleDatePicker,\n checkboxSelected,\n handleChecked,\n handleCheckBoxInputChange,\n resetForm,\n }\n}\n\nconst useStyles = makeStyles(theme => ({\n root:{\n '& .MuiFormControl-root': {\n width : '100%',\n margin : theme.spacing(0.5),\n paddingRight : theme.spacing(0.5),\n padingLeft : theme.spacing(0.5),\n }\n }\n}))\n\nexport function Form(props){\n const classes = useStyles()\n const {children, ...other} = props\n return (\n /**{...other} itu yang bawa onSubmit punya element */\n
\n {props.children}\n
\n )\n}\n","export const baseUrl =\n process.env.NODE_ENV === \"production\"\n ? \"https://notoputrooffice.com/api\"\n : \"http://localhost:5001/api\";\n","import { Grid } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport { Form, useForm } from \"../components/useForm\";\nimport { baseUrl } from \"../config/const\";\nimport Cookies from \"universal-cookie\";\nimport { GoogleLogin } from \"react-google-login\";\nimport FacebookLogin from \"react-facebook-login\";\nimport { CircularProgress } from \"@material-ui/core\";\n\nexport default function SignIn({ state, dispatch }) {\n const [success, setSuccess] = useState({\n id: \"\",\n username: \"\",\n email: \"\",\n role: \"\",\n accessToken: \"\",\n msg: \"\",\n });\n const [isLoading, setLoading] = useState(false);\n\n const handleLoading = () => {\n setLoading(!isLoading);\n };\n\n const initialValues = {\n username: \"\",\n password: \"\",\n };\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"username\" in fieldValues) {\n temp.username =\n fieldValues.username.length !== 0 ? \"\" : \"Username harus diisi\";\n }\n if (\"password\" in fieldValues) {\n temp.password =\n fieldValues.password.length !== 0 ? \"\" : \"Password harus diisi\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, setValues, errors, setErrors, handleInputChange } = useForm(\n initialValues,\n true,\n validate\n );\n\n const login = async (e) => {\n handleLoading();\n e.preventDefault();\n if (validate()) {\n await axios\n .post(`${baseUrl}/auth/login`, {\n username: values.username,\n password: values.password,\n })\n .then((response) => {\n setSuccess({\n ...success,\n id: response.data.id,\n username: response.data.username,\n email: response.data.email,\n role: response.data.role,\n accessToken: response.data.accessToken,\n msg: response.data.msg,\n });\n\n dispatch({\n type: \"LOGIN\",\n payload: {\n user: response.data,\n },\n });\n // localStorage.setItem(\"notouser\",response.data.accessToken)\n console.log(\"token adalah: \" + response.data.accessToken);\n handleLoading();\n })\n .catch((err) => {\n handleLoading();\n // setSuccess({\n // ...success,\n // msg: err.response.data.msg,\n // });\n });\n }\n };\n\n // const handleGoogleLogin = async googleData => {\n // await axios.post(\"/v1/officeuserauth/google\",{\n // token : googleData.tokenId\n // })\n // .then((response) => {\n // console.log(response.data)\n // console.log('google token id: '+googleData.tokenId)\n // cookies.set('notouser',response.data.accessToken,{path:\"/\"})\n // window.location.href=\"/\"\n // })\n // .catch((error) => {\n // console.error(error.response.data)\n // })\n // }\n\n // const handleFacebookLogin = async facebookData => {\n // await axios.post(\"/v1/officeuserauth/facebook\",{\n // accessToken : facebookData.accessToken,\n // userID : facebookData.userID\n // })\n // .then((response) => {\n // console.log(response.data)\n // console.log('facebook token id: '+facebookData.accessToken)\n // cookies.set('notouser',response.data.accessToken,{path:\"/\"})\n // window.location.href=\"/\"\n // })\n // .catch((error) => {\n // console.error(error.response.data)\n // })\n // }\n\n return (\n
\n
\n {/* \n\n */}\n\n
\n \n \n \n\n \n \n\n \n ) : (\n \"Log In\"\n )\n }\n />\n \n
\n

message: {success.msg}

\n
\n
\n
\n );\n}\n","import { createContext } from \"react\";\n\nconst localData = JSON.parse(localStorage.getItem(\"notouser\"));\n\nexport const initialState = !localData\n ? {\n isAuthenticated: false,\n id: \"\",\n username: \"\",\n email: \"\",\n role: \"\",\n accessToken: \"\",\n msg: \"\",\n onlineSalesList: [],\n completeProductList: [],\n incompleteProductList: [],\n archivedProductList: [],\n brandList: [],\n colorList: [],\n departmentList: [],\n categoryList: [],\n promotedProductList: [],\n supplierList: [],\n bannerList: [],\n promotionList: [],\n vouchersClaimed: [],\n pointsAdded: [],\n listKasir:[]\n }\n : {\n isAuthenticated: true,\n id: localData.id,\n username: localData.username,\n email: localData.email,\n role: localData.role,\n accessToken: localData.accessToken,\n msg: localData.msg,\n onlineSalesList: localData.onlineSalesList,\n completeProductList: localData.completeProductList,\n incompleteProductList: localData.incompleteProductList,\n archivedProductList: localData.archivedProductList,\n brandList: localData.brandList,\n colorList: localData.colorList,\n departmentList: localData.departmentList,\n categoryList: localData.categoryList,\n promotedProductList: localData.promotedProductList,\n supplierList: localData.supplierList,\n bannerList: localData.bannerList,\n promotionList: localData.promotionList,\n vouchersClaimed: localData.vouchersClaimed,\n pointsAdded: localData.pointsAdded,\n listKasir: localData.listKasir\n };\n\nexport const reducer = (state, action) => {\n switch(action.type) {\n case \"LOGIN\":\n localStorage.setItem(\n \"notouser\",\n JSON.stringify({ ...state, ...action.payload.user })\n );\n return {\n ...state,\n isAuthenticated: true,\n ...action.payload.user,\n };\n case \"LOGOUT\":\n localStorage.clear();\n return {\n ...state,\n isAuthenticated: false,\n ...action.payload.user,\n };\n case \"UPDATE_LIST\":\n localStorage.setItem(\n \"notouser\",\n JSON.stringify({ ...state, ...action.payload })\n );\n return {\n ...state,\n ...action.payload\n };\n\n default:\n return state;\n }\n}\n\nexport const AuthContext = createContext();","import React, { useContext, useEffect, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport List from \"@material-ui/core/List\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Divider from \"@material-ui/core/Divider\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport MailOutlineIcon from \"@material-ui/icons/MailOutline\";\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { Collapse, IconButton } from \"@material-ui/core\";\n\nimport { AccountCircle } from \"@material-ui/icons\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { AuthContext } from \"../AppContext\";\n\nimport { baseUrl } from \"../config/const\";\n\nimport axios from \"axios\";\n\nconst drawerWidth = 210;\n\nexport default function AdminDrawer({ children }) {\n const [mobileOpen, setMobileOpen] = useState(false);\n const matchSm = useMediaQuery(\"(min-width:1000px)\");\n const { state } = useContext(AuthContext);\n const [topMenuItems, setTopMenuItems] = useState([]);\n\n const useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n flexGrow: 1,\n },\n active: {\n backgroundColor: \"hsla(41, 96%, 48%, 0.15)\",\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n // backgroundColor :'#26BCD7',\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0,\n overflow: \"scroll\",\n },\n drawerPaper: {\n width: drawerWidth,\n scrollbarWidth: \"none\",\n },\n drawerContainer: {\n overflow: \"auto\",\n },\n content: {\n width: !matchSm ? \"100vw\" : null,\n flexGrow: 1,\n padding: theme.spacing(1),\n marginTop: 1,\n },\n }));\n\n const classes = useStyles();\n\n const handleDrawerToggle = () => {\n console.log(\"run\");\n setMobileOpen(!mobileOpen);\n };\n\n const getFeRoutes = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/fe-routes`, {\n params: { role: state.role },\n });\n\n setTopMenuItems(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const bottomMenuItems = [\n {\n text: \"Email\",\n Icon: ,\n path: \"/email\",\n },\n {\n text: \"Help\",\n Icon: ,\n path: \"/help\",\n },\n ];\n\n const hasChildren = (item) => {\n const { items: children } = item;\n if (children === undefined) {\n return false;\n }\n if (children.constructor !== Array) {\n return false;\n }\n if (children.length === 0) {\n return false;\n }\n return true;\n };\n\n const TopMenuItem = ({ item }) => {\n const Component = hasChildren(item) ? Multilevel : SingleLevel;\n return ;\n };\n\n const SingleLevel = ({ item }) => {\n return (\n {\n history.push(item.path);\n handleDrawerToggle();\n }}\n className={location.pathname === item.path ? classes.active : null}\n >\n {/* {item.Icon} */}\n \n \n );\n };\n\n const Multilevel = ({ item }) => {\n const { items: children } = item;\n const [open, setOpen] = useState(false);\n const handleClick = () => {\n setOpen(!open);\n };\n return (\n
\n history.push(item.path)}\n onClick={handleClick}\n >\n {/* {item.Icon} */}\n \n {open ? : }\n \n \n \n {children.map((child, key) => (\n \n ))}\n \n \n
\n );\n };\n\n const history = useHistory();\n const location = useLocation();\n\n useEffect(() => {\n getFeRoutes();\n }, []);\n\n return (\n
\n \n \n \n \n \n \n \n ADMIN HAPPY\n \n
\n history.push(\"/account\")}\n color=\"inherit\"\n >\n \n \n
\n
\n
\n\n {/* Drawer for mobile screen */}\n \n \n
\n \n {topMenuItems.map((item, index) => (\n \n ))}\n \n\n \n\n \n {bottomMenuItems.map((item, index) => (\n \n {item.Icon}\n \n \n ))}\n \n
\n \n\n {/* Drawer for desktop screen */}\n \n \n
\n \n {topMenuItems.map((item, index) => (\n \n ))}\n \n\n \n\n \n {bottomMenuItems.map((item, index) => (\n {\n history.push(item.path);\n }}\n className={\n location.pathname === item.path ? classes.active : null\n }\n >\n {item.Icon}\n \n \n ))}\n \n
\n \n
\n \n {children}\n
\n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport { FormControl, Checkbox as MuiCheckBox } from \"@material-ui/core\";\nimport { useForm } from \"../components/useForm\";\n// import '../styles/global.css'\nimport Axios from \"axios\";\nimport { ImageSearchRounded } from \"@material-ui/icons\";\nimport { baseUrl } from \"../config/const\";\nimport { GoogleLogin } from \"react-google-login\";\nimport axios from \"axios\";\nimport FacebookLogin from \"react-facebook-login\";\n\nfunction Dashboard() {\n const [email, setEmail] = useState(\"\");\n\n // const facebookLogin = async(req,res) => {\n // await axios({\n // method :\"GET\",\n // url :\"/facebook\",\n // headers : {\n // Authorization : 'Bearer ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJoaGFsYmVydEBsaW9uLmxtdS5lZHUiLCJpYXQiOjE2MzUzMTgwODgsImV4cCI6MTYzNTQwNDQ4OH0.V5o41eE6FuU4NflG2HWXSYAiIMjOykoHfTzUnETTye0'\n // }\n // // headers : {\n // // Authorization : 'Bearer ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJoaGFsYmVydEBsaW9uLmxtdS5lZHUiLCJpYXQiOjE2MzUzMTgwODgsImV4cCI6MTYzNTQwNDQ4OH0.V5o41eE6FuU4NflG2HWXSYAiIMjOykoHfTzUnETTye0'\n // // }\n // })\n // }\n const responseFacebook = (response) => {\n Axios({\n method: \"POST\",\n url: \"/v1/customerauth/facebook\",\n data: {\n accessToken: response.accessToken,\n userID: response.userID,\n },\n }).then((response) => {\n console.log(response);\n });\n };\n\n return (\n
\n

Welcome to Happy Shoes portal

\n
\n );\n}\nexport default Dashboard;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Table,\n TableRow,\n TableCell,\n TablePagination,\n TableSortLabel,\n makeStyles,\n TableHead,\n TableContainer,\n TableFooter,\n Paper,\n} from \"@material-ui/core\";\n\nimport { withStyles } from \"@material-ui/core/styles\";\n\nconst StyledTableCell = withStyles(() => ({\n root: {\n padding: 5,\n whiteSpace: \"nowrap\",\n },\n}))(TableCell);\n\nexport default function useTable(records, headCells, filterFn, noPagination) {\n const useStyles = makeStyles((theme) => ({\n table: {\n marginTop: theme.spacing(3),\n \"& thead th\": {\n fontWeight: \"600\",\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.primary.light,\n },\n \"& tbody td\": {\n fontWeight: \"300\",\n },\n \"& tbody tr:hover\": {\n backgroundColor: \"#fffbf2\",\n cursor: \"pointer\",\n },\n },\n root: {\n width: \"100%\",\n },\n container: {\n maxHeight: !noPagination ? \"50vh\" : null,\n },\n }));\n\n const classes = useStyles();\n\n const [page, setPage] = useState(0);\n const pages = [noPagination ? 1000 : 5, 10, 25];\n const [rowsPerPage, setRowsPerPage] = useState(pages[page]);\n const [order, setOrder] = useState();\n const [orderBy, setOrderBy] = useState();\n\n const TblContainer = (props) => (\n // \n \n {props.children}
\n
\n //
\n );\n\n const TblHead = ({ styles }) => {\n const handleSortRequest = (cellId) => {\n const isAsc = orderBy === cellId && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(cellId);\n };\n\n return (\n \n \n {headCells.map((headCell) => (\n \n {/*If disable sorting is true, so the headerCell can't be sorted and filtered */}\n {headCell.disableSorting ? (\n headCell.label\n ) : (\n {\n handleSortRequest(headCell.id);\n }}\n >\n {headCell.label}\n \n )}\n \n ))}\n \n \n );\n };\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (event) => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n const TblPagination = () => (\n handleChangePage(event, newPage)}\n onChangeRowsPerPage={(event) => handleChangeRowsPerPage(event)}\n />\n );\n\n function stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n //comparator(a[0],b[0]) means that it compares the records\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n }\n //a[1],b[1] indicates the created index\n return a[1] - b[1];\n });\n //el[0] only because we only want the records (without the index)\n return stabilizedThis.map((el) => el[0]);\n }\n /**\n *\n * @param {*} order indicates the ordering type (either asc or desc)\n * @param {*} orderBy indicates the what headCell is being sorted\n * @returns either -1 or 1\n */\n function getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n }\n /**\n *\n * @param {*} a comparator variable\n * @param {*} b comparator variable\n * @param {*} orderBy the cellId\n * @returns integer of sorting\n */\n function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n\n //It carries all the records\n /**\n *\n * @returns array of records after Paging and Sorting\n */\n const recordsAfterPagingAndSorting = () => {\n return stableSort(\n filterFn.fn(records),\n getComparator(order, orderBy)\n ).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);\n };\n\n useEffect(() => {\n setPage(0);\n }, [records]);\n\n return {\n TblContainer,\n TblHead,\n TblPagination,\n TableFooter,\n recordsAfterPagingAndSorting,\n styledTableCell: StyledTableCell,\n };\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport Axios from 'axios'\nimport '../styles/global.css'\nimport Paper from '@material-ui/core/Paper'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableRow from '@material-ui/core/TableRow';\nimport { makeStyles, Grid, Toolbar, InputAdornment } from '@material-ui/core'\nimport Modal from 'react-modal'\nimport Controls from '../components/controls/Controls'\nimport {Form,useForm} from '../components/useForm'\nimport { baseUrl } from '../config/const'\nimport useTable from '../components/useTable'\nimport { Search } from '@material-ui/icons'\nimport CloseIcon from '@material-ui/icons/Close';\nimport {EditOutlined,DeleteOutline} from '@material-ui/icons';\nimport axios from 'axios'\nimport { AuthContext } from '../AppContext'\n\n\nconst modalStyles = {\n content : {\n top : '50%',\n left : '50%',\n right : 'auto',\n bottom : 'auto',\n marginRight : '-50%',\n transform : 'translate(-50%, -50%)',\n }\n ,overlay:{zindex : 1000},\n\n };\n\nconst useTableStyles = makeStyles({\n root: {\n width:'100%',\n },\n container : {\n maxHeight : 780,\n },\n})\n\nconst headCells = [\n {id: 'name',label:'Name',disableSorting: true},\n {id: 'phone',label:'Phone',disableSorting: true},\n {id: 'email',label:'Email',disableSorting: true},\n {id: 'address',label:'Address',disableSorting: true},\n {id: 'contact',label:'Contact',disableSorting: true},\n {id: 'actions',label:'Actions',disableSorting: true}\n]\n\nexport function EditSupplier({item}){\n const [openPopup,setOpenPopup] = useState(false)\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n\n const initialValues = {\n name : item.name,\n phone : item.phone,\n email : item.email,\n address : item.address,\n contact : item.contact,\n }\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors }\n if('name' in fieldValues){\n temp.name = fieldValues.name.length !== 0 ? \"\" : \"company name must be filled out\"\n }\n if('phone' in fieldValues){\n temp.phone = fieldValues.phone ? \"\" : \"phone number must be filled out\"\n }\n if('email' in fieldValues){\n if(fieldValues.email.length !== 0){\n if(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(fieldValues.email) === false){\n temp.email = 'invalid email format'\n }else {\n temp.email = ''\n }\n }else {\n temp.email = 'email must be filled out'\n }\n }\n if('address' in fieldValues){\n temp.address = fieldValues.address ? \"\" : \"business address is required\"\n }\n if('contact' in fieldValues){\n temp.contact = fieldValues.contact ? \"\" : \"contact person is required\"\n }\n setErrors({\n ...temp\n })\n if(fieldValues === values){\n return Object.values(temp).every(x => x === \"\")\n }\n }\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n } = useForm(initialValues, true, validate)\n\n const editSupplier = async (param) => {\n if(validate()){\n await axios.put(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/editSupplier/${param}` : \n `/editSupplier/${param}`,{\n name: values.name,\n phone : values.phone,\n email : values.email,\n address : values.address,\n contact : values.contact\n })\n .then((response) => {\n setNotify({\n isOpen : true,\n message : response.data.msg,\n type : 'success',\n location : \"/supplier/management\"\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message : err.response.data.msg,\n type : 'error',\n location : \"/supplier/management\"\n })\n })\n }\n }\n\n return (\n <>\n {\n setOpenPopup(true)\n }} >\n \n \n \n \n
\n \n \n
\n \n \n \n \n \n \n
\n
\n\n \n
\n \n \n \n \n
\n
\n\n
\n editSupplier(item.id)} />\n \n \n \n \n \n )\n}\n\nexport default function SupplierManagement(){\n const {state, dispatch} = useContext(AuthContext);\n const tableStyles = useTableStyles()\n const [suppliers,setSuppliers] = useState([])\n const [message,setMessage] = useState('')\n const [openModal,setOpenModal] = useState(false)\n\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n const [filterFn,setFilterFn] = useState({fn: items => {return items}})\n const [openPopup,setOpenPopup] = useState(false)\n const [confirmPopup,setConfirmPopup] = useState({isOpen:false,title:'',subtitle:''})\n\n const initialValues = {\n name : '',\n phone : '',\n email : '',\n address : '',\n contact : '',\n query : ''\n }\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors }\n if('name' in fieldValues){\n temp.name = fieldValues.name.length !== 0 ? \"\" : \"company name must be filled out\"\n }\n if('phone' in fieldValues){\n temp.phone = fieldValues.phone ? \"\" : \"phone number must be filled out\"\n }\n if('email' in fieldValues){\n if(fieldValues.email.length !== 0){\n if(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(fieldValues.email) === false){\n temp.email = 'invalid email format'\n }else {\n temp.email = ''\n }\n }else {\n temp.email = 'email must be filled out'\n }\n }\n if('address' in fieldValues){\n temp.address = fieldValues.address ? \"\" : \"business address is required\"\n }\n if('contact' in fieldValues){\n temp.contact = fieldValues.contact ? \"\" : \"contact person is required\"\n }\n setErrors({\n ...temp\n })\n if(fieldValues === values){\n return Object.values(temp).every(x => x === \"\")\n }\n }\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n checkboxSelected,\n handleCheckBoxInputChange,\n resetForm,\n } = useForm(initialValues,true,validate)\n /**\n * return results of uthe data from db\n * @param seForm helper method\n * @param records are headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting\n } = useTable(state.supplierList,headCells,filterFn)\n const getSuppliers = async () => {\n await Axios.get(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/getSupplier` : \n `/getSupplier`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n supplierList: response.data.suppliers\n }\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n type : 'error',\n message : err.response.data.msg,\n location : \"/supplier/management\"\n })\n })\n }\n\n const openAddNewSupplier = async(e) => {\n setOpenModal(!openModal)\n }\n\n /**\n * \n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target\n setFilterFn({\n fn: items => {\n if(target.value === ''){\n return items\n }else {\n return items.filter(x => x.name.includes(target.value))\n }\n }\n })\n }\n useEffect(() => {\n getSuppliers()\n },[])\n\n const addNewSupplier = async (e) => {\n e.preventDefault()\n if(validate()){\n Axios.post(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/addSupplier` : \n `/addSupplier`,{\n name: values.name,\n phone : values.phone,\n email : values.email,\n address : values.address,\n contact : values.contact\n })\n .then((response) => {\n setNotify({\n isOpen : true,\n message : response.data.msg,\n type : 'success',\n location : \"/supplier/management\"\n })\n resetForm()\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message : err.response.data.msg,\n type : 'error',\n location : \"/supplier/management\"\n })\n })\n }\n }\n\n const deleteSupplier = async (param) => {\n await Axios.delete(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/deleteSupplier/${param}` :\n `/deleteSupplier/${param}`\n )\n .then((response) => {\n setNotify({\n isOpen : true,\n message : response.data.msg,\n type : 'success',\n location : \"/supplier/management\"\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message : err.response.data.msg,\n type : 'error',\n location : \"/supplier/management\"\n })\n })\n }\n return (\n
\n

Supplier Management

\n {/**List of suppliers */} \n \n \n \n \n \n \n )\n }}\n \n onChange={handleSearch}\n placeholder=\"CARI KODE BARCODE...\" />\n\n \n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {item.name}\n {item.phone}\n {item.email}\n {item.address}\n {item.contact}\n \n \n {\n setConfirmPopup({\n isOpen : true,\n title : `Are you sure to delete supplier ${item.name}?`,\n subtitle :\"You can't undo the operation\",\n onConfirm : () => {deleteSupplier(item.id)}\n })\n }} >\n \n \n \n \n ))}\n \n \n \n \n \n {/*Modal for adding new supplier */}\n \n
Add New Supplier
\n
\n \n \n
\n \n \n \n \n \n \n
\n
\n\n \n
\n \n \n \n \n
\n
\n\n
\n \n setOpenModal(!openModal)} \n /> \n \n
\n \n \n\n \n
\n )\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Form, useForm } from \"../../components/useForm\";\nimport Controls from \"../../components/controls/Controls\";\nimport Axios from \"axios\";\nimport \"../../styles/global.css\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport {\n Grid,\n InputAdornment,\n Toolbar,\n makeStyles,\n Paper,\n} from \"@material-ui/core\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\n\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n pageContent: {\n marginBottom: \"40px\",\n },\n newButton: {},\n pageContentTitle: {\n marginBottom: \"10px\",\n },\n}));\n\nfunction Brand() {\n const { state, dispatch } = useContext(AuthContext);\n const headCells = [\n { id: \"id\", label: \"id\", minwidth: 80 },\n { id: \"name\", label: \"name\", minwidth: 120 },\n { id: \"supplier\", label: \"supplier\", minwidth: 120, disableSorting: true },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n\n const [suppliers, setSuppliers] = useState([]);\n //fn here is the parameter for the funciton, and the items carry the records\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const initialValues = {\n name: \"\",\n supplier: \"-\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"name\" in fieldValues) {\n temp.name = fieldValues.name ? \"\" : \"brand must be filled out\";\n }\n if (\"supplier\" in fieldValues) {\n temp.supplier =\n fieldValues.supplier !== \"-\" ? \"\" : \"Supplier has to be filled out\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const { values, setValues, errors, setErrors, handleInputChange, resetForm } =\n useForm(initialValues, true, validate);\n\n const getBrand = async () => {\n await Axios.get(`${baseUrl}/getBrand`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n brandList: response.data.brand,\n },\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n });\n });\n };\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblContainer, TblHead, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.brandList, headCells, filterFn);\n\n const getSuppliers = async () => {\n await Axios.get(`${baseUrl}/getSupplier`)\n .then((response) => {\n setSuppliers(response.data.suppliers);\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n });\n });\n };\n\n useEffect(() => {\n getBrand();\n getSuppliers();\n }, []);\n\n const addNewBrand = async (e) => {\n e.preventDefault();\n if (validate()) {\n await Axios.post(`${baseUrl}/addBrand`, {\n name: values.name,\n supplier: values.supplier,\n })\n .then((response) => {\n resetForm();\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n }\n };\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.name.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n\n const deleteItem = async (id) => {\n await Axios.delete(`${baseUrl}/remove/brand/${id}`)\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n setConfirmPopup({\n ...confirmPopup,\n isOpen: false,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n };\n\n const classes = useStyles();\n return (\n
\n
\n

Brand List

\n \n \n \n \n \n \n ),\n }}\n placeholder=\"Search any Brand Here\"\n onChange={handleSearch}\n />\n }\n className={classes.newButton}\n onClick={() => {\n setOpenPopup(true);\n }}\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((record) => (\n \n {record.id}\n {record.name}\n {record.supplier}\n \n {\n setConfirmPopup({\n isOpen: true,\n title: \"Are you sure to delete this item?\",\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteItem(record.id);\n },\n });\n }}\n >\n \n \n \n \n ))}\n \n \n \n \n
\n\n \n
\n \n \n
\n \n \n \n \n \n
\n
\n
\n
\n \n\n \n\n \n
\n );\n}\n\nfunction Category() {\n const { state, dispatch } = useContext(AuthContext);\n const headCells = [\n { id: \"id\", label: \"id\", minwidth: 80 },\n { id: \"name\", label: \"name\", minwidth: 120 },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const initialValues = {\n name: \"\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"name\" in fieldValues) {\n temp.name =\n fieldValues.name.length !== 0 ? \"\" : \"company name must be filled out\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n checkboxSelected,\n handleCheckBoxInputChange,\n resetForm,\n } = useForm(initialValues, true, validate);\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblContainer, TblHead, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.categoryList, headCells, filterFn);\n\n const getCategory = async () => {\n await Axios.get(`${baseUrl}/getCategory`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n categoryList: response.data.category,\n },\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n });\n });\n };\n\n useEffect(() => {\n getCategory();\n }, []);\n\n const addNewCategory = async (e) => {\n e.preventDefault();\n if (validate()) {\n const addCategory = await Axios.post(`${baseUrl}/addCategory`, {\n name: values.name,\n })\n .then((response) => {\n resetForm();\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n }\n };\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.name.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n const deleteItem = async (id) => {\n await Axios.delete(`${baseUrl}/remove/category/${id}`)\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n setConfirmPopup({\n ...confirmPopup,\n isOpen: false,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n };\n const classes = useStyles();\n\n return (\n
\n
\n

Category List

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"search category here...\"\n />\n }\n className={classes.newButton}\n onClick={() => {\n setOpenPopup(true);\n }}\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((record) => (\n \n {record.id}\n {record.name}\n \n {\n setConfirmPopup({\n isOpen: true,\n title: \"Are you sure to delete this item?\",\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteItem(record.id);\n },\n });\n }}\n >\n \n \n \n \n ))}\n \n \n \n \n
\n \n
\n \n \n
\n \n \n
\n \n
\n
\n
\n \n\n \n\n \n
\n );\n}\n\nfunction Color() {\n const { state, dispatch } = useContext(AuthContext);\n const headCells = [\n { id: \"id\", label: \"id\", minwidth: 80 },\n { id: \"name\", label: \"name\", minwidth: 120 },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const [openModal, setOpenModal] = useState(false);\n\n const initialValues = {\n name: \"\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"name\" in fieldValues) {\n temp.name =\n fieldValues.name.length !== 0 ? \"\" : \"company name must be filled out\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n checkboxSelected,\n handleCheckBoxInputChange,\n resetForm,\n } = useForm(initialValues, true, validate);\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblContainer, TblHead, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.colorList, headCells, filterFn);\n\n const getColor = async () => {\n const colors = await Axios.get(`${baseUrl}/getColor`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n colorList: response.data.color,\n },\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n });\n };\n\n useEffect(() => {\n getColor();\n }, []);\n\n const addNewColor = async (e) => {\n e.preventDefault();\n if (validate()) {\n const addColor = await Axios.post(`${baseUrl}/addColor`, {\n name: values.name,\n })\n .then((response) => {\n resetForm();\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n }\n };\n\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.name.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n const deleteItem = async (id) => {\n await Axios.delete(`${baseUrl}/remove/color/${id}`)\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n setConfirmPopup({\n ...confirmPopup,\n isOpen: false,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n };\n const classes = useStyles();\n\n return (\n
\n
\n

Color List

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"search color here...\"\n />\n }\n className={classes.newButton}\n onClick={() => {\n setOpenPopup(true);\n }}\n />\n \n\n \n \n \n {recordsAfterPagingAndSorting().map((record) => (\n \n {record.id}\n {record.name}\n \n {\n setConfirmPopup({\n isOpen: true,\n title: \"Are you sure to delete this item?\",\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteItem(record.id);\n },\n });\n }}\n >\n \n \n \n \n ))}\n \n \n \n \n
\n\n \n
\n \n \n
\n \n \n \n
\n
\n
\n
\n \n \n\n \n
\n );\n}\n\nfunction Department() {\n const { state, dispatch } = useContext(AuthContext);\n\n const headCells = [\n { id: \"id\", label: \"id\", minwidth: 80 },\n { id: \"name\", label: \"name\", minwidth: 120 },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const initialValues = {\n name: \"\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"name\" in fieldValues) {\n temp.name =\n fieldValues.name.length !== 0 ? \"\" : \"company name must be filled out\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n checkboxSelected,\n handleCheckBoxInputChange,\n resetForm,\n } = useForm(initialValues, true, validate);\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblContainer, TblHead, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.departmentList, headCells, filterFn);\n\n const getDepartment = async () => {\n await Axios.get(`${baseUrl}/getDepartment`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n departmentList: response.data.department,\n },\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n });\n });\n };\n\n const addNewDepartment = async (e) => {\n e.preventDefault();\n if (validate()) {\n const addDepartment = await Axios.post(`${baseUrl}/addDepartment`, {\n name: values.name,\n })\n .then((response) => {\n resetForm();\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n }\n };\n\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.name.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n const deleteItem = async (id) => {\n await Axios.delete(`${baseUrl}/remove/department/${id}`)\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/products/controlProducts\",\n });\n setConfirmPopup({\n ...confirmPopup,\n isOpen: false,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/products/controlProducts\",\n });\n });\n };\n useEffect(() => {\n getDepartment();\n }, []);\n\n const classes = useStyles();\n\n return (\n
\n
\n

Department List

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"search department here...\"\n />\n }\n className={classes.newButton}\n onClick={() => {\n setOpenPopup(true);\n }}\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((record) => (\n \n {record.id}\n {record.name}\n \n {\n setConfirmPopup({\n isOpen: true,\n title: \"Are you sure to delete this item?\",\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteItem(record.id);\n },\n });\n }}\n >\n \n \n \n \n ))}\n \n \n \n \n
\n \n
\n \n \n
\n \n \n
\n
\n
\n \n \n \n\n \n\n \n
\n );\n}\n\nexport default function ControlProduct() {\n const classes = useStyles();\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n return (\n
\n

Components

\n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n \n
\n );\n}\n","import React, { useState,useEffect } from 'react'\nimport { Grid, Paper,Toolbar,InputAdornment, TableBody, TableRow,TableCell, ListitemecondaryAction} from '@material-ui/core';\nimport '../../styles/global.css'\nimport EditOutlinedIcon from '@material-ui/icons/EditOutlined';\n\n\nexport default function DetailProduct({item}){\n const [images,setImages] = useState((item.images !== null || item.images === undefined) ? item.images : item.images = 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png')\n const [index,setIndex] = useState(0)\n\n const [property,setProperty] = useState(images[index])\n const limit = item.images.length - 1\n const nextSlide = () => {\n if(index < limit){\n setIndex(prev => prev + 1)\n }else if(index === limit){\n setIndex(0)\n }\n }\n const prevSlide = () => {\n if(index > 0){\n setIndex(prev => prev -1)\n }else if (index === 0){\n setIndex(limit)\n }\n }\n useEffect(() => {\n setProperty(images[index])\n },[index])\n return (\n <>\n \n \n \n
\n
\n \"\"/\n
\n
prevSlide()} disabled={item.images.length === 1} >❮
\n
nextSlide()} disabled={item.images.length === 1} >❯
\n
\n
\n\n \n
\n Brand : {item.brand}\n SKU : {item.sku}\n Name : {item.pname}\n Color : {item.color}\n Description : {item.description}\n Category : {item.category}\n Size: {item.size === null ? '-' : item.size.map((x) => (\n {x},\n ))}\n Material : {item.material}\n Supplier : {item.supplier}\n Quantity : {item.quantity}\n Price 1 : Rp {item.price1}\n Price 2 : Rp {item.price2}\n Price 3: Rp {item.price3}\n Price 4 : Rp {item.price4}\n Price BigSize : Rp {item.pricebs}\n Date in : {item.datein}\n Date Updated : {item.dateupdate}\n Status : {item.status}\n
\n
\n
\n
\n\n\n \n )\n}","import React,{useState} from 'react'\nimport CloseIcon from '@material-ui/icons/Close';\nimport Controls from '../../components/controls/Controls'\nimport Axios from 'axios'\nimport { baseUrl } from '../../config/const';\n\nexport default function ProductDeletion({productStatus,param,location}){\n const [confirmPopup,setConfirmPopup] = useState({isOpen:false,title:'',subtitle:''})\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n\n /**\n * \n * @param {*} sku indicates the param of the item\n */\n const deleteItem = async (param) => {\n await Axios.delete(\n process.env.NODE_ENV === 'production' ? \n `${baseUrl}/deleteProduct/${param}` :\n `/deleteProduct/${param}` \n )\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type : 'success',\n location : location\n })\n setConfirmPopup({\n ...confirmPopup,\n isOpen: false\n })\n })\n .catch((err) => {\n setNotify({\n message:err.response.data.msg,\n isOpen:true,\n type : 'error',\n location:location\n })\n })\n }\n return (\n <>\n {\n setConfirmPopup({\n isOpen:true,\n title :`Are you sure to delete ${param}?`,\n subtitle :\"You can't undo the operation\",\n onConfirm : () => { deleteItem(param)}\n })\n }}>\n \n \n\n \n \n \n )\n}","import React,{useState,useEffect} from 'react'\nimport EditOutlinedIcon from '@material-ui/icons/EditOutlined';\nimport Controls from '../../components/controls/Controls';\nimport { Form, useForm } from '../../components/useForm';\nimport { DeleteOutline } from '@material-ui/icons'\nimport Axios from 'axios'\nimport { Grid } from '@material-ui/core';\nimport { baseUrl } from '../../config/const';\n\nexport default function UpdateProduct({item,location}){\n const initialValues = {\n newImages : [],\n images : item.images === null ? [] : item.images,\n description: item.description,\n size : item.size === null ? [] : item.size,\n material: item.material,\n price1 : item.price3,\n price2 : item.price1,\n }\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors }\n var fileName = ''\n if('newImages' in fieldValues){\n if(fieldValues.newImages.length !== 0){\n [...fieldValues.newImages].map((file) => {\n fileName = file.name \n })\n if(fileName && fileName.indexOf(' ') >= 0){\n temp.newImages = \"file name shouldn't have spaces in between\"\n }\n else if(fieldValues.newImages.length > 5){\n temp.newImages = \"maximum images of 5\"\n }else{\n temp.newImages = \"\"\n }\n }\n }\n if('description' in fieldValues){\n temp.description = fieldValues.description ? \"\" : \"description is required\"\n }\n if('material' in fieldValues){\n temp.material = fieldValues.material ? \"\" : \"material should be filled out\"\n }\n if('size' in fieldValues){\n temp.size = fieldValues.size.length !== 0 ? \"\" : \"more than 1 size should be checked\"\n }\n if('price1' in fieldValues){\n temp.price1 = fieldValues.price1 ? \"\" : \"Harga 1 Nett harus diisi\"\n }\n if('price2' in fieldValues){\n temp.price2 = fieldValues.price2 ? \"\" : \"Harga 2 harus diisi\"\n }\n setErrors({\n ...temp\n })\n if(fieldValues === values){\n return Object.values(temp).every(x => x === \"\")\n }\n }\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n } = useForm(initialValues, true, validate)\n\n const [openPopup,setOpenPopup] = useState(false)\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n\n const formData = new FormData()\n for(const key of Object.keys(values.newImages)){\n formData.append('newImages',values.newImages[key])\n }\n\n const updateProductInfo = (e) => {\n e.preventDefault()\n // if(validate()){\n Axios.put(\n process.env.NODE_ENV === 'production' ? \n `${baseUrl}/updateProductInfo/${item.sku}` : \n `/updateProductInfo/${item.sku}`,{\n description : values.description,\n size : values.size,\n material : values.material,\n price1: values.price1,\n price2 : values.price2\n })\n .then((response) => {\n setNotify({\n isOpen : true,\n message:response.data.msg,\n type : 'success',\n location : location\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message :err.response.data.msg,\n type : 'error',\n location : location\n })\n })\n // }\n }\n\n const updateProductImages = (e) => {\n e.preventDefault()\n // if(validate()){\n Axios.put(\n process.env.NODE_ENV === 'production' ? \n `${baseUrl}/updateProductImages/${item.sku}` : \n `/updateProductImages/${item.sku}`,formData)\n .then((response) => {\n setNotify({\n isOpen:true,\n message: response.data.msg,\n type:'success',\n location : location\n })\n })\n .catch((err) => {\n setNotify({\n isOpen:true,\n message : err.response.data.msg,\n type:'error',\n location : location\n })\n })\n // } \n }\n\n //Adding New Size\n const [addNewSize,setAddNewSize] = useState({\n value : '',\n validate : true,\n message : ''\n })\n\n const [hideDelete,setHideDelete] = useState({\n isHidden:true,\n color: 'red'\n })\n\n const [openSizePopup,setOpenSizePopup] = useState(false)\n const deleteNewSize = (item) => {\n setValues({\n ...values,\n size : (values.size).filter((x) => x !== item)\n \n })\n }\n\n const handleNewSize = async (e) => {\n setAddNewSize({\n ...addNewSize,\n value : e.target.value\n })\n }\n\n useEffect(() => {\n if((values.size).includes(addNewSize.value)){\n setAddNewSize({\n ...addNewSize,\n validate : false,\n message : 'Tidak boleh sama',\n })\n }\n else if(addNewSize.value === '' ){\n setAddNewSize({\n ...addNewSize,\n validate : false,\n message : 'Tidak boleh kosong'\n })\n }\n else {\n setAddNewSize({\n ...addNewSize,\n validate : true,\n message : ''\n })\n }\n },[addNewSize.value])\n \n const submitNewSize = (event,newSize) => {\n event.preventDefault()\n setValues({\n ...values,\n size : [\n ...values.size,\n newSize\n ]\n })\n setAddNewSize({\n ...addNewSize,\n value : ''\n })\n }\n return (\n <>\n setOpenPopup(true)}>\n \n \n\n {/**Product Updates */}\n \n
SKU : {item.sku}
\n \n \n
\n \n \n \n\n {values.newImages && [...values.newImages].map((file,index) => (\n
\n \n {file.name}\n
\n ))} \n \n \n
\n \n
\n\n \n \n\n \n {(values.size).map((item,index) => {\n return (\n \n )\n })}\n setOpenSizePopup(!openSizePopup)} />\n }\n color=\"secondary\"\n onClick={() => setHideDelete({\n ...hideDelete,\n isHidden:!hideDelete.isHidden\n })} /> \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n
\n \n
\n \n
\n
\n \n\n \n\n
{\n if(addNewSize.validate === true){\n submitNewSize(event,addNewSize.value)\n }else {\n event.preventDefault()\n }\n }}>\n \n \n \n \n \n\n \n \n )\n}","import React, { useState } from 'react'\nimport Axios from 'axios'\nimport Controls from '../../components/controls/Controls'\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport { baseUrl } from '../../config/const';\n\nexport default function ArchiveProduct({param,location}){\n const [confirmPopup,setConfirmPopup] = useState({isOpen:false,title:'',subtitle:''})\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n \n const archiveProduct = async(param) => {\n await Axios.post(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/archiveProduct/${param}` :\n `/archiveProduct/${param}` \n )\n .then((response) => {\n setNotify({\n isOpen : true,\n message : response.data.msg,\n type : 'success',\n location : location\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message : err.response.data.msg,\n type : 'error',\n location : location\n })\n })\n }\n return (\n <>\n \n setConfirmPopup({\n isOpen : true,\n title :`Yakin archive produk ini?`,\n subtitle : 'Anda bisa unarchive nanti',\n onConfirm : () => {archiveProduct(param)}\n }\n )}>\n \n \n \n\n \n \n )\n}","import axios from \"axios\";\nimport { baseUrl } from \"../../../config/const\";\n\nexport async function getFormInfo(setFilteringKeys) {\n try {\n const { data } = await axios.get(`${baseUrl}/getFormInfo`);\n\n setFilteringKeys({\n departments: data.results.department,\n categories: data.results.category,\n });\n } catch (e) {\n console.error(e);\n }\n}\n","import React, { useState, useEffect } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport axios from \"axios\";\nimport { EditOutlined, DeleteOutline } from \"@material-ui/icons\";\nimport { Form, useForm } from \"../../components/useForm\";\nimport { Grid } from \"@material-ui/core\";\nimport { baseUrl } from \"../../config/const\";\n\nexport default function ProductCompletion({ item, location }) {\n const [formInfo, setFormInfo] = useState({\n brand: [],\n color: [],\n department: [],\n category: [],\n supplier: [],\n });\n /**\n *\n * @param {*} e indicates the event of getting form's component information\n */\n const getFormInfo = async (e) => {\n await axios\n .get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getFormInfo`\n : `/getFormInfo`\n )\n .then((response) => {\n setFormInfo({\n ...formInfo,\n brand: response.data.results.brand,\n color: response.data.results.color,\n department: response.data.results.department,\n category: response.data.results.category,\n supplier: response.data.results.supplier,\n });\n });\n };\n\n const [iv, setIv] = useState({\n brand: 0,\n });\n\n useEffect(() => {\n getFormInfo().then(() => {\n setIv({\n ...iv,\n brand: 18,\n });\n });\n }, []);\n\n console.log(iv.brand);\n const initialValues = {\n images: [],\n brand: item.brand !== \"-\" ? item.brandid : item.brand,\n department: item.department !== \"-\" ? item.departmentid : item.department,\n category: item.category !== \"-\" ? item.categoryid : item.category,\n color: item.color !== \"-\" ? item.colorid : item.color,\n description: item.description,\n material: item.material,\n supplier: item.supplier,\n size: item.size === null ? [] : item.size,\n pgol: \"-\",\n price4: \"\",\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n if (\"pgol\" in fieldValues) {\n temp.pgol =\n fieldValues.pgol === \"-\" || fieldValues.pgol.length === 0\n ? \"Golongan produk harus diisi\"\n : \"\";\n }\n if (\"brand\" in fieldValues) {\n temp.brand =\n fieldValues.brand === \"-\" || fieldValues.brand.length === 0\n ? \"Brand harus diisi diisi\"\n : \"\";\n }\n if (\"category\" in fieldValues) {\n temp.category =\n fieldValues.category === \"-\" || fieldValues.category.length === 0\n ? \"Kategori produk harus diisi\"\n : \"\";\n }\n if (\"description\" in fieldValues) {\n temp.description = fieldValues.description\n ? \"\"\n : \"Deskripsi barang harus diisi\";\n }\n if (\"department\" in fieldValues) {\n temp.department =\n fieldValues.department === \"-\" || fieldValues.department.length === 0\n ? \"Department produk harus diisi diisi\"\n : \"\";\n }\n if (\"size\" in fieldValues) {\n if (fieldValues.size.length === 0) {\n temp.size = \"Size cannot be empty\";\n }\n // else if(fieldValues.size.length > 7){\n // temp.size = \"Max of 7 different Size\"\n // }\n else {\n temp.size = \"\";\n }\n }\n if (\"price4\" in fieldValues) {\n if (values.pgol !== \"NORMAL\") {\n temp.price4 = fieldValues.price4 ? \"\" : \"Harga Nett harus diisi\";\n }\n }\n if (\"supplier\" in fieldValues) {\n temp.supplier =\n fieldValues.supplier === \"-\" || fieldValues.supplier.length === 0\n ? \"Supplier harus diisi diisi\"\n : \"\";\n }\n if (\"material\" in fieldValues) {\n temp.material = fieldValues.material ? \"\" : \"Material barang harus diisi\";\n }\n if (\"color\" in fieldValues) {\n temp.color =\n fieldValues.color === \"-\" || fieldValues.color.length === 0\n ? \"Warna produk harus diisi\"\n : \"\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const formData = new FormData();\n // for(const key of Object.keys(values.images)){\n // formData.append('images',values.images[key])\n // }\n formData.append(\n \"brand\",\n formInfo.brand.find((x) => x.name === values.brand)?.id\n );\n formData.append(\n \"category\",\n formInfo.category.find((x) => x.name === values.category)?.id\n );\n formData.append(\"description\", values.description);\n formData.append(\n \"department\",\n formInfo.department.find((x) => x.name === values.department)?.id\n );\n formData.append(\n \"supplier\",\n formInfo.supplier.find((x) => x.name === values.supplier)?.id\n );\n // formData.append('brand',values.brand)\n // formData.append('pname',values.pname)\n // formData.append('color',values.color)\n // formData.append('department',formInfo.department.find(x => x.name === values.department)?.id)\n // formData.append('department',values.department)\n // formData.append('category',values.category)\n // formData.append('supplier',values.supplier)\n for (const key of Object.keys(values.size)) {\n formData.append(\"size\", values.size[key]);\n }\n formData.append(\n \"color\",\n formInfo.color.find((x) => x.name === values.color)?.id\n );\n formData.append(\"material\", values.material);\n formData.append(\"pgol\", values.pgol);\n\n const onSubmit = (e) => {\n e.preventDefault();\n if (validate()) {\n axios\n .put(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/completeProduct/${item.sku}`\n : `/completeProduct/${item.sku}`,\n {\n brand:\n values.brand === \"Pollux\"\n ? formInfo.brand.find((x) => x.name === values.brand)?.id\n : values.brand,\n category: values.category,\n description: values.description,\n department: values.department,\n supplier: values.supplier,\n size: values.size,\n color: values.color,\n material: values.material,\n pgol: values.pgol,\n price4: values.price4,\n }\n )\n .then((response) => {\n setNotify({\n ...notify,\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: location,\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: location,\n });\n });\n }\n };\n\n //Adding New Size\n const [addNewSize, setAddNewSize] = useState({\n value: \"\",\n validate: true,\n message: \"\",\n });\n\n const [hideDelete, setHideDelete] = useState({\n isHidden: true,\n color: \"red\",\n });\n\n const [openSizePopup, setOpenSizePopup] = useState(false);\n const deleteNewSize = (item) => {\n setValues({\n ...values,\n size: values.size.filter((x) => x !== item),\n });\n };\n\n const handleNewSize = async (e) => {\n setAddNewSize({\n ...addNewSize,\n value: e.target.value,\n });\n };\n\n useEffect(() => {\n if (values.size.includes(addNewSize.value)) {\n setAddNewSize({\n ...addNewSize,\n validate: false,\n message: \"Tidak boleh sama\",\n });\n } else if (addNewSize.value === \"\") {\n setAddNewSize({\n ...addNewSize,\n validate: false,\n message: \"Tidak boleh kosong\",\n });\n } else {\n setAddNewSize({\n ...addNewSize,\n validate: true,\n message: \"\",\n });\n }\n }, [addNewSize.value]);\n\n const submitNewSize = (event, newSize) => {\n event.preventDefault();\n setValues({\n ...values,\n size: [...values.size, newSize],\n });\n setAddNewSize({\n ...addNewSize,\n value: \"\",\n });\n };\n\n const typeOptions = [\n { id: \"DISC\", name: \"Discount\" },\n { id: \"OB\", name: \"Obral\" },\n { id: \"BS\", name: \"Big Size\" },\n { id: \"NORMAL\", name: \"Harga Normal\" },\n ];\n return (\n <>\n setOpenPopup(true)}>\n \n \n\n \n
\n
\n SKU: {item.sku}
\n Product Name: {item.pname}\n
\n\n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n\n \n \n\n \n \n\n
\n \n \n \n
\n \n\n \n {values.size.map((item, index) => {\n return (\n \n \n {item}\n \n
\n
\n\n
\n \n
\n \n \n\n \n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport useTable from \"../components/useTable\";\nimport Axios from \"axios\";\nimport Controls from \"../components/controls/Controls\";\nimport {\n Paper,\n TableBody,\n TableCell,\n TableRow,\n Toolbar,\n InputAdornment,\n Grid,\n} from \"@material-ui/core\";\nimport { Search } from \"@material-ui/icons\";\nimport moment from \"moment\";\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\nimport { baseUrl } from \"../config/const\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { EditOutlined, DeleteOutline } from \"@material-ui/icons\";\nimport { useForm, Form } from \"../components/useForm\";\nimport {\n Radio,\n RadioGroup,\n FormLabel,\n FormControl,\n FormControlLabel,\n makeStyles,\n} from \"@material-ui/core\";\n\nexport function EditBanner({ item }) {\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n title: item.title,\n description: item.description,\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate =\n fieldValues.enddate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"description\" in fieldValues) {\n temp.description = fieldValues.description\n ? \"\"\n : \"Description shouldn't be empty\";\n }\n if (\"title\" in fieldValues) {\n temp.title = fieldValues.title ? \"\" : \"Ttile harus diisi\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const updateBanner = async (param) => {\n await Axios.put(`${baseUrl}/updateBanner/${param}`, {\n title: values.title,\n description: values.description,\n startdate: new Date(values.startdate).toLocaleDateString(),\n enddate: new Date(values.enddate).toLocaleDateString(),\n })\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/marketing/banner\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/banner\",\n });\n });\n };\n return (\n <>\n setOpenPopup(true)}>\n \n \n \n \n \n

Edit Banner Expiration date

\n
\n \n \n\n \n \n \n Untuk Gallery dan Thumbnail, Description akan ditampilkan pada\n web\n \n\n \n \n

\n Current Start Date: {moment(item.startdate).format(\"LL\")}\n

\n \n handleDatePicker(\"startdate\", date)}\n error={errors.startdate}\n />\n
{moment(values.startdate).format(\"LL\")}
\n \n \n

Current End Date: {moment(item.enddate).format(\"LL\")}

\n \n handleDatePicker(\"enddate\", date)}\n error={errors.enddate}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n \n
\n updateBanner(item.id)}\n />\n
\n \n \n \n );\n}\n\nexport default function BannerList({ records, getBanners }) {\n const headCells = [\n { id: \"code\", label: \"Code\", disableSorting: true },\n { id: \"title\", label: \"Title\", disableSorting: true },\n { id: \"status\", label: \"Status\", disableSorting: true },\n { id: \"type\", label: \"Type\", disableSorting: true },\n { id: \"startdate\", label: \"Start Date\" },\n { id: \"enddate\", label: \"End Date\" },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [bannerImage, setBannerImage] = useState({\n image: [],\n description: \"\",\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [selectedCategory, setSelectedCategory] = useState(\"all\");\n\n const useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n textAlign: \"left\",\n },\n title: {\n margin: \"0\",\n },\n }));\n\n const classes = useStyles();\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(records, headCells, filterFn);\n\n /**\n *\n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.title.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n\n const deleteBanner = async (param) => {\n await Axios.delete(`${baseUrl}/deleteBanner/${param}`)\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/marketing/banner\",\n });\n getBanners();\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/banner\",\n });\n });\n };\n\n return (\n
\n }\n />\n\n \n Filter Category\n {\n setSelectedCategory(e.target.value);\n }}\n >\n } label=\"All\" />\n } label=\"Banner\" />\n }\n label=\"Gallery\"\n />\n }\n label=\"Thumbnail\"\n />\n \n \n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"Search banner title here...\"\n />\n \n \n \n \n {recordsAfterPagingAndSorting()\n .filter((item) => {\n if (selectedCategory.toLowerCase() === \"all\") {\n return true;\n }\n return item.type === selectedCategory.toLowerCase();\n })\n .map((item) => (\n \n {\n setOpenPopup(true);\n setBannerImage({\n ...bannerImage,\n image: item.banner,\n description: item.description,\n });\n }}\n >\n {item.code}\n \n {item.title}\n \n {item.status}\n \n {item.type}\n\n {moment(item.startdate).format(\"LL\")}\n {moment(item.enddate).format(\"LL\")}\n \n \n {\n setConfirmPopup({\n isOpen: true,\n title: `Are you sure to delete promotion/banner ${item.code}?`,\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteBanner(item.id);\n },\n });\n }}\n >\n \n \n \n \n ))}\n \n \n \n \n \n\n \n\n \n {bannerImage.image.map((item, index) => (\n \n ))}\n \n {bannerImage.description}\n \n
\n );\n}\n","import {\n Paper,\n TableBody,\n TableRow,\n Toolbar,\n InputAdornment,\n CircularProgress,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport useTable from \"../components/useTable\";\nimport { baseUrl } from \"../config/const\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircleRounded\";\nimport { Search } from \"@material-ui/icons\";\nimport { Form, useForm } from \"../components/useForm\";\nimport Modal from \"react-modal\";\nimport { AuthContext } from \"../AppContext\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\n\nconst modalStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n },\n overlay: { zindex: 1000 },\n};\n\nexport function CheckShipment({ item }) {\n const [openPopup, setOpenPopup] = useState(false);\n\n return (\n <>\n {\n e.stopPropagation();\n setOpenPopup(true);\n }}\n size=\"small\"\n style={{\n backgroundColor: \"transparent\",\n color: \"black\",\n position: \"relative\",\n zIndex: \"1000\",\n }}\n text=\"click for info\"\n startIcon={}\n />\n\n \n \n

{item.dateshipped}

\n\n \n

{item.shippingcompany}

\n\n \n

{item.waybillnumber}

\n \n \n );\n}\n\nexport default function OfflineSales() {\n const { state, dispatch } = useContext(AuthContext);\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [isLoading, setLoading] = useState(false);\n\n const history = useHistory();\n\n /**\n * menunggu API untuk mendapatkan offline sales record\n */\n const [salesRecords, setSalesRecords] = useState([]);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const initialValues = {\n resi: \"\",\n shippingcompany: \"\",\n etd: \"\",\n dateshipped: null,\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n if (\"resi\" in fieldValues) {\n temp.resi = fieldValues.resi ? \"\" : \"Nomor Resi harus diisi\";\n }\n if (\"shippingcompany\" in fieldValues) {\n temp.shippingcompany = fieldValues.shippingcompany\n ? \"\"\n : \"Kurir harus diisi\";\n }\n if (\"etd\" in fieldValues) {\n temp.etd = fieldValues.etd ? \"\" : \"Estimated Date Delivered harus diisi\";\n }\n if (\"dateshipped\" in fieldValues) {\n temp.dateshipped =\n fieldValues.dateshipped !== null ? \"\" : \"Tangga Pengiriman harus diisi\";\n }\n\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, errors, setErrors, handleInputChange, handleDatePicker } =\n useForm(initialValues, true, validate);\n\n const getListKasir = async () => {\n try {\n const { data: dataKasir } = await axios.get(\n `${baseUrl}/getPoinPenjualan`\n );\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n listKasir: dataKasir.listKasir,\n },\n });\n } catch (err) {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n }\n };\n\n const headCells = [\n { id: \"Klkode\", label: \"Kode Produk\", disableSorting: true },\n { id: \"Klfak\", label: \"Faktur\", disableSorting: true },\n { id: \"Klrp\", label: \"Nominal\", disableSorting: true },\n { id: \"Kltgklr\", label: \"Tanggal\", disableSorting: true },\n { id: \"Kasir\", label: \"Kasir\", disableSorting: true },\n { id: \"Klsal\", label: \"Klsal\", disableSorting: true },\n ];\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n date: new Date(Date.now()),\n toko: \"PA2M\",\n });\n const [faktur, setFaktur] = useState(\"\");\n const [filtered, setFiltered] = useState([]);\n\n const getAmount = () => {\n return filtered.reduce((a, c) => {\n return a + c.Klrp;\n }, 0);\n };\n\n const getTotalPs = () => {\n return filtered.reduce((a, c) => {\n return a + Number(c.Klqty);\n }, 0);\n };\n\n const getTotalPollux = () => {\n return filtered.reduce((a, c) => {\n if (c.Klkode.includes(\"WPO\") || c.Klkode.includes(\"PPO\")) {\n return a + Number(c.Klqty);\n }\n return a;\n }, 0);\n };\n\n const getOnlineSalesRecords = async (currentDate) => {\n setLoading(true);\n\n const fullYear = currentDate.getFullYear();\n const month =\n currentDate.getMonth() + 1 >= 10\n ? currentDate.getMonth() + 1\n : `0${currentDate.getMonth() + 1}`;\n const date =\n currentDate.getDate() >= 10\n ? currentDate.getDate()\n : `0${currentDate.getDate()}`;\n\n await axios\n .get(\n `${baseUrl}/getPjKel?startdate=${`${fullYear}-${month}-${date}`}&enddate=${`${fullYear}-${month}-${date}`}&toko=${\n filteringContent.toko === \"-\" ? \"\" : filteringContent.toko\n }`\n )\n .then((response) => {\n setSalesRecords(response.data.records);\n setFiltered(response.data.records);\n setLoading(false);\n })\n .catch((error) => {\n setLoading(false);\n setNotify({\n isOpen: true,\n type: \"error\",\n message: error.response.data.msg,\n location: \"/sales/offline\",\n });\n });\n };\n\n function handleFilter() {\n let filteredDisplay = salesRecords; //state.vouchersClaimed\n\n if (faktur) {\n filteredDisplay = filteredDisplay.filter((item) => {\n return item.Klfak.includes(faktur);\n });\n }\n\n setFiltered(filteredDisplay);\n }\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n useEffect(() => {\n getOnlineSalesRecords(filteringContent.date);\n }, [filteringContent]); //eslint-disable-line\n\n useEffect(() => {\n if (salesRecords.length) {\n handleFilter();\n }\n }, [faktur]); //eslint-disable-line\n\n return (\n
\n

Offline Sales

\n \n {isLoading && filteringContent.toko !== \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n \n \n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFaktur(e.target.value);\n }}\n placeholder=\"CARI Nomor Faktur...\"\n />\n \n \n \n {\n handleDatePicker(\"enddate\", date);\n\n setFilteringContent({\n ...filteringContent,\n date,\n });\n }}\n />\n \n \n \n {\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => {\n const date = new Date(item.Kltgklr);\n\n return (\n \n {\n // handlePopUpOpen();\n // setInvoiceSelected(item.id);\n // }}\n >\n {item.Klkode}\n \n {item.Klfak}\n Rp {item.Klrp}\n {`${date.toLocaleDateString(\"en-GB\")}`}\n {item.Kasir}\n {item.Klsal}\n \n );\n })}\n \n \n
\n
\n Total Ps : {getTotalPs()}\n
\n
\n Total Pollux : {getTotalPollux()}\n
\n
\n Total Amount :{\" \"}\n {new Intl.NumberFormat(\"id-ID\", {\n style: \"currency\",\n currency: \"IDR\",\n }).format(getAmount())}\n
\n
\n \n \n\n \n\n \n \n );\n}\n\nconst dummySalesData = [\n {\n Klkode: \"WPOA187CRD1\",\n Klnama: \"POLLUX A187 CREAM\",\n Klfak: \"23011000008\",\n Kltgklr: \"2022-01-11\",\n Klgd: \"ROY\",\n Klqty: 1,\n Klrp: 200000,\n Komisi: 5000,\n },\n {\n Klkode: \"SACADAB59\",\n Klnama: \"ARDILES ADARA ABU\",\n Klfak: \"23011000001\",\n Kltgklr: \"2022-01-11\",\n Klgd: \"IJN\",\n Klqty: 1,\n Klrp: 150000,\n Komisi: 5000,\n },\n {\n Klkode: \"AABL008MD66\",\n Klnama: \"MECER L-008 MERAH MUDA [A\",\n Klfak: \"23011000002\",\n Kltgklr: \"2022-01-14\",\n Klgd: \"ABM\",\n Klqty: 1,\n Klrp: 300000,\n Komisi: 5000,\n },\n {\n Klkode: \"WPOCN20H77\",\n Klnama: \"POLLUX CN20 HITAM\",\n Klfak: \"23011000003\",\n Kltgklr: \"2022-01-15\",\n Klgd: \"IJN\",\n Klqty: 1,\n Klrp: 400000,\n Komisi: 5000,\n },\n {\n Klkode: \"BBGAQ11C55\",\n Klnama: \"BURGUNDY AQ11 COKLAT\",\n Klfak: \"23011000009\",\n Kltgklr: \"2022-01-19\",\n Klgd: \"ATM\",\n Klqty: 1,\n Klrp: 100000,\n Komisi: 5000,\n },\n];\n","import React, { useState } from \"react\";\nimport axios from \"axios\";\nimport authHeader from \"./auth.header\";\nimport { baseUrl } from \"../config/const\";\n\nclass AuthService {\n async getCurrentUser() {\n const user = axios.get(`${baseUrl}/verifyUser`);\n\n const data = (await user).data;\n return {\n username: data.user[0].username,\n role: data.user[0].role,\n email: data.user[0].email,\n accessToken: data.user[0].accessToken,\n };\n }\n}\n\nexport default new AuthService();\n","import React from \"react\";\nimport \"./styles/SummaryItem.css\"; //moved to head tag\n\nconst SummaryItem = ({\n productImage,\n productCode,\n productSize,\n productColor,\n productPrice,\n productQty,\n}) => {\n const totalPrice = productQty * productPrice;\n return (\n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n

{productCode}

\n

{productSize}

\n

{productColor}

\n
\n
\n

{`x${productQty}`}

\n
\n

{totalPrice}

\n
\n \n );\n};\n\nexport default SummaryItem;\n","import \"./styles/Summary.css\"; //moved to head tag\nimport React from \"react\";\nimport SummaryItem from \"./SummaryItem\";\n\nexport default function Summary({\n totalPrice,\n subtotalPrice,\n shippingFee,\n cart,\n}) {\n /*\n cart = {\n image, - harus ambil gambar dulu somehow\n code,\n size, \n price,\n qty\n }\n */\n\n return (\n
\n
\n

Ringkasan belanja

\n
\n
\n \n \n \n \n \n \n {cart.map((product, index) => {\n return (\n \n \n \n );\n })}\n \n \n \n \n \n \n
\n
\n \n \n \n

Total Product Price

\n \n \n

{subtotalPrice}

\n \n \n \n
\n
\n \n \n \n

Shipping Fee

\n \n \n

{shippingFee}

\n \n \n \n
\n
\n \n \n \n

Total Price

\n \n \n

{totalPrice}

\n \n \n \n
\n
\n \n \n \n \n
\n
\n );\n}\n","import Summary from \"./Summary\";\nimport React from \"react\";\nimport \"./styles/Invoice.css\"; // use head tag\n\nexport default function SalesDetails({\n shippingFee,\n cart,\n shippingAddress,\n invoice,\n totalPrice,\n subtotalPrice\n}) {\n\n\n\n return (\n // \n \n \n  \n \n
\n {/* */}\n \n {/* */}\n \n \n \n \n
\n \n
\n \n

Sales details from invoice :

\n

\n \n {invoice}\n \n

\n\n
\n
\n

\n Alamat Pengiriman\n

\n
\n
\n

\n {`${shippingAddress.firstname} ${\n shippingAddress.lastname || \"\"\n }`}\n

\n

{shippingAddress.address}

\n

{`${shippingAddress.city}, ${shippingAddress.state}, ${shippingAddress.zipcode}`}

\n

{shippingAddress.phone}

\n
\n
\n\n \n
\n \n \n\n {/* */}\n \n {/* */}\n
\n \n  \n \n \n );\n}\n","import {\n Paper,\n TableBody,\n TableRow,\n TableCell,\n Toolbar,\n InputAdornment,\n Grid,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport useTable from \"../components/useTable\";\nimport { baseUrl } from \"../config/const\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircleRounded\";\nimport CancelIcon from \"@material-ui/icons/CancelRounded\";\nimport { Search } from \"@material-ui/icons\";\nimport { Form, useForm } from \"../components/useForm\";\nimport authService from \"../services/auth.service\";\nimport Modal from \"react-modal\";\nimport SalesDetails from \"./SalesDetails\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\nimport { AuthContext } from \"../AppContext\";\n\nconst modalStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n },\n overlay: { zindex: 1000 },\n};\n\nexport function CheckShipment({ item }) {\n const [openPopup, setOpenPopup] = useState(false);\n\n return (\n <>\n {\n e.stopPropagation();\n setOpenPopup(true);\n }}\n size=\"small\"\n style={{\n backgroundColor: \"transparent\",\n color: \"black\",\n position: \"relative\",\n zIndex: \"1000\",\n }}\n text=\"click for info\"\n startIcon={}\n />\n\n {}}\n >\n \n

{new Date(item.dateshipped).toLocaleDateString()}

\n\n \n

{item.shippingcompany}

\n\n \n

{item.waybillnumber}

\n \n \n );\n}\n\nexport default function OnlineSales() {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const history = useHistory();\n const { state } = useContext(AuthContext);\n\n const [salesRecords, setSalesRecords] = useState([]);\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const [invoiceSelected, setInvoiceSelected] = useState(\"\");\n const [productSales, setProductSales] = useState([]);\n const [transactionInfo, setTransactionInfo] = useState({});\n\n const [completeShippingModal, setCompleteShippingModal] = useState({\n isOpen: false,\n item: null,\n });\n\n const [confirmOrderDeliveredPopup, setConfirmOrderDeliveredPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const [currentActiveUser, setCurrentActiveUser] = useState({\n username: \"\",\n role: \"\",\n email: \"\",\n });\n\n function handlePopUpOpen() {\n setOpenPopup(!openPopup);\n }\n\n const initialValues = {\n resi: \"\",\n shippingcompany: \"\",\n etd: \"\",\n dateshipped: null,\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n if (\"resi\" in fieldValues) {\n temp.resi = fieldValues.resi ? \"\" : \"Nomor Resi harus diisi\";\n }\n if (\"shippingcompany\" in fieldValues) {\n temp.shippingcompany = fieldValues.shippingcompany\n ? \"\"\n : \"Kurir harus diisi\";\n }\n if (\"etd\" in fieldValues) {\n temp.etd = fieldValues.etd ? \"\" : \"Estimated Date Delivered harus diisi\";\n }\n if (\"dateshipped\" in fieldValues) {\n temp.dateshipped =\n fieldValues.dateshipped !== null ? \"\" : \"Tangga Pengiriman harus diisi\";\n }\n\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n } = useForm(initialValues, true, validate);\n\n const getOnlineSalesRecords = async () => {\n await axios\n .get(`${baseUrl}/getTransactions`)\n .then((response) => {\n setSalesRecords(response.data.records);\n })\n .catch((error) => {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: error.response.data.msg,\n location: \"/sales/online\",\n });\n });\n };\n\n const headCells = [\n { id: \"invoiceid\", label: \"Invoice\", disableSorting: true },\n { id: \"date\", label: \"Date\" },\n { id: \"amount\", label: \"Amount\", disableSorting: true },\n { id: \"type\", label: \"Tempat Belanja\", disableSorting: true },\n { id: \"confirmed\", label: \"Confirmed\", disableSorting: true },\n { id: \"shipped\", label: \"Shipped\", disableSorting: true },\n { id: \"delivered\", label: \"Delivered\", disableSorting: true },\n { id: \"completed\", label: \"Completed\", disableSorting: true },\n ];\n\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(salesRecords, headCells, filterFn);\n\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.id.includes(target.value));\n }\n },\n });\n };\n\n const confirmTransactionProducts = async (invoiceid) => {\n await axios\n .post(`${baseUrl}/confirmTransactionProducts`, {\n invoiceid: invoiceid,\n })\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/sales/online\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/sales/online\",\n });\n });\n };\n\n async function getProductSales(invoiceid, setTransactionStatus) {\n try {\n const { data } = await axios.get(\n `${baseUrl}/getProductSales/${invoiceid}`\n );\n\n setTransactionStatus(data.records);\n } catch (e) {\n console.error(e);\n }\n }\n\n async function getTransactionInfo(invoiceid, setTransactionInfo) {\n try {\n const { data } = await axios.get(\n `${baseUrl}/getTransactionInfo/${invoiceid}`\n );\n setTransactionInfo(data.records[0]);\n } catch (e) {\n console.error(e);\n }\n }\n\n const completeShipping = async (item) => {\n if (validate()) {\n await axios\n .post(`${baseUrl}/confirmShipping/${item?.id}`, {\n waybillNumber: values.resi,\n dateshipped: new Date(values.dateshipped).toLocaleDateString(),\n shippingcompany: values.shippingcompany,\n etd: values.etd,\n customeremail: item?.customercontact,\n })\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/sales/online\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"sales/online\",\n });\n });\n }\n };\n\n const setOrderDelivered = async (item) => {\n await axios\n .put(`${baseUrl}/setOrderDelivered/${item?.id}`)\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/sales/online\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/sales/online\",\n });\n });\n };\n\n useEffect(() => {\n getOnlineSalesRecords();\n }, []);\n\n useEffect(() => {\n if (openPopup) {\n getProductSales(invoiceSelected, setProductSales);\n getTransactionInfo(invoiceSelected, setTransactionInfo);\n }\n }, [openPopup]);\n\n return (\n
\n {}}\n >\n {productSales.length && JSON.stringify(transactionInfo) !== \"{}\" ? (\n \n ) : null}\n \n\n

Online Sales HappyStore.id

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"CARI Nomor Invoice...\"\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {\n handlePopUpOpen();\n setInvoiceSelected(item.id);\n }}\n >\n {item.id}\n \n \n {item.date.substr(0, item.date.indexOf(\"T\"))}\n \n Rp {item.subtotal}\n {item.type}\n \n {String(item.confirmed) === \"true\" ? (\n \n ) : (\n
\n }\n onClick={() =>\n setConfirmPopup({\n ...confirmPopup,\n isOpen: true,\n title: `Confirm Products of ${item.id}?`,\n subtitle:\n \"Tidak bisa mengganti status konfirmasi transaksi lagi\",\n onConfirm: () => {\n confirmTransactionProducts(item.id);\n },\n })\n }\n style={{\n backgroundColor: \"hsla(41, 96%, 50%, 1)\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n }}\n />\n
\n )}\n
\n \n {String(item.shipped) === \"true\" ? (\n
\n \n
\n ) : (\n
\n }\n text=\"shipped ?\"\n style={{\n backgroundColor: \"hsla(41, 96%, 50%, 1)\",\n fontWeight: \"bold\",\n color: \"white\",\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n setCompleteShippingModal({\n isOpen: true,\n item: item,\n })\n }\n />\n
\n )}\n
\n \n {String(item.delivered) === \"true\" ? (\n
\n \n
\n ) : (\n
\n }\n text=\"delivered?\"\n style={{\n backgroundColor: \"hsla(41, 96%, 50%, 1)\",\n fontWeight: \"bold\",\n color: \"white\",\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n setConfirmOrderDeliveredPopup({\n ...confirmOrderDeliveredPopup,\n isOpen: true,\n title: `Apakah order ${item.id} sudah terkirim?`,\n subtitle:\n \"Tidak bisa mengganti status pengiriman lagi\",\n onConfirm: () => {\n setOrderDelivered(item);\n },\n })\n }\n />\n
\n )}\n {/* // */}\n
\n \n {String(item.completed) === \"true\" ? (\n \n ) : (\n \n )}\n \n \n ))}\n
\n
\n \n
\n\n \n\n \n\n \n\n \n
\n Complete Shipping Info of Invoice {completeShippingModal.item?.id}\n
\n
\n
\n \n \n\n \n handleDatePicker(\"dateshipped\", date)}\n error={errors.dateshipped}\n />\n\n \n \n\n \n \n
\n\n
\n completeShipping(completeShippingModal.item)}\n />\n setCompleteShippingModal(!completeShippingModal)}\n />\n
\n
\n
\n
\n );\n}\n","import React,{useState} from 'react'\nimport Axios from 'axios'\nimport UnarchiveIcon from '@material-ui/icons/Unarchive';\nimport Controls from '../../components/controls/Controls';\nimport { baseUrl } from '../../config/const';\n\nexport default function UnarchiveProduct({param,location}){\n const [notify,setNotify] = useState({isOpen:false,message:'',type:'',location:''})\n const [confirmPopup,setConfirmPopup] = useState({isOpen:false,title:'',subtitle:''})\n\n const unarchiveProduct = async(param) => {\n await Axios.post(process.env.NODE_ENV === 'production' ? \n `${baseUrl}/unarchiveProduct/${param}` :\n `/unarchiveProduct/${param}` \n )\n .then((response) => {\n setNotify({\n isOpen : true,\n message : response.data.msg,\n type : 'success',\n location : location\n })\n })\n .catch((err) => {\n setNotify({\n isOpen : true,\n message : err.response.data.msg,\n type :'error',\n location : location\n })\n })\n }\n\n return (\n <>\n \n setConfirmPopup({\n isOpen : true,\n title :`Yakin unarchive produk ini?`,\n subtitle : 'Unarchived produk bisa ditemukan lagi di completed product list',\n onConfirm : () => {unarchiveProduct(param)}\n }\n )} >\n \n \n \n \n\n \n \n )\n}","import {\n Grid,\n InputAdornment,\n Paper,\n TableCell,\n TableRow,\n Toolbar,\n FormControlLabel,\n Checkbox,\n} from \"@material-ui/core\";\n\nimport React, { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { Form, useForm } from \"../../components/useForm\";\nimport Button from \"../../components/controls/button\";\nimport { AuthContext } from \"../../AppContext\";\nimport { getFormInfo } from \"./helper/promoprice\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport function ManagePromoPrice({ records }) {\n const [openPopup, setOpenPopup] = useState(false);\n const [promotions, setPromotions] = useState([]);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n promotions: \"-\",\n type: \"-\",\n discount: \"\",\n newPrice: \"\",\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"type\" in fieldValues) {\n temp.type = fieldValues.type !== \"-\" ? \"\" : \"Tipe promo harus dipilih\";\n }\n if (\"discount\" in fieldValues) {\n if (values.type === \"disc\") {\n temp.discount =\n fieldValues.discount !== \"\" ? \"\" : \"Discount harus diisi\";\n }\n }\n if (\"newPrice\" in fieldValues) {\n if (values.type === \"ob\") {\n temp.newPrice =\n fieldValues.newPrice !== \"\" ? \"\" : \"Harga baru harus diisi\";\n }\n }\n if (\"promotions\" in fieldValues) {\n if (values.type !== \"NORMAL\") {\n temp.promotions =\n fieldValues.promotions !== \"-\" ? \"\" : \"Jenis promo harus dipilih\";\n } else {\n temp.promotions = \"\";\n }\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, setValues, errors, setErrors, handleInputChange, resetForm } =\n useForm(initialValues, true, validate);\n\n const getAllPromotions = async () => {\n await axios\n .get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getAllPromotions`\n : \"/getAllPromotions\"\n )\n .then((response) => {\n setPromotions(response.data.records);\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n console.log(promotions);\n useEffect(() => {\n getAllPromotions();\n }, []);\n\n const typeOptions = [\n { id: \"DISC\", name: \"Discount\" },\n { id: \"OB\", name: \"Obral\" },\n { id: \"NORMAL\", name: \"Balik ke Harga Normal\" },\n ];\n\n const managePromotionPrice = async () => {\n if (validate()) {\n await axios\n .post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/managePromotionProductPrice`\n : \"/managePromotionProductPrice\",\n {\n records: records,\n promotions: values.promotions,\n type: values.type,\n newPrice: values.newPrice,\n discount: values.discount,\n }\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/products/priceManagement\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/products/priceManagement\",\n });\n });\n }\n };\n\n return (\n
\n setOpenPopup(!openPopup)}\n text=\"Atur Harga Promo\"\n style={{\n backgroundColor:\n records.length === 0 ? \"hsl(0, 60%, 60%)\" : \"hsl(0, 74%, 40%)\",\n color: \"white\",\n width: \"100%\",\n }}\n />\n \n \n \n

\n Jumlah Produk: {records.length}\n

\n
\n {records.map((item, index) => (\n {item.sku} , \n ))}\n
\n
\n \n \n\n \n\n \n\n \n\n
\n \n \n
\n
\n \n \n
\n \n Harga Normal (setelah diskon 5% dari harga Barcode) \n
\n \n \n \n \n \n \n );\n}\n\nexport function SelectedProducts({ records, deleteSelectedProduct }) {\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"pname\", label: \"Product Name\", disableSorting: true },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(records, headCells, filterFn);\n\n return (\n
\n \n

Selected Products

\n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {item.sku}\n {item.pname}\n \n deleteSelectedProduct(item)}\n >\n \n \n \n \n ))}\n \n \n
\n
\n );\n}\n\nexport default function PromoPriceManagement() {\n const { state, dispatch } = useContext(AuthContext);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const headCells = [\n { id: \"actions\", label: \"\", disableSorting: true },\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"price3\", label: \"Harga Barcode\" },\n { id: \"price4\", label: \"harga Promo\" },\n { id: \"pgol\", label: \"Gol. Produk\", disableSorting: true },\n { id: \"currentpromo\", label: \"Current Promo\", disableSorting: true },\n { id: \"promostatus\", label: \"Promo Status\" },\n ];\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [filterContent, setFilterContent] = useState({\n departments: [],\n categories: [],\n });\n\n const [selectAll, setSelectAll] = useState(false);\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n search: \"\",\n department: \"-\",\n category: \"-\",\n });\n\n const [filtered, setFiltered] = useState([]);\n\n const [selectedProducts, setSelectedProducts] = useState([]);\n\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const initialValues = {\n department: \"-\",\n category: \"-\",\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate ? \"\" : \"Start Date shouldn't be empty\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, errors, setErrors, handleInputChange } = useForm(\n initialValues,\n true,\n validate\n );\n\n function handleFilter() {\n let filteredDisplay = state.promotedProductList;\n\n if (filteringContent.search) {\n // console.log(\"search filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n return item.sku.includes(filteringContent.search);\n });\n }\n\n if (filteringContent.department) {\n // console.log(\"date filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.department === \"-\") {\n return true;\n }\n return item.department === filteringContent.department;\n });\n }\n\n if (filteringContent.category) {\n // console.log(\"toko filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.category === \"-\") {\n return true;\n }\n return item.category === filteringContent.category;\n });\n }\n\n setFiltered(filteredDisplay);\n }\n\n const getCompleteProducts = async () => {\n await axios\n .get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getCompleteProducts`\n : `/getCompleteProducts`\n )\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n promotedProductList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n });\n };\n\n const selectProduct = async (item) => {\n setSelectedProducts((selectedProducts) => selectedProducts.concat(item));\n };\n const deleteSelectedProduct = async (item) => {\n setSelectedProducts((selectedProducts) =>\n selectedProducts.filter((x) => x !== item)\n );\n };\n\n useEffect(() => {\n getFormInfo(setFilterContent);\n }, []);\n\n useEffect(() => {\n getCompleteProducts();\n }, []);\n\n useEffect(() => {\n if (selectAll) {\n selectProduct(filtered);\n } else {\n setSelectedProducts([]);\n }\n }, [selectAll]);\n\n useEffect(() => {\n handleFilter();\n }, [filteringContent]); //eslint-disable-line\n\n return (\n
\n

Pengaturan Harga Promo

\n \n \n
\n \n

Choose Products

\n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n search: e.target.value,\n });\n }}\n placeholder=\"CARI KODE BARCODE\"\n />\n \n\n \n \n {\n // console.log(e)\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n department: e.target.value,\n });\n }}\n options={filterContent.departments.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n\n \n \n {\n // console.log(e)\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n category: e.target.value,\n });\n }}\n options={filterContent.categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n
\n {\n setSelectAll(!selectAll);\n }}\n checked={selectAll}\n />\n }\n label=\"Select All\"\n />\n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n \n selectProduct(item)}\n text=\"Pilih\"\n style={{\n backgroundColor: \"rgb(177, 27, 27)\",\n color: selectedProducts.includes(item)\n ? \"white\"\n : \"white\",\n }}\n />\n\n {/* selectProduct(item)}\n style={{backgroundColor:'lightblue',color:'black'}}>\n Pilih\n */}\n \n {item.sku}\n {/* {item.color} */}\n {/* {item.category} */}\n {item.price3}\n {item.price4}\n {item.pgol_label}\n {item.promo_code}\n {item.promostatus}\n \n ))}\n \n \n \n
\n \n \n \n
\n \n
\n
\n \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport Axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport Controls from \"../../components/controls/Controls\";\n\nexport default function DeletePromo({ param, location }) {\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const deletePromo = async (param) => {\n await Axios.delete(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/deletePromotion/${param}`\n : `/deletePromotion/${param}`\n )\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: location,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: location,\n });\n });\n };\n return (\n <>\n {\n setConfirmPopup({\n isOpen: true,\n title: `Are you sure to delete promo ${param}?`,\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deletePromo(param);\n },\n });\n }}\n >\n \n \n\n \n \n \n );\n}\n","import axios from \"axios\";\nimport React, { useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport { Form, useForm } from \"../../components/useForm\";\nimport { baseUrl } from \"../../config/const\";\nimport { EditOutlined, DeleteOutline } from \"@material-ui/icons\";\nimport { Grid } from \"@material-ui/core\";\nimport moment from \"moment\";\n\nexport default function UpdatePromo({ item, location }) {\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n startdate: null,\n enddate: null,\n };\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const updatePromo = async (param) => {\n await axios\n .put(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/updatePromotionDates/${param}`\n : `/updatePromotionDates/${param}`,\n {\n startdate: new Date(values.startdate).toLocaleDateString(),\n enddate: new Date(values.enddate).toLocaleDateString(),\n }\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: location,\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: location,\n });\n });\n };\n return (\n <>\n setOpenPopup(true)}>\n \n \n \n

Edit Promo {item.code} Description and Expiration date

\n\n \n \n

Current Start Date: {moment(item.startdate).format(\"LL\")}

\n \n handleDatePicker(\"startdate\", date)}\n error={errors.startdate}\n />\n
{moment(values.startdate).format(\"LL\")}
\n \n \n

Current End Date: {moment(item.enddate).format(\"LL\")}

\n \n handleDatePicker(\"enddate\", date)}\n error={errors.enddate}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n
\n \n **Kosongkan start date dan end date bila promo tidak ada jangka waktu\n \n
\n
\n updatePromo(item.code)}\n />\n
\n \n \n \n );\n}\n","import axios from \"axios\";\nimport React, { useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport { Form, useForm } from \"../../components/useForm\";\nimport { baseUrl } from \"../../config/const\";\nimport { EditOutlined, DeleteOutline } from \"@material-ui/icons\";\nimport { Grid } from \"@material-ui/core\";\nimport moment from \"moment\";\n\nexport default function UpdateVoucher({ item, location }) {\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n startdate: null,\n enddate: null,\n };\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const updateVoucher = async (param) => {\n await axios\n .put(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/updateVoucherDates/${param}`\n : `/updateVoucherDates/${param}`,\n {\n startdate: new Date(values.startdate).toLocaleDateString(),\n enddate: new Date(values.enddate).toLocaleDateString(),\n }\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: location,\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: location,\n });\n });\n };\n return (\n <>\n setOpenPopup(true)}>\n \n \n \n

Edit Voucher {item.code} Expiration date

\n\n \n \n

Current Start Date: {moment(item.startdate).format(\"LL\")}

\n \n handleDatePicker(\"startdate\", date)}\n error={errors.startdate}\n />\n
{moment(values.startdate).format(\"LL\")}
\n \n \n

Current End Date: {moment(item.enddate).format(\"LL\")}

\n \n handleDatePicker(\"enddate\", date)}\n error={errors.enddate}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n
\n \n **Kosongkan start date dan end date bila voucher tidak ada jangka\n waktu\n \n
\n
\n updateVoucher(item.code)}\n />\n
\n \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport Axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport Controls from \"../../components/controls/Controls\";\n\nexport default function DeleteVoucher({ param, location }) {\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const deleteVoucher = async (param) => {\n await Axios.delete(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/deleteVoucher/${param}`\n : `/deleteVoucher/${param}`\n )\n .then((response) => {\n setNotify({\n message: response.data.msg,\n isOpen: true,\n type: \"success\",\n location: location,\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: location,\n });\n });\n };\n return (\n <>\n {\n setConfirmPopup({\n isOpen: true,\n title: `Are you sure to delete voucher ${param}?`,\n subtitle: \"You can't undo the operation\",\n onConfirm: () => {\n deleteVoucher(param);\n },\n });\n }}\n >\n \n \n\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Form, useForm } from \"../components/useForm\";\nimport useTable from \"../components/useTable\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport {\n Grid,\n InputAdornment,\n Paper,\n TableBody,\n TableCell,\n TableRow,\n Switch,\n Typography,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport PostAddIcon from \"@material-ui/icons/PostAdd\";\nimport moment from \"moment\";\nimport { FormatColorReset, Search } from \"@material-ui/icons\";\nimport UpdateVoucher from \"./management/updateVoucher\";\nimport DeleteVoucher from \"./management/deleteVoucher\";\n\nexport function AddVoucher() {\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n code: \"\",\n images: [],\n name: \"\",\n type: \"-\",\n syarat: \"\",\n nominal: null,\n minimal: null,\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n var fileName = \"\";\n if (\"images\" in fieldValues) {\n if (fieldValues.images.length !== 0) {\n [...fieldValues.images].map((file) => {\n fileName = file.name;\n });\n if (fileName && fileName.indexOf(\" \") >= 0) {\n temp.images = \"File name shouldn't have spaces in between\";\n } else if (fieldValues.images.length > 4) {\n temp.images = \"Maximum of 4 banners/thumbnails in one upload\";\n } else if (fieldValues.images.length === 0) {\n temp.images = \"Banner/Thumbnails can't be null\";\n } else {\n temp.images = \"\";\n }\n }\n }\n if (\"code\" in fieldValues) {\n temp.code = fieldValues.code ? \"\" : \"Kode voucher harus diisi\";\n }\n if (\"name\" in fieldValues) {\n temp.name = fieldValues.name ? \"\" : \"Nama voucher harus diisi\";\n }\n if (\"syarat\" in fieldValues) {\n temp.syarat = fieldValues.syarat\n ? \"\"\n : \"Syarat dan Ketentuan Voucher harus diisi\";\n }\n if (\"nominal\" in fieldValues) {\n temp.nominal =\n fieldValues.nominal !== null\n ? \"\"\n : \"Nominal potongan voucher harus diisi\";\n }\n if (\"minimal\" in fieldValues) {\n temp.minimal =\n fieldValues.minimal !== null\n ? \"\"\n : \"Minimal pembelian voucher harus diisi\";\n }\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date harus diisi\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate !== null ? \"\" : \"End Date harus diisi\";\n }\n if (\"type\" in fieldValues) {\n temp.type = fieldValues.type !== \"-\" ? \"\" : \"Tipe banner harus dipilih\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const formData = new FormData();\n for (const key of Object.keys(values.images)) {\n formData.append(\"images\", values.images[key]);\n }\n formData.append(\"code\", values.code);\n formData.append(\"name\", values.name);\n formData.append(\"type\", values.type);\n\n formData.append(\"syarat\", values.syarat);\n formData.append(\"nominal\", values.nominal);\n formData.append(\"minimal\", values.minimal);\n\n formData.append(\"startdate\", new Date(values.startdate).toLocaleDateString());\n\n formData.append(\"enddate\", new Date(values.enddate).toLocaleDateString());\n\n const addNewVoucher = () => {\n axios\n .post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/addNewVoucher`\n : `/addNewVoucher`,\n formData\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/marketing/promotion\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n\n const voucherTypes = [\n { id: \"global\", name: \"Untuk Toko Offline dan Online\" },\n { id: \"online\", name: \"Hanya untuk toko online\" },\n { id: \"poin\", name: \"Hanya untuk Program Pengumpulan Poin\" },\n {\n id: \"forRegistered\",\n name: \"Hanya untuk yang sudah jadi member sebelumnya\",\n },\n ];\n\n return (\n
\n setOpenPopup(!openPopup)}>\n Tambah Voucher\n \n \n
\n \n \n \n \n {values.images &&\n [...values.images].map((file, index) => (\n \n
    \n
  • {file.name}
  • \n
\n
\n ))}\n\n \n \n\n \n \n\n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n handleDatePicker(\"startdate\", date)}\n error={errors.startdate}\n />\n
{moment(values.startdate).format(\"LL\")}
\n \n \n \n handleDatePicker(\"enddate\", date)}\n error={errors.enddate}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n
\n \n \n \n \n \n \n );\n}\n\nexport default function Vouchers() {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const headCells = [\n { id: \"name\", label: \"Nama\", disableSorting: true },\n { id: \"nominal\", label: \"Nominal\", disableSorting: true },\n { id: \"startdate\", label: \"Start Date\", disableSorting: true },\n { id: \"enddate\", label: \"End Date\", disableSorting: true },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n const [records, setRecords] = useState([]);\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n\n const [detailItem, setDetailItem] = useState({});\n\n const { TblHead, TblContainer, TblPagination, recordsAfterPagingAndSorting } =\n useTable(records, headCells, filterFn);\n\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.name.includes(target.value));\n }\n },\n });\n };\n\n const getAllVouchers = async (req, res) => {\n await axios\n .get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getAllVouchers`\n : `/getAllVouchers`\n )\n .then((response) => {\n setRecords(response.data.records);\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n\n const toggleQuickClaim = async (active, code) => {\n try {\n const { data } = await axios.put(`${baseUrl}/toggleQuickClaim`, null, {\n params: { active, code },\n });\n\n await getAllVouchers();\n\n setNotify({\n isOpen: true,\n message: data.msg,\n type: \"success\",\n location: \"/marketing/promotion\",\n });\n } catch (err) {\n console.error(err);\n\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n }\n };\n\n useEffect(() => {\n getAllVouchers();\n }, []);\n return (\n
\n \n

List Vouchers

\n\n \n \n \n
\n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"Cari Nama Voucher\"\n />\n \n \n \n \n \n {recordsAfterPagingAndSorting()\n .sort(\n (a, b) =>\n new Date(b.enddate).getTime() - new Date(a.enddate).getTime()\n )\n .map((item) => (\n \n {\n setOpenPopup(!openPopup);\n setDetailItem(item);\n }}\n >\n {item.name}\n \n Rp. {item.nominal}\n \n {new Date(item.startdate).toDateString()}\n \n {new Date(item.enddate).toDateString()}\n \n \n \n
\n quickClaim\n {\n toggleQuickClaim(!item.quickClaim, item.code);\n }}\n />\n
\n
\n
\n ))}\n
\n
\n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useState, useContext } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport useTable from \"../components/useTable\";\nimport Axios from \"axios\";\nimport {\n Grid,\n InputAdornment,\n Paper,\n TableBody,\n TableCell,\n TableRow,\n Toolbar,\n} from \"@material-ui/core\";\nimport { ComputerSharp, Search } from \"@material-ui/icons\";\nimport { baseUrl } from \"../config/const\";\nimport { useForm } from \"../components/useForm\";\nimport moment from \"moment\";\nimport DeletePromo from \"./management/deletePromo\";\nimport UpdatePromo from \"./management/updatePromo\";\nimport { AuthContext } from \"../AppContext\";\nimport Vouchers from \"./voucher\";\n\nimport { useTheme, useMediaQuery } from \"@material-ui/core\";\n\nexport function TambahPromo() {\n const [openPopup, setOpenPopup] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const initialValues = {\n code: \"\",\n type: \"-\",\n name: \"\",\n label: \"\",\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n if (\"code\" in fieldValues) {\n temp.code = fieldValues.code ? \"\" : \"Kode promo harus diisi\";\n }\n if (\"name\" in fieldValues) {\n temp.name = fieldValues.name ? \"\" : \"Nama promo harus diisi\";\n }\n if (\"label\" in fieldValues) {\n temp.label = fieldValues.label ? \"\" : \"Label promo harus diisi\";\n }\n if (\"type\" in fieldValues) {\n temp.type = fieldValues.type !== \"-\" ? \"\" : \"Tipe promo harus dipilih\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n const typeOptions = [\n { id: \"DISC\", name: \"Discount\" },\n { id: \"OB\", name: \"Obral\" },\n { id: \"NORMAL\", name: \"Harga Normal\" },\n ];\n const addNewPromotion = async (req, res) => {\n await Axios.post(`${baseUrl}/addNewPromotion`, {\n code: values.code,\n type: values.type,\n name: values.name,\n label: values.label,\n startdate: values.startdate\n ? new Date(values.startdate).toLocaleDateString()\n : null,\n enddate: values.enddate\n ? new Date(values.enddate).toLocaleDateString()\n : null,\n })\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/marketing/promotion\",\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n return (\n
\n setOpenPopup(!openPopup)}\n style={{ backgroundColor: \"rgb(177, 27, 27)\" }}\n text=\"Tambah Promo Baru\"\n />\n\n \n \n\n \n\n \n\n \n\n \n \n\n \n \n\n \n \n \n handleDatePicker(\"startdate\", date)}\n />\n
{moment(values.startdate).format(\"LL\")}
\n
\n \n \n handleDatePicker(\"enddate\", date)}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n
\n \n **Kosongkan start date dan end date bila promo tidak ada jangka waktu\n \n
\n
\n \n
\n \n \n \n );\n}\n\nexport function CheckProducts({ code }) {\n const [openPopup, setOpenPopup] = useState(false);\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"color\", label: \"Color\", disableSorting: true },\n { id: \"price3\", label: \"Harga Barcode\", disableSorting: true },\n { id: \"price4\", label: \"Harga Promo\", disableSorting: true },\n ];\n const [records, setRecords] = useState([]);\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const { TblHead, TblContainer, TblPagination, recordsAfterPagingAndSorting } =\n useTable(records, headCells, filterFn);\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.sku.includes(target.value));\n }\n },\n });\n };\n const getPromoProducts = async () => {\n await Axios.get(`${baseUrl}/getPromoProducts/${code}`)\n .then((response) => {\n setRecords(response.data.records);\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n return (\n
\n {\n setOpenPopup(!openPopup);\n getPromoProducts();\n }}\n />\n \n \n \n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {item.sku}\n {item.color}\n {/* {item.category} */}\n {item.price3}\n {item.price4}\n \n ))}\n \n \n \n \n
\n );\n}\n\nexport default function Promotions() {\n const { state, dispatch } = useContext(AuthContext);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const headCells = [\n { id: \"lihat\", label: \"\", disableSorting: true },\n { id: \"code\", label: \"Code\", disableSorting: true },\n { id: \"name\", label: \"Name\", disableSorting: true },\n { id: \"startdate\", label: \"Start Date\", disableSorting: true },\n { id: \"enddate\", label: \"End Date\", disableSorting: true },\n { id: \"type\", label: \"Type\", disableSorting: true },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const { TblHead, TblContainer, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.promotionList, headCells, filterFn);\n\n const getAllPromotions = async (req, res) => {\n await Axios.get(`${baseUrl}/getAllPromotions`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n promotionList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/promotion\",\n });\n });\n };\n\n useEffect(() => {\n getAllPromotions();\n }, []);\n return (\n
\n \n \n \n

List Promo

\n\n \n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n \n \n \n {item.code}\n {item.name}\n \n {item.startdate === null\n ? null\n : new Date(item.startdate).toDateString()}\n \n \n {item.enddate === null\n ? null\n : new Date(item.enddate).toDateString()}\n \n {item.type}\n \n \n \n \n \n ))}\n \n \n \n
\n
\n \n \n \n \n\n \n
\n );\n}\n","import axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\n\nexport async function getClaimedVouchers(dispatch, setNotify) {\n try {\n const { data } = await axios.get(`${baseUrl}/getClaimedVouchers`);\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n vouchersClaimed: data.records,\n },\n });\n\n const { data: dataKasir } = await axios.get(`${baseUrl}/getPoinPenjualan`);\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n listKasir: dataKasir.listKasir,\n },\n });\n } catch (err) {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n }\n}\n\nexport async function getPointsAdded(dispatch, setNotify) {\n try {\n const { data } = await axios.get(`${baseUrl}/getPoinPenjualan`);\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n pointsAdded: data.listPoinPenjualan,\n },\n });\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n listKasir: data.listKasir,\n },\n });\n } catch (err) {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n }\n}\n","import {\n Paper,\n TextField,\n Button,\n Card,\n Toolbar,\n IconButton,\n Input,\n useMediaQuery,\n useTheme,\n} from \"@material-ui/core\";\nimport { useContext, useEffect, useState , Fragment } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport { AuthContext } from \"../AppContext\";\nimport axios from \"axios\";\nimport { Add, Close } from \"@material-ui/icons\";\nimport https from \"https\";\nimport { CircularProgress } from \"@material-ui/core\";\n\nconst httpsAgent = new https.Agent({ rejectUnauthorized: false });\n\nconst variableCategory = [\n { id: \"firstname\", name: \"firstname\" },\n { id: \"email\", name: \"email\" },\n { id: \"custom\", name: \"custom\" },\n];\n\nconst tipeLangganan = [\n { key: \"W\", name: \"Wanita\" },\n { key: \"P\", name: \"Pria\" },\n { key: \"A\", name: \"Anak\" },\n { key: \"PO\", name: \"Pollux\" },\n { key: \"H\", name: \"Daily\" },\n { key: \"S\", name: \"Sports\" },\n { key: \"K\", name: \"Aksesoris\" },\n];\n\nconst Whatsapp = () => {\n const { state } = useContext(AuthContext);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [images, setImages] = useState({\n currentFile: undefined,\n previewImage: undefined,\n progress: 0,\n message: \"\",\n isError: false,\n imageInfos: [],\n });\n\n const [message, setMessage] = useState(\"\");\n const [category, setCategory] = useState({\n name: null,\n value: null,\n });\n\n const [toko, setToko] = useState({ name: \"\", members: [] });\n const [variables, setVariables] = useState([null]);\n const [langgananToko, setLanggananToko] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const [shareType, setShareType] = useState(\"member\");\n const [langgananTerpilih, setLanggananTerpilih] = useState({ name: \"\"});\n\n function selectFile(event) {\n event.preventDefault();\n let reader = new FileReader();\n let file = event.target.files[0];\n\n reader.onloadend = () => {\n setImages({\n ...images,\n currentFile: file,\n previewImage: reader.result,\n message: \"\",\n });\n };\n\n reader.readAsDataURL(file);\n }\n\n async function sendMessages() {\n try {\n const formData = new FormData();\n\n const members =\n shareType === \"member\" ? toko.members : langgananToko;\n\n formData.append(\"file\", images.currentFile);\n formData.append(\"message\", message);\n formData.append(\"members\", JSON.stringify(members));\n formData.append(\"variables\", JSON.stringify(variables));\n\n const { data } = await axios.post(\n `https://api.notoputrooffice.com/api/whatsapp-web/broadcast/${\n toko.name ? toko.name : null\n }`,\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n httpsAgent,\n }\n );\n\n setNotify({\n isOpen: true,\n message: data.msg,\n type: \"success\",\n location: \"/whatsapp/send-messages\",\n });\n } catch (e) {\n setNotify({\n isOpen: true,\n message: e.response.data.msg,\n type: \"error\",\n location: \"/whatsapp/send-messages\",\n });\n console.error(e);\n }\n }\n\n async function getStoreMembers() {\n const {\n data,\n } = await axios.get(\n `https://cashier-happystore.xyz.notoputrooffice.com/getStoreMembers/${toko.name}`\n );\n console.log(data.records)\n setToko({ ...toko, members: data.records.rows });\n }\n\n async function getLanggananToko(langgananType) {\n setLoading(true);\n const { data } = await axios.get(\n // URL ini diganti menjadi url/:toko/:segmentation n\n `https://cashier-happystore.xyz.notoputrooffice.com/getStoreLangganan/${toko.name}/${langgananType}`\n )\n if(data){\n setLanggananToko(data.hasil.rows)\n setLanggananTerpilih({name: langgananType.charAt(0).toUpperCase() + langgananType.slice(1)}) \n setLoading(false)\n }\n }\n\n useEffect(() => {\n\n getStoreMembers();\n\n }, [toko.name]); //eslint-disable-line\n\n return (\n
\n

Send Whatsapp Messages

\n \n {isLoading ? (\n \n
\n \n \n \n \n ) : null}\n\n \n }\n size=\"small\"\n color=\"primary\"\n onClick={() => {\n const latestVariables = [\n ...variables,\n {\n id: variables.length++,\n category: null,\n value: null,\n },\n ];\n\n setVariables(latestVariables);\n }}\n >\n Tambah Variable\n \n\n \n\n \n \n {\n setToko({ ...toko, name: e.target.value });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n otherStyle={{\n margin: 0,\n marginLeft: 10,\n marginRight: 10,\n }}\n style={{ minWidth: 120, padding: 0 }}\n />\n \n \n\n
\n
\n setShareType(\"member\")}\n >\n Member\n \n {toko.members.length && shareType === \"member\" ? (\n {`${toko.members.length} members ditemukan`}
\n ) : null}\n
\n\n setShareType(\"langganan\")}\n >\n Langganan\n \n \n\n {shareType === \"langganan\" && (\n
\n {tipeLangganan.map((langganan) => (\n
\n {\n setLanggananTerpilih({\n name: langganan.name\n });\n getLanggananToko((langganan.name).toLowerCase());\n }\n }\n >\n {langganan.name}\n \n { langganan.name === langgananTerpilih.name && shareType === 'langganan' ? (\n
\n {`${langgananToko.length} langganan ditemukan`}\n
\n ) : null}\n
\n ))}\n
\n )}\n\n {images.currentFile ? (\n \n {images.currentFile.name}\n \n ) : null}\n\n {images.previewImage && (\n \n \n \n )}\n\n {variables.map((variable, index) => {\n if (!variable || !index) {\n return null;\n }\n return (\n \n \n \n \n {\n const varCopy = [...variables];\n varCopy[variable.id].category = e.target.value;\n\n setVariables(varCopy);\n }}\n options={variableCategory}\n otherStyle={{\n margin: 0,\n marginLeft: 10,\n }}\n />\n \n\n {variable.category === \"custom\" && (\n {\n const varCopy = [...variables];\n varCopy[variable.id].value = e.target.value;\n\n setVariables(varCopy);\n }}\n />\n )}\n {\n const newVar = [...variables].filter((v, index) => {\n if (!index) {\n return false;\n }\n return variable.id !== v.id;\n });\n\n newVar.unshift(null);\n\n newVar.forEach((v, index) => {\n if (!index) {\n return;\n }\n\n v.id = index;\n });\n\n setVariables(newVar);\n }}\n >\n \n \n \n );\n })}\n\n {\n setMessage(e.target.value);\n }}\n rows={4}\n variant=\"outlined\"\n style={{ width: \"100%\", marginTop: 20 }}\n />\n \n \n \n \n \n \n );\n};\n\nexport default Whatsapp;\n","import { useContext, useEffect, useState } from \"react\";\nimport {\n Paper,\n Toolbar,\n InputAdornment,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport Controls from \"../components/controls/Controls\";\nimport { Search } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport { AuthContext } from \"../AppContext\";\nimport useTable from \"../components/useTable\";\nimport { TableBody, TableRow } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\n\nconst kategoriProduk = [\n { key: \"W\", name: \"Wanita\" },\n { key: \"P\", name: \"Pria\" },\n { key: \"A\", name: \"Anak\" },\n { key: \"PO\", name: \"Pollux\" },\n { key: \"H\", name: \"Harian\" },\n { key: \"S\", name: \"Sneakers\" },\n { key: \"K\", name: \"Aksesoris\" },\n];\n\nconst Wishlist = () => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [wishlists, setWishlists] = useState([]);\n const [selectedStore, setSelectedStore] = useState(\"\");\n const [selectedCategory, setSelectedCategory] = useState(\"\");\n const [search, setSearch] = useState(\"\");\n\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n\n const headCells = [\n { id: \"size\", label: \"Invoice\", disableSorting: true },\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"date\", label: \"Date\" },\n ];\n\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(wishlists, headCells, filterFn);\n\n const handleSearch = (e) => {\n let target = e.target;\n setSearch(target.value.toLowerCase());\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.sku.toLowerCase().includes(target.value.toLowerCase())\n );\n }\n },\n });\n };\n\n const getWishlist = async () => {\n const { data } = await axios.get(\n `https://cashier-happystore.xyz.notoputrooffice.com/getCustomerWishlist/${selectedStore}`\n );\n\n setWishlists(data.wishlist);\n };\n\n useEffect(() => {\n getWishlist();\n }, [selectedStore]);\n\n return (\n
\n

Wishlist

\n \n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n style={{ margin: 0, marginLeft: 10 }}\n placeholder=\"CARI Sku ...\"\n />\n \n \n \n {\n setSelectedStore(e.target.value);\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n otherStyle={{\n margin: 0,\n marginLeft: 10,\n }}\n style={{ minWidth: 120, padding: 0 }}\n />\n \n\n \n \n {\n setSelectedCategory(e.target.value);\n setFilterFn({\n fn: (items) => {\n if (e.target.value === \"-\") {\n return items;\n } else {\n return items.filter((item) => {\n return (\n item.sku[0].toLowerCase() ===\n e.target.value.toLowerCase() &&\n item.sku.toLowerCase().includes(search)\n );\n });\n }\n },\n });\n }}\n options={kategoriProduk.map((kategori) => {\n return {\n id: kategori.key,\n name: kategori.name,\n };\n })}\n otherStyle={{\n margin: 0,\n marginLeft: 10,\n }}\n style={{ minWidth: 120, padding: 0 }}\n />\n \n
\n\n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {item.sku}\n {item.size}\n \n {new Date(item.daterequested).toLocaleDateString(\"id\", {\n month: \"2-digit\",\n day: \"2-digit\",\n year: \"2-digit\",\n })}\n \n \n ))}\n \n \n \n \n \n );\n};\n\nexport default Wishlist;\n","import { Paper, Button, Input, CircularProgress } from \"@material-ui/core\";\nimport { useEffect, useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\n\nconst StockHarian = () => {\n const [file, setFile] = useState(null);\n const [loading, setLoading] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [lastUpdated, setLastUpdated] = useState(null);\n\n const submitFile = async () => {\n try {\n setLoading(true);\n const formData = new FormData();\n\n formData.append(\"file\", file);\n const { data } = await axios.put(`${baseUrl}/stok`, formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n setLoading(false);\n setNotify({\n isOpen: true,\n message: data.msg,\n type: \"success\",\n location: \"/products/stock-harian\",\n });\n } catch (e) {\n setNotify({\n isOpen: true,\n message: e.response.data.msg,\n type: \"error\",\n location: \"/products/stock-harian\",\n });\n }\n };\n\n const getLastUpdated = async () => {\n try {\n const {\n data: { updatedat },\n } = await axios.get(`${baseUrl}/stok/date`);\n\n setLastUpdated(updatedat);\n } catch (e) {\n console.error(e);\n }\n };\n\n function selectFile(event) {\n setFile(event.target.files[0]);\n }\n\n useEffect(() => {\n getLastUpdated();\n }, []);\n\n return (\n
\n

Update Stock Harian

\n \n \n \n
\n\n {file ? (\n \n {file.name}\n \n ) : null}\n\n {file && (\n \n {loading ? (\n \n ) : (\n \"SUBMIT\"\n )}\n \n )}\n
\n {lastUpdated && (\n

\n Last Updated: {new Date(lastUpdated).toLocaleString(\"en-GB\")}\n

\n )}\n
\n \n \n \n );\n};\n\nexport default StockHarian;\n","import {\n Paper,\n TableBody,\n TableRow,\n Toolbar,\n InputAdornment,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { Fragment, useContext, useEffect, useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport useTable from \"../../components/useTable\";\nimport { baseUrl } from \"../../config/const\";\nimport { useForm } from \"../../components/useForm\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { Search } from \"@material-ui/icons\";\n\nconst categories = [\n {\n id: \"p\",\n name: \"Pria\",\n },\n {\n id: \"w\",\n name: \"Wanita\",\n },\n {\n id: \"a\",\n name: \"Anak\",\n },\n {\n id: \"s\",\n name: \"Sports\",\n },\n {\n id: \"h\",\n name: \"Harian\",\n },\n {\n id: \"k\",\n name: \"Aksesoris\",\n },\n];\n\nconst modalStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n },\n overlay: { zindex: 1000 },\n};\n\nexport default function ProductRank({ dateRanges }) {\n const { state } = useContext(AuthContext);\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [isLoading, setLoading] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [modalOpen, setModalOpen] = useState(false);\n const [productImage, setProductImage] = useState(\"\");\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n category: \"\",\n toko: \"PA2M\",\n limit: 5,\n });\n\n const [filtered, setFiltered] = useState([]);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n const initialValues = {\n category: \"-\",\n toko: \"PA2M\",\n limit: 5,\n };\n\n const headCells = [\n { id: \"Klkode\", label: \"Peringkat\", disableSorting: true },\n { id: \"Klfak\", label: \"Informasi Produk\", disableSorting: true },\n { id: \"Klrp\", label: \"Jumlah Terjual\", disableSorting: true },\n ];\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const validate = () => false;\n\n const { values, handleInputChange } = useForm(initialValues, validate);\n\n const getTopSellingProducts = async () => {\n if (!dateRanges[1]) {\n return;\n }\n setLoading(true);\n await axios\n .get(\n `${baseUrl}/getTopSellingProducts?toko=${\n filteringContent.toko\n }&segmentation=${filteringContent.category}&limit=${\n filteringContent.limit\n }&startdate=${dateRanges[0].toLocaleDateString(\n \"en-CA\"\n )}&enddate=${dateRanges[1].toLocaleDateString(\n \"en-CA\"\n )}&kode=${search}&nama=${search}`\n )\n .then((response) => {\n setFiltered(response.data);\n setLoading(false);\n })\n .catch((error) => {\n setLoading(false);\n // setNotify({\n // isOpen: true,\n // type: \"error\",\n // message: error.response.data.msg,\n // location: \"/sales/analytics\",\n // });\n });\n };\n\n async function getProductImage(sku) {\n try {\n const {\n data: { records },\n } = await axios.get(`${baseUrl}/getProduct/${sku}`);\n\n setProductImage(\n records.length\n ? records[0].images[0]\n : `https://dummyimage.com/600x400/a1a1a1/f7f7f7.png&text=${sku}+Belum+Memiliki+Gambar`\n );\n } catch (err) {}\n }\n\n let timeout;\n\n useEffect(() => {\n if (productImage) {\n setModalOpen(true);\n }\n }, [productImage]);\n\n useEffect(() => {\n getTopSellingProducts();\n }, [filteringContent, dateRanges, search]); //eslint-disable-line\n\n return (\n
\n

Peringkat Produk

\n \n {isLoading ? (\n \n
\n \n \n \n \n ) : null}\n\n \n \n \n \n \n \n ),\n }}\n onChange={(e) => {\n clearTimeout(timeout);\n setTimeout(() => {\n setSearch(e.target.value);\n }, 1000);\n }}\n placeholder=\"CARI Kode atau Nama...\"\n />\n \n \n \n {\n // console.log(e)\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value === \"-\" ? \"\" : e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n\n \n \n {\n handleInputChange(e);\n setFilteringContent({\n ...filteringContent,\n category:\n e.target.value === \"Aksesoris\"\n ? \"k\"\n : e.target.value === \"-\"\n ? \"\"\n : e.target.value[0],\n });\n }}\n options={categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n {\n handleInputChange(e);\n setFilteringContent({\n ...filteringContent,\n limit: e.target.value,\n });\n }}\n type=\"number\"\n />\n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {\n // handlePopUpOpen();\n // setInvoiceSelected(item.id);\n // }}\n >\n {item.peringkat}\n \n {\n getProductImage(item.Klkode);\n }}\n >{`${item.Klkode} - ${item.Klnama}`}\n {item.totalPembelian}\n \n ))}\n \n \n \n \n\n \n\n \n setTimeout(() => setProductImage(\"\"), 500)}\n >\n
\n \n
\n \n \n );\n}\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport { useTheme, useMediaQuery, CircularProgress } from \"@material-ui/core\";\nimport { Paper, Toolbar } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\n\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nconst SalesCharts = ({ dateRanges }) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [chartData, setChartData] = useState([]);\n const [chartDataAll, setChartDataAll] = useState([]);\n\n const [displayedData, setDisplayedData] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const { state } = useContext(AuthContext);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n toko: \"PA2M\",\n });\n\n const getFilteredSales = () => {\n const groupedData = {};\n chartData.forEach((data) => {\n const date = new Date(data.Kltgklr).toLocaleDateString(\"en-CA\");\n\n if (groupedData[date] === undefined) {\n groupedData[date] = [];\n }\n\n groupedData[date].push(data);\n });\n\n const displayed = Object.keys(groupedData).map((data) => {\n return {\n name: data,\n total: groupedData[data].reduce((prev, curr) => {\n if (\n filteringContent.toko\n .toLowerCase()\n .includes(curr.Klgd.toLowerCase())\n ) {\n return prev + curr.Klrp;\n }\n\n if (filteringContent.toko === \"-\") {\n return prev + curr.Klrp;\n }\n return prev;\n }, 0),\n };\n });\n\n const reorderedDisplayed = displayed.sort((a, b) => {\n return new Date(a.name).getTime() - new Date(b.name).getTime();\n });\n\n setDisplayedData([...reorderedDisplayed]);\n };\n\n const getSalesRecords = async (toko = \"\") => {\n if (!dateRanges[1]) {\n return;\n }\n setLoading(true);\n if (toko === \"-\") {\n toko = \"\";\n }\n try {\n const { data } = await axios.get(\n `${baseUrl}/getPjKel?toko=${toko}&startdate=${dateRanges[0].toLocaleDateString(\n \"en-CA\"\n )}&enddate=${dateRanges[1].toLocaleDateString(\"en-CA\")}`\n );\n\n if (!toko) {\n setChartDataAll(data.records);\n } else {\n setChartData(data.records);\n }\n setLoading(false);\n } catch (error) {\n // setNotify({\n // isOpen: true,\n // type: \"error\",\n // message: \"Gagal mengambil data penjualan!\",\n // location: \"/sales/analytics\",\n // });\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (chartData.length) {\n getFilteredSales();\n }\n if (filteringContent.toko === \"-\" && chartDataAll.length) {\n setLoading(false);\n }\n }, [chartData]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setLoading(false);\n }\n\n getSalesRecords(filteringContent.toko);\n }, [dateRanges]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setChartData(chartDataAll);\n }\n }, [chartDataAll]);\n\n useEffect(() => {\n getSalesRecords(\"-\");\n }, []); //eslint-disable-line\n\n return (\n
\n

Grafik Penjualan

\n \n {isLoading && filteringContent.toko === \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n {isLoading && filteringContent.toko !== \"All\" ? (\n \n \n \n \n \n \n ) : null}\n \n \n \n {\n setLoading(true);\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n if (e.target.value !== \"-\") {\n getSalesRecords(e.target.value);\n } else {\n setChartData(chartDataAll);\n }\n }}\n options={state.listKasir\n .map(({ username, role }) => {\n return {\n id: username,\n name: username,\n role,\n };\n })\n .filter((opt) => opt.role === \"toko\")}\n />\n \n \n \n {chartData.length ? (\n
\n Total Omzet : Rp{\" \"}\n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(chartData.reduce((a, { Klrp }) => (a += Klrp), 0))\n )}\n
\n ) : null}\n \n \n \n );\n};\n\nfunction YtickFormatter(value) {\n return `${parseInt(value) / 1000000} JT`;\n}\n\nfunction XtickFormatter(value) {\n const dateArr = new Date(value).toDateString().split(\" \");\n value = `${dateArr[2]} ${dateArr[1]}`;\n\n return value;\n}\n\nfunction tooltipFormatter(value, name) {\n value = new Intl.NumberFormat([\"ban\", \"id\"]).format(parseInt(value));\n\n return [`Rp ${value}`, \"Total\"];\n}\n\nfunction labelFormatter(value) {\n return `${new Date(value).toDateString(value)}`;\n}\n\nfunction Chart({ displayedData }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default SalesCharts;\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport { useTheme, useMediaQuery, CircularProgress } from \"@material-ui/core\";\nimport { Paper, Toolbar } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\n\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nconst HourlyCharts = ({ dateRanges }) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [chartData, setChartData] = useState([]);\n const [chartDataAll, setChartDataAll] = useState([]);\n\n const [displayedData, setDisplayedData] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const { state } = useContext(AuthContext);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n toko: \"PA2M\",\n });\n\n const getFilteredSales = () => {\n const groupedData = {};\n chartData.forEach((data) => {\n let hour;\n if (!data.Kljam) {\n return;\n }\n hour = data.Kljam.substring(0, 2);\n\n if (groupedData[hour] === undefined) {\n groupedData[hour] = [];\n }\n\n groupedData[hour].push(data);\n });\n\n const displayed = Object.keys(groupedData).map((data) => {\n return {\n name: data,\n total: groupedData[data].length,\n };\n });\n\n const reorderedDisplayed = displayed.sort((a, b) => {\n return Number(a.name) - Number(b.name);\n });\n\n setDisplayedData([...reorderedDisplayed]);\n };\n\n const getSalesRecords = async (toko = \"\") => {\n if (!dateRanges[1]) {\n return;\n }\n\n setLoading(true);\n if (toko === \"-\") {\n toko = \"\";\n }\n try {\n const { data } = await axios.get(\n `${baseUrl}/getPjKel?toko=${toko}&startdate=${dateRanges[0].toLocaleDateString(\n \"en-CA\"\n )}&enddate=${dateRanges[1].toLocaleDateString(\"en-CA\")}`\n );\n\n if (!toko) {\n setChartDataAll(data.records);\n } else {\n setChartData(data.records);\n }\n setLoading(false);\n } catch (error) {\n // setNotify({\n // isOpen: true,\n // type: \"error\",\n // message: \"Gagal mengambil data penjualan!\",\n // location: \"/sales/analytics\",\n // });\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (chartData.length) {\n getFilteredSales();\n }\n if (filteringContent.toko === \"-\" && chartDataAll.length) {\n setLoading(false);\n }\n }, [chartData]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setLoading(false);\n }\n\n getSalesRecords(filteringContent.toko);\n }, [dateRanges]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setChartData(chartDataAll);\n }\n }, [chartDataAll]);\n\n useEffect(() => {\n getSalesRecords(\"-\");\n }, []); //eslint-disable-line\n\n return (\n
\n

Grafik Perjam

\n \n {isLoading && filteringContent.toko === \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n {isLoading && filteringContent.toko !== \"All\" ? (\n \n \n \n \n \n \n ) : null}\n \n \n \n {\n setLoading(true);\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n if (e.target.value !== \"-\") {\n getSalesRecords(e.target.value);\n } else {\n setChartData(chartDataAll);\n }\n }}\n options={state.listKasir\n .map(({ username, role }) => {\n return {\n id: username,\n name: username,\n role,\n };\n })\n .filter((opt) => opt.role === \"toko\")}\n />\n \n \n \n \n \n \n );\n};\n\nfunction YtickFormatter(value) {\n return `${value} Trans`;\n}\n\nfunction XtickFormatter(value) {\n if (Number(value) <= 12) {\n value = `${value} AM`;\n } else {\n value = `${value} PM`;\n }\n\n return value;\n}\n\nfunction tooltipFormatter(value, name) {\n value = new Intl.NumberFormat([\"ban\", \"id\"]).format(parseInt(value));\n\n return [`${value}`, \"Total\"];\n}\n\nfunction labelFormatter(value) {\n return value;\n}\n\nfunction Chart({ displayedData }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default HourlyCharts;\n","import { useState } from \"react\";\nimport ProductRank from \"./ProductRank\";\nimport SalesCharts from \"./SalesCharts\";\nimport {\n Paper,\n Button,\n Toolbar,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\nimport HourlyCharts from \"./HourlyCharts\";\n\nconst Analytics = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [chartPeriod, setChartPeriod] = useState(\"monthly\");\n\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n now,\n ]);\n\n return (\n \n \n
\n setChartPeriod(\"monthly\")}\n style={{ width: \"100%\" }}\n >\n Bulanan\n \n
\n\n
\n setChartPeriod(\"weekly\")}\n style={{ width: \"100%\" }}\n >\n Mingguan\n \n
\n\n
\n setChartPeriod(\"custom\")}\n style={{ width: \"100%\" }}\n >\n Custom Range\n \n
\n {chartPeriod === \"weekly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"monthly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"custom\" && (\n \n \n \n \n )}\n \n\n \n \n \n
\n );\n};\n\nexport default Analytics;\n","import {\n Dialog,\n DialogContentText,\n DialogContent,\n DialogTitle,\n DialogActions,\n Button,\n} from \"@material-ui/core\";\n\nconst TeamTokoDialog = ({\n open,\n handleClose,\n children,\n dialogText,\n title,\n onConfirmAction,\n confirmText,\n}) => {\n return (\n \n {title}\n \n {dialogText}\n {children}\n \n \n \n \n \n \n );\n};\n\nexport default TeamTokoDialog;\n","import { useContext, useEffect, useState } from \"react\";\nimport {\n Typography,\n Divider,\n List,\n ListItem,\n IconButton,\n ListItemText,\n ListItemSecondaryAction,\n Card,\n CardContent,\n TextField,\n MenuItem,\n Button,\n Switch,\n FormControlLabel,\n} from \"@material-ui/core\";\nimport { Edit, Delete } from \"@material-ui/icons\";\nimport TeamTokoDialog from \"./TeamTokoDialog\";\nimport { AuthContext } from \"../AppContext\";\nimport { baseUrl } from \"../config/const\";\nimport axios from \"axios\";\nimport Controls from \"../components/controls/Controls\";\n\nconst roles = [\n { value: \"ketua\", label: \"Ketua\" },\n { value: \"staff\", label: \"Staff\" },\n { value: \"penggantiketua\", label: \"Pengganti Ketua\" },\n { value: \"trainee\", label: \"Trainee\" },\n];\n\nconst active = [\n { value: true, label: \"true\" },\n { value: false, label: \"false\" },\n];\n\nconst jenistidur = [\n { value: \"luar\", label: \"Luar\" },\n { value: \"dalam\", label: \"Dalam\" },\n];\n\nconst CardListItem = ({\n getMembers,\n member,\n underlineRow,\n alreadyPresence,\n listToko,\n}) => {\n const [memberModal, setMemberModal] = useState(false);\n const [deleteModal, setDeleteModal] = useState(false);\n const [cutiModal, setCutiModal] = useState(false);\n const [disableCutiModal, setDisableCutiModal] = useState(false);\n\n const handleMemberModal = () => {\n setMemberModal(!memberModal);\n };\n\n const handleDeleteModal = () => {\n setDeleteModal(!deleteModal);\n };\n\n const handleCutiModal = (member) => {\n console.log(member);\n if (!member.cuti) {\n if (cutiModal === true) {\n setCutiFields({ alasan: \"\" });\n }\n setCutiModal(!cutiModal);\n } else {\n setDisableCutiModal(!disableCutiModal);\n }\n };\n\n const [editMemberFields, setEditMemberFields] = useState({\n username: \"\",\n role: \"\",\n toko: \"\",\n password: \"\",\n jenistidur: \"\",\n active: false,\n });\n\n const [cutiFields, setCutiFields] = useState({ alasan: \"\" });\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const editMember = async (staff_username, staff_toko) => {\n const { username, password, role, toko, active, jenistidur } =\n editMemberFields;\n try {\n const { data } = await axios.put(\n `${baseUrl}/staff?_username=${staff_username}`,\n {\n username,\n password,\n role,\n toko: toko ? toko : staff_toko,\n active,\n jenistidur,\n }\n );\n\n console.log(data);\n handleMemberModal();\n setEditMemberFields({\n username: \"\",\n role: \"\",\n toko: \"\",\n password: \"\",\n active: false,\n });\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const cutiMember = async ({ staff, tanggal, alasan, toko, cuti, role }) => {\n try {\n const { data } = await axios.post(`${baseUrl}/insertAbsensi`, {\n staff,\n tanggal,\n alasan,\n toko,\n role,\n });\n\n console.log(data);\n handleCutiModal({ cuti });\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const disableCutiStaff = async ({ username: staff, cuti }) => {\n console.log(\"cuti\", cuti);\n try {\n await axios.put(`${baseUrl}/disableStaffCuti`, {\n staff,\n });\n\n handleCutiModal({ staff, cuti });\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const deleteMember = async (username) => {\n try {\n const { data } = await axios.delete(`${baseUrl}/staff`, {\n data: { username },\n });\n\n setNotify({\n message: data.msg,\n isOpen: true,\n type: \"success\",\n location: \"/hrd\",\n });\n\n handleDeleteModal();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n return (\n \n \n\n \n {\n setEditMemberFields({\n username: member.username,\n role: member.role,\n toko: member.toko,\n password: member.password,\n });\n\n handleMemberModal();\n }}\n >\n \n \n {/* \n CUTI\n */}\n\n {\n handleCutiModal(member);\n }}\n />\n }\n label=\"Cuti\"\n labelPlacement=\"start\"\n />\n \n\n {\n cutiMember({\n staff: member.username,\n tanggal: new Date().toISOString().split(\"T\")[0],\n alasan: cutiFields.alasan,\n toko: member.toko,\n cuti: member.cuti,\n role: member.role,\n });\n }}\n confirmText=\"Cuti\"\n >\n \n setCutiFields({\n ...cutiFields,\n alasan: e.target.value,\n })\n }\n />\n \n\n {\n console.log(\"closed\");\n handleCutiModal(member);\n }}\n title={`Apakah anda ingin melepaskan status cuti untuk ${member.username}?`}\n onConfirmAction={() => {\n disableCutiStaff(member);\n }}\n confirmText=\"Lepas Cuti\"\n >\n {\n deleteMember(member.username);\n }}\n confirmText=\"Delete\"\n >\n {\n editMember(member.username, member.toko);\n }}\n confirmText=\"Edit\"\n >\n \n {`Last updated at\n ${\n member.updatedat\n ? new Date(member.updatedat).toLocaleString(\"en-GB\")\n : \" - never\"\n } `}\n \n \n setEditMemberFields({\n ...editMemberFields,\n username: e.target.value,\n })\n }\n />\n \n setEditMemberFields({\n ...editMemberFields,\n jenistidur: e.target.value,\n })\n }\n >\n {jenistidur.map((option) => (\n \n {option.label}\n \n ))}\n \n \n setEditMemberFields({\n ...editMemberFields,\n role: e.target.value,\n })\n }\n >\n {roles.map((option) => (\n \n {option.label}\n \n ))}\n \n \n setEditMemberFields({\n ...editMemberFields,\n toko: e.target.value,\n })\n }\n >\n {listToko.map((option) => (\n \n {option.name}\n \n ))}\n \n \n setEditMemberFields({\n ...editMemberFields,\n active: e.target.value,\n })\n }\n >\n {active.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n \n );\n};\n\nconst TeamCard = ({\n toko = \"TOKO\",\n teamMembers = [1, 2, 3, 5],\n getMembers,\n cardStyle,\n listToko,\n}) => {\n const [presensiModal, setPresensiModal] = useState(false);\n const [alreadyPresence, setAlreadyPresence] = useState(false);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const handlePresensiModal = () => {\n setPresensiModal(!presensiModal);\n };\n\n const sendPresensi = async (toko) => {\n try {\n await axios.post(`${baseUrl}/insertPresensi`, {\n toko,\n tanggal: new Date().toISOString().split(\"T\")[0],\n });\n\n handlePresensiModal();\n checkPresensi(toko);\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const checkPresensi = async (toko) => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/checkPresensi`, {\n params: { toko, tanggal: new Date().toISOString().split(\"T\")[0] },\n });\n\n if (!data.presensi) {\n for (let staff of teamMembers) {\n if (staff.cuti) {\n await axios.put(`${baseUrl}/disableStaffCuti`, {\n staff: staff.username,\n tanggal: new Date().toLocaleDateString(\"en-CA\"),\n });\n }\n }\n }\n\n setAlreadyPresence(data.presensi);\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n useEffect(() => {\n checkPresensi(toko);\n }, []);\n\n return (\n \n \n {/* \n Presensi\n */}\n {toko}\n \n \n {teamMembers\n .filter((member) => member.active === true)\n .sort((a, b) => {\n if (b.role.toLowerCase() === \"ketua\") {\n return 1;\n } else if (a.role.toLowerCase() === \"ketua\") {\n return -1;\n } else if (a.username > b.username) {\n return 1;\n } else {\n return -1;\n }\n })\n .map((member, index) => (\n \n ))}\n \n \n {\n handlePresensiModal();\n }}\n title={`Apakah anda ingin mengisi data presensi untuk toko ${toko}?`}\n onConfirmAction={() => {\n sendPresensi(toko);\n }}\n confirmText=\"kirim\"\n >\n \n \n );\n};\n\nexport default TeamCard;\n","import { Fragment, useState, useEffect, useContext } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n IconButton,\n Box,\n TextField,\n MenuItem,\n Typography,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { AddCircleRounded } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport TeamCard from \"./TeamCard\";\nimport TeamTokoDialog from \"./TeamTokoDialog\";\nimport { baseUrl } from \"../config/const\";\nimport { AuthContext } from \"../AppContext\";\nimport Controls from \"../components/controls/Controls\";\n\nconst roles = [\n { value: \"ketua\", label: \"Ketua\" },\n { value: \"staff\", label: \"Staff\" },\n { value: \"penggantiketua\", label: \"Pengganti Ketua\" },\n { value: \"trainee\", label: \"Trainee\" },\n];\n\nconst jenistidur = [\n { value: \"luar\", label: \"Luar\" },\n { value: \"dalam\", label: \"Dalam\" },\n];\n\nconst TeamToko = () => {\n const [teams, setTeams] = useState({});\n const [members, setMembers] = useState([]);\n const [memberModal, setMemberModal] = useState(false);\n const [listToko, setListToko] = useState([]);\n const { state } = useContext(AuthContext);\n const history = useHistory();\n\n const matchSm = useMediaQuery(\"(min-width:1000px)\");\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [newMemberFields, setNewMemberFields] = useState({\n username: \"\",\n role: \"\",\n toko: \"\",\n jenistidur: \"\",\n password: \"\",\n });\n\n const getMembers = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/staff`);\n setMembers(data);\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const groupMembersToTeams = (members = []) => {\n return members.reduce((a, c) => {\n if (!Array.isArray(a[c.toko])) {\n a[c.toko] = [];\n }\n a[c.toko].push(c);\n\n return a;\n }, {});\n };\n\n const handleMemberModal = () => {\n setMemberModal(!memberModal);\n };\n\n const registerNewMember = async () => {\n const { username, password, role, toko, jenistidur } = newMemberFields;\n try {\n await axios.post(`${baseUrl}/staff`, {\n username,\n password,\n role,\n toko,\n jenistidur,\n });\n\n handleMemberModal();\n setNewMemberFields({\n username: \"\",\n role: \"\",\n toko: \"\",\n password: \"\",\n jenistidur: \"\",\n });\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const getListToko = async () => {\n try {\n const {\n data: { data: dataKasir },\n } = await axios.get(`${baseUrl}/getAlltoko`);\n\n setListToko(dataKasir);\n } catch (err) {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n }\n };\n\n useEffect(() => {\n if (members.length) {\n setTeams(groupMembersToTeams(members));\n }\n }, [members]);\n\n useEffect(() => {\n getListToko();\n getMembers();\n }, []);\n\n return (\n \n \n {matchSm && (\n \n {new Date().toLocaleDateString(\"id\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n \n )}\n \n HRD Happy\n \n \n \n \n \n\n {!matchSm && (\n \n {new Date().toLocaleDateString(\"id\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n \n )}\n \n {Object.keys(teams)\n .sort((a, b) => {\n if (a < b) {\n return -1;\n }\n\n if (a > b) {\n return 1;\n }\n\n return 0;\n })\n .map((team, index) => (\n \n ))}\n {/* {fillEmptyGridSpaceMd(Object.keys(teams).length)} */}\n \n \n \n setNewMemberFields({ ...newMemberFields, username: e.target.value })\n }\n />\n \n setNewMemberFields({\n ...newMemberFields,\n jenistidur: e.target.value,\n })\n }\n >\n {jenistidur.map((option) => (\n \n {option.label}\n \n ))}\n \n \n setNewMemberFields({ ...newMemberFields, role: e.target.value })\n }\n >\n {roles.map((option) => (\n \n {option.label}\n \n ))}\n \n \n setNewMemberFields({ ...newMemberFields, toko: e.target.value })\n }\n >\n {listToko.map(({ id, name }) => (\n \n {name}\n \n ))}\n \n \n \n \n );\n};\n\nexport default TeamToko;\n","import axios from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport {\n Typography,\n Paper,\n Toolbar,\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Link,\n} from \"@material-ui/core\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst Presensi = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [presensiToko, setPresensiToko] = useState([]);\n const [toko, setToko] = useState(\"PADM\");\n const [listToko, setListToko] = useState([]);\n\n const columns = [\n {\n field: \"staff\",\n headerName: \"Staff\",\n width: 120,\n },\n {\n field: \"toko\",\n headerName: \"Toko\",\n width: 120,\n },\n {\n field: \"role\",\n headerName: \"Jabatan\",\n width: 175,\n },\n {\n field: \"tanggal\",\n headerName: \"Tanggal\",\n width: 175,\n valueGetter: (params) =>\n new Date(params.row.tanggal).toLocaleDateString(\"en-CA\"),\n },\n {\n field: \"checkin\",\n headerName: \"Jam Check In\",\n width: 175,\n },\n {\n field: \"checkout\",\n headerName: \"Jam Check Out\",\n width: 175,\n },\n {\n field: \"imageurl\",\n headerName: \"Selfie\",\n width: 750,\n renderCell: (params) => (\n \n {params.value !== null ? params.value.toString() : \"\"}\n \n ),\n },\n ];\n\n const getPresensi = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getPresensi`, {\n params: {\n startDate: dateRanges[0].toLocaleDateString(\"en-CA\"),\n endDate: dateRanges[1].toLocaleDateString(\"en-CA\"),\n toko,\n },\n });\n console.log(presensiToko);\n setPresensiToko(data.map((item, index) => ({ id: index, ...item })));\n } catch (error) {\n console.error(error);\n }\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getPresensi();\n }, [toko, dateRanges]);\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n Presensi Staff Toko\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Presensi;\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport {\n useTheme,\n useMediaQuery,\n CircularProgress,\n Box,\n} from \"@material-ui/core\";\nimport { Paper, Toolbar } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useForm } from \"../../components/useForm\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Button from \"@material-ui/core/Button\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nconst SalesCharts = ({ dateRanges, chartPeriod }) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [chartData, setChartData] = useState(null);\n const [chartDataAll, setChartDataAll] = useState(null);\n\n const [displayedData, setDisplayedData] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const { state } = useContext(AuthContext);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [filteringContent, setFilteringContent] = useState({\n toko: \"PA2M\",\n segmentation: \"\",\n });\n\n const initialValues = {\n segmentation: \"\",\n toko: \"PA2M\",\n };\n\n const validate = () => false;\n\n const { values, handleInputChange } = useForm(initialValues, validate);\n\n const getGroupedSales = () => {\n const groupedData = {};\n chartData.productsSales.forEach((data) => {\n const date = new Date(data.Kltgklr).toLocaleDateString(\"en-CA\");\n\n if (groupedData[date] === undefined) {\n groupedData[date] = [];\n }\n\n groupedData[date].push(data);\n });\n\n const displayed = Object.keys(groupedData).map((data) => {\n return {\n name: data,\n total: groupedData[data].reduce((prev, curr) => {\n return ++prev;\n }, 0),\n };\n });\n\n const reorderedDisplayed = displayed.sort((a, b) => {\n return new Date(a.name).getTime() - new Date(b.name).getTime();\n });\n\n console.log(reorderedDisplayed);\n\n setDisplayedData([...reorderedDisplayed]);\n };\n\n const getSalesRecords = async (toko = \"\", segmentation = \"\") => {\n if (!dateRanges[1]) {\n return;\n }\n setLoading(true);\n if (toko === \"-\") {\n toko = \"\";\n }\n\n try {\n const monthlyDate = new Date(\n dateRanges[1].getFullYear(),\n dateRanges[1].getMonth(),\n dateRanges[1].getDate()\n ).toLocaleDateString(\"en-CA\");\n const {\n data: { data },\n } = await axios.get(\n `${baseUrl}/getKPIPenjualan?toko=${toko}&startdate=${dateRanges[0].toLocaleDateString(\n \"en-CA\"\n )}&enddate=${dateRanges[1].toLocaleDateString(\n \"en-CA\"\n )}&segmentation=${segmentation}&period=${\n dateRanges[1].getDate() < 30 && dateRanges[1].getDate() !== 28\n ? chartPeriod\n : \"custom\"\n }`\n );\n\n if (!toko) {\n setChartDataAll(data);\n } else {\n setChartData(data);\n }\n setLoading(false);\n } catch (error) {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: \"Gagal mengambil data penjualan!\",\n location: \"/sales/analytics\",\n });\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (chartData) {\n getGroupedSales();\n if (filteringContent.toko === \"-\" && chartDataAll.productsSales.length) {\n setLoading(false);\n }\n }\n }, [chartData]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setLoading(false);\n }\n\n getSalesRecords(filteringContent.toko, filteringContent.segmentation);\n }, [dateRanges]); //eslint-disable-line\n\n useEffect(() => {\n if (chartDataAll) {\n if (filteringContent.toko === \"-\") {\n setChartData(chartDataAll);\n }\n }\n }, [chartDataAll]);\n\n useEffect(() => {\n getSalesRecords(\"-\", filteringContent.segmentation);\n }, []); //eslint-disable-line\n\n return (\n
\n

Grafik Penjualan Berdasarkan Segment

\n\n \n {isLoading && filteringContent.toko === \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n {isLoading && filteringContent.toko !== \"All\" ? (\n \n \n \n \n \n \n ) : null}\n \n \n \n \n {\n setLoading(true);\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n if (e.target.value !== \"-\") {\n getSalesRecords(\n e.target.value,\n filteringContent.segmentation\n );\n } else {\n setChartData(chartDataAll);\n }\n }}\n options={state.listKasir\n .map(({ username, role }) => {\n return {\n id: username,\n name: username,\n role,\n };\n })\n .filter((opt) => opt.role === \"toko\")}\n />\n \n \n \n {\n handleInputChange(e);\n // setLoading(true);\n setFilteringContent({\n ...filteringContent,\n segmentation:\n e.target.value === \"Aksesoris\"\n ? \"k\"\n : e.target.value === \"-\"\n ? \"\"\n : e.target.value[0],\n });\n getSalesRecords(\n filteringContent.toko,\n e.target.value === \"Aksesoris\"\n ? \"k\"\n : e.target.value === \"-\"\n ? \"\"\n : e.target.value[0]\n );\n }}\n options={categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n {chartData !== null ? (\n \n ) : null}\n \n \n {chartData !== null ? (\n
\n Total Omzet : Rp{\" \"}\n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(chartData.totalOmzet)\n )}\n
\n ) : null}\n \n \n \n );\n};\n\nfunction YtickFormatter(value) {\n return value;\n}\n\nfunction XtickFormatter(value) {\n const dateArr = new Date(value).toDateString().split(\" \");\n value = `${dateArr[2]} ${dateArr[1]}`;\n\n return value;\n}\n\nfunction tooltipFormatter(value, name) {\n value = new Intl.NumberFormat([\"ban\", \"id\"]).format(parseInt(value));\n\n return [`${value} Products`, \"Total\"];\n}\n\nfunction labelFormatter(value) {\n return `${new Date(value).toDateString(value)}`;\n}\n\nfunction Chart({ displayedData }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nconst categories = [\n {\n id: \"p\",\n name: \"Pria\",\n },\n {\n id: \"w\",\n name: \"Wanita\",\n },\n {\n id: \"a\",\n name: \"Anak\",\n },\n {\n id: \"s\",\n name: \"Sports\",\n },\n {\n id: \"h\",\n name: \"Harian\",\n },\n {\n id: \"k\",\n name: \"Aksesoris\",\n },\n];\n\nconst useStyles = makeStyles({\n root: {\n textAlign: \"left\",\n margin: 24,\n },\n title: {\n fontSize: 14,\n },\n});\n\nfunction SimpleCard({\n counts = 0,\n countsCompared = 0,\n percentage = 0,\n period,\n comparedDates = null,\n}) {\n const classes = useStyles();\n\n switch (period) {\n case \"monthly\":\n period = \"bulan\";\n break;\n case \"weekly\":\n period = \"minggu\";\n break;\n default:\n period = \"periode\";\n }\n\n const dateDiff =\n period === \"periode\"\n ? (new Date(comparedDates.end).getTime() -\n new Date(comparedDates.start).getTime() +\n 86400000) /\n 86400000\n : null;\n\n return (\n \n \n \n +{counts} Products | +{countsCompared} ({comparedDates.start} -{\" \"}\n {comparedDates.end})\n \n\n 0 ? \"#4caf50\" : \"#b71c1c\" }}\n >\n {percentage >= 0 ? \"+\" : null}\n {Math.floor(percentage)}% dari {period} sebelumnya\n {dateDiff ? ` (${dateDiff} hari)` : null}\n \n \n \n );\n}\n\nexport default SalesCharts;\n","import { useState } from \"react\";\nimport SalesCharts from \"./SalesCharts\";\nimport {\n Paper,\n Button,\n Toolbar,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\n\nconst SalesAnalysis = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [chartPeriod, setChartPeriod] = useState(\"monthly\");\n\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n return (\n \n \n
\n setChartPeriod(\"monthly\")}\n style={{ width: \"100%\" }}\n >\n Bulanan\n \n
\n\n
\n setChartPeriod(\"weekly\")}\n style={{ width: \"100%\" }}\n >\n Mingguan\n \n
\n\n
\n setChartPeriod(\"custom\")}\n style={{ width: \"100%\" }}\n >\n Custom Range\n \n
\n {chartPeriod === \"weekly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"monthly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"custom\" && (\n \n \n \n \n )}\n \n \n
\n );\n};\n\nexport default SalesAnalysis;\n","import {\n Paper,\n TableBody,\n TableRow,\n Toolbar,\n InputAdornment,\n Typography,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { Fragment, useContext, useEffect, useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport useTable from \"../../components/useTable\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { Search } from \"@material-ui/icons\";\n\nexport default function KPIMember() {\n const { state } = useContext(AuthContext);\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [isLoading, setLoading] = useState(false);\n const [search, setSearch] = useState(\"\");\n\n const [modalOpen, setModalOpen] = useState(false);\n const [selectedSales, setSelectedSales] = useState(null);\n\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n category: \"\",\n toko: \"PA2M\",\n limit: \"\",\n });\n\n const [filtered, setFiltered] = useState([]);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const headCells = [\n { id: \"name\", label: \"Nama\", disableSorting: true },\n { id: \"poin\", label: \"Poin\", disableSorting: false },\n { id: \"last_purchase\", label: \"Beli Terakhir\", disableSorting: true },\n {\n id: \"second_last_purchase\",\n label: \"Beli 2 Terakhir\",\n disableSorting: true,\n },\n {\n id: \"third_last_purchase\",\n label: \"Beli 3 Terakhir\",\n disableSorting: true,\n },\n {\n id: \"jumlah_pembelian\",\n label: \"Jumlah Pembelian\",\n disableSorting: false,\n },\n ];\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const getKPIStoreMember = async () => {\n setLoading(true);\n await axios\n .get(\n `${baseUrl}/getKPIStoreMembers?toko=${filteringContent.toko}&limit=${filteringContent.limit}&email=${search}&phone=${search}&name=${search}`\n )\n .then((response) => {\n setFiltered(response.data.data.storeMembers);\n setLoading(false);\n })\n .catch((error) => {\n setLoading(false);\n setNotify({\n isOpen: true,\n type: \"error\",\n message: error.response.data.msg,\n location: \"/sales/analytics\",\n });\n });\n };\n\n const formatDateLocale = (dateString) => {\n if (!dateString) {\n return \"-\";\n }\n return new Date(dateString).toLocaleString(\"id\", {\n timeZone: \"Asia/Jakarta\",\n dateStyle: \"full\",\n timeStyle: \"short\",\n });\n };\n\n let timeout;\n\n useEffect(() => {\n getKPIStoreMember();\n }, [filteringContent, search]); //eslint-disable-line\n\n return (\n
\n

Store Members

\n \n {isLoading ? (\n \n
\n \n \n \n \n ) : null}\n\n \n \n \n \n \n \n ),\n }}\n onChange={(e) => {\n clearTimeout(timeout);\n setTimeout(() => {\n setSearch(e.target.value);\n }, 1000);\n }}\n placeholder=\"CARI email, nama, nomor hp...\"\n />\n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value === \"-\" ? \"\" : e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {\n setSelectedSales(item);\n setModalOpen(true);\n }}\n >\n {item.name}\n \n {item.poin}\n {formatDateLocale(item.last_purchase)}\n \n {formatDateLocale(item.second_last_purchase)}\n \n \n {formatDateLocale(item.third_last_purchase)}\n \n {item.jumlah_pembelian}\n \n ))}\n \n \n
\n Total Member : {filtered.length}\n
\n \n \n\n \n \n \n Email : {selectedSales?.email}\n Phone : {selectedSales?.phone}\n \n \n );\n}\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport {\n useTheme,\n useMediaQuery,\n CircularProgress,\n Box,\n} from \"@material-ui/core\";\nimport { Paper, Toolbar } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles({\n select: {\n \"& .Mui-selected\": {\n backgroundColor: \"#f0e051\",\n },\n \"& .Mui-selected:hover\": {\n backgroundColor: \"#f0e051\",\n },\n },\n});\nconst UserCharts = () => {\n const classes = useStyles();\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [chartData, setChartData] = useState(null);\n const [chartDataAll, setChartDataAll] = useState(null);\n\n const [displayedData, setDisplayedData] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const { state } = useContext(AuthContext);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [filteringContent, setFilteringContent] = useState({\n toko: [\"PA2M\"],\n segmentation: \"\",\n });\n\n const getGroupedSales = () => {\n const groupedData = {\n wanita: [],\n pria: [],\n anak: [],\n harian: [],\n pollux: [],\n sports: [],\n aksesoris: [],\n };\n chartData.forEach((data) => {\n if (filteringContent.segmentation) {\n if (data.wanita && filteringContent.segmentation === \"Wanita\") {\n groupedData.wanita.push(data);\n }\n if (data.pria && filteringContent.segmentation === \"Pria\") {\n groupedData.pria.push(data);\n }\n if (data.anak && filteringContent.segmentation === \"Anak\") {\n groupedData.anak.push(data);\n }\n if (data.harian && filteringContent.segmentation === \"Harian\") {\n groupedData.harian.push(data);\n }\n if (data.pollux && filteringContent.segmentation === \"Pollux\") {\n groupedData.pollux.push(data);\n }\n if (data.aksesoris && filteringContent.segmentation === \"Aksesoris\") {\n groupedData.aksesoris.push(data);\n }\n if (data.sneakers && filteringContent.segmentation === \"Sports\") {\n groupedData.sports.push(data);\n }\n } else {\n if (data.wanita) {\n groupedData.wanita.push(data);\n }\n if (data.pria) {\n groupedData.pria.push(data);\n }\n if (data.anak) {\n groupedData.anak.push(data);\n }\n if (data.harian) {\n groupedData.harian.push(data);\n }\n if (data.pollux) {\n groupedData.pollux.push(data);\n }\n if (data.aksesoris) {\n groupedData.aksesoris.push(data);\n }\n if (data.sneakers) {\n groupedData.sports.push(data);\n }\n }\n });\n\n const displayed = Object.keys(groupedData).map((data) => {\n return {\n name: data,\n total: groupedData[data].reduce((prev, curr) => {\n return ++prev;\n }, 0),\n };\n });\n\n const reorderedDisplayed = displayed.sort((a, b) => {\n return new Date(a.name).getTime() - new Date(b.name).getTime();\n });\n\n setDisplayedData([...reorderedDisplayed]);\n };\n\n const getUsersAnalyticsData = async (toko = [], segmentation = \"\") => {\n setLoading(true);\n if (toko === []) {\n toko = \"\";\n }\n\n try {\n const {\n data: { userAnalyticsData },\n } = await axios.get(\n `${baseUrl}/getUserAnalytics?toko=${toko.join(\",\")}&segmentation=${\n segmentation === \"Sports\" ? \"sneakers\" : segmentation\n }`\n );\n\n if (!toko) {\n setChartDataAll(userAnalyticsData);\n } else {\n setChartData(userAnalyticsData);\n }\n setLoading(false);\n } catch (error) {\n // setNotify({\n // isOpen: true,\n // type: \"error\",\n // message: \"Gagal mengambil data penjualan!\",\n // location: \"/sales/analytics\",\n // });\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (chartData) {\n getGroupedSales();\n if (filteringContent.toko === \"-\" && chartDataAll.productsSales.length) {\n setLoading(false);\n }\n }\n }, [chartData]); //eslint-disable-line\n\n useEffect(() => {\n if (chartDataAll) {\n if (filteringContent.toko === \"-\") {\n setChartData(chartDataAll);\n }\n }\n }, [chartDataAll]);\n\n useEffect(() => {\n getUsersAnalyticsData(filteringContent.toko, filteringContent.segmentation);\n }, []); //eslint-disable-line\n\n return (\n
\n

Grafik Langganan Toko

\n\n \n {isLoading && filteringContent.toko === \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n {isLoading && filteringContent.toko !== \"All\" ? (\n \n \n \n \n \n \n ) : null}\n \n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n\n if (e.target.value !== []) {\n getUsersAnalyticsData(\n e.target.value,\n filteringContent.segmentation\n );\n } else {\n setChartData(chartDataAll);\n }\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n \n \n {\n // setLoading(true);\n setFilteringContent({\n ...filteringContent,\n segmentation: e.target.value === \"-\" ? \"\" : e.target.value,\n });\n getUsersAnalyticsData(\n filteringContent.toko,\n e.target.value === \"-\" ? \"\" : e.target.value\n );\n }}\n options={categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n \n );\n};\n\nfunction YtickFormatter(value) {\n return value;\n}\n\nfunction XtickFormatter(value) {\n return value;\n}\n\nfunction tooltipFormatter(value, name) {\n return [`${value} Member`, \"Total\"];\n}\n\nfunction labelFormatter(value) {\n return value;\n}\n\nfunction Chart({ displayedData }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nconst categories = [\n {\n id: \"p\",\n name: \"Pria\",\n },\n {\n id: \"w\",\n name: \"Wanita\",\n },\n {\n id: \"a\",\n name: \"Anak\",\n },\n {\n id: \"s\",\n name: \"Sports\",\n },\n {\n id: \"h\",\n name: \"Harian\",\n },\n {\n id: \"k\",\n name: \"Aksesoris\",\n },\n {\n id: \"po\",\n name: \"Pollux\",\n },\n];\n\nexport default UserCharts;\n","import { Paper, Box } from \"@material-ui/core\";\nimport KPIMember from \"./KPIMember\";\nimport UserCharts from \"./UserCharts\";\n\nconst MemberAnalysis = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default MemberAnalysis;\n","import { useEffect, useRef, useState, useContext } from \"react\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport {\n Typography,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n TextField,\n Button,\n FormControl,\n FormLabel,\n RadioGroup,\n FormControlLabel,\n Radio,\n InputLabel,\n Select,\n MenuItem,\n Box,\n IconButton,\n} from \"@material-ui/core\";\nimport { Delete } from \"@material-ui/icons\";\nimport { useFormik } from \"formik\";\nimport * as yup from \"yup\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useHistory } from \"react-router-dom\";\n\nconst getRandomInt = () => {\n return Math.floor(Math.random() * 10000);\n};\n\nconst handleFormikNestedFieldError = (formik, field, subField, index) => {\n return (\n Boolean(Object.keys(formik.touched).includes(field)) &&\n Boolean(Object.keys(formik.errors).includes(field)) &&\n formik.errors[field][index] &&\n Boolean(formik.errors[field][index][subField])\n );\n};\n\nconst handleFormikNestedFieldHelperText = (formik, field, subField, index) => {\n return (\n Boolean(Object.keys(formik.touched).includes(field)) &&\n Boolean(Object.keys(formik.errors).includes(field)) &&\n formik.errors[field][index] &&\n formik.errors[field][index][subField]\n );\n};\n\nconst Insert = () => {\n const { state } = useContext(AuthContext);\n const [listToko, setListToko] = useState([]);\n\n const history = useHistory();\n\n const getListKasir = async () => {\n try {\n const { data: dataKasir } = await axios.get(\n `${baseUrl}/getPoinPenjualan`\n );\n\n setListToko(dataKasir.listKasir);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n \n Insert and Update KPI\n \n \n \n \n \n );\n};\n\nconst Suggestions = () => {\n const [allSuggestions, setAllSuggestions] = useState([]);\n const [openModalForm, toggleModalForm] = useState(false);\n const [edit, setEdit] = useState({ isEditing: false, id: \"\" });\n const [deleteDialog, setDeleteDialog] = useState(false);\n\n const formSchema = yup.object({\n type: yup.string().required(\"type harus diisi\"),\n suggestions: yup.array().of(\n yup.object().shape({\n id: yup.number().required(),\n score: yup.number().required(\"score harus diisi\"),\n suggestion: yup.string().required(\"suggestion harus diisi\"),\n })\n ),\n });\n\n const formik = useFormik({\n initialValues: {\n type: \"omzet\",\n suggestions: [{ id: String(getRandomInt()), score: 100, suggestion: \"\" }],\n },\n validationSchema: formSchema,\n onSubmit: () => {\n if (edit.isEditing) {\n updateSuggestion();\n } else {\n insertSuggestion();\n }\n },\n });\n\n const handleToggleModalForm = () => {\n toggleModalForm(true);\n };\n\n const handleCloseModalForm = () => {\n toggleModalForm(false);\n\n setTimeout(() => {\n if (edit.isEditing) {\n setEdit({ isEditing: false, id: \"\" });\n }\n resetForm();\n }, 500);\n };\n\n const insertSuggestion = async () => {\n try {\n await axios.post(`${baseUrl}/insertSuggestion`, {\n type: formik.values.type,\n poinsaran: formik.values.suggestions,\n });\n\n await getAllSuggestions();\n\n handleCloseModalForm();\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateSuggestion = async () => {\n try {\n await axios.put(`${baseUrl}/updateSuggestion/${edit.id}`, {\n type: formik.values.type,\n poinsaran: formik.values.suggestions,\n });\n\n await getAllSuggestions();\n\n handleCloseModalForm();\n\n setEdit({ isEditing: false, id: \"\" });\n } catch (err) {\n console.error(err);\n }\n };\n\n const deleteSuggestion = async (id) => {\n try {\n await axios.delete(`${baseUrl}/deleteSuggestion/${id}`);\n\n await getAllSuggestions();\n\n setEdit({ isEditing: false, id: \"\" });\n setDeleteDialog(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n const addSuggestionWithinModalForm = () => {\n const nextKey =\n Number(\n formik.values.suggestions[formik.values.suggestions.length - 1]\n .percentage\n ) + 10;\n\n formik.setFieldValue(\"suggestions\", [\n ...formik.values.suggestions,\n {\n id: String(getRandomInt()),\n score: nextKey ? nextKey : 100,\n suggestion: \"\",\n },\n ]);\n };\n\n const deleteSuggestionWithinModalForm = (suggestionId) => {\n const deletedIndex = formik.values.suggestions.findIndex(\n ({ id }) => id === suggestionId\n );\n\n const _suggestions = formik.values.suggestions;\n\n _suggestions.splice(deletedIndex, 1);\n\n formik.setFieldValue(\"suggestions\", _suggestions);\n };\n\n const getAllSuggestions = async () => {\n try {\n const {\n data: {\n data: { suggestions },\n },\n } = await axios.get(`${baseUrl}/getAllSuggestions`);\n\n console.log(suggestions);\n\n setAllSuggestions(suggestions);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getSpecificSuggestions = async (datagridParams) => {\n try {\n const {\n data: {\n data: { suggestions },\n },\n } = await axios.get(\n `${baseUrl}/getSpecificSuggestions/${datagridParams.id}`\n );\n\n const _suggestions = suggestions.map(({ score, suggestion }) => ({\n id: getRandomInt(),\n score: Number(score),\n suggestion,\n }));\n\n formik.setValues({\n type: datagridParams.type,\n suggestions: _suggestions,\n });\n\n formik.setTouched(\n {\n type: true,\n suggestions: _suggestions.map(() => ({\n id: true,\n score: true,\n suggestion: true,\n })),\n },\n true\n );\n\n handleToggleModalForm(datagridParams);\n } catch (err) {\n console.error(err);\n }\n };\n\n const resetForm = async () => {\n formik.resetForm();\n };\n\n const columns = [\n {\n field: \"id\",\n headerName: \"ID\",\n width: 300,\n },\n {\n field: \"type\",\n headerName: \"Type\",\n width: 200,\n },\n {\n field: \"action\",\n headerName: \"Action\",\n width: 200,\n renderCell: (params) => {\n return (\n \n {\n setEdit({ isEditing: true, id: params.row.id });\n getSpecificSuggestions(params.row);\n }}\n >\n Edit\n \n {\n setDeleteDialog(true);\n setEdit({ isEditing: true, id: params.row.id });\n }}\n >\n Delete\n \n\n {\n setDeleteDialog(false);\n setEdit({ isEditing: false, id: \"\" });\n }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n {\"Hapus suggestion\"}\n \n \n \n Apakah anda ingin menghapus data suggestion ini?\n \n \n \n \n {\n deleteSuggestion(params.row.id);\n }}\n color=\"primary\"\n autoFocus\n >\n Delete\n \n \n \n \n );\n },\n },\n ];\n\n useEffect(() => {\n getAllSuggestions();\n }, []);\n\n return (\n
\n \n \n Suggestions\n \n \n \n \n Insert New Suggestions\n \n \n \n \n \n {edit.isEditing ? \"Edit\" : \"Tambahkan\"} Suggestion\n \n
\n \n {/* \n To subscribe to this website, please enter your email address here.\n We will send updates occasionally.\n */}\n\n \n Suggestion Type\n \n }\n label=\"Omzet\"\n style={{ flexDirection: \"row\", display: \"flex\" }}\n />\n }\n label=\"Pollux\"\n style={{ flexDirection: \"row\", display: \"flex\" }}\n />\n \n \n\n {formik.values.suggestions.map(\n ({ score, suggestion, id }, index) => {\n return (\n \n \n \n {formik.values.suggestions.length !== 1 && (\n {\n deleteSuggestionWithinModalForm(score);\n }}\n >\n \n \n )}\n \n );\n }\n )}\n {\n addSuggestionWithinModalForm();\n }}\n color=\"primary\"\n >\n Tambah Suggestion\n \n \n \n \n \n \n
\n \n
\n );\n};\n\nconst StoreTarget = ({ listToko }) => {\n const [allStoreTarget, setAllStoreTarget] = useState([]);\n const [openModalForm, toggleModalForm] = useState(false);\n const [edit, setEdit] = useState({ isEditing: false, id: \"\" });\n const [deleteDialog, setDeleteDialog] = useState(false);\n\n const formSchema = yup.object({\n toko: yup.string().required(\"toko harus diisi\"),\n period: yup.date().required(\"period harus diisi\"),\n omzet: yup.number().required(\"omzet harus diisi\"),\n pollux: yup.number().required(\"pollux harus diisi\"),\n wanita: yup.number().required(\"wanita harus diisi\"),\n pria: yup.number().required(\"pria harus diisi\"),\n anak: yup.number().required(\"anak harus diisi\"),\n sports: yup.number().required(\"sports harus diisi\"),\n poinpenjualan: yup.number().required(\"poin penjualan harus diisi\"),\n newmember: yup.number().required(\"new member harus diisi\"),\n });\n\n const formik = useFormik({\n initialValues: {\n toko: \"PA2M\",\n type: \"omzet\",\n period: new Date(new Date().getFullYear(), new Date().getMonth(), 2)\n .toISOString()\n .split(\"T\")[0],\n omzet: 0,\n pollux: 0,\n wanita: 0,\n anak: 0,\n pria: 0,\n sports: 0,\n poinpenjualan: 0,\n newmember: 0,\n },\n validationSchema: formSchema,\n onSubmit: () => {\n if (edit.isEditing) {\n updateStoreTarget();\n } else {\n insertStoreTarget();\n }\n },\n });\n\n const handleToggleModalForm = () => {\n toggleModalForm(true);\n };\n\n const handleCloseModalForm = () => {\n toggleModalForm(false);\n\n setTimeout(() => {\n if (edit.isEditing) {\n setEdit({ isEditing: false, id: \"\" });\n }\n resetForm();\n }, 500);\n };\n\n const insertStoreTarget = async () => {\n try {\n await axios.post(`${baseUrl}/insertStoreTarget`, {\n ...formik.values,\n });\n\n await getAllStoreTarget();\n\n handleCloseModalForm();\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateStoreTarget = async () => {\n try {\n await axios.put(`${baseUrl}/updateStoreTarget/${edit.id}`, {\n ...formik.values,\n });\n\n await getAllStoreTarget();\n\n handleCloseModalForm();\n\n setEdit({ isEditing: false, id: \"\" });\n } catch (err) {\n console.error(err);\n }\n };\n\n const deleteStoreTarget = async (id) => {\n try {\n await axios.delete(`${baseUrl}/deleteStoreTarget/${id}`);\n\n await getAllStoreTarget();\n\n setEdit({ isEditing: false, id: \"\" });\n setDeleteDialog(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getAllStoreTarget = async () => {\n try {\n const {\n data: {\n data: { storetarget },\n },\n } = await axios.get(`${baseUrl}/getAllStoreTarget`);\n\n setAllStoreTarget(storetarget);\n } catch (err) {\n console.error(err);\n }\n };\n\n const resetForm = async () => {\n formik.resetForm();\n };\n\n const getSpecificStoreTarget = async (id) => {\n try {\n const {\n data: {\n data: { storetarget },\n },\n } = await axios.get(`${baseUrl}/getSpecificStoreTarget/${id}`);\n\n delete storetarget[0].id;\n\n formik.setValues({\n ...storetarget[0],\n period: storetarget[0].period.split(\"T\")[0],\n });\n\n formik.setTouched(\n {\n toko: true,\n type: true,\n period: true,\n omzet: true,\n pollux: true,\n wanita: true,\n anak: true,\n pria: true,\n sports: true,\n poinpenjualan: true,\n newmember: true,\n },\n true\n );\n\n handleToggleModalForm();\n } catch (err) {\n console.error(err);\n }\n };\n\n const columns = [\n {\n field: \"id\",\n headerName: \"ID\",\n width: 300,\n },\n {\n field: \"period\",\n headerName: \"Period\",\n width: 200,\n valueGetter: (params) => {\n return params.row.period.split(\"T\")[0];\n },\n },\n {\n field: \"toko\",\n headerName: \"Toko\",\n width: 150,\n },\n {\n field: \"omzet\",\n headerName: \"Omzet\",\n width: 150,\n },\n {\n field: \"pollux\",\n headerName: \"Pollux\",\n width: 150,\n },\n {\n field: \"wanita\",\n headerName: \"Wanita\",\n width: 150,\n },\n {\n field: \"pria\",\n headerName: \"Pria\",\n width: 150,\n },\n {\n field: \"anak\",\n headerName: \"Anak\",\n width: 150,\n },\n {\n field: \"sports\",\n headerName: \"Sports\",\n width: 150,\n },\n {\n field: \"poinpenjualan\",\n headerName: \"Poin Penjualan\",\n width: 180,\n },\n {\n field: \"newmember\",\n headerName: \"New Member\",\n width: 180,\n },\n {\n field: \"action\",\n headerName: \"Action\",\n width: 200,\n renderCell: (params) => {\n return (\n \n {\n getSpecificStoreTarget(params.row.id);\n setEdit({ isEditing: true, id: params.row.id });\n }}\n >\n Edit\n \n {\n setDeleteDialog(true);\n setEdit({ isEditing: true, id: params.row.id });\n }}\n >\n Delete\n \n\n {\n setDeleteDialog(false);\n setEdit({ isEditing: false, id: \"\" });\n }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n {\"Hapus store target\"}\n \n \n \n Apakah anda ingin menghapus data store target ini?\n \n \n \n \n {\n deleteStoreTarget(params.row.id);\n }}\n color=\"primary\"\n autoFocus\n >\n Delete\n \n \n \n \n );\n },\n },\n ];\n\n useEffect(() => {\n getAllStoreTarget();\n }, []);\n\n return (\n
\n \n \n Store Target\n \n \n \n \n Insert New Store Target\n \n \n \n \n
\n \n {edit.isEditing ? \"Edit\" : \"Tambahkan\"} Store Target\n \n \n {/* \n To subscribe to this website, please enter your email address here.\n We will send updates occasionally.\n */}\n\n \n Toko\n \n {listToko.map((toko) => (\n \n {toko.username}\n \n ))}\n \n \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n \n \n \n \n
\n \n
\n );\n};\n\nconst BonusIndex = ({ listToko }) => {\n const [allStoreMonthlyBonuses, setAllStoreMonthlyBonuses] = useState([]);\n const [openModalForm, toggleModalForm] = useState(false);\n const [edit, setEdit] = useState({ isEditing: false, id: \"\" });\n const [deleteDialog, setDeleteDialog] = useState(false);\n\n const formSchema = yup.object({\n toko: yup.string().required(\"toko harus diisi\"),\n type: yup.string().required(\"type harus diisi\"),\n period: yup.date().required(\"period harus diisi\"),\n bonuses: yup.array().of(\n yup.object().shape({\n id: yup.number().required(),\n percentage: yup.number().required(\"percentage harus diisi\"),\n bonus: yup.string().required(\"bonus harus diisi\"),\n })\n ),\n });\n\n const formik = useFormik({\n initialValues: {\n toko: \"PA2M\",\n type: \"omzet\",\n period: new Date(new Date().getFullYear(), new Date().getMonth(), 2)\n .toISOString()\n .split(\"T\")[0],\n bonuses: [{ id: String(getRandomInt()), percentage: 100, bonus: 0 }],\n },\n validationSchema: formSchema,\n onSubmit: () => {\n if (edit.isEditing) {\n updateBonusIndex();\n } else {\n insertBonusIndex();\n }\n },\n });\n\n const handleToggleModalForm = () => {\n toggleModalForm(true);\n };\n\n const handleCloseModalForm = () => {\n toggleModalForm(false);\n\n setTimeout(() => {\n if (edit.isEditing) {\n setEdit({ isEditing: false, id: \"\" });\n }\n resetForm();\n }, 500);\n };\n\n const insertBonusIndex = async () => {\n try {\n await axios.post(`${baseUrl}/insertStoreMonthlyBonus`, {\n ...formik.values,\n });\n\n await getAllStoreMonthlyBonuses();\n\n handleCloseModalForm();\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateBonusIndex = async () => {\n try {\n await axios.put(`${baseUrl}/updateStoreMonthlyBonus/${edit.id}`, {\n ...formik.values,\n });\n\n await getAllStoreMonthlyBonuses();\n\n handleCloseModalForm();\n\n setEdit({ isEditing: false, id: \"\" });\n } catch (err) {\n console.error(err);\n }\n };\n\n const deleteBonusIndex = async (id) => {\n try {\n await axios.delete(`${baseUrl}/deleteStoreMonthlyBonus/${id}`);\n\n await getAllStoreMonthlyBonuses();\n\n setEdit({ isEditing: false, id: \"\" });\n setDeleteDialog(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n const addBonusWithinModalForm = () => {\n const nextKey =\n Number(\n formik.values.bonuses[formik.values.bonuses.length - 1].percentage\n ) + 10;\n\n formik.setValues({\n ...formik.values,\n bonuses: [\n ...formik.values.bonuses,\n {\n id: String(getRandomInt()),\n percentage: nextKey ? nextKey : 100,\n bonus: 0,\n },\n ],\n });\n };\n\n const deleteBonusWithinModalForm = (bonusId) => {\n const deletedIndex = formik.values.bonuses.findIndex(\n ({ id }) => id === bonusId\n );\n\n let _bonuses = formik.values.bonuses;\n\n _bonuses.splice(deletedIndex, 1);\n\n formik.setFieldValue(\"bonuses\", _bonuses);\n };\n\n const getAllStoreMonthlyBonuses = async () => {\n try {\n const {\n data: {\n data: { bonuses },\n },\n } = await axios.get(`${baseUrl}/getAllStoreMonthlyBonuses`);\n\n setAllStoreMonthlyBonuses(bonuses);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getSpecificStoreMonthlyBonus = async (datagridParams) => {\n try {\n const {\n data: {\n data: { bonuses },\n },\n } = await axios.get(\n `${baseUrl}/getSpecificMonthlyBonus/${datagridParams.id}`\n );\n\n const _bonuses = bonuses.map(({ percentage, bonus }) => ({\n id: getRandomInt(),\n percentage: Number(percentage),\n bonus: Number(bonus),\n }));\n\n formik.setValues({\n toko: datagridParams.toko,\n period: datagridParams.period.split(\"T\")[0],\n type: datagridParams.type,\n bonuses: _bonuses,\n });\n\n formik.setTouched(\n {\n toko: true,\n type: true,\n period: true,\n bonuses: _bonuses.map(() => ({\n id: true,\n percentage: true,\n bonuses: true,\n })),\n },\n true\n );\n\n handleToggleModalForm(datagridParams);\n } catch (err) {\n console.error(err);\n }\n };\n\n const resetForm = async () => {\n formik.resetForm();\n };\n\n const columns = [\n {\n field: \"id\",\n headerName: \"ID\",\n width: 300,\n },\n {\n field: \"type\",\n headerName: \"Type\",\n width: 200,\n },\n {\n field: \"toko\",\n headerName: \"Toko\",\n width: 150,\n },\n {\n field: \"period\",\n headerName: \"Period\",\n width: 150,\n valueGetter: (params) => `${params.row.period.split(\"T\")[0]}`,\n },\n {\n field: \"action\",\n headerName: \"Action\",\n width: 200,\n renderCell: (params) => {\n return (\n \n {\n setEdit({ isEditing: true, id: params.row.id });\n getSpecificStoreMonthlyBonus(params.row);\n }}\n >\n Edit\n \n {\n setDeleteDialog(true);\n setEdit({ isEditing: true, id: params.row.id });\n }}\n >\n Delete\n \n\n {\n setDeleteDialog(false);\n setEdit({ isEditing: false, id: \"\" });\n }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n {\"Hapus bonus index\"}\n \n \n \n Apakah anda ingin menghapus data bonus index ini?\n \n \n \n \n {\n deleteBonusIndex(params.row.id);\n }}\n color=\"primary\"\n autoFocus\n >\n Delete\n \n \n \n \n );\n },\n },\n ];\n\n useEffect(() => {\n getAllStoreMonthlyBonuses();\n }, []);\n\n return (\n
\n \n \n Bonus Index\n \n \n \n \n Insert New Bonus\n \n \n \n \n
\n \n {edit.isEditing ? \"Edit\" : \"Tambahkan\"} Bonus Index\n \n \n {/* \n To subscribe to this website, please enter your email address here.\n We will send updates occasionally.\n */}\n\n \n Bonus Type\n \n }\n label=\"Omzet\"\n style={{ flexDirection: \"row\", display: \"flex\" }}\n />\n }\n label=\"Pollux\"\n style={{ flexDirection: \"row\", display: \"flex\" }}\n />\n \n \n\n \n Toko\n \n {listToko.map((toko) => (\n \n {toko.username}\n \n ))}\n \n \n\n \n\n {formik.values.bonuses.map(({ percentage, bonus, id }, index) => {\n return (\n \n \n \n {formik.values.bonuses.length !== 1 && (\n {\n deleteBonusWithinModalForm(percentage);\n }}\n >\n \n \n )}\n \n );\n })}\n {\n addBonusWithinModalForm();\n }}\n color=\"primary\"\n >\n Tambah Bonus\n \n \n \n \n \n \n
\n \n
\n );\n};\n\nexport default Insert;\n","import axios from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport { Typography, Paper, Toolbar, Box } from \"@material-ui/core\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst Staff = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const [toko, setToko] = useState(\"PA2M\");\n const [payrollData, setPayrollData] = useState([]);\n const [listToko, setListToko] = useState([]);\n\n const getSPGPerformance = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getSPGPerformanceByToko`, {\n params: {\n toko,\n startDate: dateRanges[0].toLocaleDateString(\"en-CA\"),\n endDate: dateRanges[1].toLocaleDateString(\"en-CA\"),\n },\n });\n\n setPayrollData(data.map((item, index) => ({ id: index, ...item })));\n } catch (err) {\n console.error(err);\n }\n };\n\n const columns = [\n {\n field: \"staff\",\n headerName: \"Staff\",\n flex: 1,\n },\n {\n field: \"role\",\n headerName: \"Role\",\n flex: 1,\n },\n {\n field: \"pollux_wanita\",\n headerName: \"Plx Wanita\",\n flex: 1,\n type: \"number\",\n },\n {\n field: \"ps\",\n headerName: \"PS\",\n flex: 1,\n type: \"number\",\n },\n ];\n\n const getListKasir = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getSPGPerformance();\n }, [toko, dateRanges]);\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n Staff\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Staff;\n","import { useContext, useState } from \"react\";\nimport * as yup from \"yup\";\nimport { useFormik } from \"formik\";\nimport {\n Paper,\n Typography,\n Box,\n TextField,\n Button,\n Dialog,\n DialogActions,\n DialogTitle,\n DialogContent,\n DialogContentText,\n} from \"@material-ui/core\";\nimport Controls from \"../components/controls/Controls\";\n\nimport { DataGrid } from \"@mui/x-data-grid\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../config/const\";\nimport { AuthContext } from \"../AppContext\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\n\nconst formInputLists = [\n { name: \"Klgd\", type: \"text\" },\n { name: \"Klkode\", type: \"text\" },\n { name: \"Klfak\", type: \"text\" },\n { name: \"Kltgklr\", type: \"text\" },\n { name: \"Kljam\", type: \"text\" },\n { name: \"Klhfak\", type: \"text\" },\n { name: \"Klqty\", type: \"number\" },\n { name: \"Klrp\", type: \"number\" },\n { name: \"Kasir\", type: \"text\" },\n { name: \"Klsal\", type: \"text\" },\n { name: \"Klnama\", type: \"text\" },\n { name: \"Nomor\", type: \"number\" },\n { name: \"Komisi\", type: \"number\" },\n];\n\nconst InsertOfflineSales = () => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n\n const [sales, setSales] = useState([]);\n const [deleteModal, setDeleteModal] = useState({ id: \"\", active: false });\n const [sendModal, setSendModal] = useState(false);\n const formik = useFormik({\n initialValues: {\n Klgd: \"\",\n Klkode: \"\",\n Klfak: \"\",\n Kltgklr: \"\",\n Kljam: \"\",\n Klhfak: \"\",\n Klqty: \"\",\n Klrp: \"\",\n Kasir: \"\",\n Klsal: \"\",\n Klnama: \"\",\n Nomor: \"\",\n Komisi: \"\",\n },\n validationSchema: formSchema,\n onSubmit: (values) => {\n addSales(values);\n },\n });\n\n const [editRowsModel, setEditRowsModel] = useState({});\n const handleEditRowsModelChange = (model) => {\n setEditRowsModel(model);\n\n if (JSON.stringify(model) !== \"{}\") {\n const _sales = [...sales];\n const index = sales.findIndex((sale) => {\n return String(sale.id) === String(Object.keys(model)[0]);\n });\n\n if (index >= 0) {\n _sales[index][Object.keys(model[Object.keys(model)[0]])[0]] =\n model[Object.keys(model)[0]][\n Object.keys(model[Object.keys(model)[0]])[0]\n ].value;\n\n setSales(_sales);\n }\n }\n };\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const addSales = (sale) => {\n const _sales = [...sales];\n _sales.push({ ...sale, id: Date.now() });\n\n setSales(_sales);\n };\n\n const deleteSales = (id) => {\n const deletedIndex = sales.findIndex((sale) => sale.id === id);\n\n const newSales = [...sales];\n newSales.splice(deletedIndex, 1);\n\n setSales(newSales);\n };\n\n const handleDeleteModal = (id) => {\n setDeleteModal({ id, active: !deleteModal.active });\n };\n\n const handleSendModal = () => {\n setSendModal(!sendModal);\n };\n\n const insertOfflineSales = async () => {\n try {\n const { data } = await axios.post(`${baseUrl}/insertOfflineSales`, {\n sales,\n });\n\n setNotify({\n isOpen: true,\n message: data.msg,\n type: \"success\",\n location: \"\",\n });\n\n handleSendModal();\n setSales([]);\n formik.resetForm();\n } catch (err) {\n console.error();\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"success\",\n location: \"\",\n });\n }\n };\n\n const columns = [\n {\n field: \"Klgd\",\n headerName: \"Klgd\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klkode\",\n headerName: \"Klkode\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klfak\",\n headerName: \"Klfak\",\n width: 150,\n editable: true,\n },\n {\n field: \"Kltgklr\",\n headerName: \"Kltgklr\",\n width: 150,\n editable: true,\n },\n {\n field: \"Kljam\",\n headerName: \"Kljam\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klhfak\",\n headerName: \"Klhfak\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klqty\",\n headerName: \"Klqty\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klrp\",\n headerName: \"Klrp\",\n width: 150,\n editable: true,\n },\n {\n field: \"Kasir\",\n headerName: \"Kasir\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klsal\",\n headerName: \"Klsal\",\n width: 150,\n editable: true,\n },\n {\n field: \"Klnama\",\n headerName: \"Klnama\",\n width: 150,\n editable: true,\n },\n {\n field: \"Nomor\",\n headerName: \"Nomor\",\n width: 150,\n editable: true,\n },\n {\n field: \"Komisi\",\n headerName: \"Komisi\",\n width: 150,\n editable: true,\n },\n {\n field: \"action\",\n headerName: \"Action\",\n width: 150,\n type: \"action\",\n renderCell: (params) => (\n <>\n \n {\n handleDeleteModal(\"\");\n }}\n >\n Hapus Sales\n \n \n Apakah anda ingin menghapus entry sales ini?\n \n \n \n {\n handleDeleteModal(\"\");\n }}\n >\n Cancel\n \n {\n deleteSales(params.row.id);\n }}\n >\n Delete\n \n \n \n \n ),\n },\n ];\n\n return (\n
\n \n Insert Offline Sales\n \n \n \n \n Add Sales\n \n
\n \n {formInputLists.map(({ name, type }, index) => (\n <>\n \n {index % 2 === 0 && }\n \n ))}\n \n \n \n \n
\n\n \n \n \n Preview\n \n \n \n \n \n Send\n \n \n \n Kirim Offline Sales\n \n \n Apakah anda sudah yakin dengan data offline sales ini?\n \n \n \n \n \n \n \n \n
\n );\n};\n\nconst formSchema = yup.object({\n Klgd: yup.string().required(\"Klgd harus diisi\"),\n Klkode: yup.string().required(\"Klkode harus diisi\"),\n Klfak: yup.string().required(\"Klfak harus diisi\"),\n Kltgklr: yup.date().required(\"Kltgklr harus diisi\"),\n Kljam: yup.string().required(\"Kljam harus diisi\"),\n Klhfak: yup.string().required(\"Klhfak harus diisi\"),\n Klqty: yup.number().required(\"Klqty harus diisi\"),\n Klrp: yup.number().required(\"Klrp harus diisi\"),\n Kasir: yup.string().required(\"Kasir harus diisi\"),\n Klsal: yup.string().required(\"Klsal harus diisi\"),\n Klnama: yup.string().required(\"Klnama harus diisi\"),\n Nomor: yup.number().required(\"Nomor harus diisi\"),\n Komisi: yup.number().required(\"Komisi harus diisi\"),\n});\n\nexport default InsertOfflineSales;\n","import { useState } from \"react\";\nimport Controls from \"../../../../components/controls/Controls\";\nimport { Box } from \"@material-ui/core\";\n\nexport const useDateRangePicker = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n return {\n dateRanges,\n DateRangePicker: (\n <>\n \n \n \n \n ),\n };\n};\n","function getDifferenceBetweenDates(startDate, endDate) {\n const diffTime = Math.abs(endDate - startDate) + 1;\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays;\n}\n\nexport default getDifferenceBetweenDates;\n","import axios from \"axios\";\nimport { baseUrl } from \"../../../../config/const\";\n\nasync function getGajianStaff(startDate, endDate, toko, partai) {\n try {\n let {\n data: { data },\n } = await axios.get(`${baseUrl}/gajianStaff`, {\n params: {\n startDate,\n endDate,\n toko,\n partai,\n },\n });\n\n data = data.map((item) => ({ ...item, id: item.staff }));\n\n return data;\n } catch (err) {\n throw new Error(err.response.data.msg);\n }\n}\n\nexport default getGajianStaff;\n","import getGajianStaff from \"../api/getGajianStaff\";\n\nasync function fillEveryPeriodWithGajianData(dataByPeriods, toko, partai) {\n for (let { startDate, endDate } of dataByPeriods) {\n if (startDate || endDate) {\n const periodIndex = dataByPeriods.findIndex(\n (per) => startDate === per.startDate && endDate === per.endDate\n );\n dataByPeriods[periodIndex].data = await getGajianStaff(\n startDate,\n endDate,\n toko,\n partai\n );\n }\n }\n\n return dataByPeriods;\n}\n\nexport default fillEveryPeriodWithGajianData;\n","/**\n *\n * @param {*} date JS Date Object\n */\nfunction createPeriods(firstDate, numberOfWeeks, remainderDays) {\n const _periodsGroupedData = [];\n for (let i = 0; i < numberOfWeeks + 1; i++) {\n let startDate = \"\";\n let endDate = \"\";\n\n if (i > 0) {\n firstDate = new Date(\n firstDate.getFullYear(),\n firstDate.getMonth(),\n firstDate.getDate() + 1\n );\n }\n\n startDate = firstDate;\n\n // for remainder\n if (i === numberOfWeeks) {\n if (remainderDays > 0) {\n endDate = new Date(\n firstDate.getFullYear(),\n firstDate.getMonth(),\n firstDate.getDate() + (remainderDays > 1 ? remainderDays - 1 : 0)\n );\n } else {\n continue;\n }\n } else {\n endDate = new Date(\n firstDate.getFullYear(),\n firstDate.getMonth(),\n firstDate.getDate() + 6\n );\n }\n\n firstDate = endDate;\n\n _periodsGroupedData.push({\n data: [],\n startDate: formatDate(startDate),\n endDate: formatDate(endDate),\n });\n }\n\n return _periodsGroupedData;\n}\n\nfunction formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n}\n\nexport default createPeriods;\n","import { useState, useCallback, useEffect } from \"react\";\nimport getDifferenceBetweenDates from \"../helpers/getDifferenceBetweenDates\";\nimport fillEveryPeriodWithGajianData from \"../helpers/fillEveryPeriodWIthGajianData\";\nimport createPeriods from \"../helpers/createPeriods\";\n\nconst useDataByPeriods = ({ dateRanges, setNotify, toko, partai }) => {\n const [periods, setPeriods] = useState([]);\n const [dataByPeriods, setDataByPeriods] = useState([]);\n\n const handlePeriod = useCallback(async () => {\n const weekCounts = Math.floor(\n getDifferenceBetweenDates(dateRanges[0], dateRanges[1]) / 7\n );\n const remainder =\n getDifferenceBetweenDates(dateRanges[0], dateRanges[1]) % 7;\n\n let _dataByPeriods = createPeriods(dateRanges[0], weekCounts, remainder);\n\n setPeriods(_dataByPeriods);\n }, [dateRanges]);\n\n const fetchPeriodData = useCallback(\n async (_dataByPeriods) => {\n _dataByPeriods = [...periods];\n try {\n _dataByPeriods = await fillEveryPeriodWithGajianData(\n _dataByPeriods,\n toko,\n partai\n );\n\n setNotify({\n isOpen: true,\n type: \"success\",\n message: \"Sukses mendapatkan data gajian\",\n location: \"\",\n });\n } catch (err) {\n console.error(err);\n setNotify({\n isOpen: true,\n type: \"error\",\n message: err.message,\n location: \"\",\n });\n }\n\n setDataByPeriods(_dataByPeriods);\n },\n [periods, setNotify, toko]\n );\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n handlePeriod(dateRanges);\n }\n }, [dateRanges, toko, handlePeriod]);\n\n useEffect(() => {\n fetchPeriodData(periods);\n }, [periods, toko, fetchPeriodData]);\n\n return { dataByPeriods };\n};\n\nexport default useDataByPeriods;\n","import { Typography, TableRow, TableBody, Box, Paper } from \"@material-ui/core\";\nimport GajianDetail from \"../../../components/DetailDialog\";\nimport useTable from \"../../../../../components/useTable\";\n\nconst GajianTable = ({ periodData }) => {\n const numberize = (param) => {\n return Number(param);\n };\n\n const psHeadCells = [\n {\n id: \"staff\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1.3,\n label: \"St\",\n },\n {\n id: \"pollux_wanita\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"WP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_wanita),\n },\n {\n id: \"anak\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"A\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.anak),\n },\n {\n id: \"sports\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"S\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.sports),\n },\n {\n id: \"harian\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"H\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.harian),\n },\n {\n id: \"aksesoris_kaoskaki\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"K\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.aksesoris_kaoskaki),\n },\n {\n id: \"wanita\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"W\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.wanita),\n },\n {\n id: \"pria\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"P\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pria),\n },\n {\n id: \"tas\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"C\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.tas),\n },\n {\n id: \"pollux_pria\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"PP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_pria),\n },\n {\n id: \"total\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1,\n label: \"Ttl\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total),\n },\n // {\n // id: \"action\",\n // disableColumnMenu: true,\n // disableSorting: false,\n // flex: 1,\n // type: \"action\",\n // label: \"Dtl\",\n // renderCell: (params) => {\n // return ;\n // },\n // },\n ];\n\n const rpHeadCells = [\n {\n id: \"staff\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"St\",\n },\n {\n id: \"komisi\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi),\n },\n {\n id: \"komisi_lain_lain\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-L\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_lain_lain),\n },\n {\n id: \"komisi_pengganti_ketua\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-P\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_pengganti_ketua),\n },\n {\n id: \"komisi_total\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-T\",\n\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_total),\n },\n {\n id: \"pedoman\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1.5,\n label: \"Pdm\",\n\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pedoman),\n },\n {\n id: \"total_gaji\",\n disableColumnMenu: true,\n disableSorting: false,\n flex: 1.5,\n label: \"Gj-T\",\n\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total_gaji),\n },\n // {\n // field: \"action\",\n // disableColumnMenu: true,\n // sortable: false,\n // flex: 1,\n // type: \"action\",\n // headerName: \"Detail\",\n // renderCell: (params) => {\n // return (\n // \n // );\n // },\n // },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n periodData.data,\n psHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n const {\n TblHead: RpTblHead,\n TblContainer: RpTblContainer,\n styledTableCell: RpTableCell,\n recordsAfterPagingAndSorting: rpRecordsAfterPagingAndSorting,\n } = useTable(\n periodData.data,\n rpHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n return (\n \n \n {periodData.startDate} - {periodData.endDate}\n \n \n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n {item.staff}\n \n {item.pollux_wanita}\n \n {item.anak}\n {item.sports}\n {item.harian}\n \n {item.aksesoris_kaoskaki}\n \n {item.wanita}\n {item.pria}\n {item.tas}\n \n {item.pollux_pria}\n \n {item.total}\n \n ))}\n \n \n \n \n \n \n {rpRecordsAfterPagingAndSorting().map((item, index) => (\n \n {item.staff}\n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_lain_lain)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_pengganti_ketua)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_total)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.pedoman)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.total_gaji)\n )}\n \n \n ))}\n \n \n \n );\n};\n\nexport default GajianTable;\n","import { useRef } from \"react\";\nimport { Box, Typography, Paper, Toolbar, Button } from \"@material-ui/core\";\nimport ReactToPrint from \"react-to-print\";\nimport GajianTable from \"./GajianTable\";\n\nconst GajianSplitRange = ({ dataByPeriods, DateRangePicker }) => {\n const ref = useRef();\n\n return (\n \n Gajian Staff Per Minggu\n \n \n \n \n {DateRangePicker}\n \n \n \n \n (\n \n Print\n \n )}\n content={() => ref.current}\n documentTitle={\n dataByPeriods.length\n ? `staff_${dataByPeriods[0].startDate} - ${\n dataByPeriods[dataByPeriods.length - 1].endDate\n }`\n : \"\"\n }\n />\n \n \n \n \n
\n {dataByPeriods\n .filter((p) => p.data.length > 0)\n .map((periodData, index) => (\n \n \n \n ))}\n \n
\n
\n
\n );\n};\n\nexport default GajianSplitRange;\n","import { useEffect, useState, useRef } from \"react\";\nimport { Typography, Box, Paper, Toolbar, Button } from \"@material-ui/core\";\nimport GajianTable from \"./GajianTable\";\nimport ReactToPrint from \"react-to-print\";\n\nconst GajianFullRange = ({ dataByPeriods, DateRangePicker }) => {\n const [allData, setAllData] = useState([]);\n const ref = useRef();\n\n const reshapeAllData = (dataByPeriods) => {\n console.log(\"dataByPeriods\", dataByPeriods);\n if (!dataByPeriods[0].data.length) {\n return [];\n }\n\n // break object references\n dataByPeriods = JSON.parse(JSON.stringify(dataByPeriods));\n\n const keyList = Object.keys(dataByPeriods[0].data[0]);\n return dataByPeriods.reduce((a, { data: c }, i) => {\n if (i === 0) {\n a = [...c];\n return a;\n }\n\n if (c.length) {\n c.forEach((obj) => {\n const _staff = a.find((st) => st.staff === obj.staff);\n\n if (!_staff) {\n a.push(obj);\n } else {\n const stIndex = a.findIndex((st) => st.staff === obj.staff);\n keyList.forEach((key) => {\n if (key !== \"staff\" && key !== \"id\") {\n a[stIndex][key] = Number(a[stIndex][key]) + Number(obj[key]);\n }\n });\n }\n });\n }\n\n return a;\n }, []);\n };\n\n useEffect(() => {\n if (dataByPeriods.length) {\n setAllData(reshapeAllData(dataByPeriods));\n }\n }, [dataByPeriods]);\n return (\n \n Gajian Staff Per Rentang Tanggal\n \n \n \n \n {DateRangePicker}\n \n \n \n \n (\n \n Print\n \n )}\n content={() => ref.current}\n documentTitle={\n dataByPeriods.length\n ? `staff_${dataByPeriods[0].startDate} - ${\n dataByPeriods[dataByPeriods.length - 1].endDate\n }_full_range`\n : \"\"\n }\n />\n \n \n \n \n
\n {allData.length ? (\n \n ) : null}\n \n
\n
\n
\n );\n};\n\nexport default GajianFullRange;\n","import { useState } from \"react\";\n\nimport { Paper, Box, Divider } from \"@material-ui/core\";\n\nimport { useDateRangePicker } from \"../../utils/hooks/useDateRangePicker\";\nimport useDataByPeriods from \"../../utils/hooks/useDataByPeriods\";\nimport GajianSplitRange from \"./components/GajianSplitRange\";\nimport GajianFullRange from \"./components/GajianFullRange\";\n\nconst GajianStaff = () => {\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const { dateRanges, DateRangePicker } = useDateRangePicker();\n\n const { dataByPeriods } = useDataByPeriods({\n dateRanges,\n setNotify,\n });\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default GajianStaff;\n","import { useState, useRef, useEffect } from \"react\";\nimport axios from \"axios\";\nimport {\n Typography,\n Toolbar,\n Box,\n Paper,\n Button,\n TableRow,\n TableBody,\n} from \"@material-ui/core\";\nimport ReactToPrint from \"react-to-print\";\n\nimport { baseUrl } from \"../../../../../config/const\";\nimport Controls from \"../../../../../components/controls/Controls\";\nimport useTable from \"../../../../../components/useTable\";\n\nconst GajianKetua = ({ listToko, setNotify }) => {\n const [toko, setToko] = useState(\"PA2M\");\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const [gajianKetua, setGajianKetua] = useState([]);\n\n const ref = useRef();\n\n const getGajianKetua = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/gajianKetua`, {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n toko: toko === \"-\" ? \"\" : toko,\n },\n });\n\n setGajianKetua(data.map((item, index) => ({ id: index, ...item })));\n } catch (err) {\n console.error(err);\n }\n };\n\n function formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n\n const numberize = (param) => {\n return Number(param);\n };\n\n const rpHeadCells = [\n {\n id: \"staff\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Ketua\",\n width: 100,\n },\n {\n id: \"komisi_ketua\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Kms\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_ketua),\n },\n {\n id: \"pedoman\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Pdm\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pedoman),\n },\n {\n id: \"bonus_pollux\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"B-Pl\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.bonus_pollux),\n },\n {\n id: \"bonus_pedoman\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"B-Po\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.bonus_pedoman),\n },\n {\n id: \"pedoman_total\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Ttl-Pdm\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pedoman_total),\n },\n {\n id: \"total_gaji\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Gaji Total (IDR)\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total_gaji),\n },\n {\n id: \"70% Gaji\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"70%\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row[\"70%\"]),\n },\n {\n id: \"30% Gaji\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"30%\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row[\"30%\"]),\n },\n ];\n\n const psHeadCells = [\n {\n id: \"staff\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Kt\",\n width: 100,\n },\n {\n id: \"pollux_wanita\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"WP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_wanita),\n },\n {\n id: \"anak\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"A\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.anak),\n },\n {\n id: \"sports\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"S\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.sports),\n },\n {\n id: \"harian\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"H\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.harian),\n },\n {\n id: \"aksesoris_kaoskaki\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"K\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.aksesoris_kaoskaki),\n },\n {\n id: \"wanita\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"W\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.wanita),\n },\n {\n id: \"pria\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"P\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pria),\n },\n\n {\n id: \"tas\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"C\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.tas),\n },\n {\n id: \"pollux_pria\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"PP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_pria),\n },\n {\n id: \"total\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Ttl\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total),\n },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n gajianKetua,\n psHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n const {\n TblHead: RpTblHead,\n TblContainer: RpTblContainer,\n styledTableCell: RpTableCell,\n recordsAfterPagingAndSorting: rpRecordsAfterPagingAndSorting,\n } = useTable(\n gajianKetua,\n rpHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getGajianKetua();\n }\n }, [dateRanges, toko]);\n\n return (\n <>\n \n Gajian Ketua\n \n \n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n\n \n \n (\n \n )}\n content={() => ref.current}\n documentTitle={`ketua_${toko}_${\n dateRanges[0]\n ? dateRanges[0].toLocaleDateString(\"en-CA\")\n : \"\"\n } - ${\n dateRanges[1]\n ? dateRanges[1].toLocaleDateString(\"en-CA\")\n : \"\"\n }`}\n />\n \n \n \n \n \n
\n \n {dateRanges[0] && dateRanges[1] ? (\n \n Ketua {toko} | {formatDate(dateRanges[0])} -{\" \"}\n {formatDate(dateRanges[1])}\n \n ) : null}\n \n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n \n {item.staff}\n \n \n {item.pollux_wanita}\n \n \n {item.anak}\n \n \n {item.sports}\n \n \n {item.harian}\n \n \n {item.aksesoris_kaoskaki}\n \n \n {item.wanita}\n \n \n {item.pria}\n \n \n {item.tas}\n \n \n {item.pollux_pria}\n \n \n {item.total}\n \n \n ))}\n \n \n \n \n \n \n {rpRecordsAfterPagingAndSorting().map((item, index) => (\n \n \n {item.staff}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_ketua)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.pedoman)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.bonus_pollux)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.bonus_pedoman)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.pedoman_total)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.total_gaji)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item[\"70%\"])\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item[\"30%\"])\n )}\n \n \n ))}\n \n \n \n
\n \n
\n \n );\n};\n\nexport default GajianKetua;\n","import { Typography, TableBody, TableRow, Paper, Box } from \"@material-ui/core\";\n\nimport GajianDetail from \"../../../components/DetailDialog\";\nimport useTable from \"../../../../../components/useTable\";\n\nconst GajianTable = ({ periodData, toko }) => {\n const numberize = (param) => {\n return Number(param);\n };\n\n const psHeadCells = [\n {\n id: \"staff\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"St\",\n },\n {\n id: \"pollux_wanita\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"WP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_wanita),\n },\n {\n id: \"anak\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"A\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.anak),\n },\n {\n id: \"sports\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"S\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.sports),\n },\n {\n id: \"harian\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"H\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.harian),\n },\n {\n id: \"aksesoris_kaoskaki\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"K\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.aksesoris_kaoskaki),\n },\n {\n id: \"wanita\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"W\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.wanita),\n },\n {\n id: \"pria\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"P\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pria),\n },\n {\n id: \"tas\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"C\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.tas),\n },\n {\n id: \"pollux_pria\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"PP\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.pollux_pria),\n },\n {\n id: \"total\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Ttl\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total),\n },\n // {\n // field: \"action\",\n // disableColumnMenu: true,\n // sortable: false,\n // flex: 1,\n // type: \"action\",\n // headerName: \"Detail\",\n // renderCell: (params) => {\n // return (\n // \n // );\n // },\n // },\n ];\n\n const rpHeadCells = [\n {\n id: \"staff\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"St\",\n },\n {\n id: \"komisi\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi),\n },\n {\n id: \"komisi_lain_lain\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-L\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_lain_lain),\n },\n {\n id: \"komisi_pengganti_ketua\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-P\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_pengganti_ketua),\n },\n {\n id: \"komisi_total\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1.5,\n label: \"Kms-T\",\n\n type: \"number\",\n valueGetter: (params) => numberize(params.row.komisi_total),\n },\n // {\n // field: \"action\",\n // disableColumnMenu: true,\n // sortable: false,\n // flex: 1,\n // type: \"action\",\n // headerName: \"Detail\",\n // renderCell: (params) => {\n // return (\n // \n // );\n // },\n // },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n periodData.data,\n psHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n const {\n TblHead: RpTblHead,\n TblContainer: RpTblContainer,\n styledTableCell: RpTableCell,\n recordsAfterPagingAndSorting: rpRecordsAfterPagingAndSorting,\n } = useTable(\n periodData.data,\n rpHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n return (\n \n \n Staff {toko} | {periodData.startDate} - {periodData.endDate}\n \n \n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n {item.staff}\n \n {item.pollux_wanita}\n \n {item.anak}\n {item.sports}\n {item.harian}\n \n {item.aksesoris_kaoskaki}\n \n {item.wanita}\n {item.pria}\n {item.tas}\n \n {item.pollux_pria}\n \n {item.total}\n \n ))}\n \n \n \n \n \n \n {rpRecordsAfterPagingAndSorting().map((item, index) => (\n \n {item.staff}\n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_lain_lain)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_pengganti_ketua)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi_total)\n )}\n \n \n ))}\n \n \n \n );\n};\n\nexport default GajianTable;\n","import { useState, useRef, useContext } from \"react\";\nimport { Box, Typography, Paper, Toolbar, Button } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom\";\nimport ReactToPrint from \"react-to-print\";\nimport GajianTable from \"./GajianTable\";\n\nimport Controls from \"../../../../../components/controls/Controls\";\nimport { AuthContext } from \"../../../../../AppContext\";\nimport { useDateRangePicker } from \"../../../utils/hooks/useDateRangePicker\";\nimport useDataByPeriods from \"../../../utils/hooks/useDataByPeriods\";\n\nconst GajianStaff = ({ listToko }) => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n const [toko, setToko] = useState(\"PA2M\");\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const ref = useRef();\n const { dateRanges, DateRangePicker } = useDateRangePicker();\n\n const { dataByPeriods } = useDataByPeriods({\n dateRanges,\n setNotify,\n toko,\n partai: true,\n });\n\n return (\n <>\n \n Gajian Staff\n \n \n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n {DateRangePicker}\n \n \n \n \n (\n \n Print\n \n )}\n content={() => ref.current}\n documentTitle={\n dataByPeriods.length\n ? `staff_${dataByPeriods[0].startDate} - ${\n dataByPeriods[dataByPeriods.length - 1].endDate\n }`\n : \"\"\n }\n />\n \n \n \n \n
\n {dataByPeriods\n .filter((p) => p.data.length > 0)\n .map((periodData, index) => (\n \n \n \n ))}\n
\n
\n \n
\n \n );\n};\n\nexport default GajianStaff;\n","import axios from \"axios\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Paper, Box, Divider } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { baseUrl } from \"../../../../config/const\";\nimport { AuthContext } from \"../../../../AppContext\";\nimport GajianKetua from \"./components/GajianKetua\";\nimport GajianStaff from \"./components/GajianStaff\";\n\nconst GajianToko = () => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n const [listToko, setListToko] = useState([]);\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default GajianToko;\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport {\n useTheme,\n useMediaQuery,\n CircularProgress,\n Box,\n} from \"@material-ui/core\";\nimport { Paper, Toolbar } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useForm } from \"../../components/useForm\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Button from \"@material-ui/core/Button\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport {\n LineChart,\n Line,\n CartesianGrid,\n XAxis,\n YAxis,\n Tooltip,\n ResponsiveContainer,\n} from \"recharts\";\n\nconst MemberCharts = ({ dateRanges, chartPeriod }) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const [chartData, setChartData] = useState(null);\n const [chartDataAll, setChartDataAll] = useState(null);\n\n const [displayedData, setDisplayedData] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n console.log(displayedData);\n\n const { state } = useContext(AuthContext);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [filteringContent, setFilteringContent] = useState({\n toko: \"PA2M\",\n segmentation: \"\",\n });\n\n const initialValues = {\n segmentation: \"\",\n toko: \"PA2M\",\n };\n\n const validate = () => false;\n\n const { values, handleInputChange } = useForm(initialValues, validate);\n\n const getGroupedSales = () => {\n const groupedData = {};\n chartData.registeredUsers.forEach((data) => {\n const date = new Date(data.createdat).toLocaleDateString(\"en-CA\");\n\n if (groupedData[date] === undefined) {\n groupedData[date] = [];\n }\n\n groupedData[date].push(data);\n });\n\n const displayed = Object.keys(groupedData).map((data) => {\n return {\n name: data,\n total: groupedData[data].reduce((prev, curr) => {\n return ++prev;\n }, 0),\n };\n });\n\n const reorderedDisplayed = displayed.sort((a, b) => {\n return new Date(a.name).getTime() - new Date(b.name).getTime();\n });\n\n setDisplayedData([...reorderedDisplayed]);\n };\n\n const getSalesRecords = async (toko = \"\", segmentation = \"\") => {\n if (!dateRanges[1]) {\n return;\n }\n setLoading(true);\n if (toko === \"-\") {\n toko = \"\";\n }\n\n try {\n const {\n data: { data },\n } = await axios.get(\n `${baseUrl}/getKPIStoreMembersPercentage?toko=${toko}&startdate=${dateRanges[0].toLocaleDateString(\n \"en-CA\"\n )}&enddate=${dateRanges[1].toLocaleDateString(\"en-CA\")}&period=${\n dateRanges[1].getDate() < 30 && dateRanges[1].getDate() !== 28\n ? chartPeriod\n : \"custom\"\n }`\n );\n\n if (!toko) {\n setChartDataAll(data);\n } else {\n setChartData(data);\n }\n setLoading(false);\n } catch (error) {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: \"Gagal mengambil data penjualan!\",\n location: \"/sales/analytics\",\n });\n setLoading(false);\n }\n };\n\n useEffect(() => {\n if (chartData) {\n getGroupedSales();\n if (\n filteringContent.toko === \"-\" &&\n chartDataAll.registeredUsers.length\n ) {\n setLoading(false);\n }\n }\n }, [chartData]); //eslint-disable-line\n\n useEffect(() => {\n if (filteringContent.toko === \"-\") {\n setLoading(false);\n }\n\n getSalesRecords(filteringContent.toko, filteringContent.segmentation);\n }, [dateRanges]); //eslint-disable-line\n\n useEffect(() => {\n if (chartDataAll) {\n if (filteringContent.toko === \"-\") {\n setChartData(chartDataAll);\n }\n }\n }, [chartDataAll]);\n\n useEffect(() => {\n getSalesRecords(\"-\", filteringContent.segmentation);\n }, []); //eslint-disable-line\n\n return (\n
\n

Grafik Penambahan Member

\n\n \n {isLoading && filteringContent.toko === \"All\" ? (\n \n
\n \n \n \n \n ) : null}\n {isLoading && filteringContent.toko !== \"All\" ? (\n \n \n \n \n \n \n ) : null}\n \n \n \n \n {\n setLoading(true);\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n if (e.target.value !== \"-\") {\n getSalesRecords(\n e.target.value,\n filteringContent.segmentation\n );\n } else {\n setChartData(chartDataAll);\n }\n }}\n options={state.listKasir\n .map(({ username, role }) => {\n return {\n id: username,\n name: username,\n role,\n };\n })\n .filter((opt) => opt.role === \"toko\")}\n />\n \n \n {chartData !== null ? (\n \n ) : null}\n \n \n \n \n \n );\n};\n\nfunction YtickFormatter(value) {\n return value;\n}\n\nfunction XtickFormatter(value) {\n const dateArr = new Date(value).toDateString().split(\" \");\n value = `${dateArr[2]} ${dateArr[1]}`;\n\n return value;\n}\n\nfunction tooltipFormatter(value, name) {\n value = new Intl.NumberFormat([\"ban\", \"id\"]).format(parseInt(value));\n\n return [`${value} Member`, \"Total\"];\n}\n\nfunction labelFormatter(value) {\n return `${new Date(value).toDateString(value)}`;\n}\n\nfunction Chart({ displayedData }) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nconst useStyles = makeStyles({\n root: {\n textAlign: \"left\",\n margin: 24,\n },\n title: {\n fontSize: 14,\n },\n});\n\nfunction SimpleCard({\n counts = 0,\n countsCompared = 0,\n percentage = 0,\n period,\n comparedDates = null,\n}) {\n const classes = useStyles();\n\n switch (period) {\n case \"monthly\":\n period = \"bulan\";\n break;\n case \"weekly\":\n period = \"minggu\";\n break;\n default:\n period = \"periode\";\n }\n\n const dateDiff =\n period === \"periode\"\n ? (new Date(comparedDates.end).getTime() -\n new Date(comparedDates.start).getTime() +\n 86400000) /\n 86400000\n : null;\n\n return (\n \n \n \n +{counts} Member | +{countsCompared} ({comparedDates.start} -{\" \"}\n {comparedDates.end})\n \n\n 0 ? \"#4caf50\" : \"#b71c1c\" }}\n >\n {percentage >= 0 ? \"+\" : null}\n {Math.floor(percentage)}% dari {period} sebelumnya\n {dateDiff ? ` (${dateDiff} hari)` : null}\n \n \n \n );\n}\n\nexport default MemberCharts;\n","import { useState, useContext } from \"react\";\nimport MemberCharts from \"./MemberCharts\";\nimport {\n Paper,\n Button,\n Toolbar,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useHistory } from \"react-router-dom\";\n\nconst StoreMember = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [chartPeriod, setChartPeriod] = useState(\"monthly\");\n const { state } = useContext(AuthContext);\n const history = useHistory();\n\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth(), now.getDate()),\n ]);\n\n console.log(dateRanges);\n\n return (\n \n \n
\n setChartPeriod(\"monthly\")}\n style={{ width: \"100%\" }}\n >\n Bulanan\n \n
\n\n
\n setChartPeriod(\"weekly\")}\n style={{ width: \"100%\" }}\n >\n Mingguan\n \n
\n\n
\n setChartPeriod(\"custom\")}\n style={{ width: \"100%\" }}\n >\n Custom Range\n \n
\n {chartPeriod === \"weekly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"monthly\" && (\n \n \n \n \n )}\n\n {chartPeriod === \"custom\" && (\n \n \n \n \n )}\n \n \n
\n );\n};\n\nexport default StoreMember;\n","import {\n Paper,\n Button,\n Input,\n CircularProgress,\n Toolbar,\n} from \"@material-ui/core\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../config/const\";\nimport { AuthContext } from \"../AppContext\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\n\nconst listToko = [{ name: \"PONL\" }, { name: \"PBAZ\" }];\n\nconst UploadOnlineSales = () => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n const [toko, setToko] = useState(\"PONL\");\n\n const [file, setFile] = useState(null);\n\n const [loading, setLoading] = useState(false);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const submitFile = async () => {\n try {\n setLoading(true);\n const formData = new FormData();\n\n formData.append(\"file\", file);\n const { data } = await axios.put(\n `${baseUrl}/sales/online/${toko}`,\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n }\n );\n setLoading(false);\n setNotify({\n isOpen: true,\n message: data.msg,\n type: \"success\",\n location: \"/sales/upload-online\",\n });\n } catch (e) {\n setNotify({\n isOpen: true,\n message: e.response.data.msg,\n type: \"error\",\n location: \"/sales/upload-online\",\n });\n }\n };\n\n function selectFile(event) {\n setFile(event.target.files[0]);\n }\n\n return (\n
\n

Upload Penjualan Online

\n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n\n \n \n
\n\n {file ? (\n \n {file.name}\n \n ) : null}\n\n {file && (\n \n {loading ? (\n \n ) : (\n \"SUBMIT\"\n )}\n \n )}\n \n \n \n );\n};\n\nexport default UploadOnlineSales;\n","import { useContext, useEffect, useState } from \"react\";\nimport {\n Paper,\n Box,\n Typography,\n Button,\n Toolbar,\n Dialog,\n DialogTitle,\n DialogActions,\n DialogContent,\n DialogContentText,\n TextField,\n MenuItem,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../config/const\";\nimport { DataGrid } from \"@mui/x-data-grid\";\nimport Controls from \"../components/controls/Controls\";\nimport { AuthContext } from \"../AppContext\";\n\nconst RoutesManagement = () => {\n const { state } = useContext(AuthContext);\n const [roles, setRoles] = useState([]);\n const [routes, setRoutes] = useState([]);\n const [addRouteModal, setAddRouteModal] = useState(false);\n const [revokeRouteModal, setRevokeRouteModal] = useState(false);\n const [userRoutes, setUserRoutes] = useState([]);\n const [routeForm, setRouteForm] = useState({\n role: \"\",\n route: {\n id: \"\",\n name: \"\",\n path: \"\",\n },\n });\n\n const handleAddRouteModal = () => {\n setAddRouteModal(!addRouteModal);\n\n if (!addRouteModal === false) {\n setRouteForm({\n role: \"\",\n route: {\n id: \"\",\n name: \"\",\n path: \"\",\n },\n });\n }\n };\n\n const handleRevokeRouteModal = () => {\n setRevokeRouteModal(!revokeRouteModal);\n\n if (!revokeRouteModal === false) {\n setRouteForm({\n role: \"\",\n route: {\n id: \"\",\n name: \"\",\n path: \"\",\n },\n });\n }\n };\n\n const getRoles = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/fe-routes/roles`);\n\n setRoles(data.data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getAvailableRoutes = async (role) => {\n try {\n const { data } = await axios.get(`${baseUrl}/fe-routes/available`, {\n params: {\n role,\n },\n });\n\n setRoutes(data.data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getUserRoutes = async (role) => {\n try {\n const { data } = await axios.get(`${baseUrl}/fe-routes/routes`, {\n params: {\n role,\n },\n });\n\n setUserRoutes(data.data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const updateRoutes = async (route_id) => {\n try {\n await axios.put(`${baseUrl}/fe-routes/${route_id}`, {\n role: routeForm.role,\n });\n\n getUserRoutes(routeForm.role);\n handleAddRouteModal();\n } catch (err) {\n console.error(err);\n }\n };\n\n const revokeRoutes = async (route_id) => {\n try {\n await axios.delete(`${baseUrl}/fe-routes/${route_id}`, {\n params: {\n role: routeForm.role,\n },\n });\n\n getUserRoutes(routeForm.role);\n handleRevokeRouteModal();\n } catch (err) {\n console.error(err);\n }\n };\n\n const columns = [\n {\n headerName: \"ID\",\n field: \"id\",\n flex: 1,\n },\n {\n headerName: \"Role\",\n field: \"role\",\n flex: 1,\n },\n {\n headerName: \"Route\",\n field: \"route\",\n flex: 1,\n },\n {\n headerName: \"Route Name\",\n field: \"route_name\",\n flex: 1,\n },\n {\n headerName: \"Actions\",\n field: \"action\",\n type: \"action\",\n renderCell: (params) => {\n return (\n {\n setRouteForm({\n role: params.row.role,\n route: {\n id: params.row.id,\n name: params.row.route_name,\n path: params.row.route,\n },\n });\n handleRevokeRouteModal();\n }}\n color=\"primary\"\n >\n Revoke\n \n );\n },\n },\n ];\n\n useEffect(() => {\n getRoles();\n getUserRoutes(state.role);\n }, []);\n return (\n \n Routes Management\n \n \n \n \n {\n getUserRoutes(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={roles.map(({ id, name }) => {\n return {\n id: name,\n name,\n };\n })}\n />\n \n \n \n Tambah Route\n \n \n \n \n \n\n \n Tambah Role\n \n Tambah Role\n {\n setRouteForm({ ...routeForm, role: e.target.value });\n getAvailableRoutes(e.target.value);\n }}\n >\n {roles.map((option) => (\n \n {option.name}\n \n ))}\n \n \n setRouteForm({\n ...routeForm,\n route: { ...routeForm.route, id: e.target.value },\n })\n }\n >\n {routes.map((option) => (\n \n {option.route_name} ({option.route})\n \n ))}\n \n \n \n \n {\n updateRoutes(routeForm.route.id);\n }}\n >\n Tambah\n \n \n \n\n \n Revoke Route\n \n \n Revoke Route '{routeForm.route.name} ({routeForm.route.path}\n )' dari Role {routeForm.role}?\n \n \n \n \n {\n revokeRoutes(routeForm.route.id);\n }}\n >\n Revoke\n \n \n \n \n );\n};\n\nexport default RoutesManagement;\n","import {\n Dialog,\n DialogContentText,\n DialogContent,\n DialogTitle,\n DialogActions,\n Button,\n} from \"@material-ui/core\";\n\nconst OperDialog = ({\n open,\n handleClose,\n children,\n dialogText,\n title,\n onConfirmAction,\n confirmText,\n withoutActions,\n cancelText,\n disableBtn = false,\n}) => {\n return (\n \n {title}\n \n {dialogText}\n {children}\n \n {!withoutActions && (\n \n \n \n \n )}\n \n );\n};\n\nexport default OperDialog;\n","import {\n Box,\n Paper,\n TableBody,\n TableRow,\n Typography,\n Toolbar,\n TextField,\n Divider,\n DialogActions,\n useMediaQuery,\n useTheme,\n CircularProgress,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { Fragment, useEffect } from \"react\";\nimport { useState } from \"react\";\nimport Button from \"../../../components/controls/button\";\nimport Controls from \"../../../components/controls/Controls\";\nimport { baseUrl } from \"../../../config/const\";\nimport OperDialog from \"./components/Dialog\";\nimport useTable from \"../../../components/useTable\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst categories = [\n {\n id: \"P\",\n name: \"Pria\",\n },\n {\n id: \"W\",\n name: \"Wanita\",\n },\n {\n id: \"A\",\n name: \"Anak\",\n },\n {\n id: \"S\",\n name: \"Sports\",\n },\n {\n id: \"H\",\n name: \"Harian\",\n },\n {\n id: \"K\",\n name: \"Aksesoris\",\n },\n];\n\nconst OperStok = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [toko, setToko] = useState(\"PA2M\");\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [availableStok, setAvailableStok] = useState([]);\n const [listToko, setListToko] = useState([]);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [selectedProduct, setSelectedProduct] = useState(\"\");\n\n const [isLoading, setLoading] = useState(false);\n\n const initialValues = {\n segment: { id: \"W\", name: \"Wanita\" },\n sku: \"\",\n };\n\n const [filteringContent, setFilteringContent] = useState(initialValues);\n\n const handleDialog = (sku, toko) => {\n setDialogOpen(!dialogOpen);\n\n if (!sku) {\n setSelectedProduct(\"\");\n } else {\n setSelectedProduct(`${sku}-${toko}`);\n }\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getAvailableStok = async () => {\n try {\n setLoading(true);\n const { data } = await axios.get(`${baseUrl}/oper-stok/suggestions`, {\n params: {\n startdate: formatDate(dateRanges[0]),\n enddate: formatDate(dateRanges[1]),\n toko,\n sku: filteringContent.sku,\n segment: filteringContent.segment.id,\n },\n });\n\n setAvailableStok(data.data.qualifiedTargetProducts);\n\n setLoading(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n const headCells = [\n { id: \"receiver\", label: \"Penerima\", disableSorting: true },\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"stok_receiver\", label: \"Stok\", disableSorting: true },\n {\n id: \"kemunculan\",\n label: \"Total Hari Terbeli\",\n },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(availableStok, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getAvailableStok();\n }\n }, [toko, dateRanges, filteringContent]);\n\n return (\n \n Pengoperan Suggestions\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n segment: categories.find((c) => c.name === e.target.value),\n });\n }}\n options={categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n\n \n \n {\n setTimeout(() => {\n setFilteringContent({\n ...filteringContent,\n sku: e.target.value,\n });\n }, 1000);\n }}\n placeholder=\"CARI Kode ...\"\n />\n \n \n\n \n {isLoading && (\n \n \n \n \n \n \n )}\n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {item.toko}\n {item.Klkode}\n {item.stok}\n {item.kemunculan}\n\n \n \n {\n handleDialog(item.Klkode, item.toko);\n }}\n />\n \n \n \n {\n handleDialog();\n }}\n confirmText=\"Oper\"\n />\n \n \n ))}\n \n \n \n \n \n );\n};\n\nconst SuggestionModalContent = ({\n dateRanges,\n toko,\n sku,\n segment,\n totalSolds,\n currentStocks,\n purchaseRate,\n handleClose,\n occurences,\n onConfirmAction,\n confirmText,\n}) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [availableStok, setAvailableStok] = useState([]);\n const [bufferOper, setBufferOper] = useState([]);\n const [approvedOper, setApprovedOper] = useState([]);\n const [productRank, setProductRank] = useState([]);\n\n const [dialogOpen, setDialogOpen] = useState(false);\n const [isLoading, setLoading] = useState(false);\n const [isRankLoading, setRankLoading] = useState(false);\n const [isApprovedLoading, setApprovedLoading] = useState(false);\n const [productQty, setProductQty] = useState({});\n\n const [isSending, setIsSending] = useState(false);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const handleDialog = () => {\n setDialogOpen(!dialogOpen);\n };\n\n const suggestionHeadCells = [\n { id: \"origin\", label: \"Pemberi\", disableSorting: true },\n {\n id: \"kemunculan\",\n label: \"Total Hari Terbeli\",\n disableSorting: true,\n },\n\n { id: \"stok_origin\", label: \"Stok\", disableSorting: true },\n {\n id: \"qty_field\",\n label: \"Stok Yang Dioper\",\n disableSorting: true,\n },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const approvedHeadCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"origin\", label: \"Pemberi\", disableSorting: true },\n { id: \"stok_origin\", label: \"Stok\", disableSorting: true },\n {\n id: \"qty_field\",\n label: \"Stok Yang Dioper\",\n disableSorting: true,\n },\n ];\n\n const rankHeadCells = [\n { id: \"rank\", label: \"Ranking\", disableSorting: true },\n { id: \"target\", label: \"Penerima\", disableSorting: true },\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n {\n id: \"kemunculan\",\n label: \"Total Hari Terbeli\",\n disableSorting: true,\n },\n {\n id: \"total_pembelian\",\n label: \"Total Terjual\",\n disableSorting: true,\n },\n { id: \"stok_target\", label: \"Stok\", disableSorting: true },\n ];\n\n const moveProduct = async () => {\n try {\n if (!dialogOpen || !isSending) {\n return;\n }\n\n const productArray = bufferOper.map((buf) => ({\n date: formatDate(new Date()),\n origin: buf.origin,\n target: buf.target,\n sku: buf.Klkode,\n qty: Number(buf.qty),\n originStock: Number(buf.originStock),\n approvedAt: new Date(),\n }));\n\n const { data } = await axios.post(`${baseUrl}/oper-stok/suggestions`, {\n productArray,\n startdate: formatDate(dateRanges[0]),\n enddate: formatDate(dateRanges[1]),\n });\n\n setNotify({\n isOpen: true,\n type: \"success\",\n message: data.msg,\n location: \"\",\n });\n\n setDialogOpen(false);\n setBufferOper([]);\n getApproved();\n getAvailableStok();\n\n setIsSending(false);\n } catch (err) {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: err.response.data.msg,\n location: \"\",\n });\n }\n };\n\n const getApproved = async () => {\n try {\n setApprovedLoading(true);\n const { data } = await axios.get(`${baseUrl}/oper-stok/records`, {\n params: {\n target: toko,\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n status: \"approved\",\n search: sku,\n },\n });\n\n setApprovedOper(data.data.movedProduct);\n setApprovedLoading(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n const addStok = (item) => {\n if (!productQty[item.toko] || productQty[item.toko] > item.originStock) {\n item.error = true;\n\n setAvailableStok([...availableStok]);\n return;\n }\n\n setBufferOper([\n ...bufferOper,\n {\n id: uuidv4(),\n qty: productQty[item.toko],\n origin: item.toko,\n target: toko,\n originStock: item.stok,\n ...item,\n },\n ]);\n\n item.error = false;\n };\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(availableStok, suggestionHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const {\n TblHead: TblHeadApproved,\n TblContainer: TblContainerApproved,\n TblPagination: TblPaginationApproved,\n styledTableCell: TableCellApproved,\n recordsAfterPagingAndSorting: approvedRecords,\n } = useTable(approvedOper, approvedHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const {\n TblHead: TblHeadRank,\n TblContainer: TblContainerRank,\n TblPagination: TblPaginationRank,\n styledTableCell: TableCellRank,\n recordsAfterPagingAndSorting: rankRecords,\n } = useTable(productRank, rankHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const getAvailableStok = async () => {\n try {\n setLoading(true);\n const { data } = await axios.get(`${baseUrl}/oper-stok/suggestions`, {\n params: {\n startdate: formatDate(dateRanges[0]),\n enddate: formatDate(dateRanges[1]),\n sku,\n toko,\n segment,\n },\n });\n\n setAvailableStok(data.data.qualifiedTargetProducts[0].availableOrigin);\n setLoading(false);\n\n setProductQty(\n data.data.qualifiedTargetProducts[0].availableOrigin.reduce((a, c) => {\n a[c.toko] = 1;\n\n return a;\n }, {})\n );\n } catch (err) {\n console.error(err);\n }\n };\n\n const getProductRank = async () => {\n try {\n setRankLoading(true);\n const { data } = await axios.get(`${baseUrl}/oper-stok/target-ranks`, {\n params: {\n startdate: formatDate(dateRanges[0]),\n enddate: formatDate(dateRanges[1]),\n sku,\n toko,\n segment,\n },\n });\n\n setProductRank(data.data.qualifiedTargetProducts);\n setRankLoading(false);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getAvailableStok();\n getProductRank();\n getApproved();\n }\n }, []);\n\n useEffect(() => {\n if (isSending) {\n moveProduct();\n }\n }, [isSending]);\n\n return (\n \n \n \n \n SKU: {sku}\n \n \n Current Stocks: {currentStocks}\n \n \n Date Ranges: {formatDate(dateRanges[0])} - {formatDate(dateRanges[1])}\n \n \n Receiver: {toko}\n \n \n Total Solds: {totalSolds}\n \n\n \n Occurences: {occurences}\n \n \n \n\n \n \n Suggestions\n \n \n {isLoading && (\n \n \n \n \n \n \n )}\n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {item.toko}\n {item.kemunculan}\n {item.updatedStok}\n \n {\n const _productQty = { ...productQty };\n _productQty[item.toko] = e.target.value;\n\n setProductQty(_productQty);\n }}\n InputProps={{\n inputProps: { min: 1, max: item.updatedStok },\n }}\n FormHelperTextProps={{\n style: {\n position: \"absolute\",\n right: 16,\n color: \"red\",\n },\n }}\n fullWidth\n helperText={`max ${item.updatedStok}`}\n />\n \n\n \n \n {\n addStok(item);\n handleDialog();\n }}\n />\n \n \n \n ))}\n \n \n \n \n \n \n\n \n\n \n Approved\n \n \n {isApprovedLoading && (\n \n \n \n \n \n \n )}\n \n \n \n {approvedRecords().map((item, index) => (\n \n {item.sku}\n {item.origin}\n {item.origin_stock}\n {item.qty}\n \n ))}\n \n \n \n \n \n\n \n Target Product Rank\n \n \n {isRankLoading && (\n \n \n \n \n \n \n )}\n \n \n \n {rankRecords().map((item, index) => (\n \n {item.rank}\n {item.toko}\n {item.Klkode}\n {item.kemunculan}\n {item.totalPembelian}\n {item.stok}\n \n ))}\n \n \n \n \n\n {\n setIsSending(true);\n }}\n />\n \n \n );\n};\n\nfunction pad(num, size) {\n num = num.toString();\n while (num.length < size) num = \"0\" + num;\n return num;\n}\n\nfunction formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n}\n\nexport default OperStok;\n","import {\n Box,\n Paper,\n TableBody,\n TableRow,\n Typography,\n Toolbar,\n useMediaQuery,\n useTheme,\n TableFooter,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { useEffect } from \"react\";\nimport { useState } from \"react\";\nimport Button from \"../../../components/controls/button\";\nimport Controls from \"../../../components/controls/Controls\";\nimport { baseUrl } from \"../../../config/const\";\nimport useTable from \"../../../components/useTable\";\nimport OperDialog from \"./components/Dialog\";\n\nconst MovedList = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [completeDialog, setCompleteDialog] = useState(false);\n const [cancelDialog, setCancelDialog] = useState(false);\n const [toko, setToko] = useState(\"PA2M\");\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [approvedOper, setApprovedOper] = useState([]);\n const [listToko, setListToko] = useState([]);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [selectedProduct, setSelectedProduct] = useState(\"\");\n const [infoModal, setInfoModal] = useState(false);\n const [globalScore, setGlobalScore] = useState(\"\");\n\n const initialValues = {\n segment: \"\",\n sku: \"\",\n };\n\n const [filteringContent, setFilteringContent] = useState(initialValues);\n\n const [selectedRow, setSelectedRow] = useState(\"\");\n\n const handleCompleteDialog = (id) => {\n if (!id) {\n setSelectedRow(\"\");\n } else {\n setSelectedRow(id);\n }\n\n setCompleteDialog(!completeDialog);\n };\n\n const handleCancelDialog = (id) => {\n if (!id) {\n setSelectedRow(\"\");\n } else {\n setSelectedRow(id);\n }\n\n setCancelDialog(!cancelDialog);\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getOperRecords = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/oper-stok/records`, {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n target: toko,\n search: filteringContent.sku,\n },\n });\n\n setApprovedOper(data.data.movedProduct);\n setGlobalScore(data.data.globalScore);\n } catch (err) {\n console.error(err);\n }\n };\n\n const completeOper = async (id) => {\n try {\n const { data } = await axios.put(`${baseUrl}/oper-stok/records/${id}`, {\n status: \"completed\",\n });\n\n getOperRecords();\n handleCompleteDialog();\n } catch (err) {\n console.error(err);\n }\n };\n\n const cancelOper = async (id) => {\n try {\n const { data } = await axios.put(`${baseUrl}/oper-stok/records/${id}`, {\n status: \"cancelled\",\n updatedAt: new Date(),\n });\n\n getOperRecords();\n handleCancelDialog();\n } catch (err) {\n console.error(err);\n }\n };\n\n const headCells = [\n { id: \"penerima\", label: \"Penerima\", disableSorting: true },\n { id: \"pemberi\", label: \"Pemberi\", disableSorting: true },\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"qty\", label: \"Qty\", disableSorting: true },\n { id: \"status\", label: \"Status\", disableSorting: true },\n { id: \"approved_at\", label: \"Disetujui Pada\", disableSorting: true },\n { id: \"sent_at\", label: \"Dikirim Pada\", disableSorting: true },\n { id: \"completed_at\", label: \"Diterima Pada\", disableSorting: true },\n { id: \"rejected_at\", label: \"Ditolak Pada\", disableSorting: true },\n { id: \"rejection reason\", label: \"Alasan Menolak\", disableSorting: true },\n {\n id: \"date_difference\",\n label: \"Total Hari Analisis\",\n disableSorting: true,\n },\n { id: \"score\", label: \"Score\", disableSorting: true },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(approvedOper, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getOperRecords();\n }\n }, [toko, dateRanges, filteringContent]);\n\n return (\n \n Pengoperan Yang Disetujui\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n\n \n \n {\n setTimeout(() => {\n setFilteringContent({\n ...filteringContent,\n sku: e.target.value,\n });\n }, 1000);\n }}\n placeholder=\"CARI Kode ...\"\n />\n \n \n\n \n \n \n \n {recordsAfterPagingAndSorting()\n .sort((a, b) => {\n if (a.id > b.id) {\n return 1;\n }\n\n if (a.id < b.id) {\n return -1;\n }\n\n return 0;\n })\n .map((item, index) => (\n \n {item.target}\n {item.origin}\n {item.sku}\n {item.qty}\n {item.status}\n \n {item.date ? formatDate(item.approved_at) : null}\n \n \n {item.sent_at ? formatDate(item.sent_at) : null}\n \n \n {item.completed_at ? formatDate(item.completed_at) : null}\n \n\n \n {item.cancelled_at ? formatDate(item.cancelled_at) : null}\n \n {item.rejection_reason}\n {item.date_difference}\n {item.score}\n\n \n \n handleCancelDialog(item.id)}\n />\n \n \n \n {\n cancelOper(item.id);\n }}\n />\n \n ))}\n \n \n
\n
\n Global Score : {globalScore}\n
\n
\n \n
\n
\n );\n};\n\nfunction formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n}\nexport default MovedList;\n","import { useState, useRef, useEffect } from \"react\";\nimport axios from \"axios\";\nimport {\n Typography,\n Toolbar,\n Box,\n Paper,\n Button,\n TableRow,\n TableBody,\n} from \"@material-ui/core\";\nimport ReactToPrint from \"react-to-print\";\n\nimport { baseUrl } from \"../../../../../config/const\";\nimport Controls from \"../../../../../components/controls/Controls\";\nimport useTable from \"../../../../../components/useTable\";\n\nconst GajianTable = ({ listToko, setNotify }) => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const [gajianTrainee, setGajianTrainee] = useState([]);\n\n const ref = useRef();\n\n const getGajianTrainee = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/gajianTrainee`, {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n },\n });\n\n setGajianTrainee(data.map((item, index) => ({ id: index, ...item })));\n } catch (err) {\n console.error(err);\n }\n };\n\n function formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n const numberize = (param) => {\n return Number(param);\n };\n\n const gajiHeadCells = [\n {\n id: \"username\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Trainee\",\n },\n {\n id: \"toko\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Toko\",\n },\n {\n id: \"tanggalmasuk\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Tanggal Masuk\",\n },\n {\n id: \"totalpresensi\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Total Hadir\",\n },\n {\n id: \"gaji_pokok\",\n disableColumnMenu: true,\n disableSorting: true,\n flex: 1,\n label: \"Gaji Pokok\",\n type: \"number\",\n valueGetter: (params) => numberize(params.row.total),\n },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n gajianTrainee,\n gajiHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getGajianTrainee();\n }\n }, [dateRanges]);\n\n return (\n <>\n \n Gajian Trainee\n \n \n \n \n \n \n \n \n \n\n \n \n (\n \n )}\n content={() => ref.current}\n documentTitle={`trainee_${\n dateRanges[0]\n ? dateRanges[0].toLocaleDateString(\"en-CA\")\n : \"\"\n } - ${\n dateRanges[1]\n ? dateRanges[1].toLocaleDateString(\"en-CA\")\n : \"\"\n }`}\n />\n \n \n \n \n \n
\n \n {dateRanges[0] && dateRanges[1] ? (\n \n Trainee | {formatDate(dateRanges[0])} -{\" \"}\n {formatDate(dateRanges[1])}\n \n ) : null}\n \n\n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n \n {item.username}\n \n \n {item.toko}\n \n \n {formatDate(item.tanggalmasuk)}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.total_presensi)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.gaji_pokok)\n )}\n \n \n ))}\n \n \n \n
\n \n
\n \n );\n};\n\nexport default GajianTable;\n","import {\n Box,\n Paper,\n TableBody,\n TableRow,\n Typography,\n Toolbar,\n useMediaQuery,\n useTheme,\n Divider,\n TextField,\n DialogActions,\n} from \"@material-ui/core\";\nimport axios from \"axios\";\nimport { useEffect } from \"react\";\nimport { useState } from \"react\";\nimport Button from \"../../../components/controls/button\";\nimport Controls from \"../../../components/controls/Controls\";\nimport { baseUrl } from \"../../../config/const\";\nimport useTable from \"../../../components/useTable\";\nimport OperDialog from \"./components/Dialog\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst categories = [\n {\n id: \"\",\n name: \"All\",\n regex: \"\",\n },\n {\n id: \"P\",\n name: \"PPO\",\n regex: \"^P(?!PO)\",\n },\n {\n id: \"PPO\",\n name: \"Pria\",\n regex: \"^PPO\",\n },\n {\n id: \"W\",\n name: \"Wanita\",\n regex: \"^W(?!PO)\",\n },\n {\n id: \"WPO\",\n name: \"WPO\",\n regex: \"^WPO\",\n },\n {\n id: \"A\",\n name: \"Anak\",\n regex: \"^A\",\n },\n {\n id: \"S\",\n name: \"Sports\",\n regex: \"^S\",\n },\n {\n id: \"H\",\n name: \"Harian\",\n regex: \"^H\",\n },\n {\n id: \"K\",\n name: \"Aksesoris\",\n regex: \"^K\",\n },\n];\n\nconst DeadProducts = () => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [completeDialog, setCompleteDialog] = useState(false);\n const [cancelDialog, setCancelDialog] = useState(false);\n const [toko, setToko] = useState(\"PA2M\");\n const now = new Date(Date.now());\n const [deadProducts, setDeadProducts] = useState([]);\n const [listToko, setListToko] = useState([]);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [selectedProduct, setSelectedProduct] = useState(\"\");\n\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const initialValues = {\n segment: {\n id: \"\",\n name: \"All\",\n regex: \"\",\n },\n sku: \"\",\n };\n\n const [filteringContent, setFilteringContent] = useState(initialValues);\n\n const [selectedRow, setSelectedRow] = useState(\"\");\n\n const handleCompleteDialog = (id) => {\n if (!id) {\n setSelectedRow(\"\");\n } else {\n setSelectedRow(id);\n }\n\n setCompleteDialog(!completeDialog);\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getProductDemandList = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/oper-stok/demand-check`, {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n toko,\n category: filteringContent.segment.regex,\n },\n });\n\n setDeadProducts(data.data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const headCells = [\n { id: \"kode\", label: \"Kode\", disableSorting: true },\n { id: \"stok\", label: \"Stok Sekarang\", disableSorting: true },\n {\n id: \"p0_PR\",\n label: `Rate (${formatDate(\n deadProducts.throwBackDate || new Date()\n )} - ${formatDate(dateRanges[0])})`,\n disableSorting: true,\n },\n {\n id: \"p0_sold\",\n label: `Terjual (${formatDate(\n deadProducts.throwBackDate || new Date()\n )} - ${formatDate(dateRanges[0])})`,\n disableSorting: true,\n },\n {\n id: \"p0_PrAvg\",\n label: `AVG (${formatDate(\n deadProducts.throwBackDate || new Date()\n )} - ${formatDate(dateRanges[0])})`,\n disableSorting: true,\n },\n {\n id: \"p1_PR\",\n label: `Rate (${formatDate(dateRanges[0])} - ${formatDate(\n dateRanges[1]\n )})`,\n disableSorting: true,\n },\n {\n id: \"p1_sold\",\n label: `Terjual (${formatDate(dateRanges[0])} - ${formatDate(\n dateRanges[1]\n )})`,\n disableSorting: true,\n },\n {\n id: \"p1_PrAvg\",\n label: `AVG (${formatDate(dateRanges[0])} - ${formatDate(\n dateRanges[1]\n )})`,\n disableSorting: true,\n },\n {\n id: \"throwback\",\n label: \"Throwback Period\",\n },\n { id: \"actions\", label: \"Action\", disableSorting: true },\n ];\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(deadProducts.deadStocks || [], headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const handleDialog = (sku, toko) => {\n setDialogOpen(!dialogOpen);\n\n if (!sku) {\n setSelectedProduct(\"\");\n } else {\n setSelectedProduct(`${sku}-${toko}`);\n }\n };\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getProductDemandList();\n }\n }, [toko, dateRanges, filteringContent]);\n\n return (\n \n Cek Product Mati\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n\n \n \n {\n setFilteringContent({\n ...filteringContent,\n segment: categories.find((c) => c.name === e.target.value),\n });\n }}\n options={categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n\n \n \n \n \n \n\n \n \n {\n setTimeout(() => {\n setFilteringContent({\n ...filteringContent,\n sku: e.target.value,\n });\n }, 1000);\n }}\n placeholder=\"CARI Kode ...\"\n />\n \n \n\n \n \n \n \n {recordsAfterPagingAndSorting()\n .sort((a, b) => {\n if (a.id > b.id) {\n return 1;\n }\n\n if (a.id < b.id) {\n return -1;\n }\n\n return 0;\n })\n .map((item, index) => (\n \n {item.kode}\n {item.stok}\n {Number(item.p0_purchaseRate)}\n {Number(item.p0_totalPembelian)}\n \n {Number(deadProducts.p0_purchaseRateAvg)}\n \n {Number(item.p1_purchaseRate)}\n {Number(item.p1_totalPembelian)}\n \n {Number(deadProducts.p1_purchaseRateAvg)}\n \n \n {`${deadProducts.throwBackDate || \"\"} - ${\n deadProducts.startDate || \"\"\n }` || \"\"}\n \n \n \n {\n handleDialog(item.kode, item.toko);\n }}\n />\n \n \n\n \n {\n handleDialog();\n }}\n confirmText=\"Oper\"\n />\n \n \n ))}\n \n \n \n \n \n );\n};\n\nconst SuggestionModalContent = ({\n dateRanges,\n toko,\n sku,\n totalSolds,\n currentStocks,\n purchaseRate,\n handleClose,\n onConfirmAction,\n confirmText,\n}) => {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const [availableStok, setAvailableStok] = useState([]);\n const [bufferOper, setBufferOper] = useState([]);\n const [approvedOper, setApprovedOper] = useState([]);\n\n const [dialogOpen, setDialogOpen] = useState(false);\n\n const [maxOper, setMaxOper] = useState(currentStocks);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const handleDialog = () => {\n setDialogOpen(!dialogOpen);\n };\n\n const suggestionHeadCells = [\n { id: \"toko\", label: \"Penerima\", disableSorting: true },\n {\n id: \"targetPurchaseRate\",\n label: \"Purchase Rate\",\n disableSorting: true,\n },\n\n { id: \"stok_origin\", label: \"Stok\", disableSorting: true },\n {\n id: \"qty_field\",\n label: \"Stok Yang Dioper\",\n disableSorting: true,\n },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const bufferHeadCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"origin\", label: \"Penerima\", disableSorting: true },\n { id: \"stok_origin\", label: \"Stok Pemberi\", disableSorting: true },\n {\n id: \"qty_field\",\n label: \"Stok Yang Dioper\",\n disableSorting: true,\n },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n\n const approvedHeadCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"origin\", label: \"Pemberi\", disableSorting: true },\n { id: \"stok_origin\", label: \"Stok\", disableSorting: true },\n {\n id: \"qty_field\",\n label: \"Stok Yang Dioper\",\n disableSorting: true,\n },\n ];\n\n const moveProduct = async () => {\n try {\n if (!dialogOpen) {\n return;\n }\n const productArray = bufferOper.map((buf) => ({\n date: formatDate(new Date()),\n origin: toko,\n target: buf.toko,\n sku: buf.kode,\n qty: Number(buf.qty),\n originStock: Number(currentStocks),\n }));\n\n const { data } = await axios.post(`${baseUrl}/oper-stok/suggestions`, {\n productArray,\n });\n\n setNotify({\n isOpen: true,\n type: \"success\",\n message: data.msg,\n location: \"\",\n });\n\n setDialogOpen(false);\n setBufferOper([]);\n getApproved();\n } catch (err) {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: err.response.data.msg,\n location: \"\",\n });\n }\n };\n\n const addStok = (item, qty) => {\n console.log(item);\n if (!item.qty || item.qty > item.originStock) {\n item.error = true;\n item.qty = qty;\n\n setAvailableStok([...availableStok]);\n return;\n }\n\n setBufferOper([\n ...bufferOper,\n { id: uuidv4(), qty: item.qty ? item.qty : 0, ...item },\n ]);\n\n item.error = false;\n item.qty = 0;\n };\n\n const {\n TblHead: TblHeadApproved,\n TblContainer: TblContainerApproved,\n TblPagination: TblPaginationApproved,\n styledTableCell: TableCellApproved,\n recordsAfterPagingAndSorting: approvedRecords,\n } = useTable(approvedOper, approvedHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const {\n TblHead: TblHeadBuffer,\n TblContainer: TblContainerBuffer,\n TblPagination: TblPaginationBuffer,\n styledTableCell: TableCellBuffer,\n recordsAfterPagingAndSorting: bufferRecords,\n } = useTable(bufferOper, bufferHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const {\n TblHead,\n TblContainer,\n TblPagination,\n styledTableCell: TableCell,\n recordsAfterPagingAndSorting,\n } = useTable(availableStok, suggestionHeadCells, {\n fn: (items) => {\n return items;\n },\n });\n\n const getTarget = async () => {\n try {\n const { data } = await axios.get(\n `${baseUrl}/oper-stok/demand-check/target`,\n {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n toko,\n sku,\n },\n }\n );\n\n setAvailableStok(data.data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getApproved = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/oper-stok/records`, {\n params: {\n origin: toko,\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n status: \"approved\",\n sku,\n },\n });\n\n setApprovedOper(data.data.movedProduct);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getApproved();\n getTarget();\n }\n }, []);\n\n return (\n \n \n\n \n \n Suggestions\n \n \n \n \n \n {recordsAfterPagingAndSorting().map((item, index) => (\n \n {item.toko}\n {item.purchase_rate}\n {item.stok}\n \n {\n item.qty = e.target.value;\n }}\n InputProps={{\n inputProps: { min: 1, max: item.originStock },\n }}\n FormHelperTextProps={{\n style: {\n position: \"absolute\",\n right: 16,\n color: \"red\",\n },\n }}\n fullWidth\n helperText={`max ${currentStocks}`}\n />\n \n\n \n \n {\n addStok(item);\n }}\n />\n \n \n \n ))}\n \n \n \n \n \n \n Produk yang akan dipindah\n \n \n \n \n \n {bufferRecords().map((item, index) => (\n \n {item.kode}\n {item.toko}\n {currentStocks}\n {item.qty}\n \n \n {\n const _bufferOper = [...bufferOper];\n\n _bufferOper.splice(\n _bufferOper.findIndex(\n (buf) => buf.id === item.id\n ),\n 1\n );\n\n setBufferOper(_bufferOper);\n }}\n text={\"Delete\"}\n />\n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default TeamTokoDialog;\n","import { Fragment, useState, useEffect } from \"react\";\nimport {\n IconButton,\n Box,\n TextField,\n MenuItem,\n Typography,\n useMediaQuery,\n FormControlLabel,\n Switch,\n} from \"@material-ui/core\";\nimport { AddCircleRounded, Delete, Edit } from \"@material-ui/icons\";\nimport axios from \"axios\";\nimport TeamTokoDialog from \"./TeamTokoDialog\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst roles = [\n { value: \"ketua\", label: \"Ketua\" },\n { value: \"staff\", label: \"Staff\" },\n { value: \"penggantiketua\", label: \"Pengganti Ketua\" },\n { value: \"trainee\", label: \"Trainee\" },\n];\n\nconst tipeStaff = [\n { value: \"harian\", label: \"Harian\" },\n { value: \"borongan\", label: \"Borongan\" },\n];\n\nconst keaktifan = [\n { value: true, label: \"true\" },\n { value: false, label: \"false\" },\n];\n\nconst TeamPabrik = () => {\n const [teams, setTeams] = useState({});\n const [members, setMembers] = useState([]);\n const [memberModal, setMemberModal] = useState(false);\n const [listToko, setListToko] = useState([]);\n\n const matchSm = useMediaQuery(\"(min-width:1000px)\");\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const [newMemberFields, setNewMemberFields] = useState({\n username: \"\",\n type: \"\",\n });\n\n const getMembers = async () => {\n try {\n const { data } = await axios.get(`${baseUrl}/staffPabrik`);\n setMembers(data);\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const handleMemberModal = () => {\n setMemberModal(!memberModal);\n };\n\n const registerNewMember = async () => {\n const { username, type } = newMemberFields;\n try {\n await axios.post(`${baseUrl}/staffPabrik`, {\n username,\n type,\n });\n\n handleMemberModal();\n setNewMemberFields({\n username: \"\",\n type: \"\",\n });\n getMembers();\n } catch (e) {\n setNotify({\n message: e.response.data.msg,\n isOpen: true,\n type: \"error\",\n location: \"/hrd\",\n });\n console.error(e);\n }\n };\n\n const columns = [\n {\n field: \"username\",\n headerName: \"Name\",\n width: 200,\n },\n {\n field: \"type\",\n headerName: \"Golongan\",\n width: 200,\n },\n {\n field: \"date_registered\",\n headerName: \"Tanggal Masuk\",\n width: 200,\n },\n {\n field: \"cuti\",\n headerName: \"Cuti\",\n width: 200,\n renderCell: (params) => (\n \n ),\n },\n {\n field: \"active\",\n headerName: \"Aktif\",\n width: 200,\n },\n {\n field: \"edit\",\n type: \"action\",\n headerName: \"Edit\",\n width: 200,\n renderCell: (params) => (\n \n ),\n },\n {\n field: \"delete\",\n type: \"action\",\n headerName: \"Hapus\",\n width: 200,\n renderCell: (params) => (\n \n ),\n },\n ];\n\n useEffect(() => {\n getMembers();\n }, []);\n\n return (\n \n \n {matchSm && (\n \n {new Date().toLocaleDateString(\"id\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n \n )}\n \n HRD Pabrik Happy\n \n \n \n \n \n\n {!matchSm && (\n \n {new Date().toLocaleDateString(\"id\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n \n )}\n\n \n \n \n\n \n \n setNewMemberFields({ ...newMemberFields, username: e.target.value })\n }\n />\n \n setNewMemberFields({\n ...newMemberFields,\n type: e.target.value,\n })\n }\n >\n {tipeStaff.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n \n );\n};\n\nconst CutiComponent = ({ cuti, username, type, getMembers = () => {} }) => {\n const [modalOpen, setModalOpen] = useState(false);\n const [cutiOffModalOpen, setCutiOffModalOpen] = useState(false);\n\n const [cutiFields, setCutiFields] = useState({ alasan: \"\" });\n\n const handleModal = () => {\n setModalOpen(!modalOpen);\n };\n\n const handleCutiOffModal = () => {\n setCutiOffModalOpen(!cutiOffModalOpen);\n };\n\n const cutiMember = async ({ staff, tanggal, alasan, type }) => {\n try {\n await axios.post(`${baseUrl}/insertAbsensiPabrik`, {\n staff,\n tanggal,\n alasan,\n type,\n });\n\n handleModal();\n getMembers();\n } catch (e) {\n // setNotify({\n // message: e.response.data.msg,\n // isOpen: true,\n // type: \"error\",\n // location: \"/hrd\",\n // });\n console.error(e);\n }\n };\n\n const disableCutiStaff = async ({ username: staff }) => {\n try {\n await axios.put(`${baseUrl}/disableStaffCutiPabrik`, {\n staff,\n });\n\n handleCutiOffModal();\n getMembers();\n } catch (e) {\n // setNotify({\n // message: e.response.data.msg,\n // isOpen: true,\n // type: \"error\",\n // location: \"/hrd\",\n // });\n console.error(e);\n }\n };\n\n return (\n \n {\n if (!cuti) {\n handleModal();\n } else {\n handleCutiOffModal();\n }\n }}\n />\n }\n />\n\n {\n cutiMember({\n staff: username,\n tanggal: new Date().toISOString().split(\"T\")[0],\n alasan: cutiFields.alasan,\n type,\n });\n }}\n confirmText=\"Cuti\"\n >\n \n setCutiFields({\n ...cutiFields,\n alasan: e.target.value,\n })\n }\n />\n \n {/* lepas cuti */}\n {\n handleCutiOffModal();\n }}\n title={`Apakah anda ingin melepaskan status cuti untuk ${username}?`}\n onConfirmAction={() => {\n disableCutiStaff({ username });\n }}\n confirmText=\"Lepas Cuti\"\n >\n \n );\n};\n\nconst DeleteComponent = ({ username, getMembers = () => {} }) => {\n const [modalOpen, setModalOpen] = useState(false);\n\n const handleModal = () => {\n setModalOpen(!modalOpen);\n };\n\n const deleteMember = async (username) => {\n try {\n await axios.delete(`${baseUrl}/staffPabrik`, {\n data: { username },\n });\n\n // setNotify({\n // message: data.msg,\n // isOpen: true,\n // type: \"success\",\n // location: \"/hrd\",\n // });\n\n handleModal();\n getMembers();\n } catch (e) {\n // setNotify({\n // message: e.response.data.msg,\n // isOpen: true,\n // type: \"error\",\n // location: \"/hrd\",\n // });\n console.error(e);\n }\n };\n\n return (\n \n {\n handleModal();\n }}\n >\n \n \n\n {\n deleteMember(username);\n }}\n confirmText=\"Delete\"\n >\n \n );\n};\n\nconst EditComponent = ({\n username,\n type,\n cuti,\n active,\n updated_at = \"\",\n getMembers = () => {},\n}) => {\n const [memberData, setMemberData] = useState({\n username,\n type,\n cuti,\n active,\n });\n const [modalOpen, setModalOpen] = useState(false);\n\n const handleModal = () => {\n setModalOpen(!modalOpen);\n };\n\n const editMember = async () => {\n const { type, active } = memberData;\n try {\n const { data } = await axios.put(\n `${baseUrl}/staffPabrik?_username=${username}`,\n {\n username: memberData.username,\n type,\n active,\n }\n );\n\n console.log(data);\n handleModal();\n getMembers();\n } catch (e) {\n // setNotify({\n // message: e.response.data.msg,\n // isOpen: true,\n // type: \"error\",\n // location: \"/hrd\",\n // });\n console.error(e);\n }\n };\n\n return (\n \n {\n handleModal();\n }}\n >\n \n \n\n {\n editMember();\n }}\n confirmText=\"Edit\"\n >\n \n {`Last updated at\n ${\n updated_at\n ? new Date(updated_at).toLocaleString(\"en-GB\")\n : \" - never\"\n } `}\n \n \n setMemberData({\n ...memberData,\n username: e.target.value,\n })\n }\n />\n \n setMemberData({\n ...memberData,\n type: e.target.value,\n })\n }\n >\n {tipeStaff.map((option) => (\n \n {option.label}\n \n ))}\n \n\n \n setMemberData({\n ...memberData,\n active: e.target.value,\n })\n }\n >\n {keaktifan.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n );\n};\n\nexport default TeamPabrik;\n","import { useState, useRef, useEffect } from \"react\";\nimport axios from \"axios\";\nimport {\n Typography,\n Toolbar,\n Box,\n Paper,\n Button,\n TableRow,\n TableBody,\n TableFooter,\n TableCell,\n} from \"@material-ui/core\";\nimport ReactToPrint from \"react-to-print\";\n\nimport { baseUrl } from \"../../../../../config/const\";\nimport Controls from \"../../../../../components/controls/Controls\";\nimport useTable from \"../../../../../components/useTable\";\n\nfunction formatToIndonesianCurrency(amount) {\n // Ensure the input is an integer\n if (!Number.isInteger(amount)) {\n throw new Error(\"Input must be an integer\");\n }\n\n // Use Intl.NumberFormat to format the number as Indonesian Rupiah\n const formatter = new Intl.NumberFormat(\"id-ID\", {\n style: \"currency\",\n currency: \"IDR\",\n minimumFractionDigits: 0,\n });\n\n // Format the amount and remove the \"Rp\" prefix\n let formattedAmount = formatter.format(amount);\n\n return formattedAmount;\n}\n\nconst GajianPabrik = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const [gajianPabrik, setGajianPabrik] = useState([]);\n const [totalGaji, setTotalGaji] = useState(\"0\");\n\n const ref = useRef();\n\n const getGajianPabrik = async () => {\n try {\n const {\n data: { results, msg, totalGaji },\n } = await axios.get(`${baseUrl}/getGajianHarianPabrik`, {\n params: {\n month: dateRanges[0].getMonth() + 1,\n year: dateRanges[0].getFullYear(),\n },\n });\n\n setGajianPabrik(\n results.rows.map((item, index) => ({ id: index, ...item }))\n );\n\n setTotalGaji(formatToIndonesianCurrency(totalGaji));\n } catch (err) {\n console.error(err);\n }\n };\n\n const gajianHeadCells = [\n {\n id: \"username\",\n disableSorting: true,\n sortable: true,\n flex: 1.5,\n label: \"Nama\",\n },\n {\n id: \"totalabsen\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Tidak Hadir\",\n width: 100,\n type: \"number\",\n },\n {\n id: \"totalpresensi\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Hadir\",\n type: \"number\",\n },\n {\n id: \"totaltidaktercatat\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Tidak Checkin\",\n type: \"number\",\n },\n {\n id: \"totalmenitterlambat\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Terlambat (menit)\",\n type: \"number\",\n },\n {\n id: \"totalgaji\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Gaji\",\n type: \"number\",\n },\n {\n id: \"bank\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Bank\",\n },\n {\n id: \"bankaccount\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Nomor Akun Bank\",\n },\n {\n id: \"bankaccountname\",\n disableSorting: true,\n sortable: false,\n flex: 1.5,\n label: \"Pemilik Akun Bank\",\n },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n gajianPabrik,\n gajianHeadCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n getGajianPabrik();\n }\n }, [dateRanges]);\n\n return (\n <>\n \n Gajian Pabrik\n \n \n \n \n \n \n \n \n\n \n \n (\n \n )}\n content={() => ref.current}\n documentTitle={`pabrik_${\n dateRanges[0]\n ? dateRanges[0].toLocaleDateString(\"en-CA\")\n : \"\"\n } - ${\n dateRanges[1]\n ? dateRanges[1].toLocaleDateString(\"en-CA\")\n : \"\"\n }`}\n />\n \n \n \n \n \n
\n \n \n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n \n {item.username}\n \n \n {item.totalabsen}\n \n \n {item.totalpresensi}\n \n \n {item.totaltidaktercatat}\n \n \n {item.totalmenitterlambat}\n \n \n {item.totalgaji}\n \n \n {item.bank}\n \n \n {item.bankaccount}\n \n \n {item.bankaccountname}\n \n \n ))}\n \n \n \n Total: {totalGaji} \n
\n \n \n \n
\n \n );\n};\n\nexport default GajianPabrik;\n","import { Route } from \"react-router-dom\";\nimport SupplierManagement from \"./procurement/management\";\nimport supplierTransactions from \"./procurement/transaction\";\nimport ControlProduct from \"./product/components/components\";\nimport CreateSKU from \"./product/insert/createSKU\";\nimport CompleteProducts from \"./product/list/complete\";\nimport IncompleteProducts from \"./product/list/incomplete\";\nimport UploadBanner from \"./marketing/uploadBanner\";\nimport React, { useEffect, useState } from \"react\";\nimport OfflineSales from \"./sales/offline\";\nimport OnlineSales from \"./sales/online\";\nimport InsertOnlineSales from \"./sales/insertonlinesales\";\nimport PaymentTesting from \"./finance/paymentTesting\";\nimport ArchivedProducts from \"./product/list/archived\";\nimport PriceManagement from \"./product/management/promoprice\";\nimport Promotions from \"./marketing/promotions\";\nimport VouchersClaimed from \"./vouchers/VouchersClaimed\";\nimport PointsAdded from \"./vouchers/PointsAdded\";\nimport Whatsapp from \"./whatsapp/Whatsapp\";\nimport Wishlist from \"./sales/Wishlist\";\nimport StockHarian from \"./product/stock/StockHarian\";\nimport Analytics from \"./sales/analytics/Analytics\";\nimport TeamToko from \"./teamtoko/TeamToko\";\nimport Presensi from \"./teamtoko/Presensi\";\nimport SalesAnalysis from \"./kpi/sales-analysis/SalesAnalysis\";\nimport MemberAnalysis from \"./kpi/member-analysis/MemberAnalysis\";\nimport Insert from \"./kpi/insert/Insert\";\nimport KPISales from \"./kpi/sales/Sales\";\nimport Staff from \"./analytics/Staff\";\nimport InsertOfflineSales from \"./sales/InsertOffline\";\nimport GajianStaff from \"./analytics/gajian/pages/staff/GajianStaff\";\nimport GajianToko from \"./analytics/gajian/pages/toko/GajianToko\";\nimport StoreMember from \"./kpi/member/StoreMember\";\nimport UploadOnlineSales from \"./sales/UploadOnlineSales\";\nimport axios from \"axios\";\nimport { baseUrl } from \"./config/const\";\nimport RoutesManagement from \"./routes-management/RoutesManagement\";\nimport OperStok from \"./product/oper-stok/pages/OperStok\";\nimport MovedList from \"./product/oper-stok/pages/MovedList\";\nimport GajianTrainee from \"./analytics/gajian/pages/trainee/GajianTrainee\";\nimport DeadProducts from \"./product/oper-stok/pages/DeadProducts\";\nimport GajianCost from \"./analytics/gajian/pages/cost/GajianCost\";\nimport OperStokBySKU from \"./product/oper-stok/pages/OperStokBySKU\";\nimport TeamPabrik from \"./teampabrik/TeamToko\";\nimport PresensiPabrik from \"./teampabrik/Presensi\";\nimport AbsensiPabrik from \"./teampabrik/Absensi\";\nimport Absensi from \"./teamtoko/Absensi\";\nimport GajianPabrik from \"./analytics/gajian/pages/pabrik/GajianPabrik\";\n\nconst routes = [\n {\n path: \"/sales/online\",\n component: OnlineSales,\n },\n {\n path: \"/sales/offline\",\n component: OfflineSales,\n },\n {\n path: \"/sales/insertonlinesales\",\n component: InsertOnlineSales,\n },\n {\n path: \"/sales/insertofflinesales\",\n component: InsertOfflineSales,\n },\n {\n path: \"/sales/wishlist\",\n component: Wishlist,\n },\n {\n path: \"/sales/analytics\",\n component: Analytics,\n },\n {\n path: \"/sales/upload-online\",\n component: UploadOnlineSales,\n },\n {\n path: \"/vouchers/claimed\",\n component: VouchersClaimed,\n },\n {\n path: \"/vouchers/points\",\n component: PointsAdded,\n },\n {\n path: \"/hrd/teamtoko\",\n component: TeamToko,\n },\n {\n path: \"/hrdpabrik/teampabrik\",\n component: TeamPabrik,\n },\n {\n path: \"/hrdpabrik/presensipabrik\",\n component: PresensiPabrik,\n },\n {\n path: \"/hrdpabrik/absensipabrik\",\n component: AbsensiPabrik,\n },\n {\n path: \"/hrd/presensi\",\n component: Presensi,\n },\n {\n path: \"/hrd/absensi\",\n component: Absensi,\n },\n {\n path: \"/products/completeProducts\",\n component: CompleteProducts,\n },\n {\n path: \"/products/incompleteProducts\",\n component: IncompleteProducts,\n },\n {\n path: \"/products/controlProducts\",\n component: ControlProduct,\n },\n {\n path: \"/products/archivedProducts\",\n component: ArchivedProducts,\n },\n {\n path: \"/products/createSKU\",\n component: CreateSKU,\n },\n {\n path: \"/products/priceManagement\",\n component: PriceManagement,\n },\n {\n path: \"/products/stock-harian\",\n component: StockHarian,\n },\n {\n path: \"/supplier/transaction\",\n component: supplierTransactions,\n },\n {\n path: \"/supplier/management\",\n component: SupplierManagement,\n },\n {\n path: \"/finance/paymentGateway\",\n component: PaymentTesting,\n },\n {\n path: \"/marketing/banner\",\n component: UploadBanner,\n },\n {\n path: \"/marketing/promotion\",\n component: Promotions,\n },\n {\n path: \"/analytics/sales\",\n component: SalesAnalysis,\n },\n {\n path: \"/analytics/memberships\",\n component: MemberAnalysis,\n },\n {\n path: \"/analytics/gajian/toko\",\n component: GajianToko,\n },\n {\n path: \"/analytics/gajian/cost\",\n component: GajianCost,\n },\n {\n path: \"/analytics/staffs\",\n component: Staff,\n },\n {\n path: \"/analytics/gajian/staff\",\n component: GajianStaff,\n },\n {\n path: \"/analytics/gajian/trainee\",\n component: GajianTrainee,\n },\n {\n path: \"/analytics/gajian/pabrik\",\n component: GajianPabrik,\n },\n {\n path: \"/analytics/pengoperan/records\",\n component: MovedList,\n },\n {\n path: \"/analytics/pengoperan/dead-products\",\n component: DeadProducts,\n },\n {\n path: \"/analytics/pengoperan/suggestions\",\n component: OperStok,\n },\n {\n path: \"/analytics/pengoperan/suggestions-by-sku\",\n component: OperStokBySKU,\n },\n {\n path: \"/kpi/memberships\",\n component: StoreMember,\n },\n {\n path: \"/kpi/insert\",\n component: Insert,\n },\n {\n path: \"/kpi/sales\",\n component: KPISales,\n },\n {\n path: \"/permission/routes-management\",\n component: RoutesManagement,\n },\n {\n path: \"/whatsapp/send-messages\",\n component: Whatsapp,\n },\n];\n\nconst RoleRoutes = ({ state }) => {\n const [feRoutes, setFeRoutes] = useState([]);\n console.log(feRoutes);\n\n const getFeRoutes = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/fe-routes`, {\n params: { role: state.role },\n });\n\n setFeRoutes(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getFeRoutes();\n }, []);\n\n return (\n <>\n {feRoutes.reduce((acc, route) => {\n route.items.forEach((item) => {\n const _route = routes.find((r) => r.path === item.path);\n if (_route) {\n acc.push(\n \n );\n }\n });\n\n return acc;\n }, [])}\n\n {/* Wildcard Routes */}\n {/* {routes.map((item) => {\n return ;\n })} */}\n \n );\n};\n\nexport default RoleRoutes;\n","import {\n Grid,\n Paper,\n TableBody,\n TableContainer,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport RoleAdmission from \"../components/roleAdmission\";\nimport { Form, useForm } from \"../components/useForm\";\nimport AuthService from \"../services/auth.service\";\nimport useTable from \"../components/useTable\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport axios from \"axios\";\nimport { baseUrl } from \"../config/const\";\nimport LoyaltyIcon from \"@material-ui/icons/LoyaltyOutlined\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\nimport { AuthContext } from \"../AppContext\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\n\nexport default function InsertOnlineSales() {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const initialValues = {\n type: \"-\",\n confirmed: \"-\",\n subtotal: \"\",\n shippingfee: \"\",\n shippingcompany: \"\",\n paymentmethod: \"\",\n salesproduct: [],\n customercontact: \"\",\n productsku: \"\",\n quantity: \"\",\n size: \"\",\n price: \"\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n\n if (\"subtotal\" in fieldValues) {\n temp.subtotal = fieldValues.subtotal ? \"\" : \"Subtotal harus diisi\";\n }\n if (\"shippingfee\" in fieldValues) {\n temp.shippingfee = fieldValues.shippingfee\n ? \"\"\n : \"shippingfee harus diisi\";\n }\n if (\"shippingcompany\" in fieldValues) {\n temp.shippingcompany = fieldValues.shippingcompany\n ? \"\"\n : \"Jasa Pengiriman harus diisi\";\n }\n if (\"paymentmethod\" in fieldValues) {\n temp.paymentmethod = fieldValues.paymentmethod\n ? \"\"\n : \"Methode Pembayaran harus diisi\";\n }\n if (\"customercontact\" in fieldValues) {\n temp.customercontact = fieldValues.customercontact\n ? \"\"\n : \"Contact Customer tidak boleh kosong\";\n }\n if (\"type\" in fieldValues) {\n temp.type =\n fieldValues.type !== \"-\" ? \"\" : \"Media Penjualan has to be filled out\";\n }\n if (\"confirmed\" in fieldValues) {\n temp.confirmed =\n fieldValues.confirmed !== \"-\"\n ? \"\"\n : \"Order Confirmation Status should be chosen\";\n }\n if (\"paid\" in fieldValues) {\n temp.paid =\n fieldValues.paid !== \"-\" ? \"\" : \"Order Paid Status should be chosen\";\n }\n if (\"salesproduct\" in fieldValues) {\n if (fieldValues.salesproduct.length === 0) {\n temp.salesproduct = \"Product Sales tidak boleh kosong cannot be empty\";\n } else {\n temp.salesproduct = \"\";\n }\n }\n\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, setValues, errors, setErrors, handleInputChange } = useForm(\n initialValues,\n true,\n validate\n );\n\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"size\", label: \"Size\", disableSorting: true },\n { id: \"quantity\", label: \"Quantity\", disableSorting: true },\n { id: \"price\", label: \"Price\", disableSorting: true },\n { id: \"actions\", label: \"actions\", disableSorting: true },\n ];\n\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(values.salesproduct, headCells);\n\n const type = [\n { id: \"shopee\", name: \"Shopee\" },\n { id: \"instagram\", name: \"Instagram\" },\n { id: \"whatsapp\", name: \"WhatsApp\" },\n ];\n\n const boolean = [\n { id: true, name: \"Yes\" },\n { id: false, name: \"No\" },\n ];\n\n const addProduct = (event) => {\n event.preventDefault();\n setValues({\n ...values,\n salesproduct: [\n ...values.salesproduct,\n {\n productsku: values.productsku,\n size: values.size,\n quantity: values.quantity,\n price: values.price,\n },\n ],\n productsku: \"\",\n size: \"\",\n quantity: \"\",\n price: \"\",\n });\n };\n\n const deleteProduct = (itemsku) => {\n setValues({\n ...values,\n salesproduct: values.salesproduct.filter((x) => x.productsku !== itemsku),\n });\n };\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const addNewSales = async (e) => {\n e.preventDefault();\n if (validate()) {\n await axios\n .post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/generateOfficeSales`\n : \"/generateOfficeSales\",\n {\n type: values.type,\n salesproduct: values.salesproduct,\n customercontact: values.customercontact,\n subtotal: values.subtotal,\n shippingfee: values.shippingfee,\n shippingcompany: values.shippingcompany,\n paymentmethod: values.paymentmethod,\n confirmed: values.confirmed,\n }\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/sales/online\",\n });\n })\n .catch((error) => {\n setNotify({\n isOpen: true,\n message: error.response.data.msg,\n type: \"error\",\n location: \"/sales/online\",\n });\n });\n }\n };\n\n return (\n
\n

Insert Online Sales HappyStore.id

\n \n }\n />\n
\n \n \n \n \n\n \n \n\n \n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n \n \n \n {values.salesproduct.map((item, index) => (\n \n {item.productsku}\n {item.size}\n {item.quantity}\n {item.price}\n \n \n deleteProduct(item.productsku)}\n fontSize=\"small\"\n />\n \n \n \n ))}\n \n \n {errors.salesproduct}\n \n \n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n \n );\n}\n","import { useState, useEffect, useContext } from \"react\";\nimport { getClaimedVouchers } from \"./helper/VouchersHelper\";\n\nimport {\n Paper,\n Toolbar,\n TableBody,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport Controls from \"../components/controls/Controls\";\nimport useTable from \"../components/useTable\";\nimport { AuthContext } from \"../AppContext\";\nimport { useForm } from \"../components/useForm\";\nimport \"../styles/global.css\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport default function VouchersClaimed() {\n const { state, dispatch } = useContext(AuthContext);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const headCells = [\n { id: \"novoucher\", label: \"Nomor Voucher\", disableSorting: true },\n { id: \"code\", label: \"Kode Voucher\" },\n { id: \"customerid\", label: \"ID Customer\", disableSorting: true },\n { id: \"toko\", label: \"Toko\", disableSorting: true },\n { id: \"dayclaimed\", label: \"Tanggal Klaim\", disableSorting: true },\n ];\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n search: \"\",\n date: \"\",\n toko: \"\",\n });\n\n const [filtered, setFiltered] = useState([]);\n\n console.log(filtered);\n\n // console.log(filteringContent)\n // console.log(filtered)\n\n function handleFilter() {\n let filteredDisplay = state.vouchersClaimed;\n\n if (filteringContent.search) {\n // console.log(\"search filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n return item.novoucher.includes(filteringContent.search);\n });\n }\n\n if (filteringContent.date) {\n // console.log(\"date filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (!filteringContent.date) {\n return true;\n }\n const date = new Date(item.dayclaimed);\n const dateMapped = `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`;\n return dateMapped === filteringContent.date;\n });\n }\n\n if (filteringContent.toko) {\n // console.log(\"toko filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.toko === \"-\") {\n return true;\n }\n return item.toko === filteringContent.toko;\n });\n }\n\n setFiltered(filteredDisplay);\n }\n\n const initialValues = {\n images: [],\n code: \"\",\n title: \"\",\n description: \"\",\n type: \"-\",\n sku: \"\",\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate ? \"\" : \"Start Date shouldn't be empty\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, errors, setErrors, handleInputChange, handleDatePicker } =\n useForm(initialValues, true, validate);\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n useEffect(() => {\n handleFilter();\n }, [filteringContent]); //eslint-disable-line\n\n useEffect(() => {\n getClaimedVouchers(dispatch, setNotify);\n }, []); //eslint-disable-line\n\n return (\n
\n

Claimed Vouchers List

\n \n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n search: e.target.value,\n });\n }}\n placeholder=\"CARI NO VOUCHER\"\n />\n \n \n \n {\n handleDatePicker(\"enddate\", date);\n\n setFilteringContent({\n ...filteringContent,\n date: date\n ? `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`\n : \"\",\n });\n }}\n />\n \n \n \n {\n // console.log(e)\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n
\n \n \n \n {recordsAfterPagingAndSorting().map((item) => {\n const date = new Date(item.dayclaimed);\n const dateFormatted = `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`;\n\n return (\n \n {item.novoucher}\n {item.code}\n {item.customerid}\n {item.toko}\n {dateFormatted}\n \n );\n })}\n \n \n \n \n\n \n\n \n \n );\n}\n","import { useState, useEffect, useContext } from \"react\";\nimport { getPointsAdded } from \"./helper/VouchersHelper\";\n\nimport {\n Paper,\n Toolbar,\n TableBody,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport Controls from \"../components/controls/Controls\";\nimport useTable from \"../components/useTable\";\nimport { AuthContext } from \"../AppContext\";\nimport { useForm } from \"../components/useForm\";\nimport \"../styles/global.css\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport default function PointsAdded() {\n const { state, dispatch } = useContext(AuthContext);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const headCells = [\n { id: \"nofaktur\", label: \"Nomor Faktur\", disableSorting: true },\n { id: \"toko\", label: \"Toko\", disableSorting: true },\n { id: \"customeremail\", label: \"Email Customer\" },\n { id: \"customerphone\", label: \"Handphone Customer\", disableSorting: true },\n { id: \"customerid\", label: \"ID Customer\", disableSorting: true },\n { id: \"date\", label: \"Tanggal Klaim\", disableSorting: true },\n ];\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n search: \"\",\n date: \"\",\n toko: \"\",\n });\n\n const [filtered, setFiltered] = useState([]);\n\n // console.log(filteringContent)\n // console.log(filtered)\n\n function handleFilter() {\n let filteredDisplay = state.pointsAdded;\n\n if (filteringContent.search) {\n // console.log(\"search filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n return item.nofaktur.includes(filteringContent.search);\n });\n }\n\n if (filteringContent.date) {\n // console.log(\"date filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (!filteringContent.date) {\n return true;\n }\n const date = new Date(item.date);\n const dateMapped = `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`;\n return dateMapped === filteringContent.date;\n });\n }\n\n if (filteringContent.toko) {\n // console.log(\"toko filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.toko === \"-\") {\n return true;\n }\n return item.toko === filteringContent.toko;\n });\n }\n\n setFiltered(filteredDisplay);\n }\n\n const initialValues = {\n images: [],\n code: \"\",\n title: \"\",\n description: \"\",\n type: \"-\",\n sku: \"\",\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate ? \"\" : \"Start Date shouldn't be empty\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const { values, errors, setErrors, handleInputChange, handleDatePicker } =\n useForm(initialValues, true, validate);\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n\n useEffect(() => {\n handleFilter();\n }, [filteringContent]); //eslint-disable-line\n\n useEffect(() => {\n getPointsAdded(dispatch, setNotify);\n }, []); //eslint-disable-line\n\n return (\n
\n

Points Added List

\n \n \n \n \n {\n setFilteringContent({\n ...filteringContent,\n search: e.target.value,\n });\n }}\n placeholder=\"CARI NO FAKTUR\"\n />\n \n \n \n {\n handleDatePicker(\"enddate\", date);\n\n setFilteringContent({\n ...filteringContent,\n date: date\n ? `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`\n : \"\",\n });\n }}\n />\n \n \n \n {\n // console.log(e)\n handleInputChange(e);\n\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n \n
\n \n \n \n {recordsAfterPagingAndSorting().map((item) => {\n const date = new Date(item.date);\n const dateFormatted = `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`;\n\n return (\n \n {item.nofaktur}\n {item.toko}\n {item.customeremail}\n {item.customerphone}\n {item.customerid}\n {dateFormatted}\n \n );\n })}\n \n \n \n \n\n \n\n \n \n );\n}\n","import axios from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport {\n Typography,\n Paper,\n Toolbar,\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Link,\n} from \"@material-ui/core\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst PresensiPabrik = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [presensiToko, setPresensiToko] = useState([]);\n const [toko, setToko] = useState(\"PADM\");\n const [listToko, setListToko] = useState([]);\n\n const columns = [\n {\n field: \"staff\",\n headerName: \"Staff\",\n width: 120,\n },\n {\n field: \"type\",\n headerName: \"golongan\",\n width: 175,\n },\n {\n field: \"tanggal\",\n headerName: \"Tanggal\",\n width: 175,\n valueGetter: (params) =>\n new Date(params.row.tanggal).toLocaleDateString(\"en-CA\"),\n },\n {\n field: \"checkin\",\n headerName: \"Jam Check In\",\n width: 175,\n },\n {\n field: \"checkout\",\n headerName: \"Jam Check Out\",\n width: 175,\n },\n {\n field: \"terlambatdatang\",\n headerName: \"Terlambat\",\n width: 175,\n type: \"boolean\",\n },\n {\n field: \"pulangawal\",\n headerName: \"Pulang Awal\",\n width: 175,\n type: \"boolean\",\n },\n {\n field: \"imageurl\",\n headerName: \"Selfie\",\n width: 750,\n renderCell: (params) => (\n \n {params.value !== null ? params.value.toString() : \"\"}\n \n ),\n },\n ];\n\n const getPresensi = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getPresensiPabrik`, {\n params: {\n startDate: dateRanges[0].toLocaleDateString(\"en-CA\"),\n endDate: dateRanges[1].toLocaleDateString(\"en-CA\"),\n },\n });\n console.log(presensiToko);\n setPresensiToko(data.map((item, index) => ({ id: index, ...item })));\n } catch (error) {\n console.error(error);\n }\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getPresensi();\n }, [toko, dateRanges]);\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n Presensi Staff Pabrik\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default PresensiPabrik;\n","import axios from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport {\n Typography,\n Paper,\n Toolbar,\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Link,\n} from \"@material-ui/core\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst AbsensiPabrik = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [absenPabrik, setAbsenPabrik] = useState([]);\n const [toko, setToko] = useState(\"PADM\");\n const [listToko, setListToko] = useState([]);\n\n const columns = [\n {\n field: \"staff\",\n headerName: \"Staff\",\n width: 120,\n },\n {\n field: \"type\",\n headerName: \"golongan\",\n width: 175,\n },\n {\n field: \"tanggal\",\n headerName: \"Tanggal\",\n width: 175,\n valueGetter: (params) =>\n new Date(params.row.tanggal).toLocaleDateString(\"en-CA\"),\n },\n {\n field: \"alasan\",\n headerName: \"Alasan\",\n width: 175,\n },\n ];\n\n const getAbsensi = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAbsensiPabrik`, {\n params: {\n startDate: dateRanges[0].toLocaleDateString(\"en-CA\"),\n endDate: dateRanges[1].toLocaleDateString(\"en-CA\"),\n },\n });\n console.log(absenPabrik);\n setAbsenPabrik(data.map((item, index) => ({ id: index, ...item })));\n } catch (error) {\n console.error(error);\n }\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getAbsensi();\n }, [dateRanges]);\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n Absensi Staff Pabrik\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AbsensiPabrik;\n","import axios from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { baseUrl } from \"../config/const\";\nimport Controls from \"../components/controls/Controls\";\nimport { Typography, Paper, Toolbar, Box, Link } from \"@material-ui/core\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nconst Absensi = () => {\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [absensiToko, setAbsensiToko] = useState([]);\n const [toko, setToko] = useState(\"PADM\");\n const [listToko, setListToko] = useState([]);\n\n const columns = [\n {\n field: \"staff\",\n headerName: \"Staff\",\n width: 120,\n },\n {\n field: \"toko\",\n headerName: \"Toko\",\n width: 120,\n },\n {\n field: \"role\",\n headerName: \"Jabatan\",\n width: 175,\n },\n {\n field: \"alasan\",\n headerName: \"Jabatan\",\n width: 175,\n },\n {\n field: \"tanggal\",\n headerName: \"Tanggal\",\n width: 175,\n valueGetter: (params) =>\n new Date(params.row.tanggal).toLocaleDateString(\"en-CA\"),\n },\n ];\n\n const getAbsensi = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAbsensi`, {\n params: {\n startDate: dateRanges[0].toLocaleDateString(\"en-CA\"),\n endDate: dateRanges[1].toLocaleDateString(\"en-CA\"),\n toko,\n },\n });\n console.log(absensiToko);\n setAbsensiToko(data.map((item, index) => ({ id: index, ...item })));\n } catch (error) {\n console.error(error);\n }\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getAbsensi();\n }, [toko, dateRanges]);\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n <>\n Absensi Staff Toko\n \n \n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Absensi;\n","import React, { useEffect, useState, useContext } from \"react\";\n// import { Form,useForm } from '../components/useForm'\nimport \"../../styles/global.css\";\nimport {\n Grid,\n Paper,\n Toolbar,\n InputAdornment,\n TableBody,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\nimport Axios from \"axios\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport DetailProduct from \"./detail\";\nimport DoneAllIcon from \"@material-ui/icons/DoneAll\";\nimport ProductDeletion from \"../management/deletion\";\nimport UpdateProduct from \"../management/update\";\nimport { baseUrl } from \"../../config/const\";\nimport ArchiveProduct from \"../management/archiveProduct\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useForm } from \"../../components/useForm\";\nimport { getFormInfo } from \"../management/helper/promoprice\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport default function CompleteProducts() {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const { state, dispatch } = useContext(AuthContext);\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"brand\", label: \"Brand\" },\n { id: \"pname\", label: \"Product Name\", disableSorting: true },\n { id: \"color\", label: \"Color\", disableSorting: true },\n // {id:'department',label:'Department',disableSorting:true},\n { id: \"price1\", label: \"Harga Barcode\" },\n // {id:'price2',label:'Price 2'},\n { id: \"status\", label: \"Status\" },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [detailItem, setDetailItem] = useState({});\n const [filterContent, setFilterContent] = useState({\n departments: [],\n categories: [],\n });\n // for filtering\n const [filteringContent, setFilteringContent] = useState({\n search: \"\",\n department: \"-\",\n category: \"-\",\n });\n const [filtered, setFiltered] = useState([]);\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(filtered, headCells, {\n fn: (items) => {\n return items;\n },\n });\n const initialValues = {\n department: \"-\",\n category: \"-\",\n };\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate ? \"\" : \"Start Date shouldn't be empty\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n console.log(filtered);\n const { values, errors, setErrors, handleInputChange } = useForm(\n initialValues,\n true,\n validate\n );\n\n function handleFilter() {\n let filteredDisplay = state.completeProductList;\n\n if (filteringContent.search) {\n // console.log(\"search filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n return item.sku.includes(filteringContent.search);\n });\n }\n if (filteringContent.department) {\n // console.log(\"date filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.department === \"-\") {\n return true;\n }\n return item.department === filteringContent.department;\n });\n }\n if (filteringContent.category) {\n // console.log(\"toko filter\")\n filteredDisplay = filteredDisplay.filter((item) => {\n if (filteringContent.category === \"-\") {\n return true;\n }\n return item.category === filteringContent.category;\n });\n }\n setFiltered(filteredDisplay);\n }\n useEffect(() => {\n getFormInfo(setFilterContent);\n }, []);\n\n useEffect(() => {\n console.log(\"run\");\n handleFilter();\n }, [filteringContent]); //eslint-disable-line\n\n /**\n * @returns records of all products\n */\n const getRecords = async () => {\n await Axios.get(`${baseUrl}/getCompleteProducts`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n completeProductList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n });\n };\n /**\n *\n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.sku.includes(target.value));\n }\n },\n });\n };\n useEffect(() => {\n getRecords();\n }, []);\n\n return (\n
\n

Complete Product List

\n \n \n \n \n \n // \n // \n // )\n // }}\n onChange={(e) => {\n setFilteringContent({\n ...filteringContent,\n search: e.target.value,\n });\n }}\n placeholder=\"CARI KODE BARCODE\"\n />\n \n\n \n \n {\n // console.log(e)\n handleInputChange(e);\n setFilteringContent({\n ...filteringContent,\n department: e.target.value,\n });\n }}\n options={filterContent.departments.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n\n \n \n {\n // console.log(e)\n handleInputChange(e);\n setFilteringContent({\n ...filteringContent,\n category: e.target.value,\n });\n }}\n options={filterContent.categories.map(({ name }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n
\n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {\n setOpenPopup(true);\n setDetailItem(item);\n }}\n >\n {item.sku}\n \n {item.brand}\n {item.pname}\n {item.color}\n {/* {item.department} */}\n Rp {item.price3}\n {/* Rp {item.price1} */}\n \n \n {item.status}\n \n \n \n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport \"../../styles/global.css\";\nimport {\n Paper,\n Toolbar,\n InputAdornment,\n TableBody,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\nimport Axios from \"axios\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport DetailProduct from \"./detail\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport ProductCompletion from \"../management/completion\";\nimport ProductDeletion from \"../management/deletion\";\nimport { baseUrl } from \"../../config/const\";\nimport ArchiveProduct from \"../management/archiveProduct\";\nimport { AuthContext } from \"../../AppContext\";\n\nexport default function IncompleteProducts() {\n const { state, dispatch } = useContext(AuthContext);\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"brand\", label: \"Brand\" },\n { id: \"pname\", label: \"Product Name\", disableSorting: true },\n { id: \"color\", label: \"Color\", disableSorting: true },\n { id: \"department\", label: \"Department\", disableSorting: true },\n { id: \"price1\", label: \"Price 1\" },\n { id: \"price2\", label: \"Price 2\" },\n { id: \"status\", label: \"Status\", disableSorting: true },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [detailItem, setDetailItem] = useState({});\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblHead, TblContainer, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.incompleteProductList, headCells, filterFn);\n\n /**\n * @returns records of all products\n */\n const getIncompleteProducts = async () => {\n await Axios.get(`${baseUrl}/getIncompleteProducts`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n incompleteProductList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n message: \"error\",\n isOpen: true,\n type: \"error\",\n });\n });\n };\n /**\n *\n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.sku.includes(target.value));\n }\n },\n });\n };\n useEffect(() => {\n getIncompleteProducts();\n }, []);\n\n return (\n
\n

Incomplete Product List

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"CARI KODE BARCODE...\"\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {\n setOpenPopup(true);\n setDetailItem(item);\n }}\n >\n {item.sku}\n \n {item.brand}\n {item.pname}\n {item.color}\n {item.department}\n Rp {item.price1}\n Rp {item.price2}\n \n \n {item.status}\n \n \n \n {/* */}\n \n \n \n ))}\n \n \n \n \n\n \n \n \n\n \n\n \n
\n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport \"../../styles/global.css\";\nimport {\n Paper,\n Toolbar,\n InputAdornment,\n TableBody,\n TableRow,\n TableCell,\n} from \"@material-ui/core\";\nimport Controls from \"../../components/controls/Controls\";\nimport Axios from \"axios\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport DetailProduct from \"./detail\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport ProductCompletion from \"../management/completion\";\nimport ProductDeletion from \"../management/deletion\";\nimport { baseUrl } from \"../../config/const\";\nimport ArchiveProduct from \"../management/archiveProduct\";\nimport ArchiveIcon from \"@material-ui/icons/Archive\";\nimport UnarchiveProduct from \"../management/unarchiveProduct\";\nimport { AuthContext } from \"../../AppContext\";\n\nexport default function ArchivedProducts() {\n const { state, dispatch } = useContext(AuthContext);\n\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"brand\", label: \"Brand\" },\n { id: \"pname\", label: \"Product Name\", disableSorting: true },\n { id: \"color\", label: \"Color\", disableSorting: true },\n { id: \"department\", label: \"Department\", disableSorting: true },\n { id: \"category\", label: \"Category\", disableSorting: true },\n { id: \"status\", label: \"Status\", disableSorting: true },\n { id: \"actions\", label: \"Actions\", disableSorting: true },\n ];\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n const [confirmPopup, setConfirmPopup] = useState({\n isOpen: false,\n title: \"\",\n subtitle: \"\",\n });\n const [detailItem, setDetailItem] = useState({});\n\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const { TblHead, TblContainer, TblPagination, recordsAfterPagingAndSorting } =\n useTable(state.archivedProductList, headCells, filterFn);\n\n /**\n * @returns records of all products\n */\n const getArchivedProducts = async () => {\n await Axios.get(`${baseUrl}/getArchivedProducts`)\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n archivedProductList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n message: \"error\",\n isOpen: true,\n type: \"error\",\n });\n });\n };\n /**\n *\n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) => x.sku.includes(target.value));\n }\n },\n });\n };\n useEffect(() => {\n getArchivedProducts();\n }, []);\n\n return (\n
\n

Archived Product List

\n \n \n \n \n \n \n ),\n }}\n onChange={handleSearch}\n placeholder=\"CARI KODE BARCODE...\"\n />\n \n \n \n \n {recordsAfterPagingAndSorting().map((item) => (\n \n {\n setOpenPopup(true);\n setDetailItem(item);\n }}\n >\n {item.sku}\n \n {item.brand}\n {item.pname}\n {item.color}\n {item.department}\n {item.category}\n \n \n {item.status}\n \n \n \n \n \n \n ))}\n \n \n \n \n\n \n \n \n\n \n\n \n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useForm, Form } from \"../../components/useForm\";\nimport Controls from \"../../components/controls/Controls\";\nimport Axios from \"axios\";\nimport PostAddIcon from \"@material-ui/icons/PostAdd\";\nimport { DeleteOutline } from \"@material-ui/icons\";\nimport \"../../components/controls/controls.css\";\nimport ListAltIcon from \"@material-ui/icons/ListAlt\";\nimport {\n Grid,\n Paper,\n TableBody,\n TableCell,\n TableRow,\n Toolbar,\n InputAdornment,\n} from \"@material-ui/core\";\nimport useTable from \"../../components/useTable\";\nimport { Search } from \"@material-ui/icons\";\nimport moment from \"moment\";\nimport { baseUrl } from \"../../config/const\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport default function CreateSKU() {\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const initialValues = {\n images: [],\n pgol: \"-\",\n sku: \"\",\n brand: \"-\",\n pname: \"\",\n color: \"-\",\n department: \"-\",\n category: \"-\",\n supplier: \"-\",\n description: \"\",\n price1: \"\",\n price2: \"\",\n price4: \"\",\n size: [],\n pricebs: \"\",\n material: \"\",\n };\n\n /**\n * validation function for each element\n * @return error of each element whether it passes the validation process\n */\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n var fileName = \"\";\n if (\"pgol\" in fieldValues) {\n temp.pgol = fieldValues.pgol !== \"-\" ? \"\" : \"Golongan Produk harus diisi\";\n }\n if (\"sku\" in fieldValues) {\n if (fieldValues.sku.length > 15) {\n temp.sku = \"SKU maksimal 15 digit\";\n } else if (fieldValues.sku.length === 0) {\n temp.sku = \"SKU is required\";\n } else {\n temp.sku = \"\";\n }\n }\n if (\"images\" in fieldValues) {\n [...fieldValues.images].map((file) => {\n fileName = file.name;\n });\n if (fileName.indexOf(\" \") >= 0) {\n temp.images = \"file name shouldn't have spaces in between\";\n } else if (fieldValues.images.length > 5) {\n temp.images = \"maximum images of 5\";\n } else if (fieldValues.images.length === 0) {\n temp.images = \"image is required!\";\n } else {\n temp.images = \"\";\n }\n }\n if (\"brand\" in fieldValues) {\n temp.brand = fieldValues.brand !== \"-\" ? \"\" : \"product brand is required\";\n }\n if (\"description\" in fieldValues) {\n temp.description = fieldValues.description\n ? \"\"\n : \"Deskripsi barang harus diisi\";\n }\n if (\"material\" in fieldValues) {\n temp.material = fieldValues.material ? \"\" : \"Material barang harus diisi\";\n }\n if (\"pname\" in fieldValues) {\n temp.pname = fieldValues.pname ? \"\" : \"nama produk harus diisi\";\n }\n if (\"price1\" in fieldValues) {\n temp.price1 = fieldValues.price1 ? \"\" : \"Harga 1=Nett harus diisi\";\n }\n if (\"price2\" in fieldValues) {\n temp.price2 = fieldValues.price2 ? \"\" : \"Harga 2 harus diisi\";\n }\n if (\"size\" in fieldValues) {\n if (fieldValues.size.length === 0) {\n temp.size = \"Size cannot be empty\";\n }\n // else if(fieldValues.size.length > ){\n // temp.size = \"Max of 7 different Size\"\n // }\n else if (fieldValues.size.length > 0 && fieldValues.size.length < 8) {\n temp.size = \"\";\n }\n }\n\n if (\"supplier\" in fieldValues) {\n temp.supplier =\n fieldValues.supplier !== \"-\" ? \"\" : \"Supplier has to be filled out\";\n }\n if (\"department\" in fieldValues) {\n temp.department =\n fieldValues.department !== \"-\"\n ? \"\"\n : \"product department should be chosen\";\n }\n if (\"category\" in fieldValues) {\n temp.category =\n fieldValues.category !== \"-\" ? \"\" : \"product category should be chosen\";\n }\n if (\"color\" in fieldValues) {\n temp.color = fieldValues.color !== \"-\" ? \"\" : \"color must be selected\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const [formInfo, setFormInfo] = useState({\n brand: [],\n color: [],\n department: [],\n category: [],\n supplier: [],\n });\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n /**\n *\n * @param {*} e indicates the event of getting form's component information\n */\n const getFormInfo = async (e) => {\n await Axios.get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getFormInfo`\n : `/getFormInfo`\n ).then((response) => {\n setFormInfo({\n ...formInfo,\n brand: response.data.results.brand,\n color: response.data.results.color,\n department: response.data.results.department,\n category: response.data.results.category,\n supplier: response.data.results.supplier,\n });\n });\n };\n\n const formData = new FormData();\n\n for (const key of Object.keys(values.images)) {\n formData.append(\"images\", values.images[key]);\n }\n formData.append(\"sku\", values.sku);\n // formData.append('brand',formInfo.brand.find(x => x.name === values.brand)?.id)\n formData.append(\"brand\", values.brand);\n formData.append(\"pname\", values.pname);\n // formData.append('color',formInfo.color.find(x => x.name === values.color)?.id)\n formData.append(\"color\", values.color);\n // formData.append('department',formInfo.department.find(x => x.name === values.department)?.id)\n formData.append(\"department\", values.department);\n formData.append(\"category\", values.category);\n formData.append(\"supplier\", values.supplier);\n formData.append(\"description\", values.description);\n formData.append(\"price1\", values.price1);\n formData.append(\"price2\", values.price2);\n // formData.append('price4',values.price4)\n // formData.append('pricebs',values.pricebs)\n for (const key of Object.keys(values.size)) {\n formData.append(\"size[]\", values.size[key]);\n }\n // formData.append('size',values.size)\n formData.append(\"material\", values.material);\n formData.append(\"pgol\", values.pgol);\n\n const onSubmit = (e) => {\n e.preventDefault();\n console.log(\"kena submit\");\n if (validate()) {\n Axios.post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/createSKU`\n : `/createSKU`,\n formData\n // {\n // sku : values.sku,\n // brand : values.brand,\n // pname : values.pname,\n // color : values.color,\n // department : values.department,\n // category : values.category,\n // supplier : values.supplier,\n // price1 : values.price1,\n // price2: values.price2,\n // pricebs : values.pricebs === '' ? 0 : values.pricebs ,\n // size : values.size,\n // }\n )\n .then((response) => {\n console.log(\"kena syubmit\");\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/products/createSKU\",\n });\n })\n .catch((err) => {\n console.log(\"tidak kena submit\");\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/products/createSKU\",\n });\n });\n }\n };\n\n const [records, setRecords] = useState([]);\n const getTodaysSKU = () => {\n Axios.get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getIncompleteProducts`\n : `${baseUrl}/getIncompleteProducts`\n )\n .then((response) => {\n setRecords(\n response.data.records.filter(\n (x) => moment(x.datein) === moment(Date())\n )\n );\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/products/createSKU\",\n });\n });\n };\n\n const headCells = [\n { id: \"sku\", label: \"SKU\", disableSorting: true },\n { id: \"brand\", label: \"Brand\" },\n { id: \"name\", label: \"Name\", disableSorting: true },\n ];\n const [filterFn, setFilterFn] = useState({\n fn: (items) => {\n return items;\n },\n });\n /**\n * return results of useForm helper method\n * @param records are the data from db\n * @param headCells header of the table\n * @param filterFn filtering function that carries the records\n */\n const {\n styledTableCell: TableCell,\n TblHead,\n TblContainer,\n TblPagination,\n recordsAfterPagingAndSorting,\n } = useTable(records, headCells, filterFn);\n\n /**\n *\n * @param {*} e indicates the search event\n */\n const handleSearch = (e) => {\n let target = e.target;\n setFilterFn({\n fn: (items) => {\n if (target.value === \"\") {\n return items;\n } else {\n return items.filter((x) =>\n x.brand.toLowerCase().includes(target.value)\n );\n }\n },\n });\n };\n\n useEffect(() => {\n getFormInfo();\n }, []);\n\n //Adding New Size\n const [addNewSize, setAddNewSize] = useState({\n value: \"\",\n validate: true,\n message: \"\",\n });\n\n const [hideDelete, setHideDelete] = useState({\n isHidden: true,\n color: \"red\",\n });\n const [openPopup, setOpenPopup] = useState(false);\n\n const deleteNewSize = (item) => {\n setValues({\n ...values,\n size: values.size.filter((x) => x !== item),\n });\n };\n\n const handleNewSize = async (e) => {\n setAddNewSize({\n ...addNewSize,\n value: e.target.value,\n });\n };\n\n useEffect(() => {\n if (values.size.includes(addNewSize.value)) {\n setAddNewSize({\n ...addNewSize,\n validate: false,\n message: \"Tidak boleh sama\",\n });\n } else if (addNewSize.value === \"\") {\n setAddNewSize({\n ...addNewSize,\n validate: false,\n message: \"Tidak boleh kosong\",\n });\n } else {\n setAddNewSize({\n ...addNewSize,\n validate: true,\n message: \"\",\n });\n }\n }, [addNewSize.value]);\n\n const submitNewSize = (event, newSize) => {\n event.preventDefault();\n setValues({\n ...values,\n size: [...values.size, newSize],\n });\n setAddNewSize({\n ...addNewSize,\n value: \"\",\n });\n };\n\n const typeOptions = [\n { id: \"OB\", name: \"Obral\" },\n { id: \"BS\", name: \"Big Size\" },\n { id: \"normal\", name: \"Harga Normal\" },\n ];\n return (\n <>\n

Create SKU

\n \n }\n />\n\n
\n \n \n \n \n \n \n \n \n {values.images &&\n [...values.images].map((file, index) => (\n \n
    \n
  • {file.name}
  • \n
\n \n ))}\n\n \n \n\n \n \n\n \n \n\n \n \n
\n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n {/* \n
\n
\n \n \n
\n
\n \n \n
\n
*/}\n\n \n {values.size.map((item, index) => {\n return (\n \n \n {item}\n \n
\n
\n \n \n \n\n \n\n \n {\n if (addNewSize.validate === true) {\n submitNewSize(event, addNewSize.value);\n } else {\n event.preventDefault();\n }\n }}\n >\n \n \n\n \n \n \n \n );\n}\n","import React from 'react'\n\nexport default function supplierTransactions(){\n return (\n
\n this is list of supplier transactions\n
\n )\n}","import React from 'react'\n\nexport default function PaymentTesting(){\n return (\n
\n Payment Gateway Testing\n
\n )\n}","import React, { useEffect, useState, useContext } from \"react\";\nimport Controls from \"../components/controls/Controls\";\nimport { Form, useForm } from \"../components/useForm\";\nimport WallpaperIcon from \"@material-ui/icons/Wallpaper\";\nimport Axios from \"axios\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport moment from \"moment\";\nimport { Grid, Paper } from \"@material-ui/core\";\nimport { baseUrl } from \"../config/const\";\nimport BannerList from \"./bannerList\";\nimport { AuthContext } from \"../AppContext\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core\";\n\nexport default function UploadBanner() {\n const { state, dispatch } = useContext(AuthContext);\n const [searchParams, setSearchParams] = useState(\"\");\n const [completeProducts, setCompleteProducts] = useState([]);\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const initialValues = {\n images: [],\n code: \"\",\n title: \"\",\n description: \"\",\n type: \"-\",\n sku: \"\",\n startdate: null,\n enddate: null,\n };\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n var fileName = \"\";\n if (\"images\" in fieldValues) {\n if (fieldValues.images.length !== 0) {\n [...fieldValues.images].map((file) => {\n fileName = file.name;\n });\n if (fileName && fileName.indexOf(\" \") >= 0) {\n temp.images = \"File name shouldn't have spaces in between\";\n } else if (fieldValues.images.length > 4) {\n temp.images = \"Maximum of 4 banners/thumbnails in one upload\";\n } else if (fieldValues.images.length === 0) {\n temp.images = \"Banner/Thumbnails can't be null\";\n } else {\n temp.images = \"\";\n }\n }\n }\n if (\"title\" in fieldValues) {\n temp.title = fieldValues.title ? \"\" : \"Title shouldn't be empty\";\n }\n if (\"description\" in fieldValues) {\n temp.description = fieldValues.description\n ? \"\"\n : \"Description shouldn't be empty\";\n }\n if (\"code\" in fieldValues) {\n temp.code = fieldValues.code ? \"\" : \"Code shouldn't be empty\";\n }\n if (\"startdate\" in fieldValues) {\n temp.startdate =\n fieldValues.startdate !== null ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"enddate\" in fieldValues) {\n temp.enddate = fieldValues.enddate ? \"\" : \"Start Date shouldn't be empty\";\n }\n if (\"type\" in fieldValues) {\n temp.type = fieldValues.type !== \"-\" ? \"\" : \"Tipe banner harus dipilih\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n const {\n values,\n setValues,\n errors,\n setErrors,\n handleInputChange,\n handleDatePicker,\n handleFileInputChange,\n } = useForm(initialValues, true, validate);\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const formData = new FormData();\n for (const key of Object.keys(values.images)) {\n formData.append(\"images\", values.images[key]);\n }\n formData.append(\"code\", values.code);\n formData.append(\"title\", values.title);\n formData.append(\"description\", values.description);\n // formData.append('startdate',values.startdate)\n formData.append(\"startdate\", new Date(values.startdate).toLocaleDateString());\n\n formData.append(\"enddate\", new Date(values.enddate).toLocaleDateString());\n formData.append(\"type\", values.type);\n formData.append(\"sku\", values.sku);\n\n const uploadBanner = (e) => {\n e.preventDefault();\n if (validate()) {\n Axios.post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/uploadBanner`\n : `/uploadBanner`,\n formData\n )\n .then((response) => {\n setNotify({\n isOpen: true,\n message: response.data.msg,\n type: \"success\",\n location: \"/marketing/banner\",\n });\n getBanners();\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/marketing/banner\",\n });\n });\n }\n };\n\n const getCompleteProducts = async () => {\n await Axios.get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getCompleteProducts`\n : `/getCompleteProducts`\n )\n .then((response) => {\n setCompleteProducts(response.data.records);\n })\n .catch((err) => {\n setNotify({\n message: err.response.data.msg,\n isOpen: true,\n type: \"error\",\n });\n });\n };\n\n const getBanners = () => {\n Axios.get(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/getBanners`\n : `/getBanners`\n )\n .then((response) => {\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n bannerList: response.data.records,\n },\n });\n })\n .catch((err) => {\n setNotify({\n isOpen: true,\n message: err.response.data.msg,\n type: \"error\",\n location: \"/\",\n });\n });\n };\n\n const typeOptions = [\n { id: \"banner\", name: \"Banner\" },\n { id: \"gallery\", name: \"Gallery\" },\n { id: \"thumbnail\", name: \"Thumbnail\" },\n ];\n\n // useEffect(() => {\n // getCompleteProducts()\n // },[])\n\n // const [searchedResults,setSearchedResults] = useState(completeProducts)\n // const handleSearch = (searched) => {\n // // let target = e.target\n // setSearchedResults(completeProducts => completeProducts.filter((x) => x.sku.includes(searched)))\n // return searchedResults\n // }\n // useEffect(() => {\n // if(!searchParams){\n // setCompleteProducts([])\n // }else{\n // setCompleteProducts(handleSearch())\n // }},[searchParams])\n\n useEffect(() => {\n getBanners();\n }, []);\n\n return (\n <>\n

Manage Banner

\n \n \n \n }\n />\n\n
\n \n \n \n \n {values.images &&\n [...values.images].map((file, index) => (\n \n
    \n
  • {file.name}
  • \n
\n \n ))}\n\n \n \n\n \n \n\n \n \n\n {/* {\n setSearchParams(e.target.value)\n handleSearch(searchParams)\n }} />\n\n
\n
    \n {completeProducts.map((item) => (\n
  • {item.sku}
  • \n ))}\n
\n
*/}\n\n \n \n\n \n \n\n \n \n \n handleDatePicker(\"startdate\", date)}\n error={errors.startdate}\n />\n
{moment(values.startdate).format(\"LL\")}
\n \n \n \n handleDatePicker(\"enddate\", date)}\n error={errors.enddate}\n />\n
{moment(values.enddate).format(\"LL\")}
\n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n\n \n \n );\n}\n","import axios from \"axios\";\nimport { useContext, useEffect, useState, useRef, Fragment } from \"react\";\nimport {\n Paper,\n Box,\n Toolbar,\n TableBody,\n TableRow,\n Typography,\n Button,\n CircularProgress,\n} from \"@material-ui/core\";\nimport Controls from \"../../../../components/controls/Controls\";\nimport { useHistory } from \"react-router-dom\";\nimport useDataByPeriods from \"../../utils/hooks/useDataByPeriods\";\nimport useTable from \"../../../../components/useTable\";\nimport ReactToPrint from \"react-to-print\";\n\nimport { baseUrl } from \"../../../../config/const\";\nimport { AuthContext } from \"../../../../AppContext\";\nimport { set } from \"date-fns\";\n\nconst GajianCost = () => {\n const { state } = useContext(AuthContext);\n const [toko, setToko] = useState(\"PA2M\");\n const history = useHistory();\n const [listToko, setListToko] = useState([]);\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n const ref = useRef();\n const [appendedCost, setAppendedCost] = useState([]);\n const [isLoading, setLoading] = useState(false);\n\n const [gajianKetua, setGajianKetua] = useState([]);\n const [gajianTrainee, setGajianTrainee] = useState([]);\n\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const [dateRangesKetua, setDateRangesKetua] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n const [omzet, setOmzet] = useState(0);\n\n const { dataByPeriods } = useDataByPeriods({\n dateRanges,\n setNotify,\n toko,\n });\n\n const sumStaffCost = (dataByPeriods) => {\n const staffCost = [];\n\n dataByPeriods.forEach((dataPerPeriod) => {\n dataPerPeriod.data.forEach((data) => {\n const staffs = staffCost.find((_staff) => _staff.staff === data.staff);\n\n if (staffs && data.staff === staffs.staff) {\n staffs.komisi += data.komisi_total;\n staffs.pedoman += Math.round(data.pedoman_in_toko_only) || 0;\n staffs.total +=\n data.komisi_total + (Math.round(data.pedoman_in_toko_only) || 0);\n } else {\n staffCost.push({\n staff: data.staff,\n komisi: data.komisi_total,\n pedoman: Math.round(data.pedoman_in_toko_only),\n bonus_pollux: 0,\n bonus_pedoman: 0,\n trainee: 0,\n total:\n data.komisi_total + (Math.round(data.pedoman_in_toko_only) || 0),\n });\n }\n });\n });\n\n return staffCost;\n };\n\n const getKetuaCost = (gajianKetua) => {\n return gajianKetua.map((ketua) => ({\n staff: ketua.staff,\n komisi: ketua.komisi_ketua,\n pedoman: ketua.pedoman,\n bonus_pedoman: ketua.bonus_pedoman,\n bonus_pollux: ketua.bonus_pollux,\n trainee: 0,\n total:\n Number(ketua.komisi_ketua) +\n Number(ketua.pedoman) +\n Number(ketua.bonus_pedoman) +\n Number(ketua.bonus_pollux),\n }));\n };\n\n const getTraineeCost = (gajianTrainee) => {\n return gajianTrainee.map((trainee) => ({\n staff: trainee.username,\n komisi: 0,\n pedoman: trainee.gaji_pokok,\n bonus_pedoman: 0,\n bonus_pollux: 0,\n total: trainee.gaji_pokok,\n }));\n };\n\n const appendKetuaAndStaffCost = () => {\n const appended = [\n ...getKetuaCost(gajianKetua),\n ...sumStaffCost(dataByPeriods),\n ];\n\n getTraineeCost(gajianTrainee).forEach((trainee) => {\n const staffIndex = appended.findIndex(\n (_sta) => _sta.staff === trainee.staff\n );\n\n if (staffIndex > 0) {\n appended[staffIndex].pedoman += trainee.pedoman;\n appended[staffIndex].total += trainee.total;\n } else {\n appended.push(trainee);\n }\n });\n\n return appended;\n };\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n const getOmzet = async () => {\n try {\n const { data } = await axios.get(\n `${baseUrl}/getPjKel?startdate=${formatDate(\n dateRangesKetua[0]\n )}&enddate=${formatDate(dateRangesKetua[1])}&toko=${toko}`\n );\n\n setOmzet(data.records.reduce((a, c) => (a += c.Klrp), 0));\n } catch (err) {}\n };\n\n const getGajianKetua = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/gajianKetua`, {\n params: {\n startDate: formatDate(dateRangesKetua[0]),\n endDate: formatDate(dateRangesKetua[1]),\n toko: toko === \"-\" ? \"\" : toko,\n },\n });\n\n setGajianKetua(data.map((item, index) => ({ id: index, ...item })));\n } catch (err) {\n console.error(err);\n }\n };\n\n const getGajianTrainee = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/gajianTrainee`, {\n params: {\n startDate: formatDate(dateRanges[0]),\n endDate: formatDate(dateRanges[1]),\n toko,\n },\n });\n\n setGajianTrainee(data.map((item, index) => ({ id: index, ...item })));\n } catch (err) {\n console.error(err);\n }\n };\n\n function formatDate(date) {\n var d = new Date(date),\n month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n return [year, month, day].join(\"-\");\n }\n\n const headCells = [\n {\n id: \"staff\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Staff\",\n width: 100,\n },\n {\n id: \"komisi\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Komisi\",\n type: \"number\",\n },\n {\n id: \"pedoman\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Pedoman\",\n type: \"number\",\n },\n {\n id: \"Bonus Pedoman\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Bonus Pedoman\",\n type: \"number\",\n },\n {\n id: \"Bonus Pollux\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Bonus Pollux\",\n type: \"number\",\n },\n {\n id: \"Total\",\n disableSorting: true,\n sortable: false,\n flex: 1,\n label: \"Total\",\n type: \"number\",\n },\n ];\n\n const {\n TblHead: PsTblHead,\n TblContainer: PsTblContainer,\n styledTableCell: PsTableCell,\n recordsAfterPagingAndSorting: rsRecordsAfterPagingAndSorting,\n } = useTable(\n appendedCost,\n headCells,\n {\n fn: (items) => {\n return items;\n },\n },\n true\n );\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n useEffect(() => {\n if (dateRangesKetua[0] && dateRangesKetua[1]) {\n setLoading(true);\n getGajianKetua();\n getGajianTrainee();\n getOmzet();\n }\n }, [dateRangesKetua, toko]);\n\n useEffect(() => {\n if (dataByPeriods.length && gajianKetua.length) {\n setAppendedCost(appendKetuaAndStaffCost());\n }\n }, [dataByPeriods, gajianKetua]);\n\n useEffect(() => {\n if (dateRanges[0] && dateRanges[1]) {\n setLoading(true);\n getGajianTrainee();\n }\n }, [dateRanges, toko]);\n\n useEffect(() => {\n setLoading(false);\n }, [dataByPeriods, dateRangesKetua]);\n\n return (\n \n Gajian Cost\n {isLoading && (\n \n \n \n \n \n \n )}\n \n \n {\n setToko(e.target.value);\n }}\n otherStyle={{\n marginBottom: 0,\n marginLeft: 10,\n marginRight: 20,\n }}\n options={listToko.map(({ name, role }) => {\n return {\n id: name,\n name: name,\n };\n })}\n />\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n (\n \n Print\n \n )}\n content={() => ref.current}\n documentTitle={\n dataByPeriods.length\n ? `staff_${dataByPeriods[0].startDate} - ${\n dataByPeriods[dataByPeriods.length - 1].endDate\n }`\n : \"\"\n }\n />\n \n \n \n\n
\n \n \n \n {rsRecordsAfterPagingAndSorting().map((item, index) => (\n \n {item.staff}\n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.komisi)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.pedoman)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.bonus_pedoman)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.bonus_pollux)\n )}\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(item.total)\n )}\n \n \n ))}\n \n \n
\n\n \n\n \n \n {\" \"}\n Total Cost: Rp{\" \"}\n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n appendedCost.reduce((a, c) => (a += c.total), 0)\n )}\n \n \n Omzet : Rp{\" \"}\n {new Intl.NumberFormat([\"ban\", \"id\"]).format(omzet)}\n \n\n \n Cost Gaji/Omzet :{\" \"}\n {(appendedCost.reduce((a, c) => (a += c.total), 0) / omzet).toFixed(\n 2\n ) * 100}\n %\n \n \n
\n );\n};\n\nexport default GajianCost;\n","import axios from \"axios\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Paper, Box, Divider } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { baseUrl } from \"../../../../config/const\";\nimport { AuthContext } from \"../../../../AppContext\";\nimport GajianTraineeTable from \"./components/GajianTable\";\n\nconst GajianTrainee = () => {\n const { state } = useContext(AuthContext);\n const history = useHistory();\n const [listToko, setListToko] = useState([]);\n\n const getListKasir = async () => {\n try {\n const {\n data: { data, msg },\n } = await axios.get(`${baseUrl}/getAllToko`);\n\n setListToko(data);\n } catch (err) {\n console.error(err);\n }\n };\n\n useEffect(() => {\n getListKasir();\n }, []);\n\n return (\n \n \n \n \n );\n};\n\nexport default GajianTrainee;\n","import { Paper } from \"@material-ui/core\";\nimport GajianPabrikComponent from \"./components/GajianPabrikTable\";\n\nconst GajianPabrik = () => {\n return (\n \n \n \n );\n};\n\nexport default GajianPabrik;\n","import { Paper, Toolbar, Typography } from \"@material-ui/core\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport Controls from \"../../components/controls/Controls\";\nimport { baseUrl } from \"../../config/const\";\nimport { AuthContext } from \"../../AppContext\";\nimport { useMediaQuery } from \"@material-ui/core\";\nimport { useTheme, Box, Card, CardContent, CardMedia } from \"@material-ui/core\";\nimport { useHistory } from \"react-router-dom/\";\n\nimport { CircularProgressbar, buildStyles } from \"react-circular-progressbar\";\nimport \"react-circular-progressbar/dist/styles.css\";\nimport { DataGrid, GridToolbar } from \"@mui/x-data-grid\";\n\nexport default function KPISales() {\n const { state, dispatch } = useContext(AuthContext);\n const [allStorePerformance, setAllStorePerformance] = useState([]);\n\n const now = new Date(Date.now());\n const [dateRanges, setDateRanges] = useState([\n new Date(now.getFullYear(), now.getMonth(), 1),\n new Date(now.getFullYear(), now.getMonth() + 1, 0),\n ]);\n\n const theme = useTheme();\n const matchSm = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const history = useHistory();\n\n const [notify, setNotify] = useState({\n isOpen: false,\n message: \"\",\n type: \"\",\n location: \"\",\n });\n\n const getListKasir = async () => {\n try {\n const { data: dataKasir } = await axios.get(\n `${baseUrl}/getPoinPenjualan`\n );\n\n dispatch({\n type: \"UPDATE_LIST\",\n payload: {\n listKasir: dataKasir.listKasir,\n },\n });\n } catch (err) {\n console.error(err);\n setNotify({\n isOpen: true,\n type: \"error\",\n message: err.response.data.msg,\n location: \"\",\n });\n }\n };\n\n const columns = [\n {\n field: \"toko\",\n headerName: \"Toko\",\n width: 100,\n sortable: false,\n },\n {\n field: \"omzet\",\n headerName: \"Omzet\",\n width: matchSm ? 500 : 350,\n sortable: false,\n renderCell: (params) => (\n \n \n \n \n \n \n
\n \n \n \n Target\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(params.row.omzet_target)\n )}\n \n \n \n \n Current\n \n \n {new Intl.NumberFormat([\"ban\", \"id\"]).format(\n parseInt(params.row.currentOmzet)\n )}\n \n \n \n
\n \n ),\n },\n {\n field: \"omzetScore\",\n headerName: \"Score (Omzet)\",\n width: 180,\n sortable: true,\n type: \"number\",\n valueGetter: (params) => Math.floor(params.row.omzetScore),\n },\n {\n field: \"pollux\",\n headerName: \"Pollux\",\n width: matchSm ? 500 : 350,\n sortable: false,\n renderCell: (params) => (\n \n \n \n \n \n \n
\n \n \n \n Target\n \n \n {params.row.polluxPairsTarget}\n \n \n \n \n Sold\n \n \n {params.row.totalPolluxSold}\n \n \n \n
\n \n ),\n },\n {\n field: \"polluxScore\",\n headerName: \"Score (Pol)\",\n width: 150,\n sortable: true,\n type: \"number\",\n align: !matchSm ? \"left\" : \"right\",\n headerAlign: !matchSm ? \"left\" : \"right\",\n valueGetter: (params) => Math.floor(params.row.polluxScore),\n },\n ];\n\n const getAllStorePerformance = async () => {\n try {\n const {\n data: { data },\n } = await axios.get(`${baseUrl}/getAllStorePerformances`, {\n params: {\n period: new Date(\n dateRanges[0].getFullYear(),\n dateRanges[0].getMonth(),\n 2\n )\n .toISOString()\n .split(\"T\")[0],\n },\n });\n\n setAllStorePerformance(data);\n } catch (err) {\n setNotify({\n isOpen: true,\n type: \"error\",\n message: err.response.data.msg,\n location: \"\",\n });\n setAllStorePerformance([]);\n }\n };\n\n useEffect(() => {\n getListKasir();\n }, []); //eslint-disable-line\n\n useEffect(() => {\n getAllStorePerformance();\n }, [dateRanges]); //eslint-disable-line\n\n return (\n
\n \n KPI Sales\n \n \n \n {/* \n \n {\n setFilteringContent({\n ...filteringContent,\n toko: e.target.value,\n });\n }}\n options={state.listKasir.map(({ id, username }) => {\n return {\n id: username,\n name: username,\n };\n })}\n />\n */}\n \n \n\n \n \n
\n \n \n \n \n \n \n );\n}\n","import React from 'react'\n\nfunction Email(){\n return (\n
Welcome to Email page!
\n )\n}\nexport default Email","import React from 'react'\n\nfunction Help(){\n return (\n
Contact tech team for help!
\n )\n}\nexport default Help","import React from \"react\";\nimport Axios from \"axios\";\nimport { useForm, Form } from \"../components/useForm\";\nimport { baseUrl } from \"../config/const\";\nimport { Grid } from \"@material-ui/core\";\nimport Controls from \"../components/controls/Controls\";\n\nexport default function Account({ logout, state }) {\n const initialValues = {\n email: \"\",\n username: \"\",\n password: \"\",\n role: \"-\",\n };\n\n const roleOptions = [\n { id: \"admin\", name: \"Admin\" },\n { id: \"user\", name: \"User\" },\n { id: \"toko\", name: \"Kasir Toko\" },\n ];\n\n const validate = (fieldValues = values) => {\n var temp = { ...errors };\n const mediumRegex = new RegExp(\n \"^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})\"\n );\n if (\"email\" in fieldValues) {\n if (fieldValues.email.length !== 0) {\n if (/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(fieldValues.email) === false) {\n temp.email = \"Tolong Masukkan alamat e-mail yang valid\";\n } else {\n temp.email = \"\";\n }\n } else {\n temp.email = \"email must be filled out\";\n }\n }\n if (\"username\" in fieldValues) {\n temp.username =\n fieldValues.username.length !== 0 ? \"\" : \"Username harus diisi\";\n }\n if (\"password\" in fieldValues) {\n temp.password =\n fieldValues.password.length !== 0 ? \"\" : \"Password harus diisi\";\n }\n // if (\"password\" in fieldValues) {\n // if (mediumRegex.test(fieldValues.password) === false) {\n // temp.password =\n // \"Password harus minimum terdiri dari 1 huruf besar, 1 huruf kecil, 1 angka, and total 8 karakter atau lebih\";\n // } else {\n // temp.password = \"\";\n // }\n // }\n if (\"role\" in fieldValues) {\n temp.role =\n fieldValues.role === \"-\" || fieldValues.role.length === 0\n ? \"Role harus diisi diisi\"\n : \"\";\n }\n setErrors({\n ...temp,\n });\n if (fieldValues === values) {\n return Object.values(temp).every((x) => x === \"\");\n }\n };\n\n /**\n * return results of useForm helper method\n * @param initialValues determines the initial value of each state\n * @param true boolean is allowing validating while onChange\n * @param validate is helper method of allowing element to validate while onChange\n */\n const { values, setValues, errors, setErrors, handleInputChange } = useForm(\n initialValues,\n true,\n validate\n );\n\n const createUser = async (e) => {\n e.preventDefault();\n if (validate()) {\n await Axios.post(\n process.env.NODE_ENV === \"production\"\n ? `${baseUrl}/auth/signup`\n : \"/auth/signup\",\n {\n username: values.username,\n email: values.email,\n password: values.password,\n role: values.role,\n creatorRole: state.role,\n }\n );\n }\n };\n\n return (\n
\n

Account Page

\n \n Current active user email :{\" \"}\n {state.email ? state.email : \"tidak ada email\"}\n \n
\n \n Current active user:{\" \"}\n {state.username ? state.username : \"tidak ada username\"}\n \n
\n \n\n \n \n \n
\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n
\n
\n
\n {/* */}\n \n );\n}\n","import \"./App.css\";\nimport SignIn from \"./account/SignIn\";\nimport AdminDrawer from \"./components/adminDrawer\";\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\nimport Dashboard from \"./dashboard/dashboard\";\nimport React, { useEffect, useReducer } from \"react\";\nimport NotAuthorizedPage from \"./components/NotAuthorizedPage\";\n\nimport { AuthContext, initialState, reducer } from \"./AppContext\";\nimport axios from \"axios\";\nimport { baseUrl } from \"./config/const\";\nimport Cookies from \"universal-cookie\";\nimport RoleRoutes from \"./RoleRoutes\";\n\nimport Email from \"./email/email\";\nimport Help from \"./help/help\";\nimport Account from \"./account/account\";\nimport RoutesManagement from \"./routes-management/RoutesManagement\";\n\nfunction App() {\n const [state, dispatch] = useReducer(reducer, initialState);\n\n const logout = async () => {\n const cookies = new Cookies();\n try {\n await axios.post(`${baseUrl}/auth/logout`);\n\n dispatch({\n type: \"LOGOUT\",\n payload: {\n isAuthenticated: false,\n id: \"\",\n username: \"\",\n email: \"\",\n role: \"\",\n accessToken: \"\",\n msg: \"\",\n },\n });\n\n cookies.remove(\"notouser\");\n } catch (err) {\n console.log(err);\n }\n };\n\n const checkSession = async () => {\n try {\n await axios.get(`${baseUrl}`);\n } catch (err) {\n await logout();\n }\n };\n\n useEffect(() => {\n checkSession();\n }, []);\n\n if (!state.isAuthenticated) {\n return ;\n }\n\n return (\n
\n \n \n \n \n \n\n \n \n \n\n \n \n\n \n \n \n \n \n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport axios from \"axios\";\n\naxios.defaults.withCredentials = true;\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}