'int', 'user_id' => 'int', 'net_price' => 'float', 'net_discount' => 'float', 'net_amount' => 'float', 'from_payment_credit' => 'float', 'm_sponsor_id' => 'int', 'net_partner_commission' => 'float', 'order_paid' => 'bool', //ist die Bestellung bezahlt? 'out_paid' => 'bool', //ist die Provision Marge ausgezahlt? 'cancellation' => 'bool', //ist die Stornierung beantragt? 'status' => 'int', //status der Bestellung 'margin_pending_to' => 'datetime', 'margin_paid' => 'bool', 'partner_commission_pending_to' => 'datetime', 'partner_commission_paid' => 'bool', 'user_credit_id' => 'int', ]; protected $dates = [ 'from' ]; protected $fillable = [ 'shopping_order_id', 'user_id', 'net_price', 'net_discount', 'net_amount', 'from_payment_credit', 'm_sponsor_id', 'net_partner_commission', 'from', 'order_paid', 'out_paid', 'cancellation', 'status', 'margin_pending_to', 'margin_paid', 'partner_commission_pending_to', 'partner_commission_paid', 'user_credit_id', 'content' ]; public static $statusTypes = [ 0 => 'user order', 1 => '', 7 => 'from promotion', 8 => 'from shop', 9 => 'storniert' ]; private $storedContent; public function user() { return $this->belongsTo(User::class, 'user_id'); } public function shopping_order() { return $this->belongsTo(ShoppingOrder::class, 'shopping_order_id'); } public function m_sponsor_id() { return $this->belongsTo(User::class, 'm_sponsor_id'); } public function m_sponsor() { return $this->belongsTo(User::class, 'm_sponsor_id'); } public function hasPartnerCommission(){ if($this->m_sponsor_id || $this->net_partner_commission > 0){ return true; } return false; } public function getFormattedNetDiscount() { return formatNumber($this->attributes['net_discount']); } public function getFormattedNetPartnerCommission() { return formatNumber($this->attributes['net_partner_commission']); } public function getRestoreContent($key = false) { if(!$this->storedContent){ $this->storedContent = unserialize($this->attributes['content']); } if (is_array($this->storedContent)) { switch ($key) { case 'items': return $this->storedContent['items']; break; case 'commission': return $this->storedContent['commission']; break; } return $this->storedContent; } } }