diff --git a/nearlexpressbuild b/nearlexpressbuild deleted file mode 160000 index 4148053..0000000 --- a/nearlexpressbuild +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 41480533667588fd538f34339cf3e81aaa9a8846 diff --git a/src/pages/nearle/api/api.js b/src/pages/nearle/api/api.js index 106be66..87f3af8 100644 --- a/src/pages/nearle/api/api.js +++ b/src/pages/nearle/api/api.js @@ -23,6 +23,7 @@ export const fetchOrderInsight = async () => { return response.data.details; }; + // ==============================|| fetchDeliverySummary (delivery)||============================== // export const fetchDeliverySummary = async () => { const response = await axios.get(`${process.env.REACT_APP_URL}/deliveries/deliverysummary`); diff --git a/src/pages/nearle/orders/orders.js b/src/pages/nearle/orders/orders.js index 447e6ca..6213371 100644 --- a/src/pages/nearle/orders/orders.js +++ b/src/pages/nearle/orders/orders.js @@ -80,6 +80,235 @@ const Orders = () => { return stabilizedThis.map((el) => el[0]); } + const tid = localStorage.getItem('tenantid'); + const [page, setPage] = React.useState(0); + const [rowsPerPage, setRowsPerPage] = React.useState(10); + const [pageCountObj, setPageCountObj] = React.useState({}); + const [pageCount, setPageCount] = React.useState(); + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [percentage1, setPercentage1] = useState('0'); + const [percentage2, setPercentage2] = useState('0'); + const [percentage3, setPercentage3] = useState('0'); + const [percentage4, setPercentage4] = useState('0'); + let [orderarr, setArr] = useState([]); + let [orderarrcovered, setArrcovered] = useState([]); + const [allorders, setAllorders] = useState(''); + const [activeorders, setActiveorders] = useState(''); + const [coveredorders, setCoveredorders] = useState(''); + const [uncoveredorders, setUncoveredorders] = useState(''); + const [cancelled, setCancelled] = useState(''); + const [closed, setClosed] = useState(''); + const [created, setCreated] = useState(''); + const [tabstatus, setTabstatus] = useState('Created'); + const [loading, setLoading] = useState(true); + const theme = useTheme(); + let [rows, setRows] = useState([]); + const [tabvalue, setTabvalue] = useState(0); + let navigate = useNavigate(); + const [open, setOpen] = useState(false); + const [dateselect, setDateselect] = useState('select'); + const [tabstatus1, setTabstatus1] = useState('Today'); + const [datestatus, setDatestatus] = useState('Today'); + const [searchword, setSearchword] = useState(''); + const [currentStatus, setCurrentStatus] = useState('created'); + const [createdLenght, setCreatedLenght] = useState(); + const [pendingLenght, setPendingLenght] = useState(); + const [deliveredlenght, setDeliveredlenght] = useState(); + const [cancelledLenght, setCancelledLenght] = useState(); + + const handleChangetab = (e, i) => { + setTabvalue(i); + + if (i === 0) { + setTabstatus('Created'); + setCurrentStatus('created'); + setPageCount(pageCountObj.created); + } + if (i === 1) { + setTabstatus('Pending'); + setCurrentStatus('pending'); + setPageCount(pageCountObj.pending); + } + if (i === 2) { + setTabstatus('Delivered'); + setCurrentStatus('delivered'); + setPageCount(pageCountObj.delivered); + } + if (i === 3) { + setTabstatus('Cancelled'); + setCurrentStatus('cancelled'); + setPageCount(pageCountObj.cancelled); + } + console.log(i); + }; + + const okclicked = () => { + setOpen(false); + }; + const textFieldRef = useRef(null); + + /* ============================================= || handleKeyPress (ctrl+k)| ============================================= */ + + useEffect(() => { + const handleKeyPress = (event) => { + if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { + event.preventDefault(); + + textFieldRef.current.focus(); + } + if (event.key === 'Escape' && document.activeElement === textFieldRef.current) { + // Remove focus from the TextField + textFieldRef.current.blur(); + } + }; + document.addEventListener('keydown', handleKeyPress); + + return () => { + document.removeEventListener('keydown', handleKeyPress); + }; + }, []); + + useEffect(() => { + var day = 60 * 60 * 24 * 1000; + var startDate = new Date(); + if (tabstatus1 === 'Tomorrow') { + setEnddate(new Date(startDate.getTime() + day).toISOString().substring(0, 10)); + setStartdate(new Date(startDate.getTime() + day).toISOString().substring(0, 10)); + setDateselect('select'); + } else if (tabstatus1 === 'Today') { + setEnddate(new Date().toISOString().substring(0, 10)); + setStartdate(new Date().toISOString().substring(0, 10)); + setDateselect('select'); + } else if (tabstatus1 === 'Week') { + setStartdate(new Date(startDate.getTime() - day * 7).toISOString().substring(0, 10)); + setEnddate(new Date().toISOString().substring(0, 10)); + setDateselect('select'); + } + // else if (tabstatus1 === 'All') { + // setEnddate(''); + // setStartdate(''); + + // setDateselect('all'); + // } + }, [tabstatus1]); + + const choosedate = (date) => { + setStartdate(date.$d.toISOString().substring(0, 10)); + setEnddate(date.$d.toISOString().substring(0, 10)); + setTabstatus1(''); + }; + + useEffect(() => { + if (searchword) { + let arr = orderarr.filter((val) => { + return ( + val.tenantname.toLowerCase().includes(searchword.toLowerCase()) || + val.orderid.toLowerCase().includes(searchword.toLowerCase()) || + val.pickupcustomer.toString().toLowerCase().includes(searchword.toLowerCase()) || + val.pickupcontactno.toString().toLowerCase().includes(searchword.toLowerCase()) || + val.pickupsuburb.toString().toLowerCase().includes(searchword.toLowerCase()) || + val.deliverycustomer.toLowerCase().includes(searchword.toLowerCase()) || + val.deliverycontactno.toLowerCase().includes(searchword.toLowerCase()) || + val.deliverysuburb.toLowerCase().includes(searchword.toLowerCase()) || + val.ordernotes.toString().toLowerCase().includes(searchword.toLowerCase()) + ); + }); + console.log(arr); + setRows([...arr]); + } else { + setRows([...orderarr]); + } + }, [searchword]); + + const fetchtablecovered = async () => { + try { + await axios + .get( + `${ + process.env.REACT_APP_URL + }/orders/tenant/getorders/?tenantid=${tid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${ + page + 1 + }&pagesize=${rowsPerPage}` + ) + .then((res) => { + setArr(res.data.details); + setRows(res.data.details); + }) + .catch((err) => { + console.log(err); + }); + } catch (err) { + console.log(err); + } + }; + useEffect(() => { + fetchtablecovered(); + }, [tabstatus, startdate, enddate, page, rowsPerPage]); + + const fetchpercentage = async () => { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL}/orders/getordersummary/?tenantid=${tid}`) + .then((res) => { + console.log(res); + setAllorders(res.data.details.total.toString()); + setCoveredorders(res.data.details.delivered.toString()); + setCancelled(res.data.details.cancelled.toString()); + setUncoveredorders(res.data.details.pending.toString()); + setCreated(res.data.details.created.toString()); + setClosed(res.data.details.delivered.toString()); + setPercentage1((Math.round((res.data.details.created / res.data.details.total) * 100) || 0).toString()); + setPercentage3((Math.round((res.data.details.delivered / res.data.details.total) * 100) || 0).toString()); + setPercentage4((Math.round((res.data.details.cancelled / res.data.details.total) * 100) || 0).toString()); + setPercentage2((Math.round((res.data.details.pending / res.data.details.total) * 100) || 0).toString()); + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + useEffect(() => { + fetchpercentage(); + }, []); + + const fetchorderscount = async () => { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL}/orders/getordersummary/?tenantid=${tid}&fromdate=${startdate}&todate=${enddate}`) + .then((res) => { + console.log('fetchorderscount', res.data.details); + + setCreatedLenght(res.data.details.created); + setPendingLenght(res.data.details.pending); + setDeliveredlenght(res.data.details.delivered); + setCancelledLenght(res.data.details.cancelled); + tabvalue === 0 && setPageCount(res.data.details.created); + tabvalue === 1 && setPageCount(res.data.details.pending); + tabvalue === 2 && setPageCount(res.data.details.delivered); + tabvalue === 3 && setPageCount(res.data.details.cancelled); + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + useEffect(() => { + fetchorderscount(); + }, [tabvalue]); + const headCells = [ { id: 'sno', @@ -202,34 +431,6 @@ const Orders = () => { }); }; - const fetchstafflist = async (odid) => { - setLoading1(true); - try { - await axios - .get(`${process.env.REACT_APP_URL2}/orders/getassignedinfo?orderdetailid=${odid}`) - - .then((res) => { - console.log(res); - if (res.data.status) { - setStafflist(res.data.Details); - } - - setLoading1(false); - }) - .catch((err) => { - console.log(err); - setLoading1(false); - }); - } catch (err) { - console.log(err); - setLoading1(false); - } - }; - - const dialogclose = () => { - setDialogopen(false); - }; - const handleRequestSort = (event, property) => { const isAsc = orderBy === property && order === 'asc'; setOrder(isAsc ? 'desc' : 'asc'); @@ -341,14 +542,7 @@ const Orders = () => { - + {loading && ( <> @@ -386,36 +580,28 @@ const Orders = () => { )} - {visibleRows.length == 0 && !loading && ( + {rows.length == 0 && ( <> - {/*
empty
*/} )} - {visibleRows.map((row, index) => { - const isItemSelected = isSelected(row.sno); - const labelId = `enhanced-table-checkbox-${index}`; - + {rows.map((row, index) => { return ( <> - - {row.sno} + + {page * rowsPerPage + index + 1} @@ -430,28 +616,6 @@ const Orders = () => { - {/* - - - - - - - {row.customername} - - - {row.contactno} - - - - */} { e.stopPropagation(); setOrderheaderid(row.orderheaderid); setOpen(true); - // navigate(`/details`, { - // state: { - // orderheaderid: row.orderheaderid, - // tenantid: row.tenantid - // } - // }) }} > - {/* */} { )} - - - - {/* - {(row.ordershifts).map((val5, k) => { - return <> - - - - - Shift {k + 1} - - - {''}{val5.locationaddress} - - - {((val5.shiftstatus == 1) || (val5.status == 1)) && - - } - - - - - -
- - - - # - Role - Start Date - End Date - Unpaid break - Count - Assigned - Price - Amount - Assigned Roles - - - - - - - {((val5.orderdetails) ? val5.orderdetails : []).map((val, i) => { - - return <> - - - - {i + 1} - - {val.productname} - - - - - - {dayjs(val.starttime).format('MM/DD/YYYY')} - - - {dayjs(val.starttime).format('hh:mm A')} - - - - - {' '} - - - {dayjs(val.endtime).format('MM/DD/YYYY')} - - - {dayjs(val.endtime).format('hh:mm A')} - - - - - {val.unpaidbreak || 0} - - - - - - - 0) ? "warning" : "error"} variant="light" size="small" /> - - ${val.price} - ${val.landingamount} - - - - - - - - - - - })} - - -
-
- - - - - - - - - - - - - Assigned Roles - {(stafflist[0]) && - - } label={stafflist[0].locationaddress} variant="light" color="primary" /> - } - - {(stafflist[0]) && - - - } - - - - - - - - - - - - - - - - - {(stafflist.length === 0) ? - <> - {(loading1) ? - <> - - - - - - - - : - No Staffs has been Assigned - - } - - : - - - - - - # - Staff - Start Time - End Time - Pay Rate - - Clockin - Clockout - - Hours Worked - - - Status - - - - - {stafflist.map((val, i) => { - - return - - - - - {i + 1} - - - - - - {val.staffname} - - - - - - - - - {dayjs(val.Starttime).format('MM/DD/YYYY')} - {dayjs(val.Starttime).format('hh:mm A')} - - - - - {dayjs(val.Endtime).format('MM/DD/YYYY')} - {dayjs(val.Endtime).format('hh:mm A')} - - - {val.rolecost} - - - - - - - - - - - - - - - - - - - - {val.hoursworked} - - - - - - - - {(val.orderstatus === 'pending') && - - - } - {(val.orderstatus === 'cancelled') && - - - - } - {(val.orderstatus === 'completed') && - - - } - {(val.orderstatus === 'processing') && - - } - {(val.orderstatus === 'assigned') && - - } - {(val.orderstatus === 'confirmed') && - - } - - {(val.orderstatus === 'active') && - - } - {(val.orderstatus === 'closed') && - - } - - - - - - - }) - } - -
-
- } -
- - - - - - -
- - }) - - - } - - - */} - - - ); })} - {emptyRows > 0 && ( - - - - )} { ); } - const tid = localStorage.getItem('tenantid'); - const [page, setPage] = React.useState(0); - const [rowsPerPage, setRowsPerPage] = React.useState(10); - const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); - const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); - const [percentage1, setPercentage1] = useState('0'); - const [percentage2, setPercentage2] = useState('0'); - const [percentage3, setPercentage3] = useState('0'); - const [percentage4, setPercentage4] = useState('0'); - let [orderarr, setArr] = useState([]); - let [orderarrcovered, setArrcovered] = useState([]); - const [allorders, setAllorders] = useState(''); - const [activeorders, setActiveorders] = useState(''); - const [coveredorders, setCoveredorders] = useState(''); - const [uncoveredorders, setUncoveredorders] = useState(''); - const [cancelled, setCancelled] = useState(''); - const [closed, setClosed] = useState(''); - const [created, setCreated] = useState(''); - const [tabstatus, setTabstatus] = useState('Created'); - const [loading, setLoading] = useState(true); - const theme = useTheme(); - let [rows, setRows] = useState([]); - const [tabvalue, setTabvalue] = useState(0); - let navigate = useNavigate(); - const [open, setOpen] = useState(false); - const [dateselect, setDateselect] = useState('select'); - const [tabstatus1, setTabstatus1] = useState('Today'); - const [datestatus, setDatestatus] = useState('Today'); - const [searchword, setSearchword] = useState(''); - const [currentStatus, setCurrentStatus] = useState('created'); - const [createdLenght, setCreatedLenght] = useState(); - const [pendingLenght, setPendingLenght] = useState(); - const [deliveredlenght, setDeliveredlenght] = useState(); - const [cancelledLenght, setCancelledLenght] = useState(); - - const handleChangetab = (e, i) => { - setTabvalue(i); - - if (i === 0) { - setTabstatus('Created'); - setCurrentStatus('created'); - } - if (i === 1) { - setTabstatus('Pending'); - setCurrentStatus('pending'); - } - if (i === 2) { - setTabstatus('Delivered'); - setCurrentStatus('delivered'); - } - if (i === 3) { - setTabstatus('Cancelled'); - setCurrentStatus('cancelled'); - } - console.log(i); - }; - - const okclicked = () => { - setOpen(false); - }; - const textFieldRef = useRef(null); - - /* ============================================= || handleKeyPress (ctrl+k)| ============================================= */ - - useEffect(() => { - const handleKeyPress = (event) => { - if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { - event.preventDefault(); - - textFieldRef.current.focus(); - } - if (event.key === 'Escape' && document.activeElement === textFieldRef.current) { - // Remove focus from the TextField - textFieldRef.current.blur(); - } - }; - document.addEventListener('keydown', handleKeyPress); - - return () => { - document.removeEventListener('keydown', handleKeyPress); - }; - }, []); - - useEffect(() => { - var day = 60 * 60 * 24 * 1000; - var startDate = new Date(); - if (tabstatus1 === 'Tomorrow') { - setEnddate(new Date(startDate.getTime() + day).toISOString().substring(0, 10)); - setStartdate(new Date(startDate.getTime() + day).toISOString().substring(0, 10)); - setDateselect('select'); - } else if (tabstatus1 === 'Today') { - setEnddate(new Date().toISOString().substring(0, 10)); - setStartdate(new Date().toISOString().substring(0, 10)); - setDateselect('select'); - } else if (tabstatus1 === 'Week') { - setStartdate(new Date(startDate.getTime() - day * 7).toISOString().substring(0, 10)); - setEnddate(new Date().toISOString().substring(0, 10)); - setDateselect('select'); - } - // else if (tabstatus1 === 'All') { - // setEnddate(''); - // setStartdate(''); - - // setDateselect('all'); - // } - }, [tabstatus1]); - - const choosedate = (date) => { - setStartdate(date.$d.toISOString().substring(0, 10)); - setEnddate(date.$d.toISOString().substring(0, 10)); - setTabstatus1(''); - }; - - useEffect(() => { - if (searchword) { - let arr = orderarr.filter((val) => { - return ( - val.tenantname.toLowerCase().includes(searchword.toLowerCase()) || - val.orderid.toLowerCase().includes(searchword.toLowerCase()) || - val.pickupcustomer.toString().toLowerCase().includes(searchword.toLowerCase()) || - val.pickupcontactno.toString().toLowerCase().includes(searchword.toLowerCase()) || - val.pickupsuburb.toString().toLowerCase().includes(searchword.toLowerCase()) || - val.deliverycustomer.toLowerCase().includes(searchword.toLowerCase()) || - val.deliverycontactno.toLowerCase().includes(searchword.toLowerCase()) || - val.deliverysuburb.toLowerCase().includes(searchword.toLowerCase()) || - val.ordernotes.toString().toLowerCase().includes(searchword.toLowerCase()) - ); - }); - console.log(arr); - setRows([...arr]); - } else { - setRows([...orderarr]); - } - }, [searchword]); - - const fetchtablecovered = async () => { - try { - await axios - .get( - `${ - process.env.REACT_APP_URL - }/orders/tenant/getorders/?tenantid=${tid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${ - page + 1 - }&pagesize=${rowsPerPage}` - ) - .then((res) => { - let arr = []; - res.data.details.map((val, i) => { - arr = [...arr, { ...val, sno: i + 1 }]; - }); - console.log(currentStatus, arr); - setArr(arr); - setRows(arr); - }) - .catch((err) => { - console.log(err); - }); - } catch (err) { - console.log(err); - } - }; - useEffect(() => { - fetchtablecovered(); - fetchorderscount(); - }, [tabstatus, startdate, enddate]); - - const fetchpercentage = async () => { - setLoading(true); - try { - await axios - .get(`${process.env.REACT_APP_URL}/orders/getordersummary/?tenantid=${tid}`) - .then((res) => { - console.log(res); - setAllorders(res.data.details.total.toString()); - setCoveredorders(res.data.details.delivered.toString()); - setCancelled(res.data.details.cancelled.toString()); - setUncoveredorders(res.data.details.pending.toString()); - setCreated(res.data.details.created.toString()); - setClosed(res.data.details.delivered.toString()); - setPercentage1((Math.round((res.data.details.created / res.data.details.total) * 100) || 0).toString()); - setPercentage3((Math.round((res.data.details.delivered / res.data.details.total) * 100) || 0).toString()); - setPercentage4((Math.round((res.data.details.cancelled / res.data.details.total) * 100) || 0).toString()); - setPercentage2((Math.round((res.data.details.pending / res.data.details.total) * 100) || 0).toString()); - setLoading(false); - }) - .catch((err) => { - console.log(err); - setLoading(false); - }); - } catch (err) { - console.log(err); - setLoading(false); - } - }; - useEffect(() => { - fetchpercentage(); - }, []); - const fetchorderscount = async () => { - setLoading(true); - try { - await axios - .get(`${process.env.REACT_APP_URL}/orders/getordersummary/?tenantid=${tid}&fromdate=${startdate}&todate=${enddate}`) - .then((res) => { - console.log('fetchorderscount', res.data.details); - setCreatedLenght(res.data.details.created); - setPendingLenght(res.data.details.pending); - setDeliveredlenght(res.data.details.delivered); - setCancelledLenght(res.data.details.cancelled); - setLoading(false); - }) - .catch((err) => { - console.log(err); - setLoading(false); - }); - } catch (err) { - console.log(err); - setLoading(false); - } - }; - useEffect(() => { - fetchorderscount(); - }, []); return ( <> diff --git a/src/pages/nearle/reports/ordersDetails.js b/src/pages/nearle/reports/ordersDetails.js index 684cb9a..4dfd39a 100644 --- a/src/pages/nearle/reports/ordersDetails.js +++ b/src/pages/nearle/reports/ordersDetails.js @@ -468,9 +468,11 @@ export default function ordersDetails() { <> - + - {' '} {startdate && enddate && ( @@ -512,7 +514,8 @@ export default function ordersDetails() {