update costs
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-07-14 10:07:15 +03:30
parent 0b3b7218b9
commit 435fe3e947
7 changed files with 195 additions and 2 deletions
+33 -1
View File
@@ -3,7 +3,8 @@ import {
useGetOrderById,
useVerifyPayment,
useChangeOrderStatus,
useRefundPayment
useRefundPayment,
useUpdateOrderFees,
} from './hooks/useOrderData'
import { useParams } from 'react-router-dom'
import { formatFaNumber } from '@/helpers/func'
@@ -16,9 +17,11 @@ import OrderItemsDetails from './components/OrderItemsDetails'
import PaymentInfo from './components/PaymentInfo'
import PaymentVerificationBox from './components/PaymentVerificationBox'
import OrderActions from './components/OrderActions'
import UpdateOrderFeesModal from './components/UpdateOrderFeesModal'
import { toast } from 'react-toastify'
import { extractErrorMessage } from '@/config/func'
import { printOrderReceipt } from './print/orderReceiptPrint'
import type { UpdateOrderFeesType } from './types/Types'
const OrderDetails: FC = () => {
const { id } = useParams()
@@ -26,9 +29,11 @@ const OrderDetails: FC = () => {
const { mutate: verifyPayment, isPending: isVerifyingPayment } = useVerifyPayment()
const { mutate: changeOrderStatus, isPending: isChangingStatus } = useChangeOrderStatus()
const { mutate: refundPayment, isPending: isRefunding } = useRefundPayment()
const { mutate: updateOrderFees, isPending: isUpdatingFees } = useUpdateOrderFees()
const [showCancelModal, setShowCancelModal] = useState(false)
const [showRefundModal, setShowRefundModal] = useState(false)
const [showEditFeesModal, setShowEditFeesModal] = useState(false)
const order = orderData?.data
@@ -95,6 +100,8 @@ const OrderDetails: FC = () => {
const isOrderPaid = order.status === OrderStatus.PAID
const isPreparing = order.status === OrderStatus.PREPARING
const isCanceled = order.status === OrderStatus.CANCELED
const isCompleted = order.status === OrderStatus.COMPLETED
const canEditFees = !isCanceled && !isCompleted
const canCompleteOrder = [
OrderStatus.DELIVERED_TO_WAITER,
OrderStatus.DELIVERED_TO_RECEPTIONIST,
@@ -225,6 +232,21 @@ const OrderDetails: FC = () => {
printOrderReceipt(order)
}
const handleUpdateOrderFees = (params: UpdateOrderFeesType) => {
updateOrderFees(
{ orderId: order.id, params },
{
onSuccess: () => {
toast.success('هزینه‌های سفارش به‌روزرسانی شد')
setShowEditFeesModal(false)
},
onError: (error) => {
toast.error(extractErrorMessage(error))
},
}
)
}
return (
<div className='mt-5'>
<div className='flex justify-between items-center'>
@@ -267,6 +289,7 @@ const OrderDetails: FC = () => {
onPrint={handlePrintOrder}
showSendToKitchenButton={showSendToKitchenButton}
showCancelButton={showCancelButton}
showEditFeesButton={canEditFees}
isPreparing={isPreparing}
isCourierDelivery={isCourierDelivery}
isDineInOrCarDelivery={isDineInOrCarDelivery}
@@ -280,10 +303,19 @@ const OrderDetails: FC = () => {
onDeliverToReceptionist={handleDeliverToReceptionist}
onCompleteOrder={handleCompleteOrder}
onCancelOrder={() => setShowCancelModal(true)}
onEditFees={() => setShowEditFeesModal(true)}
/>
</div>
</div>
<UpdateOrderFeesModal
isOpen={showEditFeesModal}
onClose={() => setShowEditFeesModal(false)}
order={order}
isLoading={isUpdatingFees}
onSubmit={handleUpdateOrderFees}
/>
{/* مدال کنسل سفارش */}
<ModalConfrim
isOpen={showCancelModal}