discount
This commit is contained in:
@@ -16,12 +16,14 @@ import DatePickerComponent from "@/components/DatePicker";
|
||||
import { useGetInvoiceDetail, useUpdateInvoice } from "./hooks/useInvoiceData";
|
||||
import { useMultiUpload } from "../uploader/hooks/useUploader";
|
||||
import moment from "moment-jalaali";
|
||||
import { getItemLineTotal } from "./utils/invoiceItem";
|
||||
|
||||
const createEmptyItem = (): CreatePreInvoiceItemType => ({
|
||||
productId: "",
|
||||
quantity: 1,
|
||||
unitPrice: 0,
|
||||
discount: 0,
|
||||
discountPercent: null,
|
||||
description: "",
|
||||
});
|
||||
|
||||
@@ -88,7 +90,9 @@ const UpdateInvoice: FC = () => {
|
||||
productId: i.productId,
|
||||
quantity: i.quantity,
|
||||
unitPrice: i.unitPrice,
|
||||
discount: i.discount || 0,
|
||||
...(i.discountPercent != null && i.discountPercent > 0
|
||||
? { discountPercent: i.discountPercent }
|
||||
: { discount: i.discount || 0 }),
|
||||
description: i.description || "",
|
||||
})),
|
||||
enableTax: values.enableTax,
|
||||
@@ -137,6 +141,8 @@ const UpdateInvoice: FC = () => {
|
||||
quantity: i.quantity ?? 1,
|
||||
unitPrice: i.unitPrice ?? 0,
|
||||
discount: i.discount ?? 0,
|
||||
discountPercent:
|
||||
i.discountPercent != null && i.discountPercent > 0 ? i.discountPercent : null,
|
||||
description: i.description ?? "",
|
||||
}))
|
||||
: [createEmptyItem()];
|
||||
@@ -149,11 +155,13 @@ const UpdateInvoice: FC = () => {
|
||||
const handleItemChange = (
|
||||
index: number,
|
||||
field: keyof CreatePreInvoiceItemType,
|
||||
value: string | number
|
||||
value: string | number | null
|
||||
) => {
|
||||
const next = [...items];
|
||||
next[index] = { ...next[index], [field]: value };
|
||||
setItems(next);
|
||||
setItems((prev) =>
|
||||
prev.map((item, itemIndex) =>
|
||||
itemIndex === index ? { ...item, [field]: value } : item
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
const addItem = (currentIndex: number) => {
|
||||
@@ -174,10 +182,7 @@ const UpdateInvoice: FC = () => {
|
||||
setItems(items.filter((_, i) => i !== index));
|
||||
};
|
||||
|
||||
const totalAmount = items.reduce(
|
||||
(sum, i) => sum + (i.quantity || 0) * (i.unitPrice || 0) - (i.discount || 0),
|
||||
0
|
||||
);
|
||||
const totalAmount = items.reduce((sum, i) => sum + getItemLineTotal(i), 0);
|
||||
|
||||
if (isLoadingInvoice || !invoice) {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user