@@ -11,11 +11,6 @@ import type { FilterValues } from '@/components/Filters'
|
|||||||
import { useGetInvoice } from './hooks/useInvoiceData'
|
import { useGetInvoice } from './hooks/useInvoiceData'
|
||||||
import type { InvoiceType } from './types/Types'
|
import type { InvoiceType } from './types/Types'
|
||||||
|
|
||||||
const isInvoiceConfirmed = (item: InvoiceType) => {
|
|
||||||
const items = item.items ?? []
|
|
||||||
return items.length > 0 && items.every((i) => !!i.confirmedAt)
|
|
||||||
}
|
|
||||||
|
|
||||||
const ProformaInvoice: FC = () => {
|
const ProformaInvoice: FC = () => {
|
||||||
const [activeTab, setActiveTab] = useState<ProformaInvoiceStatusEnum>(ProformaInvoiceStatusEnum.ALL)
|
const [activeTab, setActiveTab] = useState<ProformaInvoiceStatusEnum>(ProformaInvoiceStatusEnum.ALL)
|
||||||
const [page, setPage] = useState(1)
|
const [page, setPage] = useState(1)
|
||||||
@@ -29,10 +24,10 @@ const ProformaInvoice: FC = () => {
|
|||||||
const list = data?.data ?? []
|
const list = data?.data ?? []
|
||||||
|
|
||||||
if (activeTab === ProformaInvoiceStatusEnum.CONFIRMED) {
|
if (activeTab === ProformaInvoiceStatusEnum.CONFIRMED) {
|
||||||
return list.filter((o) => isInvoiceConfirmed(o))
|
return list.filter((o) => o.confirmStatus === 'confirmed')
|
||||||
}
|
}
|
||||||
if (activeTab === ProformaInvoiceStatusEnum.NOT_CONFIRMED) {
|
if (activeTab === ProformaInvoiceStatusEnum.NOT_CONFIRMED) {
|
||||||
return list.filter((o) => !isInvoiceConfirmed(o))
|
return list.filter((o) => o.confirmStatus === 'pending')
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = list
|
let result = list
|
||||||
@@ -168,7 +163,7 @@ const ProformaInvoice: FC = () => {
|
|||||||
key: 'confirmStatus',
|
key: 'confirmStatus',
|
||||||
title: 'وضعیت تایید',
|
title: 'وضعیت تایید',
|
||||||
render: (item) => {
|
render: (item) => {
|
||||||
const confirmed = isInvoiceConfirmed(item)
|
const confirmed = item.confirmStatus === 'confirmed'
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
className={`inline-flex h-6 items-center rounded-full px-2.5 text-xs ${confirmed ? 'bg-green-100 text-green-800' : 'bg-amber-100 text-amber-800'
|
className={`inline-flex h-6 items-center rounded-full px-2.5 text-xs ${confirmed ? 'bg-green-100 text-green-800' : 'bg-amber-100 text-amber-800'
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ export type InvoiceType = {
|
|||||||
total: number;
|
total: number;
|
||||||
paidAmount: number;
|
paidAmount: number;
|
||||||
balance: number;
|
balance: number;
|
||||||
|
confirmStatus: 'pending' | 'confirmed';
|
||||||
enableTax: boolean;
|
enableTax: boolean;
|
||||||
approvalDeadline: string;
|
approvalDeadline: string;
|
||||||
attachments: InvoiceAttachmentType[];
|
attachments: InvoiceAttachmentType[];
|
||||||
|
|||||||
Reference in New Issue
Block a user