File: /home/armgroup/libs/app/Http/Livewire/Frontend/Order/Delivered.php
<?php
namespace App\Http\Livewire\Frontend\Order;
use App\Enums\OrderStatus;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Order;
use Livewire\Component;
class Delivered extends Component
{
use ConvertEmptyStringsToNull, General;
public $delivery_code;
public $status = false;
public Order $order;
public function render()
{
return view('livewire.frontend.order.delivered');
}
public function check()
{
$this->status = false;
if ($this->canDeliver()) {
$this->order->update(['status' => OrderStatus::COMPLETED]);
$this->status = 'تحویل سفارش با موفقیت تایید شد';
$this->delivery_code = null;
} else {
$this->addError('not_found', 'سفارشی با اطلاعات وارد شده وجود ندارد و یا در وضعیت تحویل نیست');
}
}
private function canDeliver(): bool
{
return $this->delivery_code && $this->order->delivery_date && $this->order->delivery_code == $this->delivery_code && $this->order->status->is(OrderStatus::SENT);
}
}