finish order
This commit is contained in:
@@ -95,6 +95,11 @@ const OrderDetails: FC = () => {
|
||||
const isOrderPaid = order.status === OrderStatus.PAID
|
||||
const isPreparing = order.status === OrderStatus.PREPARING
|
||||
const isCanceled = order.status === OrderStatus.CANCELED
|
||||
const canCompleteOrder = [
|
||||
OrderStatus.DELIVERED_TO_WAITER,
|
||||
OrderStatus.DELIVERED_TO_RECEPTIONIST,
|
||||
OrderStatus.SHIPPED,
|
||||
].includes(order.status as OrderStatus)
|
||||
// بررسی وضعیت پرداخت از payments array یا paymentStatus
|
||||
// ابتدا از paymentStatus استفاده میکنیم، اگر نبود از اولین payment در payments array استفاده میکنیم
|
||||
const paymentStatus = order.paymentStatus || order.payments?.[0]?.status
|
||||
@@ -185,6 +190,20 @@ const OrderDetails: FC = () => {
|
||||
setShowCancelModal(false)
|
||||
}
|
||||
|
||||
const handleCompleteOrder = () => {
|
||||
changeOrderStatus(
|
||||
{
|
||||
orderId: order.id,
|
||||
status: OrderStatus.COMPLETED,
|
||||
},
|
||||
{
|
||||
onError: (error) => {
|
||||
toast.error(extractErrorMessage(error))
|
||||
},
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
const handleRefund = (text?: string) => {
|
||||
if (!text) return
|
||||
refundPayment({
|
||||
@@ -248,11 +267,13 @@ const OrderDetails: FC = () => {
|
||||
isDineInOrCarDelivery={isDineInOrCarDelivery}
|
||||
isCustomerPickup={isCustomerPickup}
|
||||
isCanceled={isCanceled}
|
||||
canCompleteOrder={canCompleteOrder}
|
||||
isChangingStatus={isChangingStatus}
|
||||
onSendToKitchen={handleSendToKitchen}
|
||||
onDeliverToCourier={handleDeliverToCourier}
|
||||
onDeliverToWaiter={handleDeliverToWaiter}
|
||||
onDeliverToReceptionist={handleDeliverToReceptionist}
|
||||
onCompleteOrder={handleCompleteOrder}
|
||||
onCancelOrder={() => setShowCancelModal(true)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -10,11 +10,13 @@ interface OrderActionsProps {
|
||||
isDineInOrCarDelivery: boolean
|
||||
isCustomerPickup: boolean
|
||||
isCanceled: boolean
|
||||
canCompleteOrder: boolean
|
||||
isChangingStatus: boolean
|
||||
onSendToKitchen: () => void
|
||||
onDeliverToCourier: () => void
|
||||
onDeliverToWaiter: () => void
|
||||
onDeliverToReceptionist: () => void
|
||||
onCompleteOrder: () => void
|
||||
onCancelOrder: () => void
|
||||
}
|
||||
|
||||
@@ -27,11 +29,13 @@ const OrderActions: FC<OrderActionsProps> = ({
|
||||
isDineInOrCarDelivery,
|
||||
isCustomerPickup,
|
||||
isCanceled,
|
||||
canCompleteOrder,
|
||||
isChangingStatus,
|
||||
onSendToKitchen,
|
||||
onDeliverToCourier,
|
||||
onDeliverToWaiter,
|
||||
onDeliverToReceptionist,
|
||||
onCompleteOrder,
|
||||
onCancelOrder
|
||||
}) => {
|
||||
const [loadingAction, setLoadingAction] = useState<string | null>(null)
|
||||
@@ -67,6 +71,11 @@ const OrderActions: FC<OrderActionsProps> = ({
|
||||
onCancelOrder()
|
||||
}
|
||||
|
||||
const handleCompleteOrder = () => {
|
||||
setLoadingAction('completeOrder')
|
||||
onCompleteOrder()
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='mt-6 flex flex-col gap-3'>
|
||||
<Button
|
||||
@@ -111,6 +120,15 @@ const OrderActions: FC<OrderActionsProps> = ({
|
||||
/>
|
||||
)}
|
||||
|
||||
{!isCanceled && canCompleteOrder && (
|
||||
<Button
|
||||
label='اتمام سفارش'
|
||||
onClick={handleCompleteOrder}
|
||||
isloading={isChangingStatus && loadingAction === 'completeOrder'}
|
||||
className='bg-green-600 hover:bg-green-700'
|
||||
/>
|
||||
)}
|
||||
|
||||
{!isCanceled && showCancelButton && (
|
||||
<Button
|
||||
label='لغو سفارش'
|
||||
|
||||
Reference in New Issue
Block a user