'int', 'shopping_order_id' => 'int', 'shopping_user_id' => 'int', 'number' => 'int', 'year' => 'int', 'month' => 'int', 'net' => 'float', 'tax_rate' => 'float', 'tax' => 'float', 'total' => 'float', 'paid' => 'bool', 'cancellation_id' => 'int', 'status' => 'int', 'file' => 'array', 'contents' => 'array', 'infos' => 'array', ]; protected $dates = [ 'paid_date', 'cancellation_date' ]; protected $fillable = [ 'auth_user_id', 'shopping_order_id', 'shopping_user_id', 'type', 'year', 'month', 'full_number', 'number', 'net', 'tax_rate', 'tax', 'total', 'file', 'contents', 'infos', 'subject', 'address', 'paid', 'paid_date', 'cancellation_id', 'cancellation_date', 'status' ]; public static $monthNames = [ 1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' ]; public static $statusTypes = [ 0 => 'offen', 1 => 'bezahlt', 2 => 'prüfen', 10 => 'storniert' ]; public static $statusColors = [ 0 => 'warning', 1 => 'success', 2 => 'secondary', 10 => 'danger', ]; public function user() { return $this->belongsTo(\App\User::class, 'auth_user_id'); } public function user_invoice_credit() { return $this->belongsTo(UserInvoiceCredit::class, 'cancellation_id'); } public function shopping_order() { return $this->belongsTo(ShoppingOrder::class); } public function shopping_user() { return $this->belongsTo(ShoppingUser::class); } public function user_invoice_credits() { return $this->hasMany(UserInvoiceCredit::class, 'cancellation_id'); } public function getPaidDateAttribute($value){ return $this->attributes['paid_date'] ? Carbon::parse($this->attributes['paid_date'])->format(\Util::formatDateDB()) : ''; } public function setPaidDateAttribute( $value ) { $this->attributes['paid_date'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL; } public function getPaidDateRaw(){ return isset($this->attributes['paid_date']) ? $this->attributes['paid_date'] : NULL; } public function getCancellationDateAttribute($value){ return $this->attributes['cancellation_date'] ? Carbon::parse($this->attributes['cancellation_date'])->format(\Util::formatDateDB()) : ''; } public function setCancellationDateAttribute( $value ) { $this->attributes['cancellation_date'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL; } public function getCancellationDateRaw(){ return isset($this->attributes['cancellation_date']) ? $this->attributes['cancellation_date'] : NULL; } public static function getYearRange() { $start = 2021; $end = date("Y"); return array_reverse(range($start, $end)); } public static function getMonthName($month) { return isset(self::$monthNames[$month]) ? self::$monthNames[$month] : $month; } public function getStatusType(){ return isset(self::$statusTypes[$this->status]) ? self::$statusTypes[$this->status] : ""; } public function getStatusColor(){ return isset(self::$statusColors[$this->status]) ? self::$statusColors[$this->status] : "default"; } }