Updates to 03-2025

This commit is contained in:
Kevin Adametz 2025-04-01 10:36:47 +02:00
parent bfa3bb1df4
commit 9ae662f63e
243 changed files with 12580 additions and 12018 deletions

View file

@ -60,7 +60,7 @@ class Category extends Model
'parent_id', 'name', 'headline', 'pos', 'active',
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -10,13 +10,20 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class DbipLookup
*
*
* @property string $addr_type
* @property string $ip_start
* @property string $ip_end
* @property string $country
*
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup query()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup whereAddrType($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup whereCountry($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup whereIpEnd($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup whereIpStart($value)
* @mixin \Eloquent
*/
class DbipLookup extends Model
{

View file

@ -10,13 +10,20 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class DbipLookup
*
*
* @property string $addr_type
* @property string $ip_start
* @property string $ip_end
* @property string $country
*
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 query()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 whereAddrType($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 whereCountry($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 whereIpEnd($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup2 whereIpStart($value)
* @mixin \Eloquent
*/
class DbipLookup2 extends Model
{

View file

@ -10,13 +10,20 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class DbipLookup
*
*
* @property string $addr_type
* @property string $ip_start
* @property string $ip_end
* @property string $country
*
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 query()
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 whereAddrType($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 whereCountry($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 whereIpEnd($value)
* @method static \Illuminate\Database\Eloquent\Builder|DbipLookup3 whereIpStart($value)
* @mixin \Eloquent
*/
class DbipLookup3 extends Model
{

View file

@ -13,15 +13,28 @@ use Cviebrock\EloquentSluggable\Sluggable;
/**
* Class DcCategory
*
*
* @property int $id
* @property string $name
* @property int $pos
* @property string $slug
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @package App\Models
* @property bool $active
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory findSimilarSlugs(string $attribute, array $config, string $slug)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory query()
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcCategory withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug)
* @mixin \Eloquent
*/
class DcCategory extends Model
{
@ -41,7 +54,7 @@ class DcCategory extends Model
'active'
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -12,7 +12,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class DcFile
*
*
* @property int $id
* @property string $filename
* @property string $original_name
@ -22,10 +22,26 @@ use Illuminate\Database\Eloquent\Model;
* @property int|null $active
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property Collection|DcFileTag[] $dc_file_tags
*
* @package App\Models
* @property-read int|null $dc_file_tags_count
* @property-read Collection<int, \App\Models\DcFileTag> $fileTag
* @property-read int|null $file_tag_count
* @property-read Collection<int, \App\Models\DcTag> $tags
* @property-read int|null $tags_count
* @method static \Illuminate\Database\Eloquent\Builder|DcFile newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcFile newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcFile query()
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereExt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereFilename($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereMine($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereOriginalName($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereSize($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFile whereUpdatedAt($value)
* @mixin \Eloquent
*/
class DcFile extends Model
{

View file

@ -11,17 +11,24 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class DcFileTag
*
*
* @property int $id
* @property int $file_id
* @property int $tag_id
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property DcFile $dc_file
* @property DcTag $dc_tag
*
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag query()
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag whereFileId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag whereTagId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcFileTag whereUpdatedAt($value)
* @mixin \Eloquent
*/
class DcFileTag extends Model
{

View file

@ -14,7 +14,7 @@ use Cviebrock\EloquentSluggable\Sluggable;
/**
* Class DcTag
*
*
* @property int $id
* @property int|null $category_id
* @property string $name
@ -22,10 +22,24 @@ use Cviebrock\EloquentSluggable\Sluggable;
* @property string $slug
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property Collection|DcFileTag[] $dc_file_tags
*
* @package App\Models
* @property bool $active
* @property-read int|null $dc_file_tags_count
* @method static \Illuminate\Database\Eloquent\Builder|DcTag findSimilarSlugs(string $attribute, array $config, string $slug)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcTag newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|DcTag query()
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereCategoryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|DcTag withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug)
* @mixin \Eloquent
*/
class DcTag extends Model
{
@ -47,7 +61,7 @@ class DcTag extends Model
'active'
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -71,6 +71,8 @@ use Illuminate\Database\Eloquent\Collection;
* @method static \Illuminate\Database\Eloquent\Builder|Homeparty whereOrder($value)
* @method static \Illuminate\Database\Eloquent\Builder|Homeparty whereSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|Homeparty whereStep($value)
* @property array|null $trans_description
* @method static \Illuminate\Database\Eloquent\Builder|Homeparty whereTransDescription($value)
* @mixin \Eloquent
*/
class Homeparty extends Model

View file

@ -51,7 +51,7 @@ class IqImage extends Model
'filename', 'original_name', 'ext', 'mine', 'size'
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -75,7 +75,11 @@ class IqSite extends Model
public function getProductModels(){
$ret = [];
foreach($this->products as $product_id){
$ret[] = Product::findOrFail($product_id);
$product = Product::findOrFail($product_id);
if($product->active){
$ret[] = $product;
}
}
return $ret;
@ -84,7 +88,10 @@ class IqSite extends Model
public function getProductSetModels(){
$ret = [];
foreach($this->set_products as $product_id){
$ret[] = Product::findOrFail($product_id);
$product = Product::findOrFail($product_id);
if($product->active){
$ret[] = $product;
}
}
return $ret;

View file

@ -36,6 +36,8 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereUpdatedAt($value)
* @property array|null $show_on
* @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereShowOn($value)
* @property bool $is_abo
* @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereIsAbo($value)
* @mixin \Eloquent
*/
class PaymentMethod extends Model

View file

@ -249,9 +249,8 @@ class Product extends Model
8 => 'Mitgliedschaft Berater',
9 => 'Onboarding Berater',
10 => 'zur internen Berechnung',
12 => 'Abo-ShopBerater',
13 => 'Abo-ShopBeraterKunden',
12 => 'Abo-BasisProdukt',
13 => 'Abo-AddonProdukt',
];
public $actions = [
@ -270,7 +269,18 @@ class Product extends Model
];
public function sluggable()
/************* ✨ Codeium Command ⭐ *************/
/**
* Configure the model for auto-generating a slug.
*
* This method returns an array defining the attributes used
* to generate the slug for the model. In this case, the 'name'
* attribute is used as the source for generating the slug.
*
* @return array Configuration for slug generation.
*/
/****** e935bd41-f49b-4736-9603-2da86dc27f25 *******/ public function sluggable() : array
{
return [
'slug' => [
@ -393,23 +403,25 @@ class Product extends Model
}
/*price by user Factor*/
private function calcPriceUserFactor($price){
private function calcPriceUserFactor($price, $user=null){
if($this->no_commission){
return $price;
}
if(\Auth::user() && \Auth::user()->user_level){
$margin = ((\Auth::user()->user_level->margin -100)*-1) / 100;
$user = $user ? $user : \Auth::user();
if($user && $user->user_level){
$margin = (($user->user_level->margin -100)*-1) / 100;
$price = $price * $margin;
}
return $price;
}
private function calcPriceUserCommission($price){
private function calcPriceUserCommission($price, $user){
if($this->no_commission){
return $price;
}
if(\Auth::user() && \Auth::user()->user_level){
$margin = \Auth::user()->user_level->margin;
$user = $user ? $user : \Auth::user();
if($user && $user->user_level){
$margin = $user->user_level->margin;
$price = $price / 100 * $margin;
}
return $price;
@ -423,13 +435,13 @@ class Product extends Model
return $price / $tax_rate;
}
//price calu with
public function getPriceWith(Bool $net = true, Bool $ufactor = true, $country = null, $commission=false){
public function getPriceWith(Bool $net = true, Bool $ufactor = true, $country = null, $commission=false, $user = null){
$price = isset($this->attributes['price']) ? $this->attributes['price'] : null;
$cprice = $country ? $this->getCPrice($country) : null;
$price = $cprice ? $cprice : $price;
$price = $net ? $this->calcPriceNet($price, $country) : $price;
$price = $ufactor ? $this->calcPriceUserFactor($price) : $price;
$price = $commission ? $this->calcPriceUserCommission($price) : $price;
$price = $ufactor ? $this->calcPriceUserFactor($price, $user) : $price;
$price = $commission ? $this->calcPriceUserCommission($price, $user) : $price;
return round($price, 2);
}

View file

@ -51,7 +51,7 @@ class ProductImage extends Model
'product_id', 'filename', 'original_name', 'ext', 'mine', 'size'
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -78,7 +78,7 @@ class Setting extends Model
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -121,7 +121,7 @@ class ShoppingCollectOrder extends Model
$add_tax = round($add_tax, 2);
$tax_split[$tax_rate] = isset($tax_split[$tax_rate]) ? round($tax_split[$tax_rate] += $add_tax, 2) : $add_tax;
foreach($tax_split as $key=>$value){
foreach((array)$tax_split as $key=>$value){
$tax_split[$key] = number_format($value, 2);
}
$this->tax_split = $tax_split;
@ -141,13 +141,31 @@ class ShoppingCollectOrder extends Model
public function addShopItem($shop_item_id, $shop_item)
{
$shop_item->user_price_net = number_format($shop_item->user_price_net, 2);
$shop_item->user_price_total_net = number_format($shop_item->user_price_total_net, 2);
$shop_item->user_tax = number_format($shop_item->user_tax, 2);
$shop_item->user_tax_total = number_format($shop_item->user_tax_total, 2);
$numberFields = [
'user_price_net',
'user_price_total_net',
'user_tax',
'user_tax_total'
];
$intFields = [
'points_total',
'points'
];
foreach ($numberFields as $field) {
if (isset($shop_item->$field)) {
$shop_item->$field = number_format($shop_item->$field, 2);
}
}
foreach ($intFields as $field) {
if (isset($shop_item->$field)) {
$shop_item->$field = intval($shop_item->$field);
}
}
$this->shop_items[$shop_item_id] = $shop_item;
}
public function addOrder($order)

View file

@ -35,6 +35,12 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingInstance whereShoppingData($value)
* @property string|null $language
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingInstance whereLanguage($value)
* @property int|null $status
* @property float|null $amount
* @property int|null $shopping_user_id
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingInstance whereAmount($value)
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingInstance whereShoppingUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingInstance whereStatus($value)
* @mixin \Eloquent
*/
class ShoppingInstance extends Model
@ -50,14 +56,29 @@ class ShoppingInstance extends Model
];
public $statuses = [
0 => 'link_sent',
1 => 'link_openly',
2 => 'link_check',
3 => 'link_pending',
4 => 'link_appointed',
5 => 'link_failed',
6 => 'link_canceled',
10 => 'link_paid',
];
protected $table = 'shopping_instances';
protected $casts = ['shopping_data' => 'array'];
protected $casts = ['shopping_data' => 'array', 'amount' => 'float'];
protected $fillable = [
'identifier', 'user_shop_id', 'auth_user_id', 'payment', 'subdomain', 'language', 'country_id', 'shopping_data', 'back'
'identifier', 'user_shop_id', 'auth_user_id', 'status', 'payment', 'subdomain', 'language', 'country_id', 'amount', 'shopping_user_id', 'shopping_data', 'back'
];
public function getStatus(){
return isset($this->statuses[$this->status]) ? $this->statuses[$this->status] : 'link_sent';
}
public function getLocale(){
return $this->language ? $this->language : \App::getLocale();
}
@ -78,5 +99,11 @@ class ShoppingInstance extends Model
return $this->belongsTo('App\User','auth_user_id');
}
public function getAmountFormatted(){
return formatNumber($this->amount);
}
}

View file

@ -97,6 +97,10 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereNetSplit($value)
* @property string|null $language
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereLanguage($value)
* @property bool|null $is_abo
* @property int|null $abo_interval
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereAboInterval($value)
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereIsAbo($value)
* @mixin \Eloquent
*/
class ShoppingOrder extends Model
@ -281,6 +285,13 @@ class ShoppingOrder extends Model
}
public function getUserAbo(){
$UserAboOrder = UserAboOrder::where('shopping_order_id', $this->id)->first();
if($UserAboOrder && $UserAboOrder->user_abo){
return $UserAboOrder->user_abo;
}
return null;
}
public function getLocale(){
return $this->language ? $this->language : \App::getLocale();

View file

@ -83,6 +83,16 @@ class ShoppingOrderItem extends Model
'points',
'slug',
];
protected $casts = [
'qty' => 'int',
'price' => 'float',
'price_net' => 'float',
'tax_rate' => 'float',
'tax' => 'float',
'price_vk_net' => 'float',
'discount' => 'float',
'points' => 'int',
];
public function shopping_order()
{

View file

@ -40,23 +40,35 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereWallettype($value)
* @property string|null $mode
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereMode($value)
* @property array|null $carddata
* @property int|null $is_abo
* @property int|null $abo_interval
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereAboInterval($value)
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereCarddata($value)
* @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereIsAbo($value)
* @mixin \Eloquent
*/
class ShoppingPayment extends Model
{
protected $table = 'shopping_payments';
protected $casts = [
'carddata' => 'array',
];
protected $fillable = [
'shopping_order_id',
'clearingtype',
'wallettype',
'onlinebanktransfertype',
'carddata',
'reference',
'amount',
'currency',
'mode',
'is_abo',
'abo_interval',
'identifier',
];
@ -69,7 +81,7 @@ class ShoppingPayment extends Model
{
return $this->hasMany('App\Models\PaymentTransaction','shopping_payment_id');
}
public function getPaymentType(){
if($this->clearingtype === 'wlt') {

View file

@ -2,6 +2,7 @@
namespace App\Models;
use App\Services\ShoppingUserService;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
@ -312,4 +313,8 @@ class ShoppingUser extends Model
];
}
}
public function getAllOrdersByMember(){
return ShoppingUserService::getAllOrdersByMember($this);
}
}

View file

@ -63,7 +63,7 @@ class SySetting extends Model
1 => 'default',
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -8,20 +8,20 @@ namespace App\Models;
use App\User;
use Carbon\Carbon;
use App\Services\Util;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class UserAbo
*
*
* @property int $id
* @property int $user_id
* @property int $payone_userid
* @property string $clearingtype
* @property string|null $wallettype
* @property int $amount
* @property string $currency
* @property bool $active
* @property int $status
* @property int $abo_interval
@ -32,11 +32,51 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @property Carbon|null $updated_at
* @property string|null $deleted_at
* @property Carbon|null $user_deleted_at
*
* @property User $user
* @property Collection|UserAboOrder[] $user_abo_orders
*
* @package App\Models
* @property int|null $member_id
* @property int $shopping_user_id
* @property string|null $email
* @property string|null $is_for
* @property array|null $carddata
* @property \Illuminate\Support\Carbon|null $start_date
* @property \Illuminate\Support\Carbon|null $last_date
* @property \Illuminate\Support\Carbon|null $next_date
* @property-read User|null $member
* @property-read \App\Models\ShoppingUser $shopping_user
* @property-read Collection<int, \App\Models\UserAboItem> $user_abo_items
* @property-read int|null $user_abo_items_count
* @property-read int|null $user_abo_orders_count
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo query()
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereAboInterval($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereAmount($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereCancelDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereCarddata($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereClearingtype($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereIsFor($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereLastDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereMemberId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereNextDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo wherePayoneUserid($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereShoppingUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereStartDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereUserDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo whereWallettype($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo withTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|UserAbo withoutTrashed()
* @mixin \Eloquent
*/
class UserAbo extends Model
{
@ -45,29 +85,33 @@ class UserAbo extends Model
protected $casts = [
'user_id' => 'int',
'member_id' => 'int',
'shopping_user_id' => 'int',
'payone_userid' => 'int',
'amount' => 'int',
'active' => 'bool',
'status' => 'int',
'abo_interval' => 'int',
'amount' => 'int',
'start_date' => 'datetime',
'last_date' => 'datetime',
'next_date' => 'datetime',
'cancel_date' => 'datetime',
'count' => 'int',
'user_deleted_at' => 'datetime'
'user_deleted_at' => 'datetime',
'carddata' => 'array'
];
protected $fillable = [
'user_id',
'member_id',
'shopping_user_id',
'is_for',
'email',
'payone_userid',
'clearingtype',
'wallettype',
'carddata',
'amount',
'currency',
'active',
'status',
'abo_interval',
@ -75,13 +119,43 @@ class UserAbo extends Model
'last_date',
'next_date',
'cancel_date',
'count',
'user_deleted_at'
];
public static $aboDeliveryDays = [5, 10, 20, 25];
public static $statusTypes = [
0 => 'abo_new',
1 => 'abo_new',
2 => 'abo_okay',
3 => 'abo_hold',
4 => 'abo_cancel',
5 => 'abo_finish',
6 => 'abo_inactive',
7 => 'abo_grace'
];
public static $statusColors = [
0 => 'success',
1 => 'success',
2 => 'secondary',
3 => 'warning',
4 => 'danger',
5 => 'info',
6 => 'warning',
7 => 'danger'
];
public function user()
{
return $this->belongsTo(User::class);
return $this->belongsTo(User::class, 'user_id');
}
public function member()
{
return $this->belongsTo(User::class, 'member_id');
}
public function shopping_user()
@ -89,12 +163,21 @@ class UserAbo extends Model
return $this->belongsTo('App\Models\ShoppingUser','shopping_user_id');
}
public function user_abo_orders()
{
return $this->hasMany(UserAboOrder::class);
}
public function user_abo_items()
{
return $this->hasMany(UserAboItem::class);
}
public function getCountOrders(){
//sind bezahlte Bestellungen
return $this->user_abo_orders->where('status', '>=', 2)->count();
}
public function setStartDateAttribute( $value ) {
$this->attributes['start_date'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL;
}
@ -127,5 +210,29 @@ class UserAbo extends Model
return $this->attributes['cancel_date'] ? Carbon::parse($this->attributes['cancel_date'])->format(\Util::formatDateDB()) : '';
}
public function getFormattedAmount()
{
return isset($this->attributes['amount']) ? Util::formatNumber($this->attributes['amount']/100) : "";
}
public function getIsForFormated()
{
return $this->attributes['is_for'] === 'me' ? '<span class="badge badge-outline-warning-dark">'.__('tables.adviser').'</span>' : '<span class="badge badge-outline-info">'.__('tables.customer').'</span>';
}
public function getStatusFormated(){
return '<span class="badge badge-pill badge-'.$this->getStatusColor().'">'.$this->getStatusType().'</span>';
}
public function getStatusType(){
return isset(self::$statusTypes[$this->status]) ? __('abo.'.self::$statusTypes[$this->status]) : "";
}
public function getStatusColor(){
return isset(self::$statusColors[$this->status]) ? self::$statusColors[$this->status] : "default";
}
public function getPaymentType(){
return $this->clearingtype === 'wlt' ? __('payment.paypal') : __('payment.credit_card');
}
}

View file

@ -0,0 +1,90 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use App\Services\Util;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Yard;
/**
* Class UserAboItem
*
* @property int $id
* @property int $user_abo_id
* @property int $product_id
* @property int|null $comp
* @property int $qty
* @property int $status
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
* @property Product $product
* @property UserAbo $user_abo
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem query()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereComp($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereProductId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereQty($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboItem whereUserAboId($value)
* @mixin \Eloquent
*/
class UserAboItem extends Model
{
protected $table = 'user_abo_items';
protected $casts = [
'user_abo_id' => 'int',
'product_id' => 'int',
'comp' => 'int',
'qty' => 'int',
'status' => 'int'
];
protected $fillable = [
'user_abo_id',
'product_id',
'comp',
'qty',
'status'
];
public function product()
{
return $this->belongsTo(Product::class);
}
public function user_abo()
{
return $this->belongsTo(UserAbo::class);
}
public function getPrice()
{
$ufactor = $this->user_abo->is_for === 'me' ? true : false;
$tax_free = $ufactor ? true : Yard::instance('shopping')->getUserTaxFree();
$userCountry = Yard::instance('shopping')->getUserCountry();
return $this->product->getPriceWith($tax_free, $ufactor, $userCountry);
}
public function getFormattedPrice(){
/** der Preis wird für den User berechnet */
return Util::formatNumber($this->getPrice());
}
public function getFormattedTotalPrice(){
/** der Preis wird für den User berechnet */
return Util::formatNumber($this->getPrice() * $this->qty);
}
}

View file

@ -12,18 +12,26 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class UserAboOrder
*
*
* @property int $id
* @property int $user_abo_id
* @property int $shopping_order_id
* @property int $status
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property ShoppingOrder $shopping_order
* @property UserAbo $user_abo
*
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder query()
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereShoppingOrderId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserAboOrder whereUserAboId($value)
* @mixin \Eloquent
*/
class UserAboOrder extends Model
{
@ -42,6 +50,30 @@ class UserAboOrder extends Model
'status'
];
public static $statusTypes = [
0 => 'abo_new',
1 => 'abo_new',
2 => 'abo_okay',
3 => 'abo_hold',
4 => 'abo_cancel',
5 => 'abo_finish',
6 => 'abo_inactive',
7 => 'abo_grace'
];
public static $statusColors = [
0 => 'success',
1 => 'success',
2 => 'secondary',
3 => 'warning',
4 => 'danger',
5 => 'info',
6 => 'warning',
7 => 'danger'
];
public function shopping_order()
{
return $this->belongsTo(ShoppingOrder::class);
@ -51,4 +83,17 @@ class UserAboOrder extends Model
{
return $this->belongsTo(UserAbo::class);
}
public function getStatusFormated(){
return '<span class="badge badge-pill badge-'.$this->getStatusColor().'">'.$this->getStatusType().'</span>';
}
public function getStatusType(){
return isset(self::$statusTypes[$this->status]) ? __('abo.'.self::$statusTypes[$this->status]) : "";
}
public function getStatusColor(){
return isset(self::$statusColors[$this->status]) ? self::$statusColors[$this->status] : "default";
}
}

View file

@ -119,6 +119,10 @@ use Illuminate\Database\Eloquent\Casts\AsArrayObject;
* @method static \Illuminate\Database\Eloquent\Builder|UserBusiness whereSalesVolumePointsTPSum($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserBusiness whereSalesVolumeTPPoints($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserBusiness whereVersion($value)
* @property string|null $user_birthday
* @property string|null $user_phone
* @method static \Illuminate\Database\Eloquent\Builder|UserBusiness whereUserBirthday($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserBusiness whereUserPhone($value)
* @mixin \Eloquent
*/
class UserBusiness extends Model

View file

@ -40,6 +40,10 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserBusinessId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserCreditId($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserId($value)
* @property int|null $from_month
* @property int|null $from_year
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereFromMonth($value)
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereFromYear($value)
* @mixin \Eloquent
*/
class UserCreditItem extends Model

View file

@ -42,6 +42,8 @@ use App\User;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereIdentifier($value)
* @property int|null $abo_options
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereAboOptions($value)
* @property int|null $is_abo
* @method static \Illuminate\Database\Eloquent\Builder|UserHistory whereIsAbo($value)
* @mixin \Eloquent
*/
class UserHistory extends Model

View file

@ -65,6 +65,8 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Query\Builder|\App\Models\UserShop withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\UserShop withoutTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|UserShop withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug)
* @property array|null $trans
* @method static \Illuminate\Database\Eloquent\Builder|UserShop whereTrans($value)
* @mixin \Eloquent
*/
class UserShop extends Model
@ -87,7 +89,7 @@ class UserShop extends Model
protected $dates = ['deleted_at'];
use Sluggable;
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [

View file

@ -46,7 +46,7 @@ class UserShopOnSite extends Model
'user_shop_id', 'filename', 'original_name', 'ext', 'mine', 'size'
];
public function sluggable()
public function sluggable() : array
{
return [
'slug' => [