StoreOrder.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use App\Models\BaseModel;
  6. class StoreOrder extends BaseModel
  7. {
  8. use HasFactory;
  9. protected $table = 'store_order';
  10. public function user(){
  11. return $this->hasOne(User::class, 'id', 'user_id');
  12. }
  13. public function client(){
  14. return $this->hasOne(User::class, 'id', 'user_id');
  15. }
  16. public function paymentMethod(){
  17. return $this->hasOne(PaymentMethod::class, 'id', 'payment_method_id');
  18. }
  19. public function financialTransactions(){
  20. return $this->hasMany(FinancialTransaction::class, 'order_id', 'id');
  21. }
  22. public function finalFinancialTransaction(){
  23. return FinancialTransaction::where('order_id', $this->id)->orderBy('created_at', 'DESC')->first();
  24. }
  25. public function orderNumber() {
  26. if ($this->iid) return $this->iid;
  27. return getFirstSectionUID($this->uid);
  28. }
  29. public function total(){
  30. $detail = json_decode($this->detail_json);
  31. $selectedOptions = json_decode(@$detail->selected_options);
  32. if(!$selectedOptions) return 0;
  33. return floatval($selectedOptions->order_total);
  34. }
  35. public function selectedOptions(){
  36. $detail = json_decode($this->detail_json);
  37. $selectedOptions = json_decode(@$detail->selected_options);
  38. return $selectedOptions;
  39. }
  40. public function createdByUser(){
  41. return $this->hasOne(User::class, 'id', 'created_by_user_id');
  42. }
  43. }