%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/management/app/Models/
Upload File :
Create Path :
Current File : /var/www/html/management/app/Models/Order.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
    const PENDING = 'PENDING';
    const COMPLETED = 'COMPLETED';
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'code',
        'status',
        'user_id',
        'computer_id',
    ];

    public function items()
    {
        return $this->hasMany(Item::class);
    }

    public function invoices()
    {
        return $this->hasMany(Invoice::class);
    }

    public function gifts()
    {
        return $this->hasMany(Gift::class);
    }

    /**
     * @return \Illuminate\Support\Collection
     */
    public function getOtherProducts()
    {
        $items = $this->items()->where(function ($q) {
            $q->whereHas('usage', function ($q) {
                $q->whereNotNull('end_at');
            })->orWhereDoesntHave('usage');
        })->get();

        $ret = collect();
        /** @var Item $item */
        foreach ($items as $item) {
            $usageStart = null;
            $usageEnd = null;
            if ($usage = $item->usage) {
                $usageStart = $usage->start_at;
                $usageEnd = $usage->end_at;
            }

            $ret->push([
                'id' => $item->id,
                'oid' => $item->order_id,
                'quantity' => $item->quantity,
                'price'    => $item->price,
                'name'     => $item->product->name,
                'start'    => $usageStart,
                'end'      => $usageEnd,
            ]);
        }
        return $ret;

    }

}

Zerion Mini Shell 1.0