Path : /var/www/html/jewelry-pos/app/Models/ |
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/Product.php |
<?php namespace App\Models; use http\Env\Request; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Factories\HasFactory; use PhpParser\Node\Expr\FuncCall; class Product extends Model { use HasFactory , SoftDeletes; protected $fillable = [ 'part_number' , 'name' , 'cost' , 'price' , 'description' , 'image' , 'is_active' , 'weight' , 'user_id' , 'product_category_id' , 'wages' , 'diamond_size' , 'qty', 'for_sale' , 'original_wages','weight_description', 'supplier_rate','gia_number','supplier_id' , 'fixed_price' , 'wages_in_weight' , 'original_wages_in_weight' , 'purity_upgrade_to' , 'selling_purity' , 'purity_level', 'old_code' , 'original_invoice' ]; public function user(){ return $this->belongsTo(User::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 productAttributes(){ return $this->hasMany(ProductAttribute::class); } public function supplier(){ return $this->belongsTo(Supplier::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 upgradeGoldWeight(){ if(isset($this->productCategory->name)) { $gold=ProductCategory::whereIn('name',['មាស','Gold','ทอง'])->first(); if ($this->productCategory->purity_level != 1) { return $this->weight*$this->selling_purity; } if($this->productCategory->name == $gold->name){ return $this->weight; } return $this->weight; } return 0; } public function selling_wagesInWeight() { if($this->wages_in_weight != 0){ if($this->productCategory?->fixed_price||$this->fixed_price){ return $this->wages; }else{ $gold=ProductCategory::whereIn('name',['មាស','Gold','ทอง'])->first(); $wages_in_weight = $this->wages_in_weight * ($gold->selling_to_usd_exchange_rate); if($this->purity_level == 0 || $this->purity_level == 1){ $wages_in_weight = $this->wages_in_weight * ($this->productCategory->sellingPrice()); } // dd($wages_in_weight , $this->wages , $this->supplier_rate , $this); return $wages_in_weight; } }else{ return $this->wages; } // 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 cost_wagesInWeight($price = null) { if($this->original_wages_in_weight != 0){ if($this->productCategory?->fixed_price||$this->fixed_price){ return $this->original_wages; }else{ $rate1 = $this->supplier_rate/1000??$this->productCategory->price($price,$this->purity_level); $wages_in_weight = $this->original_wages_in_weight * ($rate1); if($this->purity_level == 0 || $this->purity_level == 1){ $rate2 = $this->supplier_rate/1000??$this->productCategory->price(); $wages_in_weight = $this->original_wages_in_weight * ($rate2); } // dd($wages_in_weight , $this->wages , $this->supplier_rate , $this); return $wages_in_weight; } }else{ return $this->original_wages; } // 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 productCategoryNameSelling() { $purity = $this->selling_purity * 10; $productMainCategory = $this->productCategory->parent?->name . 'ទឹក ' .$purity; return $productMainCategory; } 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->productCategory->sellingPrice($this->purity_level)); 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 upgradeSellingPrice() { if(isset($this->productCategory->name)){ if($this->productCategory->fixed_price==true || $this->fixed_price==true){ return $this->price; } else{ $price = ($this->weight*($this->productCategory->upgradeSellingRate($this->selling_purity))); $productAttributes = $this->productAttributes; foreach($productAttributes as $productAttribute){ $price = $price+ $productAttribute->price; } return $price; } } } public function sellingPrice($weight=null){ if($weight!=null){ $this->weight = $weight; } 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{ $purity = $this->selling_purity; if($purity == 0 || $purity == null){ $purity = $this->purity_level; } $price = ($this->weight*$this->productCategory->sellingPrice($purity)); // } $productAttributes = $this->productAttributes; foreach($productAttributes as $productAttribute){ $price = $price+ $productAttribute->price; } if($this->productCategory->name == 'ផ្លាកទីន វៀតណាម'){ return $price; } // dd($price , $this->weight , $this->productCategory->sellingPrice($this->purity_level) , $this->purity_level); // dd($this->weight , $this->product-categories->sellingPrice()); // dd($price , $this->wages , $productAttributes); return $price+$this->selling_wagesInWeight(); } } 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=='ทองไทย')){ 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,$this->purity_level??$this->selling_purity); // dd($cost ,$weight , $this->weight , $this->productCategory->price($price , $this->purity_level)); $productAttributes = $this->productAttributes; foreach($productAttributes as $productAttribute){ $cost = $cost+ $productAttribute->cost; } // return $cost+$this->original_wages; if($this->purity_upgrade_to) { return $this->cost+$this->original_wages??$this->cost_wagesInWeight(); } return $cost +($this->original_wages?$this->original_wages:$this->cost_wagesInWeight()) ; } } return null; } // public function costAttributes(){ // $cost = 0; // $productAttributes = $this->productAttributes; // foreach($productAttributes as $productAttribute){ // $cost = $cost+ $productAttribute->cost; // } // return $cost; // } public function tempQty(){ return $this->qty + ($this->sales->sum('qty')); } public function cost($weight = null){ if($weight!=null){ $this->weight = $weight; } if($this->for_sale == 0){ if($this->part_number == ''){ $cost = $this->weight * ($this->productCategory->sellingPrice()); return $cost; } $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'); } }