order item iptal
This commit is contained in:
parent
a07cc8c38a
commit
607c5ffbe3
|
|
@ -23,6 +23,12 @@ class Orders extends OrderController
|
|||
}
|
||||
|
||||
public function cancelOrderItem(OrderItemRepository $repository,$item_id){
|
||||
if($repository->cancel($item_id)){
|
||||
session()->flash('success', trans('admin::app.response.cancel-success', ['name' => 'Order Item']));
|
||||
} else {
|
||||
session()->flash('error', trans('admin::app.response.cancel-error', ['name' => 'Order Item']));
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
|
@ -353,9 +353,11 @@
|
|||
|
||||
<td>{{ core()->formatPrice($item->total + $item->tax_amount - $item->discount_amount,$order->order_currency_code) }}</td>
|
||||
<td class="action">
|
||||
@if($item->canCancel())
|
||||
<a href="{{ route('admin.sales.orders.cancel_item', $item->id) }}">
|
||||
<i class="icon trash-icon"></i>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
|
|
|||
|
|
@ -6,6 +6,41 @@ use Webkul\Sales\Repositories\OrderItemRepository as WOrderItemRepo;
|
|||
class OrderItemRepository extends WOrderItemRepo
|
||||
{
|
||||
public function cancel($itemId){
|
||||
$item = $this->find($itemId);
|
||||
|
||||
if(! $item || ! $item->qty_to_cancel) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$orderItems = [];
|
||||
|
||||
if ($item->getTypeInstance()->isComposite()) {
|
||||
foreach ($item->children as $child) {
|
||||
$orderItems[] = $child;
|
||||
}
|
||||
} else {
|
||||
$orderItems[] = $item;
|
||||
}
|
||||
|
||||
foreach ($orderItems as $orderItem) {
|
||||
if ($orderItem->product) {
|
||||
$this->orderItemRepository->returnQtyToProductInventory($orderItem);
|
||||
}
|
||||
|
||||
if ($orderItem->qty_ordered) {
|
||||
$orderItem->qty_canceled += $orderItem->qty_to_cancel;
|
||||
$orderItem->save();
|
||||
|
||||
if ($orderItem->parent && $orderItem->parent->qty_ordered) {
|
||||
$orderItem->parent->qty_canceled += $orderItem->parent->qty_to_cancel;
|
||||
$orderItem->parent->save();
|
||||
}
|
||||
} else {
|
||||
$orderItem->parent->qty_canceled += $orderItem->parent->qty_to_cancel;
|
||||
$orderItem->parent->save();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue