KUJUNTI.ID MINISH3LL
Path : /var/www/html/jewelry-pos/app/Models/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/jewelry-pos/app/Models/BuildStockProduct.php


<?php

namespace App\Models;

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

class BuildStockProduct extends Model
{
    use HasFactory , SoftDeletes;
    protected $fillable = [
        'product_id','part_number' , 'name' , 'cost' , 'price' , 'description' , 'image' , 'is_active' , 'weight' , 'grn' ,
        'user_id' , 'product_category_id' , 'wages' , 'diamond_size' , 'qty', 'for_sale' , 'original_wages','weight_description','supplier_rate','gia_number','supplier_id',
        'fixed_price','build_stock_date_id' , 'wages_in_weight' , 'original_wages_in_weight' , 'old_code' , 'original_invoice','purity_upgrade_to','selling_purity','purity_level',

    ];

    public function user(){
        return $this->belongsTo(User::class);
    }

    public function product(){
        return $this->belongsTo(Product::class);
    }

    public function productCategory()
    {
        return $this->belongsTo(ProductCategory::class);
    }
    public function sales()
    {
        return $this->hasMany(Sale::class);
    }
    public function qtyHistory()
    {
        return $this->hasMany(QtyHistory::class);
    }
    public function buildStockProductAttributes(){
        return $this->hasMany(BuildStockProductAttribute::class);
    }

    public function supplier(){
        return $this->belongsTo(Supplier::class);
    }
     public function buildStockDate(){
        return $this->belongsTo(BuildStockDate::class);
    }


    public function goldWeight(){
        if(isset($this->productCategory->name)) {
            if ($this->productCategory->purity_level) {
//                dd($this->product-categories->purity_level * $this->weight , $this->weight);
                return $this->weight*$this->productCategory->purity_level;
            }
            return $this->weight;
        }
        return 0;
    }

    public function wagesInWeight()
    {
        if($this->productCategory->fixed_price||$this->fixed_price){
            return $this->wages;
        }else{
            if($this->supplier_rate==0){
                return $this->wages;
            }
            $wages_in_weight = $this->wages / ($this->supplier_rate / 1000);
//            dd($wages_in_weight , $this->wages , $this->supplier_rate , $this);
            return $wages_in_weight;
        }
//        if($this->productCategory->parent?->name??'' == 'ផ្លាកទីន' || $this->productCategory->parent?->name??'' == 'Platinum' || $this->productCategory->parent?->name??'' == 'แพลตตินัม') {
//            $wages_in_weight = $this->wages / ($this->supplier_rate / 1000);
//            return $wages_in_weight;
//        }
    }

    public function originalWagesInWeight()
    {
        if ($this->productCategory->fixed_price||$this->fixed_price){
            return $this->original_wages;
        }else{
            if($this->supplier_rate==0){
                return $this->original_wages;
            }
            $wages_in_weight = $this->original_wages / ($this->supplier_rate / 1000);
            return $wages_in_weight;
        }
//        if($this->productCategory->parent?->name??'' == 'ផ្លាកទីន' || $this->productCategory->parent?->name??'' == 'Platinum' || $this->productCategory->parent?->name??'' == 'แพลตตินัม') {
//            $wages_in_weight = $this->original_wages / ($this->supplier_rate / 1000);
//            return $wages_in_weight;
//        }
    }

    public function sellingPrice(){
        if(isset($this->productCategory->name)){
            if($this->productCategory->fixed_price==true || $this->fixed_price==true){
                return $this->price;
            }
            else{
                // if($this->product-categories->parent?->name=='Platinum'|| $this->product-categories->parent?->name=='ផ្លាកទីន'||$this->product-categories->parent?->name=='แพลตตินัม'){
                //     $price = ($this->goldWeight()*$this->product-categories->price());
                //     dd($this->goldWeight(), $this->product-categories->price(),$price);
                // }else{
                $price = ($this->weight*$this->productCategory->sellingPrice());
                // }

                $productAttributes = $this->buildStockProductAttributes;
                foreach($productAttributes  as $productAttribute){
                    $price = $price+ $productAttribute->price;
                }
//                dd($this->weight , $this->product-categories->sellingPrice());
//                dd($price , $this->wages , $productAttributes);
                return $price+$this->wages;
            }
        }
        return null;
    }
    public function sellingCost($weight=null, $price=null){
        if(isset($this->productCategory->name)){
            if($this->productCategory->fixed_price==true || $this->fixed_price==true||($this->productCategory->name=='មាសថៃ'||$this->productCategory->name=='Thai Gold'||$this->productCategory->name=='ทองไทย')){
                if($this->fixed_price){
                    return $this->cost;
                }
                return $this->cost;
            }
            // else if($this->product-categories->name == 'មាស' || $this->product-categories->name == 'Gold' || $this->product-categories->name == 'ทอง'){
            //     $cost = $this->cost;
            //     $productAttributes = $this->productAttributes;
            //     foreach($productAttributes  as $productAttribute){
            //         $cost = $cost+ $productAttribute->cost;
            //     }
            //     return $cost;
            // }
            else{
                $cost = ($weight??$this->weight)*$this->productCategory->price($price);
                $productAttributes = $this->buildStockProductAttributes;
                foreach($productAttributes  as $productAttribute){
                    $cost = $cost+ $productAttribute->cost;
                }
//                return $cost+$this->original_wages;
                return $cost;
            }
        }
        return null;
    }

    public function cost($weight = null){
        if($weight!=null){
            $this->weight = $weight;
        }
        if($this->for_sale == 0){
            $cost = $this->weight * ($this->supplier_rate / 1000);
            return $cost;
        }
        return $this->cost;
        // if($this->productCategory->fixed_price==true || $this->fixed_price==true||($this->productCategory->name=='មាសថៃ'||$this->productCategory->name=='Thai Gold'||$this->productCategory->name=='ทองไทย')){
        //         return $this->cost;
        // }

        // return $this->cost + $this->productAttributes()->sum('cost');
    }
}

© KUJUNTI.ID