2025-08-03 11:14:55 +07:00
|
|
|
|
import { Select as AntSelect, DatePicker, Space } from "antd";
|
2025-08-02 02:33:10 +07:00
|
|
|
|
import {
|
|
|
|
|
|
ChevronUp,
|
|
|
|
|
|
PlusCircle,
|
|
|
|
|
|
RotateCcw,
|
|
|
|
|
|
} from "feather-icons-react/build/IconComponents";
|
|
|
|
|
|
import { useEffect, useState } from "react";
|
|
|
|
|
|
import { OverlayTrigger, Tooltip } from "react-bootstrap";
|
|
|
|
|
|
import { useDispatch, useSelector } from "react-redux";
|
|
|
|
|
|
import { Link } from "react-router-dom";
|
|
|
|
|
|
import Select from "react-select";
|
|
|
|
|
|
import CustomPagination from "../../components/CustomPagination";
|
|
|
|
|
|
import ImageWithBasePath from "../../core/img/imagewithbasebath";
|
|
|
|
|
|
import { setToogleHeader } from "../../core/redux/action";
|
|
|
|
|
|
import {
|
|
|
|
|
|
clearOrderError,
|
|
|
|
|
|
fetchOrders,
|
|
|
|
|
|
} from "../../core/redux/actions/orderActions";
|
|
|
|
|
|
import { formatRupiah } from "../../utils/currency";
|
2025-08-03 11:14:55 +07:00
|
|
|
|
import { formatDate, formatInputDate } from "../../utils/date";
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
|
|
|
|
|
const SalesList = () => {
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const {
|
|
|
|
|
|
orders: apiOrders,
|
|
|
|
|
|
loading,
|
|
|
|
|
|
error,
|
|
|
|
|
|
totalOrders,
|
|
|
|
|
|
totalPages,
|
|
|
|
|
|
pageSize: reduxPageSize,
|
|
|
|
|
|
currentPage: reduxCurrentPage,
|
|
|
|
|
|
} = useSelector((state) => state.orders);
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
|
const data = useSelector((state) => state.toggle_header);
|
|
|
|
|
|
|
|
|
|
|
|
const dataSource = apiOrders?.length > 0 ? apiOrders : [];
|
|
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
const [params, setParams] = useState({
|
|
|
|
|
|
page: reduxCurrentPage || 1,
|
|
|
|
|
|
limit: reduxPageSize || 10,
|
|
|
|
|
|
status: null,
|
|
|
|
|
|
date_from: null,
|
|
|
|
|
|
date_to: null,
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const [searchTerm, setSearchTerm] = useState("");
|
|
|
|
|
|
const [debouncedSearchTerm, setDebouncedSearchTerm] = useState("");
|
2025-08-03 11:14:55 +07:00
|
|
|
|
|
|
|
|
|
|
const [selectedOrder, setSelectedOrder] = useState(null);
|
|
|
|
|
|
|
|
|
|
|
|
const handleSetParams = (key, value) => {
|
|
|
|
|
|
setParams({
|
|
|
|
|
|
...params,
|
|
|
|
|
|
[key]: value,
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
2025-08-02 02:33:10 +07:00
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
const loadOrders = async () => {
|
|
|
|
|
|
try {
|
2025-08-03 11:14:55 +07:00
|
|
|
|
const receivedParams = {
|
|
|
|
|
|
page: params.page,
|
|
|
|
|
|
limit: params.limit,
|
2025-08-02 02:33:10 +07:00
|
|
|
|
search: debouncedSearchTerm || "",
|
2025-08-03 11:14:55 +07:00
|
|
|
|
status: params.status,
|
|
|
|
|
|
date_from: params.date_from,
|
|
|
|
|
|
date_to: params.date_to,
|
2025-08-02 02:33:10 +07:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Remove empty parameters
|
|
|
|
|
|
const cleanParams = Object.fromEntries(
|
2025-08-03 11:14:55 +07:00
|
|
|
|
Object.entries(receivedParams).filter(([, value]) => value !== "")
|
2025-08-02 02:33:10 +07:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
await dispatch(fetchOrders(cleanParams));
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.error("Failed to fetch orders", error);
|
|
|
|
|
|
}
|
2025-05-23 23:34:50 +07:00
|
|
|
|
};
|
2025-08-02 02:33:10 +07:00
|
|
|
|
|
|
|
|
|
|
loadOrders();
|
2025-08-03 11:14:55 +07:00
|
|
|
|
}, [dispatch, params, debouncedSearchTerm]);
|
2025-08-02 02:33:10 +07:00
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
const timer = setTimeout(() => {
|
|
|
|
|
|
setDebouncedSearchTerm(searchTerm);
|
2025-08-03 20:55:11 +07:00
|
|
|
|
handleSetParams("page", 1);
|
2025-08-02 02:33:10 +07:00
|
|
|
|
}, 500); // 500ms delay
|
|
|
|
|
|
|
|
|
|
|
|
return () => clearTimeout(timer);
|
|
|
|
|
|
}, [searchTerm]);
|
|
|
|
|
|
|
|
|
|
|
|
// Handle search
|
|
|
|
|
|
const handleSearch = (e) => {
|
|
|
|
|
|
const value = e.target.value;
|
|
|
|
|
|
setSearchTerm(value);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Handle pagination
|
|
|
|
|
|
const handlePageChange = (page) => {
|
2025-08-03 11:14:55 +07:00
|
|
|
|
handleSetParams("page", page);
|
2025-08-02 02:33:10 +07:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Handle page size change
|
|
|
|
|
|
const handlePageSizeChange = (newPageSize) => {
|
2025-08-03 11:14:55 +07:00
|
|
|
|
handleSetParams("limit", newPageSize);
|
|
|
|
|
|
handleSetParams("page", 1);
|
2025-08-02 02:33:10 +07:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Calculate pagination info
|
|
|
|
|
|
const totalRecords = totalOrders || dataSource.length;
|
2025-08-03 11:14:55 +07:00
|
|
|
|
const calculatedTotalPages = Math.ceil(totalRecords / params.limit);
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const actualTotalPages = totalPages || calculatedTotalPages;
|
|
|
|
|
|
|
|
|
|
|
|
// Clear error when component unmounts
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
return () => {
|
|
|
|
|
|
dispatch(clearOrderError());
|
2025-05-23 23:34:50 +07:00
|
|
|
|
};
|
2025-08-02 02:33:10 +07:00
|
|
|
|
}, [dispatch]);
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const paymentStatus = [
|
|
|
|
|
|
{ value: "", label: "All" },
|
|
|
|
|
|
{ value: "pending", label: "Pending" },
|
|
|
|
|
|
{ value: "completed", label: "Completed" },
|
|
|
|
|
|
{ value: "cancelled", label: "Cancelled" },
|
|
|
|
|
|
];
|
|
|
|
|
|
const customer = [
|
|
|
|
|
|
{ value: "Choose Customer", label: "Choose Customer" },
|
|
|
|
|
|
{ value: "Customer Name", label: "Customer Name" },
|
|
|
|
|
|
];
|
|
|
|
|
|
const suppliername = [
|
|
|
|
|
|
{ value: "Supplier", label: "Supplier" },
|
|
|
|
|
|
{ value: "Supplier Name", label: "Supplier Name" },
|
|
|
|
|
|
];
|
|
|
|
|
|
const statusupdate = [
|
|
|
|
|
|
{ value: "Supplier", label: "Choose" },
|
|
|
|
|
|
{ value: "Completed", label: "Completed" },
|
|
|
|
|
|
{ value: "InProgress", label: "InProgress" },
|
|
|
|
|
|
];
|
|
|
|
|
|
const paymenttype = [
|
|
|
|
|
|
{ value: "Choose", label: "Choose" },
|
|
|
|
|
|
{ value: "Cash", label: "Cash" },
|
|
|
|
|
|
{ value: "Online", label: "Online" },
|
|
|
|
|
|
];
|
|
|
|
|
|
const badgeColors = {
|
|
|
|
|
|
pending: "primary",
|
|
|
|
|
|
completed: "success",
|
|
|
|
|
|
cancelled: "danger",
|
|
|
|
|
|
};
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
const [selectedDate, setSelectedDate] = useState(new Date());
|
|
|
|
|
|
const handleDateChange = (date) => {
|
|
|
|
|
|
setSelectedDate(date);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const renderTooltip = (props) => (
|
|
|
|
|
|
<Tooltip id="pdf-tooltip" {...props}>
|
|
|
|
|
|
Pdf
|
|
|
|
|
|
</Tooltip>
|
|
|
|
|
|
);
|
|
|
|
|
|
const renderExcelTooltip = (props) => (
|
|
|
|
|
|
<Tooltip id="excel-tooltip" {...props}>
|
|
|
|
|
|
Excel
|
|
|
|
|
|
</Tooltip>
|
|
|
|
|
|
);
|
|
|
|
|
|
const renderPrinterTooltip = (props) => (
|
|
|
|
|
|
<Tooltip id="printer-tooltip" {...props}>
|
|
|
|
|
|
Printer
|
|
|
|
|
|
</Tooltip>
|
|
|
|
|
|
);
|
|
|
|
|
|
const renderRefreshTooltip = (props) => (
|
|
|
|
|
|
<Tooltip id="refresh-tooltip" {...props}>
|
|
|
|
|
|
Refresh
|
|
|
|
|
|
</Tooltip>
|
|
|
|
|
|
);
|
|
|
|
|
|
const renderCollapseTooltip = (props) => (
|
|
|
|
|
|
<Tooltip id="refresh-tooltip" {...props}>
|
|
|
|
|
|
Collapse
|
|
|
|
|
|
</Tooltip>
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div className="page-wrapper">
|
|
|
|
|
|
<div className="content">
|
|
|
|
|
|
<div className="page-header">
|
|
|
|
|
|
<div className="add-item d-flex">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4>Sales List</h4>
|
|
|
|
|
|
<h6>Manage Your Sales</h6>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<ul className="table-top-head">
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<OverlayTrigger placement="top" overlay={renderTooltip}>
|
|
|
|
|
|
<Link>
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/icons/pdf.svg"
|
|
|
|
|
|
alt="img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</OverlayTrigger>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<OverlayTrigger placement="top" overlay={renderExcelTooltip}>
|
|
|
|
|
|
<Link data-bs-toggle="tooltip" data-bs-placement="top">
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/icons/excel.svg"
|
|
|
|
|
|
alt="img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</OverlayTrigger>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<OverlayTrigger placement="top" overlay={renderPrinterTooltip}>
|
|
|
|
|
|
<Link data-bs-toggle="tooltip" data-bs-placement="top">
|
|
|
|
|
|
<i data-feather="printer" className="feather-printer" />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</OverlayTrigger>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<OverlayTrigger placement="top" overlay={renderRefreshTooltip}>
|
|
|
|
|
|
<Link data-bs-toggle="tooltip" data-bs-placement="top">
|
|
|
|
|
|
<RotateCcw />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</OverlayTrigger>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<OverlayTrigger placement="top" overlay={renderCollapseTooltip}>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
data-bs-toggle="tooltip"
|
|
|
|
|
|
data-bs-placement="top"
|
|
|
|
|
|
id="collapse-header"
|
|
|
|
|
|
className={data ? "active" : ""}
|
|
|
|
|
|
onClick={() => {
|
|
|
|
|
|
dispatch(setToogleHeader(!data));
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<ChevronUp />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</OverlayTrigger>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
<div className="page-btn">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="btn btn-added"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#add-sales-new"
|
|
|
|
|
|
>
|
|
|
|
|
|
<PlusCircle className="me-2" />
|
|
|
|
|
|
Add New Sales
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* /product list */}
|
|
|
|
|
|
<div className="card table-list-card">
|
|
|
|
|
|
<div className="card-body">
|
|
|
|
|
|
<div className="table-top">
|
|
|
|
|
|
<div className="search-set">
|
|
|
|
|
|
<div className="search-input">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
placeholder="Search"
|
|
|
|
|
|
className="form-control form-control-sm formsearch"
|
|
|
|
|
|
value={searchTerm}
|
|
|
|
|
|
onChange={handleSearch}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<Link to className="btn btn-searchset">
|
|
|
|
|
|
<i data-feather="search" className="feather-search" />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<Space warp align="center">
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<AntSelect
|
|
|
|
|
|
style={{ height: 36, width: 120 }}
|
|
|
|
|
|
placeholder={"Status"}
|
|
|
|
|
|
options={paymentStatus}
|
|
|
|
|
|
value={
|
|
|
|
|
|
paymentStatus.find(
|
2025-08-03 11:14:55 +07:00
|
|
|
|
(option) => option.value === params.status
|
2025-08-02 02:33:10 +07:00
|
|
|
|
) || null
|
|
|
|
|
|
}
|
2025-08-03 11:14:55 +07:00
|
|
|
|
onChange={(selectedOption) =>
|
|
|
|
|
|
handleSetParams("status", selectedOption)
|
|
|
|
|
|
}
|
2025-08-02 02:33:10 +07:00
|
|
|
|
/>
|
|
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<DatePicker
|
|
|
|
|
|
selected={params.date_from}
|
|
|
|
|
|
onChange={(date) =>
|
|
|
|
|
|
date
|
|
|
|
|
|
? handleSetParams("date_from", formatInputDate(date))
|
|
|
|
|
|
: handleSetParams("date_from", "")
|
|
|
|
|
|
}
|
|
|
|
|
|
height={120}
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
className="datetimepicker w-100"
|
|
|
|
|
|
dateFormat="dd-MM-yyyy"
|
|
|
|
|
|
placeholder="From Date"
|
|
|
|
|
|
style={{ height: 36 }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
selected={params.date_to}
|
|
|
|
|
|
onChange={(date) =>
|
|
|
|
|
|
date
|
|
|
|
|
|
? handleSetParams("date_to", formatInputDate(date))
|
|
|
|
|
|
: handleSetParams("date_to", "")
|
|
|
|
|
|
}
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
className="datetimepicker w-100"
|
|
|
|
|
|
dateFormat="dd-MM-yyyy"
|
|
|
|
|
|
placeholder="To Date"
|
2025-08-02 02:33:10 +07:00
|
|
|
|
style={{ height: 36 }}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Space>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="table-responsive">
|
|
|
|
|
|
{loading ? (
|
|
|
|
|
|
<div className="text-center p-4">
|
|
|
|
|
|
<div className="spinner-border text-primary" role="status">
|
|
|
|
|
|
<span className="visually-hidden">Loading...</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<p className="mt-2">Loading products...</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
) : error ? (
|
|
|
|
|
|
<div className="alert alert-danger" role="alert">
|
|
|
|
|
|
<strong>Error:</strong> {error}
|
|
|
|
|
|
<button
|
|
|
|
|
|
className="btn btn-sm btn-outline-danger ms-2"
|
|
|
|
|
|
onClick={() => dispatch(fetchOrders())}
|
|
|
|
|
|
>
|
|
|
|
|
|
Retry
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
) : (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<table className="table datanew">
|
|
|
|
|
|
<thead className="thead-light">
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th className="no-sort">
|
|
|
|
|
|
<label className="checkboxs">
|
|
|
|
|
|
<input type="checkbox" id="select-all" />
|
|
|
|
|
|
<span className="checkmarks" />
|
|
|
|
|
|
</label>
|
|
|
|
|
|
</th>
|
|
|
|
|
|
<th>Customer Name</th>
|
|
|
|
|
|
<th>Reference</th>
|
|
|
|
|
|
<th>Date</th>
|
|
|
|
|
|
<th>Status</th>
|
|
|
|
|
|
<th>Total Amount</th>
|
|
|
|
|
|
<th>Discount Amount</th>
|
|
|
|
|
|
<th>Table Number</th>
|
|
|
|
|
|
<th className="text-center">Action</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody className="sales-list">
|
|
|
|
|
|
{dataSource &&
|
|
|
|
|
|
dataSource.map((item, index) => (
|
|
|
|
|
|
<tr key={index}>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<label className="checkboxs">
|
|
|
|
|
|
<input type="checkbox" />
|
|
|
|
|
|
<span className="checkmarks" />
|
|
|
|
|
|
</label>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>{item.metadata?.customer_name}</td>
|
|
|
|
|
|
<td>{item.order_number}</td>
|
|
|
|
|
|
<td>{formatDate(item.created_at)}</td>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<span
|
|
|
|
|
|
className={`badge text-bg-${
|
|
|
|
|
|
badgeColors[item.status]
|
|
|
|
|
|
}`}
|
|
|
|
|
|
>
|
|
|
|
|
|
{item.status}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>{formatRupiah(item.total_amount)}</td>
|
|
|
|
|
|
<td>{formatRupiah(item.discount_amount)}</td>
|
|
|
|
|
|
<td>{item.table_number ?? 0}</td>
|
|
|
|
|
|
<td className="text-center">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
className="action-set"
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
data-bs-toggle="dropdown"
|
|
|
|
|
|
aria-expanded="true"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
className="fa fa-ellipsis-v"
|
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<ul className="dropdown-menu">
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="dropdown-item"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#sales-details-new"
|
2025-08-03 11:14:55 +07:00
|
|
|
|
onClick={() => setSelectedOrder(item)}
|
2025-08-02 02:33:10 +07:00
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="eye"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
Sales Detail
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</Link>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="dropdown-item"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#edit-sales-new"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="edit"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
Edit Sale
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</Link>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="dropdown-item"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#showpayment"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="dollar-sign"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
Show Payments
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</Link>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="dropdown-item"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#createpayment"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="plus-circle"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
Create Payment
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</Link>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<Link to="#" className="dropdown-item">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="download"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
Download pdf
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</Link>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
<Link
|
2025-08-02 02:33:10 +07:00
|
|
|
|
to="#"
|
|
|
|
|
|
className="dropdown-item confirm-text mb-0"
|
2025-05-23 23:34:50 +07:00
|
|
|
|
>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<i
|
|
|
|
|
|
data-feather="trash-2"
|
|
|
|
|
|
className="info-img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
Delete Sale
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</Link>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
))}
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<CustomPagination
|
2025-08-03 11:14:55 +07:00
|
|
|
|
currentPage={params.page}
|
|
|
|
|
|
pageSize={params.limit}
|
2025-08-02 02:33:10 +07:00
|
|
|
|
totalCount={totalRecords}
|
|
|
|
|
|
totalPages={actualTotalPages}
|
|
|
|
|
|
loading={loading}
|
|
|
|
|
|
onPageChange={handlePageChange}
|
|
|
|
|
|
onPageSizeChange={handlePageSizeChange}
|
|
|
|
|
|
pageSizeOptions={[10, 20, 50, 100]}
|
|
|
|
|
|
showInfo={true}
|
|
|
|
|
|
showPageSizeSelector={true}
|
|
|
|
|
|
compact={false}
|
|
|
|
|
|
className="order-list-pagination"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</>
|
|
|
|
|
|
)}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* /product list */}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<>
|
|
|
|
|
|
{/*add popup */}
|
|
|
|
|
|
<div className="modal fade" id="add-sales-new">
|
|
|
|
|
|
<div className="modal-dialog add-centered">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="page-wrapper p-0 m-0">
|
|
|
|
|
|
<div className="content p-0">
|
|
|
|
|
|
<div className="modal-header border-0 custom-modal-header">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4> Add Sales</h4>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="close"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
aria-label="Close"
|
|
|
|
|
|
>
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="card">
|
|
|
|
|
|
<div className="card-body">
|
|
|
|
|
|
<form>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Customer Name</label>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-10 col-sm-10 col-10">
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={customer}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<div className="col-lg-2 col-sm-2 col-2 ps-0">
|
|
|
|
|
|
<div className="add-icon">
|
|
|
|
|
|
<Link to="#" className="choose-add">
|
|
|
|
|
|
<PlusCircle className="plus" />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Date</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
selected={selectedDate}
|
|
|
|
|
|
onChange={handleDateChange}
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
className="filterdatepicker"
|
|
|
|
|
|
dateFormat="dd-MM-yyyy"
|
|
|
|
|
|
placeholder="Choose Date"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Supplier</label>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={suppliername}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Product Name</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
placeholder="Please type product code and select"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div className="addonset">
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/icons/qrcode-scan.svg"
|
|
|
|
|
|
alt="img"
|
|
|
|
|
|
/>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="table-responsive no-pagination">
|
|
|
|
|
|
<table className="table datanew">
|
|
|
|
|
|
<thead>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Product</th>
|
|
|
|
|
|
<th>Qty</th>
|
|
|
|
|
|
<th>Purchase Price($)</th>
|
|
|
|
|
|
<th>Discount($)</th>
|
|
|
|
|
|
<th>Tax(%)</th>
|
|
|
|
|
|
<th>Tax Amount($)</th>
|
|
|
|
|
|
<th>Unit Cost($)</th>
|
|
|
|
|
|
<th>Total Cost(%)</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
<td />
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-6 ms-auto">
|
|
|
|
|
|
<div className="total-order w-100 max-widthauto m-auto mb-4">
|
|
|
|
|
|
<ul>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<h4>Order Tax</h4>
|
|
|
|
|
|
<h5>$ 0.00</h5>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<h4>Discount</h4>
|
|
|
|
|
|
<h5>$ 0.00</h5>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<h4>Shipping</h4>
|
|
|
|
|
|
<h5>$ 0.00</h5>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
<li>
|
|
|
|
|
|
<h4>Grand Total</h4>
|
|
|
|
|
|
<h5>$ 0.00</h5>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Order Tax</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
defaultValue={0}
|
|
|
|
|
|
className="p-2"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Discount</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
defaultValue={0}
|
|
|
|
|
|
className="p-2"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Shipping</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
defaultValue={0}
|
|
|
|
|
|
className="p-2"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks mb-5">
|
|
|
|
|
|
<label>Status</label>
|
|
|
|
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={statusupdate}
|
|
|
|
|
|
placeholder="status"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12 text-end">
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="btn btn-cancel add-cancel me-3"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
>
|
|
|
|
|
|
Cancel
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<Link to="#" className="btn btn-submit add-sale">
|
|
|
|
|
|
Submit
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</form>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* /add popup */}
|
2025-08-03 11:14:55 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
{/* details popup */}
|
|
|
|
|
|
<div className="modal fade" id="sales-details-new">
|
|
|
|
|
|
<div className="modal-dialog sales-details-modal">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="page-wrapper details-blk">
|
2025-08-03 11:14:55 +07:00
|
|
|
|
{setSelectedOrder && (
|
|
|
|
|
|
<div className="content p-4">
|
|
|
|
|
|
<div className="d-flex justify-content-between align-items-center mb-4 modal-header">
|
|
|
|
|
|
<h4 className="fw-bold">Sales Detail</h4>
|
|
|
|
|
|
<button className="btn btn-dark" data-bs-dismiss="modal">
|
|
|
|
|
|
<i className="fa fa-arrow-left me-2"></i>Back to Sales
|
|
|
|
|
|
</button>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
|
|
|
|
|
|
<div className="row g-4 mb-4">
|
|
|
|
|
|
<div className="col-md-4">
|
|
|
|
|
|
<h6 className="fw-bold text-muted">Customer Info</h6>
|
|
|
|
|
|
<p className="mb-0">
|
|
|
|
|
|
{selectedOrder?.metadata?.customer_name}
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
3103 Trainer Avenue Peoria, IL 61602
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
Email: carlevans241@example.com
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
Phone: +1 987 471 6589
|
|
|
|
|
|
</small>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-md-4">
|
|
|
|
|
|
<h6 className="fw-bold text-muted">Company Info</h6>
|
|
|
|
|
|
<p className="mb-0">DGT</p>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
2077 Chicago Avenue Orosi, CA 93647
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
Email: admin@example.com
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="text-muted d-block">
|
|
|
|
|
|
Phone: +1 893 174 0385
|
|
|
|
|
|
</small>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-md-4">
|
|
|
|
|
|
<h6 className="fw-bold text-muted">Invoice Info</h6>
|
|
|
|
|
|
<small className="d-block">
|
|
|
|
|
|
Reference:{" "}
|
|
|
|
|
|
<span className="text-warning fw-semibold">
|
|
|
|
|
|
{selectedOrder?.order_number}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="d-block">
|
|
|
|
|
|
Date: {formatDate(selectedOrder?.created_at)}
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="d-block">
|
|
|
|
|
|
Status:{" "}
|
|
|
|
|
|
<span
|
|
|
|
|
|
className={`badge text-bg-${
|
|
|
|
|
|
badgeColors[selectedOrder?.status]
|
|
|
|
|
|
}`}
|
|
|
|
|
|
>
|
|
|
|
|
|
{selectedOrder?.status}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</small>
|
|
|
|
|
|
<small className="d-block">
|
|
|
|
|
|
Payment Status:{" "}
|
|
|
|
|
|
<span className="badge bg-light-success text-success">
|
|
|
|
|
|
Paid
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</small>
|
|
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<h5 className="fw-bold mb-3">Order Summary</h5>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<div className="table-responsive mb-4">
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<table className="table table-bordered">
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<thead className="thead-light text-dark">
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<tr>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<th>Product</th>
|
|
|
|
|
|
<th>Variant</th>
|
|
|
|
|
|
<th>Status</th>
|
|
|
|
|
|
<th>Quantity</th>
|
|
|
|
|
|
<th>Unit Price</th>
|
|
|
|
|
|
<th>Total Price</th>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</tr>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
{selectedOrder?.order_items?.map((item, index) => (
|
|
|
|
|
|
<tr key={index}>
|
|
|
|
|
|
<td>{item?.product_name}</td>
|
|
|
|
|
|
<td>{item?.product_variant_name ?? "-"}</td>
|
|
|
|
|
|
<td>{item?.status}</td>
|
|
|
|
|
|
<td>{item?.quantity}</td>
|
|
|
|
|
|
<td>{formatRupiah(item?.unit_price)}</td>
|
|
|
|
|
|
<td>{formatRupiah(item?.total_price)}</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
))}
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<div className="row justify-content-end pb-3">
|
|
|
|
|
|
<div className="col-md-6">
|
|
|
|
|
|
<table className="table table-bordered">
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Order Tax</td>
|
2025-08-03 20:55:11 +07:00
|
|
|
|
<td className="text-end">
|
|
|
|
|
|
{formatRupiah(selectedOrder?.tax_amount)}
|
|
|
|
|
|
</td>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Discount</td>
|
2025-08-03 20:55:11 +07:00
|
|
|
|
<td className="text-end">
|
|
|
|
|
|
{formatRupiah(selectedOrder?.discount_amount)}
|
|
|
|
|
|
</td>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</tr>
|
|
|
|
|
|
<tr className="fw-bold">
|
|
|
|
|
|
<td>Grand Total</td>
|
2025-08-03 20:55:11 +07:00
|
|
|
|
<td className="text-end">
|
|
|
|
|
|
{formatRupiah(selectedOrder?.total_amount)}
|
|
|
|
|
|
</td>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Sub Total</td>
|
2025-08-03 20:55:11 +07:00
|
|
|
|
<td className="text-end">
|
|
|
|
|
|
{formatRupiah(selectedOrder?.subtotal)}
|
|
|
|
|
|
</td>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
)}
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* /details popup */}
|
|
|
|
|
|
{/* edit popup */}
|
|
|
|
|
|
<div className="modal fade" id="edit-sales-new">
|
|
|
|
|
|
<div className="modal-dialog edit-sales-modal">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="page-wrapper p-0 m-0">
|
|
|
|
|
|
<div className="content p-0">
|
|
|
|
|
|
<div className="page-header p-4 mb-0">
|
|
|
|
|
|
<div className="add-item new-sale-items d-flex">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4>Edit Sales</h4>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="close"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
aria-label="Close"
|
|
|
|
|
|
>
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="card">
|
|
|
|
|
|
<div className="card-body">
|
|
|
|
|
|
<form>
|
|
|
|
|
|
<div className="table-responsive no-pagination mb-3">
|
|
|
|
|
|
<table className="table datanew">
|
|
|
|
|
|
<thead className="thead-light">
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Product</th>
|
|
|
|
|
|
<th>Qty</th>
|
2025-08-03 11:14:55 +07:00
|
|
|
|
<th>Purchase Price</th>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<th>Discount($)</th>
|
|
|
|
|
|
<th>Tax(%)</th>
|
|
|
|
|
|
<th>Tax Amount($)</th>
|
|
|
|
|
|
<th>Unit Cost($)</th>
|
|
|
|
|
|
<th>Total Cost(%)</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="productimgname">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="product-img stock-img"
|
|
|
|
|
|
>
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/products/stock-img-02.png"
|
|
|
|
|
|
alt="product"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<Link to="#">Nike Jordan</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="product-quantity">
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
+
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="plus-circle"
|
|
|
|
|
|
className="plus-circle"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
className="quntity-input"
|
|
|
|
|
|
defaultValue={2}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="minus-circle"
|
|
|
|
|
|
className="feather-search"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>2000</td>
|
|
|
|
|
|
<td>500</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>1500</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="productimgname">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="product-img stock-img"
|
|
|
|
|
|
>
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/products/stock-img-03.png"
|
|
|
|
|
|
alt="product"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<Link to="#">Apple Series 5 Watch</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="product-quantity">
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
+
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="plus-circle"
|
|
|
|
|
|
className="plus-circle"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
className="quntity-input"
|
|
|
|
|
|
defaultValue={2}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="minus-circle"
|
|
|
|
|
|
className="feather-search"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>3000</td>
|
|
|
|
|
|
<td>400</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>1700</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="productimgname">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="product-img stock-img"
|
|
|
|
|
|
>
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/products/stock-img-05.png"
|
|
|
|
|
|
alt="product"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<Link to="#">Lobar Handy</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>
|
|
|
|
|
|
<div className="product-quantity">
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
+
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="plus-circle"
|
|
|
|
|
|
className="plus-circle"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
className="quntity-input"
|
|
|
|
|
|
defaultValue={2}
|
|
|
|
|
|
/>
|
|
|
|
|
|
<span className="quantity-btn">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="minus-circle"
|
|
|
|
|
|
className="feather-search"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td>2500</td>
|
|
|
|
|
|
<td>500</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>0.00</td>
|
|
|
|
|
|
<td>2000</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="row mb-3">
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Customer</label>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-10 col-sm-10 col-10">
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={customer}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-2 col-sm-2 col-2 ps-0">
|
|
|
|
|
|
<div className="add-icon">
|
|
|
|
|
|
<Link to="#" className="choose-add">
|
|
|
|
|
|
<PlusCircle className="plus" />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Purchase Date</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
selected={selectedDate}
|
|
|
|
|
|
onChange={handleDateChange}
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
className="filterdatepicker w-100"
|
|
|
|
|
|
dateFormat="dd-MM-yyyy"
|
|
|
|
|
|
placeholder="Choose Date"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Supplier</label>
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={suppliername}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Product Name</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
placeholder="Please type product code and select"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div className="addonset">
|
|
|
|
|
|
<ImageWithBasePath
|
|
|
|
|
|
src="assets/img/icons/scanners.svg"
|
|
|
|
|
|
alt="img"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<div className="row mb-5">
|
|
|
|
|
|
<div className="col-lg-6 ms-auto">
|
|
|
|
|
|
<table className="table table-bordered">
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Order Tax</td>
|
|
|
|
|
|
<td className="text-end">$ 0.00</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Discount</td>
|
|
|
|
|
|
<td className="text-end">$ 0.00</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr className="fw-bold">
|
|
|
|
|
|
<td>Grand Total</td>
|
|
|
|
|
|
<td className="text-end">$ 5200.00</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Paid</td>
|
|
|
|
|
|
<td className="text-end">$ 5200.00</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>Due</td>
|
|
|
|
|
|
<td className="text-end">$ 0.00</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Order Tax</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input type="text" placeholder={0} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Discount</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input type="text" placeholder={0} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Shipping</label>
|
|
|
|
|
|
<div className="input-groupicon select-code">
|
|
|
|
|
|
<input type="text" placeholder={0} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-3 col-sm-6 col-12">
|
|
|
|
|
|
<div className="input-blocks mb-5">
|
|
|
|
|
|
<label>Status</label>
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={statusupdate}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Notes</label>
|
|
|
|
|
|
<textarea
|
|
|
|
|
|
className="form-control"
|
|
|
|
|
|
defaultValue={""}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12 text-end">
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="btn btn-cancel add-cancel me-3"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
>
|
|
|
|
|
|
Cancel
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<Link to="#" className="btn btn-submit add-sale">
|
|
|
|
|
|
Submit
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</form>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* /edit popup */}
|
|
|
|
|
|
{/* show payment Modal */}
|
|
|
|
|
|
<div
|
|
|
|
|
|
className="modal fade"
|
|
|
|
|
|
id="showpayment"
|
|
|
|
|
|
tabIndex={-1}
|
|
|
|
|
|
aria-labelledby="showpayment"
|
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div className="modal-dialog modal-dialog-centered stock-adjust-modal">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="page-wrapper-new p-0">
|
|
|
|
|
|
<div className="content">
|
|
|
|
|
|
<div className="modal-header border-0 custom-modal-header">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4>Show Payments</h4>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="close"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
aria-label="Close"
|
|
|
|
|
|
>
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="modal-body custom-modal-body">
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="modal-body-table total-orders">
|
|
|
|
|
|
<div className="table-responsive">
|
|
|
|
|
|
<table className="table datanew">
|
|
|
|
|
|
<thead>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<th>Date</th>
|
|
|
|
|
|
<th>Reference</th>
|
|
|
|
|
|
<th>Amount</th>
|
|
|
|
|
|
<th>Paid By</th>
|
|
|
|
|
|
<th className="no-sort">Action</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
<td>19 Jan 2023</td>
|
|
|
|
|
|
<td>INV/SL0101</td>
|
|
|
|
|
|
<td>$1500</td>
|
|
|
|
|
|
<td>Cash</td>
|
|
|
|
|
|
<td className="action-table-data">
|
|
|
|
|
|
<div className="edit-delete-action">
|
|
|
|
|
|
<Link className="me-3 p-2" to="#">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="printer"
|
|
|
|
|
|
className="feather-rotate-ccw"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<Link
|
|
|
|
|
|
className="me-3 p-2"
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
data-bs-toggle="modal"
|
|
|
|
|
|
data-bs-target="#editpayment"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="edit"
|
|
|
|
|
|
className="feather-edit"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
<Link className="confirm-text p-2" to="#">
|
|
|
|
|
|
<i
|
|
|
|
|
|
data-feather="trash-2"
|
|
|
|
|
|
className="feather-trash-2"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Link>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* show payment Modal */}
|
|
|
|
|
|
{/* Create payment Modal */}
|
|
|
|
|
|
<div
|
|
|
|
|
|
className="modal fade"
|
|
|
|
|
|
id="createpayment"
|
|
|
|
|
|
tabIndex={-1}
|
|
|
|
|
|
aria-labelledby="createpayment"
|
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div className="modal-dialog modal-lg modal-dialog-centered">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="modal-header border-0 custom-modal-header">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4>Create Payments</h4>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="close"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
aria-label="Close"
|
2025-05-23 23:34:50 +07:00
|
|
|
|
>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="modal-body custom-modal-body">
|
|
|
|
|
|
<form>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-6">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label> Date</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<DatePicker
|
|
|
|
|
|
selected={selectedDate}
|
|
|
|
|
|
onChange={handleDateChange}
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
className="filterdatepicker"
|
|
|
|
|
|
dateFormat="dd-MM-yyyy"
|
|
|
|
|
|
placeholder="Choose Date"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-6 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Reference</label>
|
|
|
|
|
|
<input type="text" className="form-control" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Received Amount</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<i data-feather="dollar-sign" className="info-img" />
|
|
|
|
|
|
<input type="text" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Paying Amount</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<i data-feather="dollar-sign" className="info-img" />
|
|
|
|
|
|
<input type="text" />
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Payment type</label>
|
|
|
|
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
|
className="select"
|
|
|
|
|
|
options={paymenttype}
|
|
|
|
|
|
placeholder="Newest"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Description</label>
|
|
|
|
|
|
<textarea className="form-control" defaultValue={""} />
|
|
|
|
|
|
<p>Maximum 60 Characters</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="modal-footer-btn">
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="btn btn-cancel me-2"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
>
|
|
|
|
|
|
Cancel
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<Link to="#" className="btn btn-submit">
|
|
|
|
|
|
Submit
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* Create payment Modal */}
|
|
|
|
|
|
{/* edit payment Modal */}
|
|
|
|
|
|
<div
|
|
|
|
|
|
className="modal fade"
|
|
|
|
|
|
id="editpayment"
|
|
|
|
|
|
tabIndex={-1}
|
|
|
|
|
|
aria-labelledby="editpayment"
|
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div className="modal-dialog modal-lg modal-dialog-centered">
|
|
|
|
|
|
<div className="modal-content">
|
|
|
|
|
|
<div className="modal-header border-0 custom-modal-header">
|
|
|
|
|
|
<div className="page-title">
|
|
|
|
|
|
<h4>Edit Payments</h4>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="close"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
aria-label="Close"
|
2025-05-23 23:34:50 +07:00
|
|
|
|
>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="modal-body custom-modal-body">
|
|
|
|
|
|
<form>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-6">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>19 Jan 2023</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<i data-feather="calendar" className="info-img" />
|
|
|
|
|
|
<input
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
className="datetimepicker form-control"
|
|
|
|
|
|
placeholder="Select Date"
|
|
|
|
|
|
/>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</div>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
<div className="col-lg-6 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Reference</label>
|
|
|
|
|
|
<input type="text" defaultValue="INV/SL0101" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="row">
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Received Amount</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<i data-feather="dollar-sign" className="info-img" />
|
|
|
|
|
|
<input type="text" defaultValue={1500} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Paying Amount</label>
|
|
|
|
|
|
<div className="input-groupicon calender-input">
|
|
|
|
|
|
<i data-feather="dollar-sign" className="info-img" />
|
|
|
|
|
|
<input type="text" defaultValue={1500} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-4 col-sm-12 col-12">
|
|
|
|
|
|
<div className="input-blocks">
|
|
|
|
|
|
<label>Payment type</label>
|
|
|
|
|
|
<select className="select">
|
|
|
|
|
|
<option>Cash</option>
|
|
|
|
|
|
<option>Online</option>
|
|
|
|
|
|
<option>Inprogress</option>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="input-blocks summer-description-box transfer">
|
|
|
|
|
|
<label>Description</label>
|
|
|
|
|
|
<textarea className="form-control" defaultValue={""} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<p>Maximum 60 Characters</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div className="col-lg-12">
|
|
|
|
|
|
<div className="modal-footer-btn mb-3 me-3">
|
|
|
|
|
|
<button
|
|
|
|
|
|
type="button"
|
|
|
|
|
|
className="btn btn-cancel me-2"
|
|
|
|
|
|
data-bs-dismiss="modal"
|
|
|
|
|
|
>
|
|
|
|
|
|
Cancel
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<button type="submit" className="btn btn-submit">
|
|
|
|
|
|
Save Changes
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{/* edit payment Modal */}
|
|
|
|
|
|
<div className="customizer-links" id="setdata">
|
|
|
|
|
|
<ul className="sticky-sidebar">
|
|
|
|
|
|
<li className="sidebar-icons">
|
|
|
|
|
|
<Link
|
|
|
|
|
|
to="#"
|
|
|
|
|
|
className="navigation-add"
|
|
|
|
|
|
data-bs-toggle="tooltip"
|
|
|
|
|
|
data-bs-placement="left"
|
|
|
|
|
|
data-bs-original-title="Theme"
|
|
|
|
|
|
>
|
|
|
|
|
|
<i data-feather="settings" className="feather-five" />
|
|
|
|
|
|
</Link>
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
2025-05-23 23:34:50 +07:00
|
|
|
|
</div>
|
2025-08-02 02:33:10 +07:00
|
|
|
|
</>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
);
|
|
|
|
|
|
};
|
2025-05-23 23:34:50 +07:00
|
|
|
|
|
2025-08-02 02:33:10 +07:00
|
|
|
|
export default SalesList;
|