pending page done
This commit is contained in:
parent
b8ff92deb9
commit
367a3c43e9
@ -15,9 +15,9 @@ import { cibGmail } from "@coreui/icons";
|
|||||||
import { createRoot } from "react-dom/client";
|
import { createRoot } from "react-dom/client";
|
||||||
|
|
||||||
const setupAxios = () => {
|
const setupAxios = () => {
|
||||||
// axios.defaults.baseURL = "http://localhost:5000";
|
axios.defaults.baseURL = "http://localhost:5000";
|
||||||
// axios.defaults.baseURL = "https://cheminova-api-2.onrender.com";
|
// axios.defaults.baseURL = "https://cheminova-api-2.onrender.com";
|
||||||
axios.defaults.baseURL = "https://api.cnapp.co.in";
|
// axios.defaults.baseURL = "https://api.cnapp.co.in";
|
||||||
|
|
||||||
axios.defaults.headers = {
|
axios.defaults.headers = {
|
||||||
"Cache-Control": "no-cache,no-store",
|
"Cache-Control": "no-cache,no-store",
|
||||||
|
@ -27,6 +27,7 @@ import { isAutheticated } from "src/auth";
|
|||||||
import Swal from "sweetalert2";
|
import Swal from "sweetalert2";
|
||||||
import OrderDetailsDialog from "./partialOrderModal";
|
import OrderDetailsDialog from "./partialOrderModal";
|
||||||
import InvoiceTable from "./invoiceTable";
|
import InvoiceTable from "./invoiceTable";
|
||||||
|
import PendingOrderTable from "./pendingOrderTable";
|
||||||
|
|
||||||
const ViewOrders = () => {
|
const ViewOrders = () => {
|
||||||
const [order, setOrder] = useState(null); // State to store order details
|
const [order, setOrder] = useState(null); // State to store order details
|
||||||
@ -297,12 +298,12 @@ const ViewOrders = () => {
|
|||||||
<Grid container spacing={2}>
|
<Grid container spacing={2}>
|
||||||
<Grid item md={8} xl={8} lg={8}>
|
<Grid item md={8} xl={8} lg={8}>
|
||||||
<Box sx={{ padding: 2, background: "#fff" }}>
|
<Box sx={{ padding: 2, background: "#fff" }}>
|
||||||
{onvoicesData.length > 0 && (
|
{order.invoices?.length > 0 && (
|
||||||
<>
|
<>
|
||||||
<Typography variant="h4" gutterBottom>
|
<Typography variant="h4" gutterBottom>
|
||||||
Invoices
|
Invoices
|
||||||
</Typography>
|
</Typography>
|
||||||
<InvoiceTable invoices={onvoicesData} />
|
<InvoiceTable invoices={order.invoices} />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<Typography variant="h4" my={3} gutterBottom>
|
<Typography variant="h4" my={3} gutterBottom>
|
||||||
@ -361,6 +362,15 @@ const ViewOrders = () => {
|
|||||||
</TableContainer>
|
</TableContainer>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
{order.invoices?.length > 0 && (
|
||||||
|
<>
|
||||||
|
{" "}
|
||||||
|
<Typography variant="h4" my={3} gutterBottom>
|
||||||
|
Order Itmes to processed
|
||||||
|
</Typography>
|
||||||
|
<PendingOrderTable order={order} />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
<Grid container spacing={2}>
|
<Grid container spacing={2}>
|
||||||
<Grid item sm={6} md={6} xl={6}>
|
<Grid item sm={6} md={6} xl={6}>
|
||||||
@ -387,7 +397,7 @@ const ViewOrders = () => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid item sm={6} md={6} xl={6}>
|
{/* <Grid item sm={6} md={6} xl={6}>
|
||||||
<TableContainer
|
<TableContainer
|
||||||
component={Paper}
|
component={Paper}
|
||||||
sx={{ maxWidth: 600, margin: "auto", mt: 4 }}
|
sx={{ maxWidth: 600, margin: "auto", mt: 4 }}
|
||||||
@ -428,14 +438,14 @@ const ViewOrders = () => {
|
|||||||
"-"
|
"-"
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* {row.date} */}
|
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
))}
|
))}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
</TableContainer>
|
</TableContainer>
|
||||||
</Grid>
|
</Grid> */}
|
||||||
</Grid>
|
</Grid>
|
||||||
</Box>
|
</Box>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -43,7 +43,7 @@ const InvoiceTable = ({ invoices }) => {
|
|||||||
<TableCell>
|
<TableCell>
|
||||||
{invoice.items.map((item) => (
|
{invoice.items.map((item) => (
|
||||||
<div key={item.productId}>
|
<div key={item.productId}>
|
||||||
{item.name} ({item.SKU}) x {item.processquantity}
|
{item.name} ({item.SKU}) x <b>{item.processquantity}</b>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
@ -22,7 +22,7 @@ const OrderDetailsDialog = ({ open, onClose, order, onSubmit }) => {
|
|||||||
const [availability, setAvailability] = useState(
|
const [availability, setAvailability] = useState(
|
||||||
order?.orderItem.map((item) => ({
|
order?.orderItem.map((item) => ({
|
||||||
...item, // Keep all original properties from orderItem
|
...item, // Keep all original properties from orderItem
|
||||||
processquantity: item.quantity, // Add availability field with default value equal to quantity
|
processquantity: item.remainingQuantity, // Add availability field with default value equal to quantity
|
||||||
}))
|
}))
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ const OrderDetailsDialog = ({ open, onClose, order, onSubmit }) => {
|
|||||||
const updatedAvailability = [...availability];
|
const updatedAvailability = [...availability];
|
||||||
const newValue = Math.max(
|
const newValue = Math.max(
|
||||||
0,
|
0,
|
||||||
Math.min(value, updatedAvailability[index].quantity)
|
Math.min(value, updatedAvailability[index].remainingQuantity)
|
||||||
); // Ensure value is between 0 and available quantity
|
); // Ensure value is between 0 and available quantity
|
||||||
updatedAvailability[index].processquantity = newValue;
|
updatedAvailability[index].processquantity = newValue;
|
||||||
setAvailability(updatedAvailability);
|
setAvailability(updatedAvailability);
|
||||||
@ -65,9 +65,9 @@ const OrderDetailsDialog = ({ open, onClose, order, onSubmit }) => {
|
|||||||
</TableHead>
|
</TableHead>
|
||||||
<TableBody>
|
<TableBody>
|
||||||
{order?.orderItem.map((item, index) => {
|
{order?.orderItem.map((item, index) => {
|
||||||
const subtotal = item.price * item.quantity;
|
const subtotal = item.price * item.remainingQuantity;
|
||||||
const gstAmount =
|
const gstAmount =
|
||||||
((item.GST * item.price) / 100) * item.quantity;
|
((item.GST * item.price) / 100) * item.remainingQuantity;
|
||||||
const totalWithGST = subtotal + gstAmount;
|
const totalWithGST = subtotal + gstAmount;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -83,7 +83,9 @@ const OrderDetailsDialog = ({ open, onClose, order, onSubmit }) => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell align="right">₹{item.price}</TableCell>
|
<TableCell align="right">₹{item.price}</TableCell>
|
||||||
<TableCell align="right">{item.quantity}</TableCell>
|
<TableCell align="right">
|
||||||
|
{item.remainingQuantity}
|
||||||
|
</TableCell>
|
||||||
<TableCell align="right">
|
<TableCell align="right">
|
||||||
<TextField
|
<TextField
|
||||||
sx={{ minWidth: "100px" }}
|
sx={{ minWidth: "100px" }}
|
||||||
@ -97,7 +99,7 @@ const OrderDetailsDialog = ({ open, onClose, order, onSubmit }) => {
|
|||||||
}
|
}
|
||||||
inputProps={{
|
inputProps={{
|
||||||
min: 0,
|
min: 0,
|
||||||
max: item.quantity,
|
max: item.remainingQuantity,
|
||||||
}}
|
}}
|
||||||
style={{ width: "60px", textAlign: "center" }}
|
style={{ width: "60px", textAlign: "center" }}
|
||||||
/>
|
/>
|
||||||
|
81
src/views/orders/pendingOrderTable.js
Normal file
81
src/views/orders/pendingOrderTable.js
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
import {
|
||||||
|
Box,
|
||||||
|
Grid,
|
||||||
|
TableContainer,
|
||||||
|
Paper,
|
||||||
|
Table,
|
||||||
|
TableHead,
|
||||||
|
TableRow,
|
||||||
|
TableCell,
|
||||||
|
TableBody,
|
||||||
|
Typography,
|
||||||
|
} from "@mui/material";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const PendingOrderTable = ({ order }) => {
|
||||||
|
return (
|
||||||
|
<Box>
|
||||||
|
<Grid container spacing={2}>
|
||||||
|
<Grid item xs={12}>
|
||||||
|
<TableContainer component={Paper}>
|
||||||
|
<Table>
|
||||||
|
<TableHead>
|
||||||
|
<TableRow>
|
||||||
|
<TableCell>Product</TableCell>
|
||||||
|
<TableCell align="right">Price (₹)</TableCell>
|
||||||
|
<TableCell align="right">Quantity</TableCell>
|
||||||
|
<TableCell align="right">Subtotal (₹)</TableCell>
|
||||||
|
<TableCell align="right">GST (%)</TableCell>
|
||||||
|
<TableCell align="right">GST Amount (₹)</TableCell>
|
||||||
|
<TableCell align="right">Total with GST (₹)</TableCell>
|
||||||
|
</TableRow>
|
||||||
|
</TableHead>
|
||||||
|
<TableBody>
|
||||||
|
{order?.orderItem.map((item, index) => {
|
||||||
|
// Check if remainingQuantity is greater than 0
|
||||||
|
if (item.remainingQuantity > 0) {
|
||||||
|
const subtotal = item.price * item.remainingQuantity;
|
||||||
|
const gstAmount =
|
||||||
|
((item.GST * item.price) / 100) * item.remainingQuantity;
|
||||||
|
const totalWithGST = subtotal + gstAmount;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<TableRow key={index}>
|
||||||
|
<TableCell>
|
||||||
|
<img
|
||||||
|
src={item.productId.image}
|
||||||
|
alt={item.productId.name}
|
||||||
|
style={{
|
||||||
|
width: 50,
|
||||||
|
height: 50,
|
||||||
|
marginRight: 10,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
{item.productId.name}
|
||||||
|
</Typography>
|
||||||
|
</TableCell>
|
||||||
|
<TableCell align="right">₹{item.price}</TableCell>
|
||||||
|
<TableCell align="right">
|
||||||
|
{item.remainingQuantity}
|
||||||
|
</TableCell>
|
||||||
|
<TableCell align="right">₹{subtotal}</TableCell>
|
||||||
|
<TableCell align="right">{item.GST}%</TableCell>
|
||||||
|
<TableCell align="right">₹{gstAmount}</TableCell>
|
||||||
|
<TableCell align="right">₹{totalWithGST}</TableCell>
|
||||||
|
</TableRow>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// Return null if remainingQuantity is 0
|
||||||
|
return null;
|
||||||
|
})}
|
||||||
|
</TableBody>
|
||||||
|
</Table>
|
||||||
|
</TableContainer>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</Box>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default PendingOrderTable;
|
Loading…
Reference in New Issue
Block a user