Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/app/Models/ |
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $fillable = [
'user_id',
'order_number',
'sub_total',
'quantity',
'delivery_charge',
'status',
'total_amount',
'first_name',
'last_name',
'country',
'post_code',
'address1',
'phone',
'email',
'payment_method',
'payment_status',
'shipping_id',
'coupon',
'payment_method_id',
'documents',
];
protected $casts = [
'documents' => 'array',
];
public function cart_info()
{
return $this->hasMany(Cart::class, 'order_id', 'id');
}
public static function getOrder($id)
{
return Order::with('cart_info')->find($id);
}
public static function getAllOrders()
{
return Order::with('cart_info')->get();
}
public static function countActiveOrder()
{
$data = Order::count();
if ($data) {
return $data;
}
return 0;
}
public function cart()
{
return $this->hasMany(Cart::class);
}
public function shipping()
{
return $this->belongsTo(Shipping::class, 'shipping_id');
}
public function paymentMethod()
{
return $this->belongsTo(PaymentMethod::class, 'payment_method_id');
}
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
public function toCsv()
{
return [
'payment_status' => $this->payment_status,
'name' => trim("{$this->last_name} {$this->first_name}"),
'email' => $this->email,
'phone_no' => $this->phone,
'address' => $this->address1,
'order_no' => $this->order_number,
'order_date' => $this->created_at->toDateString(),
'quantity' => $this->quantity,
'sub_total' => $this->sub_total,
'payment_method' => '',
];
}
}