Compare commits

..

No commits in common. "195af8317a9cb5861315bfca313a057de3654d56" and "3d7a8a1c94ebb0a9317d47a505d5ceeeacf80ab1" have entirely different histories.

6 changed files with 16 additions and 53 deletions

View File

@ -20,8 +20,7 @@ const ExpenseFilterPanel = ({ onApply, handleGroupBy }) => {
const selectedProjectId = useSelector((store) => store.localVariables.projectId); const selectedProjectId = useSelector((store) => store.localVariables.projectId);
const { data, isLoading,isError,error,isFetching , isFetched} = useExpenseFilter(); const { data, isLoading,isError,error,isFetching , isFetched} = useExpenseFilter();
const groupByList = useMemo(() => { const groupByList = useMemo(() => [
return [
{ id: "transactionDate", name: "Transaction Date" }, { id: "transactionDate", name: "Transaction Date" },
{ id: "status", name: "Status" }, { id: "status", name: "Status" },
{ id: "submittedBy", name: "Submitted By" }, { id: "submittedBy", name: "Submitted By" },
@ -29,9 +28,7 @@ const groupByList = useMemo(() => {
{ id: "paymentMode", name: "Payment Mode" }, { id: "paymentMode", name: "Payment Mode" },
{ id: "expensesType", name: "Expense Type" }, { id: "expensesType", name: "Expense Type" },
{id: "createdAt",name:"Submitted Date"} {id: "createdAt",name:"Submitted Date"}
].sort((a, b) => a.name.localeCompare(b.name)); ], []);
}, []);
const [selectedGroup, setSelectedGroup] = useState(groupByList[0]); const [selectedGroup, setSelectedGroup] = useState(groupByList[0]);
const [resetKey, setResetKey] = useState(0); const [resetKey, setResetKey] = useState(0);

View File

@ -25,7 +25,6 @@ export const ExpenseSchema = (expenseTypes) => {
description: z.string().min(1, { message: "Description is required" }), description: z.string().min(1, { message: "Description is required" }),
location: z.string().min(1, { message: "Location is required" }), location: z.string().min(1, { message: "Location is required" }),
supplerName: z.string().min(1, { message: "Supplier name is required" }), supplerName: z.string().min(1, { message: "Supplier name is required" }),
gstNumber :z.string().optional(),
amount: z.coerce amount: z.coerce
.number({ .number({
invalid_type_error: "Amount is required and must be a number", invalid_type_error: "Amount is required and must be a number",
@ -92,7 +91,6 @@ export const defaultExpense = {
supplerName: "", supplerName: "",
amount: "", amount: "",
noOfPersons: "", noOfPersons: "",
gstNumber:"",
billAttachments: [], billAttachments: [],
}; };

View File

@ -20,7 +20,7 @@ const ExpenseStatusLogs = ({ data }) => {
{logsToShow.map((log, index) => ( {logsToShow.map((log, index) => (
<div <div
key={log.id} key={log.id}
className="col-12 d-flex align-items-start mb-1" className="col-12 d-flex align-items-start mb-2"
> >
<Avatar <Avatar
size="xs" size="xs"

View File

@ -156,7 +156,6 @@ const ManageExpense = ({ closeModal, expenseToEdit = null }) => {
supplerName: data.supplerName || "", supplerName: data.supplerName || "",
amount: data.amount || "", amount: data.amount || "",
noOfPersons: data.noOfPersons || "", noOfPersons: data.noOfPersons || "",
gstNumber:data.gstNumber || "",
billAttachments: data.documents billAttachments: data.documents
? data.documents.map((doc) => ({ ? data.documents.map((doc) => ({
fileName: doc.fileName, fileName: doc.fileName,
@ -410,27 +409,10 @@ const ManageExpense = ({ closeModal, expenseToEdit = null }) => {
</small> </small>
)} )}
</div> </div>
<div className="col-md-6">
<label htmlFor="statusId" className="form-label ">
GST Number
</label>
<input
type="text"
id="gstNumber"
className="form-control form-control-sm"
min="1"
{...register("gstNumber")}
/>
{errors.gstNumber && (
<small className="danger-text">
{errors.gstNumber.message}
</small>
)}
</div>
{ExpenseType?.noOfPersonsRequired && ( {ExpenseType?.noOfPersonsRequired && (
<div className="col-md-6 mt-2"> <div className="col-md-6">
<label className="form-label ">No. of Persons</label> <label>No. of Persons</label>
<input <input
type="number" type="number"
id="noOfPersons" id="noOfPersons"
@ -449,7 +431,7 @@ const ManageExpense = ({ closeModal, expenseToEdit = null }) => {
<div className="row my-2"> <div className="row my-2">
<div className="col-md-12"> <div className="col-md-12">
<label htmlFor="description" className="form-label ">Description</label> <label htmlFor="description">Description</label>
<textarea <textarea
id="description" id="description"
className="form-control form-control-sm" className="form-control form-control-sm"

View File

@ -183,15 +183,14 @@ const ViewExpense = ({ ExpenseId }) => {
className="form-label me-2 mb-0 fw-semibold text-start" className="form-label me-2 mb-0 fw-semibold text-start"
style={{ minWidth: "130px" }} style={{ minWidth: "130px" }}
> >
GST Number : Paid By :
</label> </label>
<div className="text-muted"> <div className="text-muted">
{data?.gstNumber} {data?.paidBy?.firstName} {data?.paidBy?.lastName}
</div> </div>
</div> </div>
</div> </div>
{/* Row 4 */} {/* Row 4 */}
<div className="col-md-6 mb-3"> <div className="col-md-6 mb-3">
<div className="d-flex"> <div className="d-flex">
@ -273,19 +272,6 @@ const ViewExpense = ({ ExpenseId }) => {
</div> </div>
</div> </div>
)} )}
<div className="col-md-6 mb-3">
<div className="d-flex">
<label
className="form-label me-2 mb-0 fw-semibold text-start"
style={{ minWidth: "130px" }}
>
Paid By :
</label>
<div className="text-muted">
{data?.paidBy?.firstName} {data?.paidBy?.lastName}
</div>
</div>
</div>
</div> </div>
<div className="col-12 text-start"> <div className="col-12 text-start">
@ -363,7 +349,7 @@ const ViewExpense = ({ ExpenseId }) => {
)} )}
</div> </div>
)} )}
<hr className="divider my-1 divider-primary" /> <hr className="divider my-1 py-3 divider-primary" />
{Array.isArray(data?.nextStatus) && data.nextStatus.length > 0 && ( {Array.isArray(data?.nextStatus) && data.nextStatus.length > 0 && (
<> <>

View File

@ -295,12 +295,12 @@ const EmployeeList = () => {
{ViewTeamMember ? ( {ViewTeamMember ? (
// <div className="row"> // <div className="row">
<div className="card px-0 px-sm-4"> <div className="card p-1">
<div className="card-datatable table-responsive pt-2"> <div className="card-datatable table-responsive pt-2">
<div <div
id="DataTables_Table_0_wrapper" id="DataTables_Table_0_wrapper"
className="dataTables_wrapper no-footer px-2 " className="dataTables_wrapper dt-bootstrap5 no-footer"
style={{ width: "98%" }}
> >
<div className="d-flex flex-wrap align-items-center justify-content-between gap-3 mb-3"> <div className="d-flex flex-wrap align-items-center justify-content-between gap-3 mb-3">
{/* Switches: All Employees + Inactive */} {/* Switches: All Employees + Inactive */}
@ -581,7 +581,7 @@ const EmployeeList = () => {
<td className="text-start d-none d-sm-table-cell"> <td className="text-start d-none d-sm-table-cell">
{item.email ? ( {item.email ? (
<span className="text-truncate"> <span className="text-truncate">
<i className="bx bxs-envelope text-primary text-truncate me-2"></i> <i className="bx bxs-envelope text-primary me-2"></i>
{item.email} {item.email}
</span> </span>
) : ( ) : (