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