diff --git a/_ide_helper.php b/_ide_helper.php index deef827..e54cb27 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -16963,10 +16963,40 @@ * * @static */ - public static function reCalculateShippingPrice() + public static function reCalculate() { /** @var \App\Services\Yard $instance */ - return $instance->reCalculateShippingPrice(); + return $instance->reCalculate(); + } + /** + * + * + * @static + */ + public static function calculateMargins() + { + /** @var \App\Services\Yard $instance */ + return $instance->calculateMargins(); + } + /** + * + * + * @static + */ + public static function getYardMargin() + { + /** @var \App\Services\Yard $instance */ + return $instance->getYardMargin(); + } + /** + * + * + * @static + */ + public static function getYardCommission() + { + /** @var \App\Services\Yard $instance */ + return $instance->getYardCommission(); } /** * @@ -16977,6 +17007,26 @@ { /** @var \App\Services\Yard $instance */ return $instance->setShippingCountryWithPrice($shipping_country_id, $shipping_is_for); + } + /** + * + * + * @static + */ + public static function setShoppingUser($user, $payment_credit = false) + { + /** @var \App\Services\Yard $instance */ + return $instance->setShoppingUser($user, $payment_credit); + } + /** + * + * + * @static + */ + public static function getPaymentCredit() + { + /** @var \App\Services\Yard $instance */ + return $instance->getPaymentCredit(); } /** * @@ -17031,6 +17081,26 @@ { /** @var \App\Services\Yard $instance */ return $instance->totalWithShipping($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function totalWithShippingWithoutCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->totalWithShippingWithoutCredit($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function totalfromCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->totalfromCredit($decimals, $decimalPoint, $thousandSeperator); } /** * Get the total price of the items in the cart. @@ -17103,10 +17173,10 @@ * @return float * @static */ - public static function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null) + public static function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $discount = true) { /** @var \App\Services\Yard $instance */ - return $instance->subtotal($decimals, $decimalPoint, $thousandSeperator); + return $instance->subtotal($decimals, $decimalPoint, $thousandSeperator, $discount); } /** * diff --git a/app/Http/Controllers/Api/ShoppingUserController.php b/app/Http/Controllers/Api/ShoppingUserController.php index 709471f..69518c9 100755 --- a/app/Http/Controllers/Api/ShoppingUserController.php +++ b/app/Http/Controllers/Api/ShoppingUserController.php @@ -626,7 +626,7 @@ class ShoppingUserController extends Controller 'subtotal' => Yard::instance('shopping')->subtotal(2, '.', ''), 'shipping' => Yard::instance('shopping')->shipping(2, '.', ','), 'shipping_net' => Yard::instance('shopping')->shippingNet(2, '.', ''), - 'subtotal_ws' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), + 'subtotal_shipping' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), 'tax' => Yard::instance('shopping')->taxWithShipping(2, '.', ''), 'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''), 'points' => Yard::instance('shopping')->points(), diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index e453c1a..63c161c 100755 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -172,7 +172,7 @@ class CustomerController extends Controller data-action="shopping-user-is-like-member" data-back="'.route('admin_customers').'" data-modal="modal-xl" - data-route="'.route('modal_load').'"> Berater zuordnen'; + data-route="'.route('modal_load').'"> Vertriebspartner zuordnen'; } if($ShoppingUser->member_id){ return ''.$ShoppingUser->member->getFullName().''; diff --git a/app/Http/Controllers/LeadController.php b/app/Http/Controllers/LeadController.php index 1e4d852..2a18979 100755 --- a/app/Http/Controllers/LeadController.php +++ b/app/Http/Controllers/LeadController.php @@ -222,25 +222,27 @@ class LeadController extends Controller public function released($action, $id){ $user = User::findOrFail($id); - if($action === 'completed'){ $validator = Validator::make(Request::all(), []); - if(!$user->m_sponsor){ - $validator->errors()->add('m_sponsor', __('Berater hat keinen Sponsor.')); - } + /*if(!$user->m_sponsor){ + $validator->errors()->add('m_sponsor', __('Vertriebspartner hat keinen Sponsor.')); + }*/ if(!$user->account->m_first_name){ - $validator->errors()->add('m_first_name', __('Berater hat keinen Vornamen.')); + $validator->errors()->add('m_first_name', __('Vertriebspartner hat keinen Vornamen.')); } - if(!$user->account->m_first_name){ - $validator->errors()->add('m_last_name', __('Berater hat keinen Nachnamen.')); - } - if(!$user->account->m_account){ - $validator->errors()->add('m_account', __('Berater hat keine Account ID')); + if(!$user->account->m_last_name){ + $validator->errors()->add('m_last_name', __('Vertriebspartner hat keinen Nachnamen.')); } + if ($validator->errors()->count()) { return back()->withErrors($validator)->withRequest(Request::all()); } + if(!$user->account->m_account){ + $user->account->m_account = UserAccount::max('m_account') +1; + $user->account->save(); + } + //create PDF $pdf = new ContractPDFRepository($user); $pdf->_set('disk', 'user'); @@ -271,7 +273,7 @@ class LeadController extends Controller } UserHistory::create(['user_id' => $user->id, 'action'=>'released_completed', 'status'=>0]); - \Session()->flash('alert-success', "Berater freigeschaltet!"); + \Session()->flash('alert-success', "Vertriebspartner freigeschaltet!"); } if($action === 'incomplete'){ @@ -303,7 +305,7 @@ class LeadController extends Controller ->save(); } UserHistory::create(['user_id' => $user->id, 'action'=>'released_incomplete', 'status'=>0]); - \Session()->flash('alert-success', "E-Mail an Berater gesendet."); + \Session()->flash('alert-success', "E-Mail an Vertriebspartner gesendet."); } return redirect(route('admin_lead_edit', [$user->id])); diff --git a/app/Http/Controllers/MembershipController.php b/app/Http/Controllers/MembershipController.php index 7e627c6..d2d53ea 100755 --- a/app/Http/Controllers/MembershipController.php +++ b/app/Http/Controllers/MembershipController.php @@ -114,7 +114,7 @@ class MembershipController extends Controller 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop for nuy intern 'auth_user_id' => Auth::user()->id, - 'payment' => 3, //Berater Membership + 'payment' => 3, //Vertriebspartner Membership 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'shopping_data' => $data, diff --git a/app/Http/Controllers/ModalController.php b/app/Http/Controllers/ModalController.php index db94f38..2c55d84 100644 --- a/app/Http/Controllers/ModalController.php +++ b/app/Http/Controllers/ModalController.php @@ -63,6 +63,12 @@ class ModalController extends Controller } + if($data['action'] === 'user-order-show-user-level-margin'){ + $user = User::find($data['id']); + $ret = view("admin.modal.user_level_margin", compact('user', 'data'))->render(); + } + + if($data['action'] === 'homeparty-add-product') { $homeparty = Homeparty::find($data['id']); $homeparty_user = HomepartyUser::find($data['user_id']); diff --git a/app/Http/Controllers/PaymentMethodController.php b/app/Http/Controllers/PaymentMethodController.php index c85c494..afe71fd 100755 --- a/app/Http/Controllers/PaymentMethodController.php +++ b/app/Http/Controllers/PaymentMethodController.php @@ -36,6 +36,7 @@ class PaymentMethodController extends Controller 'short' => $data['short'], 'pos' => $data['pos'], 'show_at' => $data['show_at'], + 'max_price' => $data['max_price'], 'default' => isset($data['default']) ? true : false, 'active' => isset($data['active']) ? true : false, ]); @@ -44,6 +45,7 @@ class PaymentMethodController extends Controller $model->name = $data['name']; $model->short = $data['short']; $model->pos = $data['pos']; + $model->max_price = $data['max_price']; $model->show_at = $data['show_at']; $model->default = isset($data['default']) ? true : false; $model->active = isset($data['active']) ? true : false; diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 143d7ec..6979237 100755 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -65,7 +65,10 @@ class ProductController extends Controller $rules = array( 'name' => 'required', ); - if($data['wp_number']){ + /*if(isset($data['number']) && $data['number'] != ""){ + $rules['number'] = 'int'; + }*/ + if(isset($data['wp_number'])){ if($data['id'] !== "new"){ $model = Product::findOrFail($data['id']); $rules['wp_number'] = 'unique:products,wp_number,'.$model->id; diff --git a/app/Http/Controllers/SalesController.php b/app/Http/Controllers/SalesController.php index c39fed1..942aa35 100755 --- a/app/Http/Controllers/SalesController.php +++ b/app/Http/Controllers/SalesController.php @@ -80,7 +80,7 @@ class SalesController extends Controller }) ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { if($ShoppingOrder->shopping_user->is_for === 'me'){ - return 'Beraterbestellung'; + return 'Vertriebspartnerbestellung'; } if($ShoppingOrder->shopping_user->is_for === 'ot'){ return 'Kundenbestellung'; @@ -216,7 +216,7 @@ class SalesController extends Controller }) ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { if($ShoppingOrder->shopping_user->is_for === 'me'){ - return 'Beraterbestellung'; + return 'Vertriebspartnerbestellung'; } if($ShoppingOrder->shopping_user->is_for === 'ot'){ return 'Kundenbestellung'; @@ -239,7 +239,7 @@ class SalesController extends Controller data-action="shopping-user-is-like-member" data-back="'.route('admin_sales_customers').'" data-modal="modal-xl" - data-route="'.route('modal_load').'"> Berater zuordnen'; + data-route="'.route('modal_load').'"> Vertriebspartner zuordnen'; } return ''; }) diff --git a/app/Http/Controllers/User/CheckoutController.php b/app/Http/Controllers/User/CheckoutController.php index 1e4ea51..c69bb69 100755 --- a/app/Http/Controllers/User/CheckoutController.php +++ b/app/Http/Controllers/User/CheckoutController.php @@ -12,6 +12,7 @@ use App\Models\PaymentTransaction; use App\Models\ShippingCountry; use App\Models\ShoppingOrder; use App\Models\ShoppingOrderItem; +use App\Models\ShoppingOrderMargin; use App\Models\ShoppingPayment; use App\Models\ShoppingUser; use App\Services\CustomerPriority; @@ -125,14 +126,13 @@ class CheckoutController extends Controller if($is_from !== 'shopping' && Util::getAuthUser()){ $user = Util::getAuthUser(); - $payment_methods = $user->payment_methods; + $user_payment_methods = $user->payment_methods; $payment_data = $user->account->payment_data; }else{ - $payment_methods = PaymentMethod::getDefaultAsArray()->toArray(); + $user_payment_methods = PaymentMethod::getDefaultAsArray()->toArray(); $payment_data = false; } - $payment_methods_active = \App\Models\PaymentMethod::where('active', true)->get()->pluck( 'id', 'short')->toArray(); $data = [ 'is_from' => $is_from, 'is_for' => $is_for, @@ -140,8 +140,7 @@ class CheckoutController extends Controller 'user_shop' => Util::getUserShop(), 'shopping_user' => $shopping_user, 'shopping_mode' => Util::getUserShoppingMode(), - 'payment_methods' => $payment_methods, - 'payment_methods_active' => $payment_methods_active, + 'user_payment_methods' => $user_payment_methods, 'identifier' => $identifier, 'payment_data' => $payment_data, 'back' => url()->previous(), @@ -402,18 +401,25 @@ class CheckoutController extends Controller private function makeShoppingOrder($shopping_user){ $user_shop = Util::getUserShop(); - + $discount = 0; + if(Yard::instance('shopping')->getYardMargin()){ + $discount = Yard::instance('shopping')->getYardMargin()->net_discount; + } $data = [ 'shopping_user_id' => $shopping_user->id, 'auth_user_id' => $shopping_user->auth_user_id, 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'payment_for' => Util::getUserPaymentFor(), 'total' => Yard::instance('shopping')->total(2, '.', ''), + 'subtotal_full' => Yard::instance('shopping')->subtotal(2, '.', '', false), + 'discount' => $discount, 'subtotal' => Yard::instance('shopping')->subtotal(2, '.', ''), 'shipping' => Yard::instance('shopping')->shipping(2, '.', ','), 'shipping_net' => Yard::instance('shopping')->shippingNet(2, '.', ''), - 'subtotal_ws' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), + 'subtotal_shipping' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), 'tax' => Yard::instance('shopping')->taxWithShipping(2, '.', ''), + 'total_without_credit' => Yard::instance('shopping')->totalWithShippingWithoutCredit(2, '.', ''), + 'payment_credit' => Yard::instance('shopping')->totalfromCredit(2, '.', ''), 'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''), 'points' => Yard::instance('shopping')->points(), 'weight' => Yard::instance('shopping')->weight(), @@ -433,8 +439,9 @@ class CheckoutController extends Controller if(!$shopping_order){ $shopping_order = ShoppingOrder::create($data); } - $this->putPayments('shopping_order_id', $shopping_order->id); + $this->makeOrderMargin($shopping_order); + $this->putPayments('shopping_order_id', $shopping_order->id); $items = Yard::instance('shopping')->getContentByOrder(); $shopping_order->shopping_order_items()->each(function($model) use ($items, $shopping_order, $shopping_user) { foreach ($items as $item) { @@ -477,6 +484,38 @@ class CheckoutController extends Controller return $shopping_order; } + private function makeOrderMargin(ShoppingOrder $shopping_order) + { + + if (Yard::instance('shopping')->getYardMargin()) { + + $data = [ + 'shopping_order_id' => $shopping_order->id, + 'user_id' => $shopping_order->auth_user_id, + 'net_price' => Yard::instance('shopping')->getYardMargin()->net_price, + 'net_discount' => Yard::instance('shopping')->getYardMargin()->net_discount, + 'net_amount' => Yard::instance('shopping')->getYardMargin()->net_amount, + 'from_payment_credit' => Yard::instance('shopping')->totalfromCredit(2, '.', ''), + 'from' => now(), + 'content' => serialize(Yard::instance('shopping')->getYardMargin()->toArray()) + ]; + if(Yard::instance('shopping')->getYardMargin()->net_partner_commission > 0){ + $data['m_sponsor_id'] = $shopping_order->auth_user->m_sponsor; + $data['net_partner_commission'] = Yard::instance('shopping')->getYardMargin()->net_partner_commission; + } + $shopping_order_margin = false; + if ($this->getPayments('shopping_order_margin_id')) { + $shopping_order_margin = ShoppingOrderMargin::find($this->getPayments('shopping_order_margin_id')); + if ($shopping_order_margin) { + $shopping_order_margin->fill($data); + $shopping_order_margin->save();} + } + if (!$shopping_order_margin) { + $shopping_order_margin = ShoppingOrderMargin::create($data); + } + $this->putPayments('shopping_order_margin_id', $shopping_order_margin->id); + } + } private function putPayments($key, $value){ $content = $this->getContent(); $content->put($key, $value); diff --git a/app/Http/Controllers/User/HomepartyController.php b/app/Http/Controllers/User/HomepartyController.php index f21c44b..bd84eb1 100755 --- a/app/Http/Controllers/User/HomepartyController.php +++ b/app/Http/Controllers/User/HomepartyController.php @@ -388,7 +388,7 @@ class HomepartyController extends Controller 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop for nuy intern 'auth_user_id' => Auth::user()->id, - 'payment' => 5, //Berater Membership + 'payment' => 5, //Vertriebspartner Membership 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'shopping_data' => $data, diff --git a/app/Http/Controllers/User/OrderController.php b/app/Http/Controllers/User/OrderController.php index cd0afbe..3c6639f 100755 --- a/app/Http/Controllers/User/OrderController.php +++ b/app/Http/Controllers/User/OrderController.php @@ -77,7 +77,7 @@ class OrderController extends Controller }) ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { if($ShoppingOrder->shopping_user->is_for === 'me'){ - return 'Beraterbestellung'; + return 'Vertriebspartnerbestellung'; } if($ShoppingOrder->shopping_user->is_for === 'ot'){ return 'Kundenbestellung'; @@ -149,6 +149,8 @@ class OrderController extends Controller } Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for); + Yard::instance('shopping')->setShoppingUser($user, true); + $data = [ 'shopping_user' => $shopping_user, @@ -177,7 +179,6 @@ class OrderController extends Controller $validator = Validator::make(Request::all(), $rules); if ($validator->fails()) { - dd($validator); return back()->withErrors($validator)->withInput(Request::all()); } @@ -214,7 +215,7 @@ class OrderController extends Controller 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop for buy intern 'auth_user_id' => Auth::user()->id, - 'payment' => 2, //Berater Shop + 'payment' => 2, //Vertriebspartner Shop 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'shopping_data' => $data, @@ -294,12 +295,12 @@ class OrderController extends Controller $q->where('show_at', '=', 0) ->orWhere('show_at', '=', 1); }); - } - //Kunden und Berater - //->orWhere('show_at', '=', 2); // Nur Berater + + //Kunden und Vertriebspartner + //->orWhere('show_at', '=', 2); // Nur Vertriebspartner //->orderBy('pos', 'DESC') //->orderBy('id', 'DESC'); @@ -346,6 +347,7 @@ class OrderController extends Controller '; })*/ + ->addColumn('picture', function (Product $product) { if(count($product->images)){ return ''; @@ -361,8 +363,15 @@ class OrderController extends Controller ->addColumn('price_vk_gross', function (Product $product) { return $product->getFormattedPriceWith(false, false). " €"; }) + ->addColumn('single_commission', function (Product $product) { + return $product->single_commission ? 'Handelspanne: '.$product->getFormattedValueCommission().' %' : 'Staffelprovision '; + }) + + ->addColumn('action', function (Product $product) { - return ''; }) @@ -379,9 +388,10 @@ class OrderController extends Controller ->orderColumn('price_gross', 'price_gross $1') ->orderColumn('price_vk_gross', 'price $1') ->orderColumn('contents_total', 'contents_total $1') + ->orderColumn('single_commission', 'single_commission $1') ->orderColumn('weight', 'weight $1') - ->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action']) + ->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action', 'single_commission']) ->make(true); } @@ -401,7 +411,16 @@ class OrderController extends Controller } //get the card item - $cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(false, true), $product->tax, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); + $cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(false, true), $product->tax, + [ + 'image' => $image, + 'slug' => $product->slug, + 'weight' => $product->weight, + 'single_commission' => $product->single_commission, + 'amount_commission' => $product->amount_commission, + 'value_commission' => $product->value_commission, + 'partner_commission' => $product->partner_commission, + ]); Yard::setTax($cartItem->rowId, $product->tax); if(isset($data['qty']) && $data['qty'] > 0){ @@ -411,10 +430,8 @@ class OrderController extends Controller Yard::instance('shopping')->remove($cartItem->rowId); } // - Yard::instance('shopping')->reCalculateShippingPrice(); - //$this->checkCompProduct(Yard::instance('shopping')->getNumComp()); + Yard::instance('shopping')->reCalculate(); $html_card = view("user.order.yard_view_form", $data)->render(); - //$html_comp = view("user.order.comp_product", $data)->render(); return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>'']); } @@ -435,19 +452,6 @@ class OrderController extends Controller //$html_comp = view("user.order.comp_product", $data)->render(); return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>'']); } - /* if($data['action'] === 'updateCompProduct'){ - // $data['comp_product_id'] - // $data['comp_num'] - //count_comp_products - $this->updateCompProduct($data); - Yard::instance('shopping')->reCalculateShippingPrice(); - $html_card = view("user.order.yard_view_form", $data)->render(); - $html_comp = view("user.order.comp_product", $data)->render(); - - return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>$html_comp]); - - } - */ return response()->json(['response' => false, 'data'=>$data]); } } @@ -484,10 +488,5 @@ class OrderController extends Controller } } - private function getCompProducts($for){ - if($for === 'me'){ - return Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); - } - return null; - }*/ + */ } \ No newline at end of file diff --git a/app/Http/Controllers/UserLevelController.php b/app/Http/Controllers/UserLevelController.php index fe7a1fe..0586eb4 100755 --- a/app/Http/Controllers/UserLevelController.php +++ b/app/Http/Controllers/UserLevelController.php @@ -5,8 +5,11 @@ namespace App\Http\Controllers; use App\Models\Attribute; use App\Models\ProductAttribute; +use App\Models\Shipping; use App\Models\UserLevel; +use App\Models\UserLevelMargin; use Request; +use Validator; class UserLevelController extends Controller @@ -27,42 +30,95 @@ class UserLevelController extends Controller return view('admin.level.index', $data); } + public function edit($id) + { + if($id === "new"){ + $user_level = new UserLevel(); + $user_level->active = 1; + + }else{ + $user_level = UserLevel::findOrFail($id); + + } + $data = [ + 'value' => $user_level, + ]; + return view('admin.level.edit', $data); + + + } public function store() { $data = Request::all(); - if($data['id'] == "new"){ - $model = UserLevel::create([ - 'name' => $data['name'], - 'pos' => $data['pos'], - 'content' => $data['content'], - 'active' => isset($data['active']) ? true : false, - ]); - }else{ - $model = UserLevel::find($data['id']); - $model->name = $data['name']; - $model->pos = $data['pos']; - $model->content = $data['content']; - $model->active = isset($data['active']) ? true : false; - $model->save(); - } - if(!empty($data['trans'])){ - $trans = []; - foreach ($data['trans'] as $lang => $value){ - if($value && $value != null){ - $trans[$lang] = $value; + if($data['action'] === 'user_level') { + if ($data['id'] === "new") { + $user_level = UserLevel::create([ + 'name' => $data['name'], + 'pos' => $data['pos'], + 'content' => $data['content'], + 'partner_provision' => isset($data['partner_provision']) ? true : false, + 'active' => isset($data['active']) ? true : false, + ]); + } else { + $user_level = UserLevel::find($data['id']); + $user_level->name = $data['name']; + $user_level->pos = $data['pos']; + $user_level->content = $data['content']; + $user_level->partner_provision = isset($data['partner_provision']) ? true : false; + $user_level->active = isset($data['active']) ? true : false; + $user_level->save(); + } + + if (!empty($data['trans'])) { + $trans = []; + foreach ($data['trans'] as $lang => $value) { + if ($value && $value != null) { + $trans[$lang] = $value; + } + } + if (count($trans)) { + $user_level->trans_name = $trans; + $user_level->save(); } } - if(count($trans)){ - $model->trans_name = $trans; - $model->save(); + } + + if($data['action'] === 'user_level_margin') { + $user_level = UserLevel::findOrFail($data['user_level_id']); + $rules = array('price_from' => 'required'); + $ret = ['value' => $user_level]; + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return view('admin.level.edit', $ret)->withErrors($validator); + } + if ($data['id'] === "new") { + $user_level_margin = UserLevelMargin::create($data); + } else { + $user_level_margin = UserLevelMargin::findOrFail($data['id']); + if($user_level_margin->user_level_id != $user_level->id){ + abort(404); + } + $user_level_margin->fill($data); + $user_level_margin->save(); } } \Session()->flash('alert-save', '1'); - return redirect(route('admin_levels')); + return redirect(route('admin_level_edit', [$user_level->id])); + } + + public function delete($do, $id) + { + if($do === 'user_level_margin'){ + $model = UserLevelMargin::findOrFail($id); + $id = $model->user_level->id; + $model->delete(); + \Session()->flash('alert-success', "Eintrag gelöscht"); + return redirect(route('admin_level_edit', [$id])); + } } diff --git a/app/Http/Controllers/WizardController.php b/app/Http/Controllers/WizardController.php index 623dd7f..2a0f155 100755 --- a/app/Http/Controllers/WizardController.php +++ b/app/Http/Controllers/WizardController.php @@ -480,7 +480,7 @@ class WizardController extends Controller 'identifier' => $identifier, 'user_shop_id' => 1, //is first faker shop for buy intern 'auth_user_id' => Auth::user()->id, - 'payment' => 4, //Berater Wizard + 'payment' => 4, //Vertriebspartner Wizard 'subdomain' => url('/'), 'country_id' => Yard::instance('shopping')->getShippingCountryId(), 'shopping_data' => $data, diff --git a/app/Mail/MailInfo.php b/app/Mail/MailInfo.php index ed1d238..6860fc5 100644 --- a/app/Mail/MailInfo.php +++ b/app/Mail/MailInfo.php @@ -58,16 +58,16 @@ class MailInfo extends Mailable } $content .= "E-Mail: ".$this->user->email; - $copy1line = "Infos zum Berater:"."\n"; - $button = "zum Berater"; - $title = "Ein Berater möchte seine Mitgliedschaft beenden."; + $copy1line = "Infos zum Vertriebspartner:"."\n"; + $button = "zum Vertriebspartner"; + $title = "Ein Vertriebspartner möchte seine Mitgliedschaft beenden."; $url = route('admin_lead_edit', $this->user->id).'?show=check_lead'; } if($this->action === "check_is_like_customer") { $copy1line = "Hier geht es zum Kunden:"."\n"; $button = "zum Kunden"; - $title = "Ein Kunden muss überprüft werden und einem Berater zugeordnet werden, da die Adresse nicht eindeutig ist."; + $title = "Ein Kunden muss überprüft werden und einem Vertriebspartner zugeordnet werden, da die Adresse nicht eindeutig ist."; $url = route('admin_customer_detail', $this->user->id); $content .= $this->user ? 'Firma: '.$this->user->billing_company."\n" : ''; $content .= \App\Services\HTMLHelper::getSalutationLang($this->user->billing_salutation)." "; diff --git a/app/Mail/MailReleaseAccount.php b/app/Mail/MailReleaseAccount.php index 8a39056..1f66d21 100644 --- a/app/Mail/MailReleaseAccount.php +++ b/app/Mail/MailReleaseAccount.php @@ -18,7 +18,7 @@ class MailReleaseAccount extends Mailable public function __construct(User $user) { $this->user = $user; - $this->subject = 'Neuer Berater Registrierung prüfen'; + $this->subject = 'Neuer Vertriebspartner Registrierung prüfen'; } @@ -42,19 +42,19 @@ class MailReleaseAccount extends Mailable $content .= "E-Mail: ".$this->user->email; - $copy1line = "Ein neuer Berater hat sich registriert und wartet auf die Überprüfung und Freigabe seiner Daten:"."\n"; + $copy1line = "Ein neuer Vertriebspartner hat sich registriert und wartet auf die Überprüfung und Freigabe seiner Daten:"."\n"; $copy1line .= "+ Überprüfung der Ausweisdate"."\n"; $copy1line .= "+ Überprüfung des Gewerbenachweises"."\n"; $copy1line .= "+ Eintrag Account ID"."\n"; $copy1line .= "+ Überprüfung / Kenntnisnahme Sponsor"."\n"; $copy1line .= "+ Überprüfung der Rechnungsdaten"."\n"; - $copy1line .= 'Nach erfolgreicher Überprüfung mit dem Button „Daten vollständig => Berater freischalten“ den Berater freischalten.'."\n"; - $copy1line .= 'Der Berater erhält eine Mail, dass sein Account freigeschaltet wurde. Der Vertrag wird automatisch mit den Daten des Vertriebspartners erstellt.'."\n"; + $copy1line .= 'Nach erfolgreicher Überprüfung mit dem Button „Daten vollständig => Vertriebspartner freischalten“ den Vertriebspartner freischalten.'."\n"; + $copy1line .= 'Der Vertriebspartner erhält eine Mail, dass sein Account freigeschaltet wurde. Der Vertrag wird automatisch mit den Daten des Vertriebspartners erstellt.'."\n"; return $this->view('emails.info')->with([ 'url' => route('admin_lead_edit', $this->user->id).'?show=check_lead', - 'title' => 'Berater Registrierung prüfen', - 'button' => 'zur Berater Prüfung', + 'title' => 'Vertriebspartner Registrierung prüfen', + 'button' => 'zur Vertriebspartner Prüfung', 'copy1line' => $copy1line, 'copy2line' => __('email.copy2line'), 'content' => $content, diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index 1eaef29..3807797 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -6,6 +6,7 @@ namespace App\Models; +use App\Services\Util; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; @@ -35,6 +36,8 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereShowAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereUpdatedAt($value) * @mixin \Eloquent + * @property string|null $max_price + * @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereMaxPrice($value) */ class PaymentMethod extends Model { @@ -52,6 +55,7 @@ class PaymentMethod extends Model 'name', 'short', 'show_at', + 'max_price', 'pos', 'default', 'active' @@ -59,11 +63,11 @@ class PaymentMethod extends Model public static $showATs = [ 0 => 'Nur Kunden Shop', - 1 => 'Nur Berater Shop', - 2 => 'Kunden + Berater Shop', - 3 => 'Nur Reg/Mitgliedschaft Berater', - 4 => 'Kunden + Berater Shop + Reg/Mitgliedschaft', - 5 => 'Berater Shop + Reg/Mitgliedschaft', + 1 => 'Nur Vertriebspartner Shop', + 2 => 'Kunden + Vertriebspartner Shop', + 3 => 'Nur Reg/Mitgliedschaft Vertriebspartner', + 4 => 'Kunden + Vertriebspartner Shop + Reg/Mitgliedschaft', + 5 => 'Vertriebspartner Shop + Reg/Mitgliedschaft', 9 => 'überall', ]; @@ -74,4 +78,37 @@ class PaymentMethod extends Model public static function getDefaultAsArray($short=false){ return PaymentMethod::where('active', true)->where('default', true)->pluck('id'); } + + public function setMaxPriceAttribute($value) + { + $this->attributes['max_price'] = $value ? Util::reFormatNumber($value) : null; + } + + public function getFormattedMaxPrice() + { + return isset($this->attributes['max_price']) ? Util::formatNumber($this->attributes['max_price']) : ""; + } + + /** + * @param $short //PP FNC VOR CC SB ... + * @param $user_payment_methods //PaymentMethod [] IDs + * @param $total //Full price + */ + public static function isShowPaymentMethod($short, $user_payment_methods, $total = 0){ + + $payment_method = PaymentMethod::whereShort($short)->first(); + + if($payment_method && $payment_method->active){ + if(in_array($payment_method->id, $user_payment_methods)){ + if($payment_method->max_price > 0){ + if($payment_method->max_price >= $total){ + return true; + } + }else{ + return true; + } + } + } + return false; + } } diff --git a/app/Models/Product.php b/app/Models/Product.php index 6a59e2c..fef49cd 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -103,13 +103,20 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property-read int|null $country_prices_count * @property int|null $wp_number * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWpNumber($value) - * @property bool|null $shipping_addon + * @property bool|null $single_commission * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShippingAddon($value) * @property-read int|null $ingredients_count * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients * @property-read int|null $product_ingredients_count * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ingredient[] $p_ingredients * @property-read int|null $p_ingredients_count + * @property bool $amount_commission + * @property string|null $value_commission + * @property string|null $partner_commission + * @method static \Illuminate\Database\Eloquent\Builder|Product whereAmountCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product wherePartnerCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereSingleCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereValueCommission($value) */ class Product extends Model { @@ -132,7 +139,8 @@ class Product extends Model 'trans_ingredients' => 'array', 'action' => 'array', 'wp_number' => 'int', - 'shipping_addon' => 'bool', + 'single_commission' => 'bool', + 'amount_commission' => 'bool', 'active' => 'bool' ]; use Sluggable; @@ -164,7 +172,10 @@ class Product extends Model 'amount', 'active', 'show_at', - 'shipping_addon', + 'single_commission', + 'amount_commission', + 'value_commission', + 'partner_commission', 'identifier', 'action', 'upgrade_to_id' @@ -175,8 +186,8 @@ class Product extends Model 'show_upgrade' => 'Kann geupdatet werden', 'show_order' => 'Wird immer als Option angezeigt', 'upgrade' => 'Produktupgrade zur Produkt ID', - 'upgrade_member' => 'Beraterupgrade zur Karriere ID', - //'proportional_voucher' => 'Anteiliger Gutschein Berater', + 'upgrade_member' => 'Vertriebspartnerupgrade zur Karriere ID', + //'proportional_voucher' => 'Anteiliger Gutschein Vertriebspartner', ]; @@ -190,12 +201,12 @@ class Product extends Model public $showATs = [ 0 => 'Nur Kunden Bestellungen', - 1 => 'Kunden + Berater Bestellungen', - 2 => 'Nur Berater Bestellungen', - 3 => 'Registrierung / Mitgliedschaft Berater', - 4 => 'Nur Mitgliedschaft Berater', - //5 => 'Onboarding Berater', - //6 => 'Onboarding Berater + Berater Shop', + 1 => 'Kunden + Vertriebspartner Bestellungen', + 2 => 'Nur Vertriebspartner Bestellungen', + 3 => 'Registrierung / Mitgliedschaft Vertriebspartner', + 4 => 'Nur Mitgliedschaft Vertriebspartner', + //5 => 'Onboarding Vertriebspartner', + //6 => 'Onboarding Vertriebspartner + Vertriebspartner Shop', 7 => 'zur internen Berechnung', ]; @@ -279,6 +290,14 @@ class Product extends Model $this->attributes['price_old'] = $value ? Util::reFormatNumber($value) : null; } + public function setValueCommissionAttribute( $value ) { + $this->attributes['value_commission'] = $value ? Util::reFormatNumber($value) : 0; + } + + public function setPartnerCommissionAttribute( $value ) { + $this->attributes['partner_commission'] = $value ? Util::reFormatNumber($value) : 0; + } + public function getFormattedPrice() { return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : ""; @@ -298,6 +317,16 @@ class Product extends Model { return isset($this->attributes['price_old']) ? Util::formatNumber($this->attributes['price_old']) : ""; } + public function getFormattedValueCommission() + { + return isset($this->attributes['value_commission']) ? Util::formatNumber($this->attributes['value_commission']) : 0; + } + + public function getFormattedPartnerCommission() + { + return isset($this->attributes['partner_commission']) ? Util::formatNumber($this->attributes['partner_commission']) : 0; + } + /*price by user Factor*/ private function calcPriceUserFactor($price){ diff --git a/app/Models/Setting.php b/app/Models/Setting.php index e3a0761..268168e 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -12,7 +12,7 @@ use Illuminate\Database\Eloquent\Model; /** * Class Setting - * + * * @property int $id * @property string|null $identifier * @property string $slug @@ -23,8 +23,27 @@ use Illuminate\Database\Eloquent\Model; * @property int $status * @property Carbon|null $created_at * @property Carbon|null $updated_at - * * @package App\Models + * @property string|null $full_text + * @property string|null $text + * @property string|null $type + * @method static \Illuminate\Database\Eloquent\Builder|Setting findSimilarSlugs(string $attribute, array $config, string $slug) + * @method static \Illuminate\Database\Eloquent\Builder|Setting newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|Setting newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|Setting query() + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereFullText($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereIdentifier($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereObject($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereReferenz($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereText($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereType($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereUpdatedAt($value) + * @mixin \Eloquent */ class Setting extends Model { diff --git a/app/Models/ShoppingOrder.php b/app/Models/ShoppingOrder.php index 50f60c7..812bf2b 100644 --- a/app/Models/ShoppingOrder.php +++ b/app/Models/ShoppingOrder.php @@ -69,7 +69,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder withoutTrashed() * @property-read \App\Models\ShippingCountry $shipping_country * @property float|null $shipping_net - * @property float|null $subtotal_ws + * @property float|null $subtotal_shipping * @property int|null $points * @property int|null $shipped * @property string|null $tracking @@ -82,6 +82,15 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereWpInvoicePath($value) * @property array|null $wp_notice * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereWpNotice($value) + * @property string|null $subtotal_full + * @property-read \App\Models\ShoppingOrderMargin|null $shopping_order_margin + * @property-read \App\Models\ShoppingPayment|null $shopping_payment_last + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalFull($value) + * @property string|null $discount + * @property string|null $payment_credit + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereDiscount($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder wherePaymentCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalShipping($value) */ class ShoppingOrder extends Model { @@ -97,11 +106,15 @@ class ShoppingOrder extends Model 'country_id', 'user_shop_id', 'total', + 'subtotal_full', + 'discount', 'subtotal', 'shipping', 'shipping_net', - 'subtotal_ws', + 'subtotal_shipping', 'tax', + 'total_without_credit', + 'payment_credit', 'total_shipping', 'points', 'weight', @@ -176,6 +189,10 @@ class ShoppingOrder extends Model return $this->hasOne('App\Models\UserHistory','shopping_order_id')->latest(); } + public function shopping_order_margin() + { + return $this->hasOne('App\Models\ShoppingOrderMargin','shopping_order_id')->latest(); + } public function shopping_order_items(){ return $this->hasMany('App\Models\ShoppingOrderItem', 'shopping_order_id'); @@ -228,11 +245,21 @@ class ShoppingOrder extends Model return formatNumber($this->attributes['total']); } + public function getFormattedSubtotalFull() + { + return formatNumber($this->attributes['subtotal_full']); + } + public function getFormattedSubtotal() { return formatNumber($this->attributes['subtotal']); } + public function getFormattedDiscount() + { + return formatNumber($this->attributes['discount']); + } + public function getFormattedShipping() { return formatNumber($this->attributes['shipping']); @@ -243,15 +270,24 @@ class ShoppingOrder extends Model return formatNumber($this->attributes['shipping_net']); } - public function getFormattedSubtotalWs() + public function getFormattedSubtotalShipping() { - return formatNumber($this->attributes['subtotal_ws']); + return formatNumber($this->attributes['subtotal_shipping']); } public function getFormattedTax() { return formatNumber($this->attributes['tax']); } + public function getFormattedTotalWithoutCredit() + { + return formatNumber($this->attributes['total_without_credit']); + } + public function getFormattedPaymentCredit() + { + return formatNumber($this->attributes['payment_credit']); + } + public function getFormattedTotalShipping() { diff --git a/app/Models/ShoppingOrderMargin.php b/app/Models/ShoppingOrderMargin.php new file mode 100644 index 0000000..f7c740b --- /dev/null +++ b/app/Models/ShoppingOrderMargin.php @@ -0,0 +1,108 @@ + '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', + 'paid' => 'bool', + 'cancellation' => 'bool', + 'status' => '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', + 'paid', + 'cancellation', + 'status', + 'content' + ]; + + 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'); + } +} diff --git a/app/Models/UserLevel.php b/app/Models/UserLevel.php index 0fd87bb..63dce5d 100644 --- a/app/Models/UserLevel.php +++ b/app/Models/UserLevel.php @@ -31,15 +31,21 @@ use Illuminate\Database\Eloquent\Model; * @property array|null $trans_content * @method static \Illuminate\Database\Eloquent\Builder|UserLevel whereContent($value) * @method static \Illuminate\Database\Eloquent\Builder|UserLevel whereTransContent($value) + * @property bool $partner_provision + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserLevelMargin[] $user_level_margins + * @property-read int|null $user_level_margins_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserLevelMargin[] $user_level_margins_re + * @property-read int|null $user_level_margins_re_count + * @method static \Illuminate\Database\Eloquent\Builder|UserLevel wherePartnerProvision($value) */ class UserLevel extends Model { protected $table = 'user_levels'; - protected $casts = ['trans_name' => 'array', 'trans_content' => 'array']; + protected $casts = ['trans_name' => 'array', 'trans_content' => 'array', 'partner_provision'=>'bool']; protected $fillable = [ - 'name', 'content', 'pos', 'active', + 'name', 'content', 'pos', 'active', 'partner_provision', ]; @@ -49,6 +55,17 @@ class UserLevel extends Model } */ + + public function user_level_margins() + { + return $this->hasMany('App\Models\UserLevelMargin', 'user_level_id', 'id'); + } + + public function user_level_margins_re() + { + return $this->hasMany('App\Models\UserLevelMargin', 'user_level_id', 'id')->orderBy('price_from', 'DESC'); + } + public function setPosAttribute($value){ $this->attributes['pos'] = is_numeric($value) ? $value : null; diff --git a/app/Models/UserLevelMargin.php b/app/Models/UserLevelMargin.php new file mode 100644 index 0000000..31c0eaf --- /dev/null +++ b/app/Models/UserLevelMargin.php @@ -0,0 +1,90 @@ + 'int', + 'price_from' => 'float', + 'trading_margin' => 'float', + 'commission' => 'float' + ]; + + protected $fillable = [ + 'user_level_id', + 'price_from', + 'trading_margin', + 'commission' + ]; + + public function user_level() + { + return $this->belongsTo(UserLevel::class); + } + + + public function setPriceFromAttribute($value) + { + $this->attributes['price_from'] = $value ? Util::reFormatNumber($value) : 0; + } + + public function getFormattedPriceFrom() + { + return isset($this->attributes['price_from']) ? Util::formatNumber($this->attributes['price_from']) : ""; + } + + public function setTradingMarginAttribute($value) + { + $this->attributes['trading_margin'] = $value ? Util::reFormatNumber($value) : 0; + } + + public function getFormattedTradingMargin() + { + return isset($this->attributes['trading_margin']) ? Util::formatNumber($this->attributes['trading_margin']) : ""; + } + + public function setCommissionAttribute($value) + { + $this->attributes['commission'] = $value ? Util::reFormatNumber($value) : 0; + } + + public function getFormattedCommission() + { + return isset($this->attributes['commission']) ? Util::formatNumber($this->attributes['commission']) : ""; + } +} diff --git a/app/Repositories/ContractPDFRepository.php b/app/Repositories/ContractPDFRepository.php index 98f2446..47cd281 100644 --- a/app/Repositories/ContractPDFRepository.php +++ b/app/Repositories/ContractPDFRepository.php @@ -128,7 +128,7 @@ class ContractPDFRepository extends BaseRepository { if(!Storage::disk($this->disk)->exists( $this->dir )){ Storage::disk($this->disk)->makeDirectory($this->dir); //creates directory } - $filename = "Beratervertrag.pdf"; + $filename = "Vertriebspartnervertrag.pdf"; Storage::disk($this->disk)->put($this->dir.$filename, $pdf->Output('S')); $size = Storage::disk($this->disk)->size($this->dir.$filename); $mine = Storage::disk($this->disk)->getMimeType($this->dir.$filename); diff --git a/app/Repositories/ProductRepository.php b/app/Repositories/ProductRepository.php index 432148b..5117861 100644 --- a/app/Repositories/ProductRepository.php +++ b/app/Repositories/ProductRepository.php @@ -27,9 +27,8 @@ class ProductRepository extends BaseRepository { { $data['active'] = isset($data['active']) ? 1 : 0; - $data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0; - - + $data['single_commission'] = isset($data['single_commission']) ? 1 : 0; + $data['amount_commission'] = isset($data['amount_commission']) ? 1 : 0; if($data['id'] === "new"){ $this->model = Product::create($data); } diff --git a/app/Services/HTMLHelper.php b/app/Services/HTMLHelper.php index 09602fe..9ef46eb 100644 --- a/app/Services/HTMLHelper.php +++ b/app/Services/HTMLHelper.php @@ -65,6 +65,29 @@ class HTMLHelper } + public static function setContentReadMore($content){ + + $sep = '##mehr lesen##'; + if(strpos($content, $sep) !== false){ + $name = 'collapse_'.random_int(1000, 10000); + $split = explode($sep, $content); + $first = isset($split[0]) ? $split[0] : ""; + $text = isset($split[1]) ? $split[1] : ""; + + $content = $first; + $content .= '
'; + $content .= '
+
+ '.$text.' +
+
'; + } + return $content; + } + public static function getRolesOptions(){ $ret = ""; foreach (self::$roles as $role_id => $value){ diff --git a/app/Services/Payment.php b/app/Services/Payment.php index d8bfcdb..b81e863 100644 --- a/app/Services/Payment.php +++ b/app/Services/Payment.php @@ -141,6 +141,21 @@ class Payment } } + //if the order has action + if($shopping_order->shopping_user->is_from === 'user_order'){ + //is margin -> set paid + $shopping_order->shopping_order_margin->paid = true; + $shopping_order->shopping_order_margin->save(); + //is payment credit, reduce + if($shopping_order->shopping_order_margin->from_payment_credit > 0){ + $new_credit = $shopping_order->auth_user->payment_credit - $shopping_order->shopping_order_margin->from_payment_credit; + $new_credit = $new_credit < 0 ? 0 : $new_credit; + $shopping_order->auth_user->payment_credit = $new_credit; + $shopping_order->auth_user->save(); + } + + } + return $send_link; } diff --git a/app/Services/Slim.php b/app/Services/Slim.php index 79b0faf..f282d5b 100644 --- a/app/Services/Slim.php +++ b/app/Services/Slim.php @@ -43,10 +43,10 @@ class Slim { if (empty($value)) {return null;} // If magic quotes enabled - if (get_magic_quotes_gpc()) { + /* if (get_magic_quotes_gpc()) { $value = stripslashes($value); } - +*/ // The data is posted as a JSON String so to be used it needs to be deserialized first $data = json_decode($value); diff --git a/app/Services/UserMarign.php b/app/Services/UserMarign.php new file mode 100644 index 0000000..fa98dff --- /dev/null +++ b/app/Services/UserMarign.php @@ -0,0 +1,87 @@ +startOfMonth()->toDateString(); + $endDay = $now->endOfMonth()->toDateString(); + + $sum_net_amount = ShoppingOrderMargin::whereUserId($user->id) + ->whereBetween('from', [$startDay, $endDay]) + ->wherePaid(true) + ->whereCancellation(false) + ->sum('net_price'); + if($format){ + $sum_net_amount = Util::formatNumber($sum_net_amount); + } + return $sum_net_amount; + } + + public static function getMontlyPriceOpen(User $user, $date = null, $format = false){ + + $now = $date ? Carbon::parse($date) : Carbon::now(); + $startDay = $now->startOfMonth()->toDateString(); + $endDay = $now->endOfMonth()->toDateString(); + + $sum_net_amount = ShoppingOrderMargin::whereUserId($user->id) + ->whereBetween('from', [$startDay, $endDay]) + ->wherePaid(false) + ->whereCancellation(false) + ->sum('net_price'); + if($format){ + $sum_net_amount = Util::formatNumber($sum_net_amount); + } + return $sum_net_amount; + } + + public static function getMontlyAmount(User $user, $date = null, $format = false){ + + $now = $date ? Carbon::parse($date) : Carbon::now(); + $startDay = $now->startOfMonth()->toDateString(); + $endDay = $now->endOfMonth()->toDateString(); + + $sum_net_amount = ShoppingOrderMargin::whereUserId($user->id) + ->whereBetween('from', [$startDay, $endDay]) + ->wherePaid(true) + ->whereCancellation(false) + ->sum('net_amount'); + if($format){ + $sum_net_amount = Util::formatNumber($sum_net_amount); + } + + return $sum_net_amount; + } + + + + public static function getMontlyPartnerCommission(User $user, $date = null, $format = false){ + + $now = $date ? Carbon::parse($date) : Carbon::now(); + $startDay = $now->startOfMonth()->toDateString(); + $endDay = $now->endOfMonth()->toDateString(); + + $sum_net_amount = ShoppingOrderMargin::whereMSponsorId($user->id) + ->whereBetween('from', [$startDay, $endDay]) + ->wherePaid(true) + ->whereCancellation(false) + ->sum('net_partner_commission'); + if($format){ + $sum_net_amount = Util::formatNumber($sum_net_amount); + } + + return $sum_net_amount; + } + //monthy amount, sum + +} \ No newline at end of file diff --git a/app/Services/Yard.php b/app/Services/Yard.php index a333b0b..e61d272 100644 --- a/app/Services/Yard.php +++ b/app/Services/Yard.php @@ -3,6 +3,9 @@ namespace App\Services; use App\Models\Product; use App\Models\ShippingCountry; +use App\Services\Yard\Commission; +use App\Services\Yard\Margin; +use App\Services\Yard\MarginItems; use Gloudemans\Shoppingcart\Cart; use Gloudemans\Shoppingcart\CartItem; use Gloudemans\Shoppingcart\Contracts\Buyable; @@ -23,6 +26,13 @@ class Yard extends Cart private $ysession; private $yinstance; private $shopping_data = []; + private $user; + private $payment_credit; + + private $yard_commission; + private $yard_margin; + + private $global_tax_rate = 19; public function __construct(SessionManager $session, Dispatcher $events) { @@ -52,6 +62,25 @@ class Yard extends Cart $this->shipping_is_for = $this->getYardExtra('shipping_is_for'); } + if($this->getYardExtra('shopping_user')){ + $this->user = $this->getYardExtra('shopping_user'); + } + + if($this->getYardExtra('user')){ + $this->user = $this->getYardExtra('user'); + } + if($this->getYardExtra('payment_credit')){ + $this->payment_credit = $this->getYardExtra('payment_credit'); + } + + if($this->getYardExtra('yard_commission')){ + $this->yard_commission = $this->getYardExtra('yard_commission'); + } + + if($this->getYardExtra('yard_margin')){ + $this->yard_margin = $this->getYardExtra('yard_margin'); + } + /*if($this->getYardExtra('num_comp')){ $this->num_comp = $this->getYardExtra('num_comp'); }*/ @@ -123,10 +152,111 @@ class Yard extends Cart } - public function reCalculateShippingPrice(){ + public function reCalculate(){ $this->calculateShippingPrice(); } + /* * ***** */ + public function calculateMargins(){ + //get user monthy amount + $monthy_amount = UserMarign::getMontlyAmount($this->user); + + $content = $this->getContent(); + + /*single + partner Commissions */ + //get price net commission, add amount, partner (total) from products is single_commission + $yard_commission = new Commission(); + $yard_commission = $content->reduce(function ($yard_commission, CartItem $cartItem) { + $price_net = $cartItem->price / ((100 + $cartItem->taxRate) / 100); + if($cartItem->options->single_commission){ + $value_commission = $price_net / 100 * $cartItem->options->value_commission; + $partner_commission = $price_net / 100 * $cartItem->options->partner_commission; + + $price_net_commission = ($cartItem->qty * $price_net) - ($cartItem->qty * $value_commission); + $yard_commission->single_price_net += ($cartItem->qty * $price_net); + $yard_commission->single_value_commission += ($cartItem->qty * $value_commission); + if($this->user->user_level->partner_provision){ + $yard_commission->single_partner_commission += ($cartItem->qty * $partner_commission); + } + $yard_commission->single_price_net_commission += $price_net_commission; + // + if($cartItem->options->amount_commission){ + $yard_commission->single_amount_commission += $price_net_commission; + } + }else{ + $yard_commission->price_net = $yard_commission->price_net + ($cartItem->qty * $price_net); + } + return $yard_commission; + }, $yard_commission); + + $this->yard_commission = $yard_commission; + $this->putYardExtra('yard_commission', $this->yard_commission); + + //dump($monthy_amount); + //add to $monthy_amount für max level margins + $start_monthy_amount = $monthy_amount + $yard_commission->single_amount_commission; + $end_monthy_amount = $start_monthy_amount + $yard_commission->price_net; + + //dump($start_monthy_amount); + //dump($end_monthy_amount); + + $margin = new Margin(); + $rest_amount = 0; + $range = 0; + $price_net = $yard_commission->price_net; + if($yard_commission->price_net > 0 && $this->user && $this->user->user_level && $this->user->user_level->user_level_margins){ + foreach ($this->user->user_level->user_level_margins_re as $user_level_margin) { + //total split? + if ($end_monthy_amount >= $user_level_margin->price_from) { + if(!isset($balance)){ + if($start_monthy_amount >= $user_level_margin->price_from){ + $balance = $yard_commission->price_net; + $rest_amount = 0; + }else{ + $balance = $end_monthy_amount - $user_level_margin->price_from; + $rest_amount = $end_monthy_amount - ($start_monthy_amount + $balance); + } + }else{ + $range = $last_limit-$user_level_margin->price_from; + if($rest_amount >= $range){ + $balance = $range; + }else{ + $balance = $rest_amount; + } + $rest_amount = $rest_amount-$balance; + } + $last_limit = $user_level_margin->price_from; + if($balance != 0){ + $margin->add($user_level_margin->price_from, [ + 'price_net' => $price_net, + 'range' => $range, + 'rest_amount' => $rest_amount, + 'balance' => $balance, + 'trading_margin'=> $user_level_margin->trading_margin, + 'commission'=> $user_level_margin->commission, + ]); + } + } + } + } + + + $margin->setCommission($this->yard_commission); + $margin->calculate(); + + $this->yard_margin = $margin; + $this->putYardExtra('yard_margin', $this->yard_margin); + + //dump($margin); + } + + public function getYardMargin(){ + return $this->yard_margin; + } + public function getYardCommission(){ + return $this->yard_commission; + } + /* * ***** */ public function setShippingCountryWithPrice($shipping_country_id, $shipping_is_for = 'ot') { $this->shipping_country_id = $shipping_country_id; @@ -139,6 +269,21 @@ class Yard extends Cart } + public function setShoppingUser($user, $payment_credit = false){ + $this->user = $user; + $this->payment_credit = $payment_credit; + $this->putYardExtra('user', $user); + $this->putYardExtra('payment_credit', $payment_credit); + + } + + public function getPaymentCredit(){ + if($this->payment_credit && $this->user->payment_credit > 0){ + return $this->user->payment_credit; + } + return 0; + } + private function calculateShippingPrice(){ $shippingCountry = ShippingCountry::find($this->shipping_country_id); @@ -151,10 +296,8 @@ class Yard extends Cart $shipping_price->price = 0; $shipping_price->price_comp = 0; }else{ - - //first by price - $shipping_price = $this->shippingPriceByTotal($shipping->shipping_prices, $this->total(2, '.', '')); + $shipping_price = $this->shippingPriceBySubTotal($shipping->shipping_prices, $this->subtotal(2, '.', '')); //sec by weight if(!$shipping_price){ $shipping_price = $this->shippingPriceByWeight($shipping->shipping_prices, $this->weight()); @@ -186,7 +329,7 @@ class Yard extends Cart } } - private function shippingPriceByTotal($prices, $total){ + private function shippingPriceBySubTotal($prices, $total){ foreach ($prices as $price){ if($price->total_from > 0 && $price->total_to > 0){ if($total >= $price->total_from && $total <= $price->total_to){ @@ -243,19 +386,56 @@ class Yard extends Cart public function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { - $total = $this->totalWithShipping(2, '.', ''); + + // $total = $this->totalWithShipping(2, '.', ''); // $totalTax = (float) $this->tax(2, '.', '') + $this->shipping_tax; - $totalTax = $this->subtotalWithShipping(2, '.', ''); - return $this->numberFormat(($total - $totalTax), $decimals, $decimalPoint, $thousandSeperator); + $subtotal_shipping = $this->subtotalWithShipping(2, '.', ''); + return $this->numberFormat(($subtotal_shipping / 100 * $this->global_tax_rate), $decimals, $decimalPoint, $thousandSeperator); } public function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { - $total = (float) ($this->total(2, '.', '')) + $this->shipping_price; + //$total = (float) ($this->total(2, '.', '')) + $this->shipping_price; + $subtotal_shipping = $this->subtotalWithShipping(2, '.', ''); + $tax = $subtotal_shipping / 100 * $this->global_tax_rate; + $total = ($subtotal_shipping + $tax); + if($PaymentCredit = $this->getPaymentCredit()){ + $total = $total - $PaymentCredit; + if($total < 0){ + $total = 0; + } + } return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); } + + public function totalWithShippingWithoutCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + //$total = (float) ($this->total(2, '.', '')) + $this->shipping_price; + $subtotal_shipping = $this->subtotalWithShipping(2, '.', ''); + $tax = $subtotal_shipping / 100 * $this->global_tax_rate; + $total = ($subtotal_shipping + $tax); + return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); + } + + public function totalfromCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $rest = 0; + if ($PaymentCredit = $this->getPaymentCredit()) { + $subtotal_shipping= $this->subtotalWithShipping(2, '.', ''); + $tax = $subtotal_shipping/ 100 * $this->global_tax_rate; + $total = ($subtotal_shipping+ $tax); + $rest = $PaymentCredit - $total; + if($rest < 0){ + $rest = $PaymentCredit; + }else{ + $rest = $PaymentCredit - $rest; + } + } + return $this->numberFormat($rest, $decimals, $decimalPoint, $thousandSeperator); + } + /** * Get the total price of the items in the cart. * @@ -270,7 +450,6 @@ class Yard extends Cart $total = $content->reduce(function ($total, CartItem $cartItem) { return $total + ($cartItem->options->weight ? ($cartItem->options->weight*$cartItem->qty) : 0); }, 0); - return $total; } @@ -280,7 +459,6 @@ class Yard extends Cart $total = $content->reduce(function ($total, CartItem $cartItem) { return $total + ($cartItem->options->points ? ($cartItem->options->points * $cartItem->qty) : 0); }, 0); - return $total; } @@ -312,10 +490,8 @@ class Yard extends Cart if ($withFees === true) { $fees = $this->feeTotal(null, null, null, true); - $total = $total + $fees; } - return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); } @@ -340,7 +516,6 @@ class Yard extends Cart if ($withFees === true) { $fees = $this->feeTax(); - $tax = $tax + floatval($fees); } @@ -356,7 +531,7 @@ class Yard extends Cart * @param string $thousandSeperator * @return float */ - public function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null) + public function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $discount = true) { $content = $this->getContent(); @@ -365,6 +540,9 @@ class Yard extends Cart return $subTotal + ($cartItem->qty * $price_net); }, 0); + if($discount && $this->yard_margin){ + $subTotal -= $this->yard_margin->net_discount; + } return $this->numberFormat($subTotal, $decimals, $decimalPoint, $thousandSeperator); } @@ -379,7 +557,17 @@ class Yard extends Cart if($set_price === 'with'){ $price = $product->getPriceWith(false, true); } - $cartItem = $this->getCartItem($product->id, $product->getLang('name'), 1, $price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); + $cartItem = $this->getCartItem($product->id, $product->getLang('name'), 1, $price, + [ + 'image' => $image, + 'slug' => $product->slug, + 'weight' => $product->weight, + 'single_commission' => $product->single_commission, + 'amount_commission' => $product->amount_commission, + 'value_commission' => $product->value_commission, + 'partner_commission' => $product->partner_commission, + ] + ); $content = $this->getContent(); if ($content->has($cartItem->rowId)){ diff --git a/app/Services/Yard/Commission.php b/app/Services/Yard/Commission.php new file mode 100644 index 0000000..ebc4b31 --- /dev/null +++ b/app/Services/Yard/Commission.php @@ -0,0 +1,34 @@ +price_net = 0; + $this->single_price_net = 0; + $this->single_amount_commission = 0; + $this->single_partner_commission = 0; + $this->single_value_commission = 0; + $this->single_price_net_commission = 0; + } + + public function isCommission(){ + return ($this->single_value_commission > 0) ? true : false; + } + + public function getFormatted($key) + { + return isset($this->{$key}) ? Util::formatNumber($this->{$key}) : ""; + } +} \ No newline at end of file diff --git a/app/Services/Yard/Margin.php b/app/Services/Yard/Margin.php new file mode 100644 index 0000000..b4a9911 --- /dev/null +++ b/app/Services/Yard/Margin.php @@ -0,0 +1,104 @@ +items = new Collection; + } + + public function add($price_from, $values){ + $this->items->push(new MarginItems($price_from, $values)); + } + + public function setCommission(Commission $commission){ + $this->commission = $commission; + } + public function isMargin(){ + return count($this->items) ? true : false; + } + + public function calculate(){ + + if($this->commission){ + $this->net_discount += $this->commission->single_value_commission; + $this->net_partner_commission += $this->commission->single_partner_commission; + $this->net_amount += $this->commission->single_amount_commission; + $this->net_price += $this->commission->single_price_net_commission; + + } + + if($this->isMargin()){ + foreach ($this->items as $item){ + $this->net_discount += $item->value_margin; + $this->net_partner_commission += $item->value_commission; + $this->net_amount += $item->new_price_net; + $this->net_price += $item->new_price_net; + } + } + + } + public function getFormatted($key) + { + return isset($this->{$key}) ? Util::formatNumber($this->{$key}) : ""; + } + + + public function toArray() + { + return [ + 'items' => $this->items, + 'commission' => $this->commission, + 'net_discount' => $this->net_discount, + 'net_partner_commission' => $this->net_partner_commission, + 'net_price' => $this->net_price, + 'net_amount' => $this->net_amount, + ]; + } + + + public function restore($content) + { + + // Unserialize the content (either array if new, or collection if old) + $storedContent = unserialize($content); + + if (is_array($storedContent)) { + $this->fromArray($storedContent); + } + //TODO - check this + // If the old approach and is Collection, push into existing items + /* if ($storedContent instanceof Collection) { + foreach ($storedContent as $item) { + $this->items->put($item); + } + }*/ + + } + + + public function fromArray($array) + { + $this->items = $array['items']; + $this->commission = $array['commission']; + $this->net_discount = $array['net_discount']; + $this->net_partner_commission = $array['net_partner_commission']; + $this->net_price = $array['net_price']; + $this->net_amount = $array['net_amount']; + + return $this; + } + +} \ No newline at end of file diff --git a/app/Services/Yard/MarginItems.php b/app/Services/Yard/MarginItems.php new file mode 100644 index 0000000..757ce24 --- /dev/null +++ b/app/Services/Yard/MarginItems.php @@ -0,0 +1,46 @@ +price_from = $price_from; + $this->range = $values['range']; + $this->rest_amount = $values['rest_amount']; + $this->balance = $values['balance']; + $this->trading_margin = $values['trading_margin']; + $this->commission = $values['commission']; + $this->calculate(); + } + + public function calculate(){ + $this->value_margin = $this->balance / 100 * $this->trading_margin; + $this->new_price_net = $this->balance - $this->value_margin; + if($this->commission > 0){ + $this->value_commission = $this->balance / 100 * $this->commission; + } + } + + + + public function getFormatted($key) + { + return isset($this->{$key}) ? Util::formatNumber($this->{$key}) : ""; + } +} \ No newline at end of file diff --git a/app/User.php b/app/User.php index 41e88d5..66044cc 100644 --- a/app/User.php +++ b/app/User.php @@ -96,6 +96,8 @@ use Util; * @property string|null $payment_account * @property-read \App\Models\UserLevel|null $next_user_level * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentAccount($value) + * @property string|null $payment_credit + * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentCredit($value) */ class User extends Authenticatable { diff --git a/database/migrations/2018_09_30_165917_create_user_levels_table.php b/database/migrations/2018_09_30_165917_create_user_levels_table.php index c15174f..4974330 100644 --- a/database/migrations/2018_09_30_165917_create_user_levels_table.php +++ b/database/migrations/2018_09_30_165917_create_user_levels_table.php @@ -21,6 +21,8 @@ class CreateUserLevelsTable extends Migration $table->text('content')->nullable(); $table->text('trans_content')->nullable(); + $table->boolean('partner_provision')->default(false); + $table->tinyInteger('pos')->unsigned()->nullable(); $table->boolean('active')->default(false); diff --git a/database/migrations/2018_10_21_164001_create_products_table.php b/database/migrations/2018_10_21_164001_create_products_table.php index 1de155f..2b193bd 100644 --- a/database/migrations/2018_10_21_164001_create_products_table.php +++ b/database/migrations/2018_10_21_164001_create_products_table.php @@ -61,7 +61,12 @@ class CreateProductsTable extends Migration $table->tinyInteger('show_at')->unsigned()->nullable()->default(0); - $table->boolean('shipping_addon')->default(false); + $table->tinyInteger('amount_commission')->unsigned()->nullable()->default(0); + + $table->boolean('single_commission')->default(false); + $table->decimal('value_commission', 5, 2)->nullable(); + $table->decimal('partner_commission', 5, 2)->nullable(); + $table->string('identifier', 20)->nullable(); $table->string('action')->nullable(); diff --git a/database/migrations/2020_07_25_131854_create_payment_methods_table.php b/database/migrations/2020_07_25_131854_create_payment_methods_table.php index fbd649f..57a2a27 100644 --- a/database/migrations/2020_07_25_131854_create_payment_methods_table.php +++ b/database/migrations/2020_07_25_131854_create_payment_methods_table.php @@ -19,6 +19,8 @@ class CreatePaymentMethodsTable extends Migration $table->string('short', 10); $table->unsignedTinyInteger('show_at')->nullable()->default(0); $table->unsignedTinyInteger('pos')->nullable()->default(0); + $table->decimal('max_price', 8, 2)->nullable(); + $table->boolean('active')->default(false); $table->boolean('default')->default(false); diff --git a/database/migrations/2020_12_23_163527_create_shopping_orders_table.php b/database/migrations/2020_12_23_163527_create_shopping_orders_table.php index 8b95b54..42eb071 100644 --- a/database/migrations/2020_12_23_163527_create_shopping_orders_table.php +++ b/database/migrations/2020_12_23_163527_create_shopping_orders_table.php @@ -26,13 +26,19 @@ class CreateShoppingOrdersTable extends Migration $table->unsignedTinyInteger('payment_for')->nullable(); $table->decimal('total', 13, 2)->nullable(); + $table->decimal('subtotal_full', 13, 2)->nullable(); + $table->decimal('discount', 13, 2)->nullable(); $table->decimal('subtotal', 13, 2)->nullable(); + $table->decimal('shipping', 8, 2)->nullable(); $table->decimal('shipping_net', 8, 2)->nullable(); - $table->decimal('subtotal_ws', 13, 2)->nullable(); + $table->decimal('subtotal_shipping', 13, 2)->nullable(); $table->decimal('tax', 8, 2)->nullable(); + + $table->decimal('total_without_credit', 13, 2)->nullable(); + $table->decimal('payment_credit', 13, 2)->nullable(); $table->decimal('total_shipping', 13, 2)->nullable(); $table->unsignedInteger('points')->nullable(); @@ -47,7 +53,6 @@ class CreateShoppingOrdersTable extends Migration $table->unsignedTinyInteger('shipped')->default(0); $table->string('tracking', 255)->nullable(); - $table->char('mode', 4)->nullable(); $table->timestamps(); diff --git a/database/migrations/2021_01_19_140551_create_user_level_margins_table.php b/database/migrations/2021_01_19_140551_create_user_level_margins_table.php new file mode 100644 index 0000000..48444dd --- /dev/null +++ b/database/migrations/2021_01_19_140551_create_user_level_margins_table.php @@ -0,0 +1,44 @@ +id(); + $table->unsignedInteger('user_level_id'); + + $table->decimal('price_from', 8, 2)->nullable(); + //$table->decimal('price_to', 8, 2)->nullable(); + + $table->decimal('trading_margin', 5, 2)->nullable(); + $table->decimal('commission', 5, 2)->nullable(); + + $table->timestamps(); + + $table->foreign('user_level_id') + ->references('id') + ->on('user_levels') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_level_margins'); + } +} diff --git a/database/migrations/2021_01_21_170707_create_shopping_order_margins_table.php b/database/migrations/2021_01_21_170707_create_shopping_order_margins_table.php new file mode 100644 index 0000000..ba05c86 --- /dev/null +++ b/database/migrations/2021_01_21_170707_create_shopping_order_margins_table.php @@ -0,0 +1,64 @@ +id(); + $table->unsignedInteger('shopping_order_id'); + $table->unsignedInteger('user_id'); + + $table->decimal('net_price', 13, 2)->nullable(); + $table->decimal('net_discount', 13, 2)->nullable(); + $table->decimal('net_amount', 13, 2)->nullable(); + $table->decimal('from_payment_credit', 13, 2)->nullable(); + + $table->unsignedInteger('m_sponsor_id')->nullable(); + $table->decimal('net_partner_commission', 13, 2)->nullable(); + + $table->date('from')->nullable(); + + $table->boolean('paid')->default(false); + $table->boolean('cancellation')->default(false); + $table->unsignedTinyInteger('status')->index()->default(0); + + + $table->text('content')->nullable(); + + $table->timestamps(); + + + $table->foreign('shopping_order_id') + ->references('id') + ->on('shopping_orders'); + + $table->foreign('user_id') + ->references('id') + ->on('users'); + + $table->foreign('m_sponsor_id') + ->references('id') + ->on('users'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shopping_order_margins'); + } +} diff --git a/public/css/mycolors.css b/public/css/mycolors.css new file mode 100644 index 0000000..a49757f --- /dev/null +++ b/public/css/mycolors.css @@ -0,0 +1,102 @@ +body { + line-height: 1.2em; +} +.text-muted { + color: #8e8f90 !important; +} +.btn-primary:hover { + background: #5f7567; +} +.btn-primary:focus, +.btn-primary.focus { + background: #5f7567; +} +a { + color: #46564d; +} + + +a:hover { + color: #5f7567; +} + +.alert-success { + border-color: #f2ffeb; + background-color: #b5c49b; + color: #f2ffea; +} + +.mr-lg-1-5 { + margin-right: 1rem !important; +} + +#accordion a.card-header { + background: #fff; + padding: 0.6rem 1.5rem; +} + +#accordion a.card-header:hover, #accordion a.card-header:focus { + background: #fff; +} + +.text-dark[href]:hover { + color: #696f5b !important +} + +#accordion .card-body { + font-size: 0.95em; +} +.user-view-table tr td:first-child { + width: 220px; +} + +.table th, .table td { + border-top: 1px solid #d6d6de; +} +.btn { + font-weight: 500; +} + +.footer.bg-white .footer-link:hover, .footer.bg-white .footer-link:focus { + color: rgba(0, 0, 0, 0.9); + text-decoration: underline; + +} +.footer.bg-white .footer-link { + color: rgba(0, 0, 0, 1); + text-decoration: none; + +} +.footer p { + color:#000; +} +.footer.bg-white { + background-color: #fff !important; +} +.footer a { + color:#000; + +} +.footer a:hover { + text-decoration: underline; +} + +.badge-success { + background-color: #b5c49b; + color: #fff; +} + +.form-control.has-error { + border: 1px solid #ea8e49; +} +.text-dark.active { + color: #fff !important; + background-color: #928876 !important; +} + +[data-toggle="collapse"].collapsed .if-not-collapsed { + display: none; +} +[data-toggle="collapse"]:not(.collapsed) .if-collapsed { + display: none; +} \ No newline at end of file diff --git a/public/css/theme-corporate.css b/public/css/theme-corporate.css new file mode 100644 index 0000000..dbbb01c --- /dev/null +++ b/public/css/theme-corporate.css @@ -0,0 +1,1346 @@ +body { + background: #f4f1ef; +} + +.bg-body { + background: #f4f1ef !important; +} + +.text-primary { + color: #46564d !important; +} + +a.text-primary:hover, +a.text-primary:focus { + color: #5f7567 !important; +} + +.bg-primary { + background-color: #46564d !important; +} + +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #5f7567 !important; +} + +.bg-primary-dark { + background-color: #5f5442 !important; +} + +a.bg-primary-dark:hover, +a.bg-primary-dark:focus { + background-color: #796f55 !important; +} + +.bg-primary-darker { + background-color: #5f5442 !important; +} + +a.bg-primary-darker:hover, +a.bg-primary-darker:focus { + background-color: #796f55 !important; +} + +html:not([dir=rtl]) .border-primary, +html[dir=rtl] .border-primary { + border-color: #46564d !important; +} + +.badge-primary { + background-color: #46564d; + color: #fff; +} + +.badge-primary[href]:hover, +.badge-primary[href]:focus { + background-color: #928876; + color: #fff; + text-decoration: none; +} + +.btn .badge-primary { + background: #46564d !important; + border-color: #46564d !important; + color: #fff !important; +} + +.badge-outline-primary { + background-color: transparent; + box-shadow: 0 0 0 1px #46564d inset; + color: #46564d; +} + +.badge-outline-primary[href]:hover, +.badge-outline-primary[href]:focus { + color: #46564d; + text-decoration: none; +} + +.btn .badge-outline-primary { + background-color: transparent !important; + box-shadow: 0 0 0 1px #46564d inset !important; + color: #46564d !important; +} + +.page-item.active .page-link, +.page-item.active .page-link:hover, +.page-item.active .page-link:focus, +.pagination li.active > a:not(.page-link), +.pagination li.active > a:not(.page-link):hover, +.pagination li.active > a:not(.page-link):focus { + border-color: #46564d; + background-color: #46564d; + color: #fff; +} + +.progress-bar { + background-color: #46564d; + color: #fff; +} + +.list-group-item-primary { + border-color: rgba(0, 0, 0, 0.07); + background-color: #e9f8ff; + color: #5d6366; +} + +a.list-group-item-primary, +button.list-group-item-primary { + color: #5d6366; +} + +a.list-group-item-primary:hover, +a.list-group-item-primary:focus, +button.list-group-item-primary:hover, +button.list-group-item-primary:focus { + background-color: #e7f6fc; + color: #5d6366; +} + +a.list-group-item-primary.active, +button.list-group-item-primary.active { + border-color: #46564d; + background-color: #46564d; + color: #fff; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + border-color: #46564d; + background-color: #46564d; + color: #fff; +} + +.alert-primary { + border-color: #d1e5f0; + background-color: #def4ff; + color: #596266; +} + +.alert-primary hr { + border-top-color: #d1e5f0; +} + +.alert-primary .alert-link { + color: #596266; +} + +.alert-dark-primary { + background-color: #46564d; + color: #fff; +} + +.alert-dark-primary hr { + border-top-color: rgba(255, 255, 255, 0.2); +} + +.alert-dark-primary .close, +.alert-dark-primary .alert-link { + color: #fff; +} + +.callout-primary { + border-color: #46564d !important; + background-color: #def4ff; + color: #596266; +} + +.callout-primary .callout-link { + color: #596266; +} + +.tooltip-primary .tooltip-inner, +.tooltip-primary > .tooltip .tooltip-inner, +.ngb-tooltip-primary + ngb-tooltip-window .tooltip-inner { + background: #46564d; + color: #fff; +} + +.tooltip-primary.bs-tooltip-top .arrow::before, +.tooltip-primary.bs-tooltip-auto[x-placement^="top"] .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-top .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-top .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="top"] .arrow::before { + border-top-color: #46564d; +} + +.tooltip-primary.bs-tooltip-right .arrow::before, +.tooltip-primary.bs-tooltip-auto[x-placement^="right"] .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-right .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-right .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="right"] .arrow::before { + border-right-color: #46564d; +} + +.tooltip-primary.bs-tooltip-bottom .arrow::before, +.tooltip-primary.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-bottom .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-bottom .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + border-bottom-color: #46564d; +} + +.tooltip-primary.bs-tooltip-left .arrow::before, +.tooltip-primary.bs-tooltip-auto[x-placement^="left"] .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-left .arrow::before, +.tooltip-primary > .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-left .arrow::before, +.ngb-tooltip-primary + ngb-tooltip-window.bs-tooltip-auto[x-placement^="left"] .arrow::before { + border-left-color: #46564d; +} + +.popover-primary, +.popover-primary > .popover, +.ngb-popover-primary + ngb-popover-window { + border-color: transparent; + background: #46564d; +} + +.popover-primary .popover-header, +.popover-primary > .popover .popover-header, +.ngb-popover-primary + ngb-popover-window .popover-header { + border-color: rgba(255, 255, 255, 0.2); + background: transparent; + color: #fff; +} + +.popover-primary .popover-body, +.popover-primary > .popover .popover-body, +.ngb-popover-primary + ngb-popover-window .popover-body { + background: transparent; + color: #fff; +} + +.popover-primary > .arrow::before, +.popover-primary > .popover > .arrow::before, +.ngb-popover-primary + ngb-popover-window > .arrow::before { + border-color: transparent; +} + +.popover-primary.bs-popover-top > .arrow::after, +.popover-primary.bs-popover-auto[x-placement^="top"] > .arrow::after, +.popover-primary > .popover.bs-popover-top > .arrow::after, +.popover-primary > .popover.bs-popover-auto[x-placement^="top"] > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-top > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="top"] > .arrow::after { + border-top-color: #46564d; +} + +.popover-primary.bs-popover-right > .arrow::after, +.popover-primary.bs-popover-auto[x-placement^="right"] > .arrow::after, +.popover-primary > .popover.bs-popover-right > .arrow::after, +.popover-primary > .popover.bs-popover-auto[x-placement^="right"] > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-right > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="right"] > .arrow::after { + border-right-color: #46564d; +} + +.popover-primary.bs-popover-bottom > .arrow::after, +.popover-primary.bs-popover-auto[x-placement^="bottom"] > .arrow::after, +.popover-primary > .popover.bs-popover-bottom > .arrow::after, +.popover-primary > .popover.bs-popover-auto[x-placement^="bottom"] > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-bottom > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="bottom"] > .arrow::after { + border-bottom-color: #46564d; +} + +.popover-primary.bs-popover-left > .arrow::after, +.popover-primary.bs-popover-auto[x-placement^="left"] > .arrow::after, +.popover-primary > .popover.bs-popover-left > .arrow::after, +.popover-primary > .popover.bs-popover-auto[x-placement^="left"] > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-left > .arrow::after, +.ngb-popover-primary + ngb-popover-window.bs-popover-auto[x-placement^="left"] > .arrow::after { + border-left-color: #46564d; +} + +.table .table-primary, +.table .table-primary > th, +.table .table-primary > td { + border-color: rgba(0, 0, 0, 0.035) !important; + background-color: #e9f8ff; + color: #5d6366; +} + +.table-hover .table-primary:hover, +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #e7f6fc; +} + +.btn-primary, .btn-submit { + border-color: transparent; + background: #46564d; + color: #fff; +} + +.btn-primary:hover, .btn-submit:hover { + border-color: transparent; + background: #928876; + color: #fff; +} + +.btn-primary:focus, +.btn-primary.focus, +.btn-submit:focus, +.btn-submit.focus { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); +} + +.btn-primary.disabled, +.btn-primary:disabled { + border-color: transparent !important; + background: #46564d !important; + box-shadow: none !important; + color: #fff !important; +} + +.btn-primary .badge { + background: #fff; + color: #46564d; +} + +.btn-primary:active, +.btn-primary.active, +.show > .btn-primary.dropdown-toggle { + border-color: transparent; + background: #46564d; + box-shadow: none; +} + +.btn-group .btn-primary, +.input-group-prepend .btn-primary, +.input-group-append .btn-primary { + border-right: 1px solid #46564d; + border-left: 1px solid #46564d; +} + +.btn-outline-primary { + border-color: #46564d; + background: transparent; + color: #46564d; +} + +.btn-outline-primary:hover { + border-color: transparent; + background: #46564d; + color: #fff; +} + +.btn-outline-primary:focus, +.btn-outline-primary.focus { + box-shadow: 0 0 0 2px rgba(70, 86, 77, 0.4); +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + border-color: #46564d !important; + background: transparent !important; + color: #46564d !important; +} + +.btn-outline-primary:active, +.btn-outline-primary.active, +.show > .btn-outline-primary.dropdown-toggle { + border-color: transparent; + background: #928876; + color: #fff; + box-shadow: none; +} + +.btn-outline-primary .badge { + background: #46564d; + border-color: #46564d; + color: #fff; +} + +.btn-outline-primary:hover .badge, +.btn-outline-primary:focus .badge, +.btn-outline-primary:active .badge, +.btn-outline-primary.active .badge, +.show > .btn-outline-primary.dropdown-toggle .badge { + background: #fff; + border-color: #fff; + color: #46564d; +} + +.btn-secondary { + border-color: transparent; + background: #928876; + color: #fff; +} + +.btn-secondary:hover { + border-color: transparent; + background: #6d6759; + color: #fff; +} + +.btn-secondary:focus, +.btn-secondary.focus { + box-shadow: 0 0 0 2px rgba(146, 136, 118, 0.4); +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + border-color: transparent !important; + background: #cabda4 !important; + box-shadow: none !important; + color: #fff !important; +} + +.btn-secondary .badge { + background: #fff; + color: #928876; +} + +.btn-secondary:active, +.btn-secondary.active, +.show > .btn-secondary.dropdown-toggle { + border-color: transparent; + background: #928876; + box-shadow: none; +} + +.btn-group .btn-secondary, +.input-group-prepend .btn-secondary, +.input-group-append .btn-secondary { + border-right: 1px solid #928876; + border-left: 1px solid #928876; +} + +.btn-outline-secondary { + border-color: #928876; + background: transparent; + color: #928876; +} + +.btn-outline-secondary:hover { + border-color: transparent; + background: #928876; + color: #fff; +} + +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + box-shadow: 0 0 0 2px rgba(136, 151, 170, 0.4); +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + border-color: #928876 !important; + background: transparent !important; + color: #928876 !important; +} + +.btn-outline-secondary:active, +.btn-outline-secondary.active, +.show > .btn-outline-secondary.dropdown-toggle { + border-color: transparent; + background: #818fa2; + color: #fff; + box-shadow: none; +} + +.btn-outline-secondary .badge { + background: #928876; + border-color: #928876; + color: #fff; +} + +.btn-outline-secondary:hover .badge, +.btn-outline-secondary:focus .badge, +.btn-outline-secondary:active .badge, +.btn-outline-secondary.active .badge, +.show > .btn-outline-secondary.dropdown-toggle .badge { + background: #fff; + border-color: #fff; + color: #928876; +} + +.dropdown-item:not(.disabled).active, +.dropdown-item:not(.disabled):active { + background-color: #46564d; + color: #fff; +} + +.dropdown-menu > li:not(.disabled) > a:not(.dropdown-item):active, +.dropdown-menu > li.active:not(.disabled) > a:not(.dropdown-item) { + background-color: #46564d; + color: #fff; +} + +.nav-pills .nav-link.active, +.nav-pills .nav-link.active:hover, +.nav-pills .nav-link.active:focus { + background-color: #46564d; + color: #fff; +} + +.tabs-alt.nav-tabs .nav-link.active, +.tabs-alt.nav-tabs .nav-link.active:hover, +.tabs-alt.nav-tabs .nav-link.active:focus, +.tabs-alt > .nav-tabs .nav-link.active, +.tabs-alt > .nav-tabs .nav-link.active:hover, +.tabs-alt > .nav-tabs .nav-link.active:focus { + box-shadow: 0 -2px 0 #46564d inset; +} + +.custom-control .custom-control-input:focus ~ .custom-control-label::before, +.custom-control .custom-control-input:active ~ .custom-control-label::before { + border-color: #46564d; +} + +.custom-control .custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); +} + +.custom-control.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before, +.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before, +.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + border-color: #46564d; + background-color: #46564d; +} + +.custom-control.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); +} + +.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9.5 7.5'%3E%3Cpolyline points='0.75 4.35 4.18 6.75 8.75 0.75' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px'/%3E%3C/svg%3E"); +} + +.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label::before { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #46564d; +} + +.custom-file-input:focus ~ .custom-file-label::after { + border-color: inherit; +} + +.form-control:focus, +.form-control.focus, +.custom-select:focus { + border-color: #46564d; +} + +.switcher-input:checked ~ .switcher-indicator { + background: #46564d; + color: #fff; +} + +.switcher-input:focus ~ .switcher-indicator { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4); +} + +.switcher-input:active ~ .switcher-indicator { + box-shadow: none; +} + +.navbar.bg-primary { + background-color: #46564d !important; + color: #daf2ff; +} + +.navbar.bg-primary .navbar-brand { + color: #fff; +} + +.navbar.bg-primary .navbar-brand:hover, +.navbar.bg-primary .navbar-brand:focus { + color: #fff; +} + +.navbar.bg-primary .navbar-nav .nav-link { + color: #daf2ff; +} + +.navbar.bg-primary .navbar-nav .nav-link:hover, +.navbar.bg-primary .navbar-nav .nav-link:focus { + color: #fff; +} + +.navbar.bg-primary .navbar-nav .nav-link.disabled { + color: #92d9ff !important; +} + +.navbar.bg-primary .navbar-nav .show > .nav-link, +.navbar.bg-primary .navbar-nav .active > .nav-link, +.navbar.bg-primary .navbar-nav .nav-link.show, +.navbar.bg-primary .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar.bg-primary .navbar-toggler { + color: #daf2ff; + border-color: rgba(255, 255, 255, 0.15); +} + +.navbar.bg-primary .navbar-toggler-icon { + background-image: url("data:image/svg+xml,"); +} + +.navbar.bg-primary .navbar-text { + color: #daf2ff; +} + +.navbar.bg-primary .navbar-text a { + color: #fff; +} + +.navbar.bg-primary .navbar-text a:hover, +.navbar.bg-primary .navbar-text a:focus { + color: #fff; +} + +.navbar.bg-primary hr { + border-color: rgba(255, 255, 255, 0.15); +} + +.sidenav.bg-primary { + background-color: #46564d !important; + color: #daf2ff; +} + +.sidenav.bg-primary .sidenav-link, +.sidenav.bg-primary .sidenav-horizontal-prev, +.sidenav.bg-primary .sidenav-horizontal-next { + color: #daf2ff; +} + +.sidenav.bg-primary .sidenav-link:hover, +.sidenav.bg-primary .sidenav-link:focus, +.sidenav.bg-primary .sidenav-horizontal-prev:hover, +.sidenav.bg-primary .sidenav-horizontal-prev:focus, +.sidenav.bg-primary .sidenav-horizontal-next:hover, +.sidenav.bg-primary .sidenav-horizontal-next:focus { + color: #fff; +} + +.sidenav.bg-primary .sidenav-link.active, +.sidenav.bg-primary .sidenav-horizontal-prev.active, +.sidenav.bg-primary .sidenav-horizontal-next.active { + color: #fff; +} + +.sidenav.bg-primary .sidenav-item.disabled .sidenav-link, +.sidenav.bg-primary .sidenav-horizontal-prev.disabled, +.sidenav.bg-primary .sidenav-horizontal-next.disabled { + color: #92d9ff !important; +} + +.sidenav.bg-primary .sidenav-item.open:not(.sidenav-item-closing) > .sidenav-toggle, +.sidenav.bg-primary .sidenav-item.active > .sidenav-link { + color: #fff; +} + +.sidenav.bg-primary .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) { + background-color: #928876; +} + +.sidenav.bg-primary.sidenav-horizontal .sidenav-menu > .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) { + background-color: #22a2e6; +} + +.sidenav.bg-primary.sidenav-horizontal .sidenav-inner > .sidenav-item:not(.sidenav-item-closing) > .sidenav-menu, +.sidenav.bg-primary.sidenav-horizontal .sidenav-inner > .sidenav-item.open > .sidenav-toggle { + background: #928876; +} + +.sidenav.bg-primary .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-menu, +.sidenav.bg-primary .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-toggle { + background: transparent; + color: #daf2ff; +} + +.sidenav.bg-primary .sidenav-text { + color: #fff; +} + +.sidenav.bg-primary .sidenav-header { + color: #ade3ff; +} + +.sidenav.bg-primary hr, +.sidenav.bg-primary .sidenav-divider, +.sidenav.bg-primary .sidenav-inner > .sidenav-item.open > .sidenav-menu::before { + border-color: rgba(255, 255, 255, 0.15) !important; +} + +.sidenav.bg-primary .sidenav-inner > .sidenav-header::before, +.sidenav.bg-primary .sidenav-block::before { + background-color: rgba(255, 255, 255, 0.15); +} + +.sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before { + background-color: #45b8f4; +} + +.sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before { + background-color: #fff; +} + +.sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before, +.sidenav.bg-primary .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before { + box-shadow: 0 0 0 2px #928876; +} + +.sidenav.bg-primary .ps__thumb-y, +.sidenav.bg-primary .ps__rail-y.ps--clicking > .ps__thumb-y { + background: rgba(255, 255, 255, 0.629164) !important; +} + +.footer.bg-primary { + background-color: #46564d !important; + color: #daf2ff; +} + +.footer.bg-primary .footer-link { + color: #daf2ff; +} + +.footer.bg-primary .footer-link:hover, +.footer.bg-primary .footer-link:focus { + color: #fff; +} + +.footer.bg-primary .footer-link.disabled { + color: #92d9ff !important; +} + +.footer.bg-primary .footer-text { + color: #fff; +} + +.footer.bg-primary .show > .footer-link, +.footer.bg-primary .active > .footer-link, +.footer.bg-primary .footer-link.show, +.footer.bg-primary .footer-link.active { + color: #fff; +} + +.footer.bg-primary hr { + border-color: rgba(255, 255, 255, 0.15); +} + +.bg-primary.bs4-toast { + color: #fff; + background-color: rgba(38, 180, 255, 0.9) !important; +} + +.bg-primary.bs4-toast .toast-header { + color: #fff; + background-color: rgba(255, 255, 255, 0.1); +} + +.fill-primary { + fill: #46564d; +} + +.slider-primary .slider-selection, +.slider-primary .slider-reversed .slider-track-high, +.slider-primary.slider-reversed .slider-track-high { + background: #46564d; +} + +.noUi-primary .noUi-base .noUi-connect { + background: #46564d !important; +} + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #46564d !important; + color: #fff !important; +} + +.select2-container--default.select2-container--focus .select2-selection, +.select2-container--default.select2-container--open .select2-selection { + border-color: #46564d !important; +} + +.select2-primary .select2-container--default .select2-selection--multiple .select2-selection__choice { + background: #46564d !important; + color: #fff !important; +} + +.bootstrap-tagsinput.focus { + border-color: #46564d !important; +} + +.bootstrap-select .dropdown-menu.inner a[aria-selected=true] { + background: #46564d !important; + color: #fff !important; +} + +.datepicker table tr td.active, +.datepicker table tr td.active.highlighted, +.datepicker table tr td.active.today, +.datepicker table tr td span.active, +.datepicker table tr td span.active.disabled, +.datepicker table tr td.range-start, +.datepicker table tr td.range-end { + background: #46564d !important; + color: #fff !important; +} + +.datepicker table tr td.range, +.datepicker table tr td.range.highlighted, +.datepicker table tr td.range.today { + background: #def4ff !important; + color: #596266 !important; +} + +.datepicker table tr td.range.focused, +.datepicker table tr td.range.highlighted.focused, +.datepicker table tr td.range.today.focused { + background: #bfeaff !important; +} + +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.highlighted.disabled, +.datepicker table tr td.range.today.disabled { + background: rgba(222, 244, 255, 0.5) !important; + color: rgba(89, 98, 102, 0.5) !important; +} + +.flatpickr-calendar .numInputWrapper span.arrowUp:after { + border-bottom-color: #fff; +} + +.flatpickr-calendar .numInputWrapper span.arrowDown:after { + border-top-color: #fff; +} + +.flatpickr-month, +span.flatpickr-weekday { + background: #46564d; + color: #fff; + fill: #fff; +} + +.flatpickr-weekdays { + background: #46564d; +} + +.flatpickr-day.today { + border-color: #46564d; +} + +.flatpickr-day.inRange, +.flatpickr-day.prevMonthDay.inRange, +.flatpickr-day.nextMonthDay.inRange, +.flatpickr-day.today.inRange, +.flatpickr-day.prevMonthDay.today.inRange, +.flatpickr-day.nextMonthDay.today.inRange { + border-color: #def4ff !important; + background: #def4ff !important; + color: #596266 !important; +} + +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.endRange, +.flatpickr-day.selected.inRange, +.flatpickr-day.startRange.inRange, +.flatpickr-day.endRange.inRange, +.flatpickr-day.selected:focus, +.flatpickr-day.startRange:focus, +.flatpickr-day.endRange:focus, +.flatpickr-day.selected:hover, +.flatpickr-day.startRange:hover, +.flatpickr-day.endRange:hover, +.flatpickr-day.selected.prevMonthDay, +.flatpickr-day.startRange.prevMonthDay, +.flatpickr-day.endRange.prevMonthDay, +.flatpickr-day.selected.nextMonthDay, +.flatpickr-day.startRange.nextMonthDay, +.flatpickr-day.endRange.nextMonthDay, +.flatpickr-day.week.selected { + border-color: #46564d !important; + background: #46564d !important; + color: #fff !important; +} + +.daterangepicker td.active { + background-color: #46564d !important; + color: #fff !important; +} + +.daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off) { + background-color: #def4ff !important; + color: #596266 !important; +} + +.daterangepicker .input-mini.active { + border-color: #46564d !important; +} + +.ranges li.active { + background-color: #46564d !important; + color: #fff !important; +} + +.dtp-date, +.dtp-time { + background: #46564d; + color: #fff; +} + +.dtp-close > a { + color: #fff; +} + +header.dtp-header { + background: #5f5442; + color: #fff; +} + +table.dtp-picker-days tr > td > a.selected { + background: #46564d; + color: #fff !important; +} + +.dtp-actual-meridien a.selected { + background: #46564d !important; + color: #fff !important; +} + +.dtp .year-picker-item:hover { + color: #46564d; +} + +.dtp .year-picker-item.active { + color: #46564d; +} + +.dtp .svg-clock [stroke="#8BC34A"] { + stroke: #46564d !important; +} + +.dtp .svg-clock [fill="#8BC34A"] { + fill: #46564d !important; +} + +.dtp .svg-clock [fill="#fff"] { + fill: #fff !important; +} + +li.ui-timepicker-selected, +.ui-timepicker-list .ui-timepicker-selected:hover { + background: #46564d !important; + color: #fff !important; +} + +.growl-default { + background: #46564d !important; + color: #fff !important; +} + +.md-editor.active { + border-color: #46564d !important; +} + +.ql-snow.ql-toolbar button:hover, +.ql-snow.ql-toolbar button:focus, +.ql-snow.ql-toolbar button.ql-active, +.ql-snow.ql-toolbar .ql-picker-label:hover, +.ql-snow.ql-toolbar .ql-picker-label.ql-active, +.ql-snow.ql-toolbar .ql-picker-item:hover, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected, +.ql-snow .ql-toolbar button:hover, +.ql-snow .ql-toolbar button:focus, +.ql-snow .ql-toolbar button.ql-active, +.ql-snow .ql-toolbar .ql-picker-label:hover, +.ql-snow .ql-toolbar .ql-picker-label.ql-active, +.ql-snow .ql-toolbar .ql-picker-item:hover, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected { + color: #46564d !important; +} + +.ql-snow.ql-toolbar button:hover .ql-fill, +.ql-snow.ql-toolbar button:focus .ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:hover .ql-fill, +.ql-snow .ql-toolbar button:focus .ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { + fill: #46564d !important; +} + +.ql-snow.ql-toolbar button:hover .ql-stroke, +.ql-snow.ql-toolbar button:focus .ql-stroke, +.ql-snow.ql-toolbar button.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow.ql-toolbar button:hover .ql-stroke-miter, +.ql-snow.ql-toolbar button:focus .ql-stroke-miter, +.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, +.ql-snow .ql-toolbar button:hover .ql-stroke, +.ql-snow .ql-toolbar button:focus .ql-stroke, +.ql-snow .ql-toolbar button.ql-active .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow .ql-toolbar button:hover .ql-stroke-miter, +.ql-snow .ql-toolbar button:focus .ql-stroke-miter, +.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { + stroke: #46564d !important; +} + +.ql-snow.ql-container .ql-editor:focus { + border-color: #46564d !important; +} + +.tt-suggestion:active, +.tt-cursor { + background: #46564d !important; + color: #fff !important; +} + +.dropzone.dz-drag-hover { + border-color: #46564d !important; +} + +.swiper-pagination-bullet.swiper-pagination-bullet-active, +.swiper-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: #46564d !important; +} + +.sk-primary.sk-plane, +.sk-primary .sk-chase-dot:before, +.sk-primary .sk-bounce-dot, +.sk-primary .sk-wave-rect, +.sk-primary.sk-pulse, +.sk-primary .sk-swing-dot, +.sk-primary .sk-circle-dot:before, +.sk-primary .sk-circle-fade-dot:before, +.sk-primary .sk-grid-cube, +.sk-primary .sk-fold-cube:before { + background-color: #46564d; +} + +.sw-theme-default .step-anchor > li.active > a .sw-icon, +.sw-theme-default .step-anchor > li.active > a .sw-number { + color: #46564d; + border-color: #46564d; +} + +.plyr[class] .plyr__control--overlaid { + background: rgb(84, 75, 58) !important; + color: #fff !important; +} + +.plyr[class] .plyr__control.plyr__tab-focus, +.plyr[class] .plyr__control:hover, +.plyr[class] .plyr__control[aria-expanded='true'] { + background: #46564d !important; + color: #fff !important; +} + +.plyr[class] .plyr__menu__container .plyr__control[role='menuitemradio'][aria-checked='true']:not(.plyr__tab-focus):not(:hover)::before { + background: #46564d !important; +} + +.plyr[class] .plyr__menu__container .plyr__control[role='menuitemradio'][aria-checked='true']:not(.plyr__tab-focus):not(:hover)::after { + background: #fff !important; +} + +.plyr[class] .plyr__control.plyr__tab-focus { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4) !important; +} + +.plyr--full-ui[class] input[type='range'] { + color: #46564d !important; +} + +.plyr--full-ui[class] input[type='range'].plyr__tab-focus::-webkit-slider-runnable-track { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4) !important; +} + +.plyr--full-ui[class] input[type='range'].plyr__tab-focus::-moz-range-track { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4) !important; +} + +.plyr--full-ui[class] input[type='range'].plyr__tab-focus::-ms-track { + box-shadow: 0 0 0 2px rgba(38, 180, 255, 0.4) !important; +} + +.fc-event { + background: rgba(38, 180, 255, 0.15) !important; +} + +.fc-event-dot { + background: rgba(38, 180, 255, 0.4) !important; +} + +.fc-highlight, +.fc-bgevent:not(.fc-nonbusiness) { + background: #46564d !important; +} + +.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step, +.swal2-progress-steps[class] .swal2-progress-step-line, +.swal2-progress-steps[class] .swal2-active-progress-step, +.swal2-progress-steps[class] .swal2-progress-step { + background: #46564d; + color: #fff; +} + +.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step, +.swal2-progress-steps[class] .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { + background: #c9ecff; +} + +.ui-product-color.active { + box-shadow: 0 0 0 2px #fff, 0 0 0 4px #46564d !important; +} + +.bg-navbar-theme { + background-color: #f4f1ef !important; + color: #a3a4a6; +} + +.bg-navbar-theme .navbar-brand { + color: #4E5155; +} + +.bg-navbar-theme .navbar-brand:hover, +.bg-navbar-theme .navbar-brand:focus { + color: #4E5155; +} + +.bg-navbar-theme .navbar-nav .nav-link { + color: #a3a4a6; +} + +.bg-navbar-theme .navbar-nav .nav-link:hover, +.bg-navbar-theme .navbar-nav .nav-link:focus { + color: #4E5155; +} + +.bg-navbar-theme .navbar-nav .nav-link.disabled { + color: #c8c8ca !important; +} + +.bg-navbar-theme .navbar-nav .show > .nav-link, +.bg-navbar-theme .navbar-nav .active > .nav-link, +.bg-navbar-theme .navbar-nav .nav-link.show, +.bg-navbar-theme .navbar-nav .nav-link.active { + color: #4E5155; +} + +.bg-navbar-theme .navbar-toggler { + color: #a3a4a6; + border-color: rgba(78, 81, 85, 0.075); +} + +.bg-navbar-theme .navbar-toggler-icon { + background-image: url("data:image/svg+xml,"); +} + +.bg-navbar-theme .navbar-text { + color: #a3a4a6; +} + +.bg-navbar-theme .navbar-text a { + color: #4E5155; +} + +.bg-navbar-theme .navbar-text a:hover, +.bg-navbar-theme .navbar-text a:focus { + color: #4E5155; +} + +.bg-navbar-theme hr { + border-color: rgba(78, 81, 85, 0.075); +} + +.layout-navbar { + box-shadow: 0 1px 0 rgba(24, 28, 33, 0.06); +} + +.bg-sidenav-theme { + background-color: #2A352F !important; + color: #d9d9d9; +} + +.bg-sidenav-theme .sidenav-link, +.bg-sidenav-theme .sidenav-horizontal-prev, +.bg-sidenav-theme .sidenav-horizontal-next { + color: #d9d9d9; +} + +.bg-sidenav-theme .sidenav-link:hover, +.bg-sidenav-theme .sidenav-link:focus, +.bg-sidenav-theme .sidenav-horizontal-prev:hover, +.bg-sidenav-theme .sidenav-horizontal-prev:focus, +.bg-sidenav-theme .sidenav-horizontal-next:hover, +.bg-sidenav-theme .sidenav-horizontal-next:focus { + color: #fff; +} + +.bg-sidenav-theme .sidenav-link.active, +.bg-sidenav-theme .sidenav-horizontal-prev.active, +.bg-sidenav-theme .sidenav-horizontal-next.active { + color: #fff; +} + +.bg-sidenav-theme .sidenav-item.disabled .sidenav-link, +.bg-sidenav-theme .sidenav-horizontal-prev.disabled, +.bg-sidenav-theme .sidenav-horizontal-next.disabled { + color: #61656e !important; +} + +.bg-sidenav-theme .sidenav-item.open:not(.sidenav-item-closing) > .sidenav-toggle, +.bg-sidenav-theme .sidenav-item.active > .sidenav-link { + color: #fff; +} + +.bg-sidenav-theme .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) { + background-color: #383c44; +} + +.bg-sidenav-theme.sidenav-horizontal .sidenav-menu > .sidenav-item.active > .sidenav-link:not(.sidenav-toggle) { + background-color: #42464d; +} + +.bg-sidenav-theme.sidenav-horizontal .sidenav-inner > .sidenav-item:not(.sidenav-item-closing) > .sidenav-menu, +.bg-sidenav-theme.sidenav-horizontal .sidenav-inner > .sidenav-item.open > .sidenav-toggle { + background: #383c44; +} + +.bg-sidenav-theme .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-menu, +.bg-sidenav-theme .sidenav-inner > .sidenav-item.sidenav-item-closing .sidenav-item.open .sidenav-toggle { + background: transparent; + color: #d9d9d9; +} + +.bg-sidenav-theme .sidenav-text { + color: #fff; +} + +.bg-sidenav-theme .sidenav-header { + color: #6e727b; +} + +.bg-sidenav-theme hr, +.bg-sidenav-theme .sidenav-divider, +.bg-sidenav-theme .sidenav-inner > .sidenav-item.open > .sidenav-menu::before { + border-color: rgba(255, 255, 255, 0.06) !important; +} + +.bg-sidenav-theme .sidenav-inner > .sidenav-header::before, +.bg-sidenav-theme .sidenav-block::before { + background-color: rgba(255, 255, 255, 0.06); +} + +.bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before { + background-color: #44484f; +} + +.bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before { + background-color: #fff; +} + +.bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.open > .sidenav-toggle::before, +.bg-sidenav-theme .sidenav-inner > .sidenav-item.open .sidenav-item.active > .sidenav-link::before { + box-shadow: 0 0 0 2px #383c44; +} + +.bg-sidenav-theme .ps__thumb-y, +.bg-sidenav-theme .ps__rail-y.ps--clicking > .ps__thumb-y { + background: rgba(255, 255, 255, 0.477986) !important; +} + +.bg-footer-theme { + background-color: #fff !important; + color: #a3a4a6; +} + +.bg-footer-theme .footer-link { + color: #a3a4a6; +} + +.bg-footer-theme .footer-link:hover, +.bg-footer-theme .footer-link:focus { + color: #4E5155; +} + +.bg-footer-theme .footer-link.disabled { + color: #c8c8ca !important; +} + +.bg-footer-theme .footer-text { + color: #4E5155; +} + +.bg-footer-theme .show > .footer-link, +.bg-footer-theme .active > .footer-link, +.bg-footer-theme .footer-link.show, +.bg-footer-theme .footer-link.active { + color: #4E5155; +} + +.bg-footer-theme hr { + border-color: rgba(78, 81, 85, 0.075); +} + diff --git a/resources/views/_bak/home.blade.php b/resources/views/_bak/home.blade.php index 55c047a..520a5da 100755 --- a/resources/views/_bak/home.blade.php +++ b/resources/views/_bak/home.blade.php @@ -153,11 +153,11 @@ @if($user->isActiveAccount() )
- {{__('Berater-Mitgliedschaft aktiv')}} {{__('bis zum:')}} {{ $user->getPaymentAccountDateFormat() }}
+ {{__('Vertriebspartner-Mitgliedschaft aktiv')}} {{__('bis zum:')}} {{ $user->getPaymentAccountDateFormat() }} @else
- {{__('Berater-Account inaktiv')}} + {{__('Vertriebspartner-Account inaktiv')}} @if($user->payment_account) {{__('abgelaufen am')}}: {{ $user->getPaymentAccountDateFormat() }} @endif @@ -167,11 +167,11 @@ @if($user->isActiveShop())
- {{__('Berater-Online-Shop aktiv')}} {{__('bis zum')}}: {{ $user->getPaymentShopDateFormat() }}
+ {{__('Vertriebspartner-Online-Shop aktiv')}} {{__('bis zum')}}: {{ $user->getPaymentShopDateFormat() }}
@else
- {{__('Berater-Shop inaktiv')}} + {{__('Vertriebspartner-Shop inaktiv')}} @if($user->payment_shop) {{__('abgelaufen am')}}: {{ $user->getPaymentShopDateFormat() }} @endif @@ -235,7 +235,7 @@ @if($user->active == 1) @if($user->files->count()) @foreach($user->files()->whereIdentifier('contract')->get() as $file) - MIVITA_Beratervertrag.pdf + MIVITA_Vertriebspartnervertrag.pdf
@endforeach @endif diff --git a/resources/views/_bak/web/start.blade.php b/resources/views/_bak/web/start.blade.php index 9a20c4a..669cfc6 100644 --- a/resources/views/_bak/web/start.blade.php +++ b/resources/views/_bak/web/start.blade.php @@ -109,7 +109,7 @@ jeder aktiv eine kluge Entscheidung für Gesundheit und Umwelt.

Wir legen nicht nur auf die Qualität unserer Produkte einen hohen Stellenwert, sondern natürlich auch - auf umfassende, kompetente Beratung durch freundliche und fachkundige Berater und Beraterinnen.

+ auf umfassende, kompetente Beratung durch freundliche und fachkundige Vertriebspartner und Vertriebspartnerinnen.

Wir entwickeln und vertreiben ausschließlich Produkte, die qualitativ hochwertig sind. So sind sie bei sachgemäßer Anwendung und Pflege langlebig und sehr ergiebig. Faktoren, die uns die diff --git a/resources/views/_bak/web/templates/card.blade.php b/resources/views/_bak/web/templates/card.blade.php index ef8df5f..3d48be7 100644 --- a/resources/views/_bak/web/templates/card.blade.php +++ b/resources/views/_bak/web/templates/card.blade.php @@ -344,7 +344,7 @@ zur Kasse


-

Sie werden auf unseren checkout Server weitergeletet, die Verbindung ist mit SSL verschlüsselt.

+

Du werden auf unseren checkout weitergeletet, die Verbindung ist mit SSL verschlüsselt.

diff --git a/resources/views/_bak/web/templates/datenschutz.blade.php b/resources/views/_bak/web/templates/datenschutz.blade.php index 5d62e18..0b8f5c8 100644 --- a/resources/views/_bak/web/templates/datenschutz.blade.php +++ b/resources/views/_bak/web/templates/datenschutz.blade.php @@ -85,7 +85,7 @@ Bei jedem Aufruf unserer Website werden allgemeine Daten und Informationen erfas Wir benötigen diese Informationen, um die Inhalte unserer Website zutreffend bereitstellen zu können. die dauerhafte Funktionsfähigkeit unseres IT-Systems gewährleisten zu können und um im Falle eines Cyberangriffes den Behörden die zu einer Strafverfolgung notwendigen Informationen bereitstellen zu können. Hierin liegt auch unser berechtigtes Interesse im Rahmen der Rechtsgrundlage für die Verarbeitung dieser Daten gemäß Art. 6 Abs. 1 lit. f DSGVO. Bei der Nutzung dieser allgemeinen Daten und Informationen ziehen wir keine Rückschlüsse auf die betroffene Person. Die anonymen Daten der Server-Logfiles speichern wir getrennt von allen personenbezogenen Daten. V. Elektronische Kontaktaufnahme mit uns

-Aufgrund der Regelungen des Telemediengesetzes (TMG) sind wir zur Angabe einer allgemeinen Mailadresse im Impressum unserer Website verpflichtet, über die Sie uns per Mail kontaktieren können. Weiterhin haben Sie die Möglichkeit, über Kontaktformulare auf unserer Website Kontakt mit uns aufzunehmen. Über die Kontaktformulare können Sie u.a. Anfragen zu den Produkten oder unserem Geschäft stellen bzw. sich als Berater bei uns bewerben. Die von Ihnen per Mail oder unsere Kontaktformulare an uns übermittelten personenbezogenen Daten werden automatisch für Zwecke der Bearbeitung oder der Kontaktaufnahme zu Ihnen gespeichert. +Aufgrund der Regelungen des Telemediengesetzes (TMG) sind wir zur Angabe einer allgemeinen Mailadresse im Impressum unserer Website verpflichtet, über die Sie uns per Mail kontaktieren können. Weiterhin haben Sie die Möglichkeit, über Kontaktformulare auf unserer Website Kontakt mit uns aufzunehmen. Über die Kontaktformulare können Sie u.a. Anfragen zu den Produkten oder unserem Geschäft stellen bzw. sich als Vertriebspartner bei uns bewerben. Die von Ihnen per Mail oder unsere Kontaktformulare an uns übermittelten personenbezogenen Daten werden automatisch für Zwecke der Bearbeitung oder der Kontaktaufnahme zu Ihnen gespeichert.

Mit Absenden Ihrer Nachricht willigen Sie in die Verarbeitung der übermittelten Daten ein. Die Verarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 lit. a DSGVO mit Ihrer Einwilligung. Sie können Ihre Einwilligung jederzeit durch Mitteilung an uns widerrufen, ohne dass die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung berührt wird. Ihre E-Mail-Adresse nutzen wir nur zur Bearbeitung Ihrer Anfrage. Ihre Daten werden anschließend gelöscht, sofern Sie der weitergehenden Verarbeitung und Nutzung nicht zugestimmt haben.

diff --git a/resources/views/_bak/web/templates/karrierechancen.blade.php b/resources/views/_bak/web/templates/karrierechancen.blade.php index 17479eb..c88d3e6 100644 --- a/resources/views/_bak/web/templates/karrierechancen.blade.php +++ b/resources/views/_bak/web/templates/karrierechancen.blade.php @@ -157,7 +157,7 @@

Schulung auf der Mallorca Farm

-

Zweimal jährlich veranstaltet MIVITA eine Schulung für Berater. Neben Eurer Begehung der Farm +

Zweimal jährlich veranstaltet MIVITA eine Schulung für Vertriebspartner. Neben Eurer Begehung der Farm und Produktionsstätte, weiht Euch Farmbetreiber Werner Telwest in die Geheimnisse der „Wüstenlilie“ ein. Und das Beste: Zu jeder Schulung gibt es eine Ausschreibung. Wer entsprechend Umsatz generiert wird mit der Reise von MIVITA belohnt und fliegt FOR FREE auf diff --git a/resources/views/_bak/web/templates/partner.blade.php b/resources/views/_bak/web/templates/partner.blade.php index 11a29ed..2467de8 100644 --- a/resources/views/_bak/web/templates/partner.blade.php +++ b/resources/views/_bak/web/templates/partner.blade.php @@ -57,7 +57,7 @@

MIVITA Reisen by NETWORKTRIPS

-

Wir legen jedem Berater ans Herz, mit uns gemeinsam die Aloe Vera Schulung auf Mallorca zu erleben. Hierzu haben wir für Euch gemeinsam mit unserem Reise-Portal NETWORKTRIPS und angeschlossenem Reisebüro STERN TOURS in Berlin verschiedene Buchungsmöglichkeiten für

+

Wir legen jedem Vertriebspartner ans Herz, mit uns gemeinsam die Aloe Vera Schulung auf Mallorca zu erleben. Hierzu haben wir für Euch gemeinsam mit unserem Reise-Portal NETWORKTRIPS und angeschlossenem Reisebüro STERN TOURS in Berlin verschiedene Buchungsmöglichkeiten für

• Nur-Hotel
• Hotel & Flug
diff --git a/resources/views/_bak/web/templates/vereinbarkeit.blade.php b/resources/views/_bak/web/templates/vereinbarkeit.blade.php index 5d9d642..700bfc2 100644 --- a/resources/views/_bak/web/templates/vereinbarkeit.blade.php +++ b/resources/views/_bak/web/templates/vereinbarkeit.blade.php @@ -35,7 +35,7 @@

Insbesondere im Direktvertrieb mit seinen Möglichkeiten der freien Zeiteinteilung und passivem Einkommen hast Du mittelfristig soviel Freiheit, wie es Dir ein fester Job nicht - bieten kann. Als selbständige MIVITA Beraterin entscheidest Du selbst, wann und wo Du + bieten kann. Als selbständige MIVITA Vertriebspartnerin entscheidest Du selbst, wann und wo Du arbeitest. Und das betrifft ja nicht nur junge Eltern. Auch für Menschen, die ihre Familienangehörigen pflegen müssen oder einfach grundsätzlich mehr Zeit und finanzielle Entlastung erreichen wollen, stellt der Direktvertrieb eine perfekte Lösung dar: diff --git a/resources/views/_bak/web/templates/vorteile.blade.php b/resources/views/_bak/web/templates/vorteile.blade.php index 12c4fc5..df00a0f 100644 --- a/resources/views/_bak/web/templates/vorteile.blade.php +++ b/resources/views/_bak/web/templates/vorteile.blade.php @@ -54,7 +54,7 @@

Vorteile bei MIVITA:

-

Es gibt sehr viele gute Gründe, um sich mit mivita selbständig zu machen. Viele Beraterinnen und Beratern antworten auf die Frage, warum sie sich für den Direktvertrieb bei mivita entschieden haben:

+

Es gibt sehr viele gute Gründe, um sich mit mivita selbständig zu machen. Viele Vertriebspartnerinnen und Vertriebspartnern antworten auf die Frage, warum sie sich für den Direktvertrieb bei mivita entschieden haben:

@endif -
Zugewiesener Berater
+
Zugewiesener Vertriebspartner
@if($shopping_user->is_like) + data-route="{{route('modal_load')}}"> Vertriebspartner zuordnen @else @if($shopping_user->member) @@ -101,7 +101,7 @@ @endif
-
ist Berater
+
ist Vertriebspartner
@if($shopping_user->auth_user) diff --git a/resources/views/admin/customer/index.blade.php b/resources/views/admin/customer/index.blade.php index 5aca26b..6405ed9 100644 --- a/resources/views/admin/customer/index.blade.php +++ b/resources/views/admin/customer/index.blade.php @@ -11,16 +11,16 @@
{{--
- +
--}}
- + +
+ {{ __('Rolle') }} +
+
+ +
+
+ + {{ Form::text('name', $value->name, array('placeholder'=>__('Bezeichnung'), 'class'=>'form-control', 'required')) }} +
+
+ +
+
+ + {{ Form::textarea('content', $value->content, array('placeholder'=>__('Beschreibung'), 'class'=>'form-control summernote-small')) }} +

Platzhalter ##mehr lesen##

+
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ {{ Form::text('pos', $value->pos, array('placeholder'=>__('Number to move the position if necessary'), 'class'=>'form-control')) }} +
+
+ @if(isset($trans)) +
+ @foreach($trans as $tran) + @if($tran != 'de') +
+
+ + +
+
+ @endif + @endforeach + @endif +
+   +
+
+ {!! Form::close() !!} +
+ + @if($value->id>0) +
+
+ {{__('Staffelpreise')}} +
+
+ + + + + + + + + + + + + @foreach($value->user_level_margins as $user_level_margin) + + + + + + + + + @endforeach + +
 {{__('Preis ab')}} €{{__('Handelsspanne')}} %{{__('Provision')}} %
+ + {{ $user_level_margin->getFormattedPriceFrom() }}{{ $user_level_margin->getFormattedTradingMargin() }}{{ $user_level_margin->getFormattedCommission() }}
+
+ +
+
+
+ + + + + + + + + + @endif + + + + + +@endsection diff --git a/resources/views/admin/level/index.blade.php b/resources/views/admin/level/index.blade.php index b1a2ef3..2f9dcde 100755 --- a/resources/views/admin/level/index.blade.php +++ b/resources/views/admin/level/index.blade.php @@ -20,7 +20,10 @@ @foreach($values as $value) - + --}} {{ $value->pos }} {{ $value->name }} - {{ $value->getFormattedMargin() }} {{ $value->getTranNames() }} {!! get_active_badge($value->active) !!} @@ -40,22 +42,47 @@
- + --}}
+ -
-
- - {{ Form::select('show_at', \App\Models\PaymentMethod::$showATs, 9, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} +
+ +
+ + {{ Form::select('show_at', \App\Models\PaymentMethod::$showATs, 9, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} +
+
+ + +
@@ -126,12 +135,12 @@ $(this).find(".modal-content input[name='id']").val(button.data('id')); $(this).find(".modal-body input[name='name']").val(button.data('name')); $(this).find(".modal-body input[name='short']").val(button.data('short')); + $(this).find(".modal-body input[name='max_price']").val(button.data('max_price')); $(this).find(".modal-body input[name='pos']").val(button.data('pos')); $(this).find(".modal-body select[name='show_at']").val(button.data('show_at')); $(this).find(".modal-body input[name='active']").prop( "checked", button.data('active')); $(this).find(".modal-body input[name='default']").prop( "checked", button.data('default')); - $('.selectpicker').selectpicker('refresh'); }); diff --git a/resources/views/admin/product/form.blade.php b/resources/views/admin/product/form.blade.php index cd49dcf..3d73982 100755 --- a/resources/views/admin/product/form.blade.php +++ b/resources/views/admin/product/form.blade.php @@ -45,10 +45,7 @@ {{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
- +
@@ -58,22 +55,18 @@
-
+
{{ Form::text('price', $product->getFormattedPrice(), array('placeholder'=>__('Preis VK in EUR (Brutto)'), 'class'=>'form-control', 'id'=>'price')) }}
-
- - {{ Form::text('price_ek', $product->getFormattedPriceEk(), array('placeholder'=>__('Preis EK in EUR'), 'class'=>'form-control', 'id'=>'price_ek')) }} -
-
+
{{ Form::text('tax', $product->getFormattedTax(), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'tax')) }}
-
+
{{ Form::text('price_old', $product->getFormattedPriceOld(), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'price_old')) }} @@ -85,16 +78,45 @@ {{ Form::text('weight', $product->weight, array('placeholder'=>__('Gewicht in g'), 'class'=>'form-control', 'id'=>'weight')) }}
-
+ {{--
{{ Form::text('points', $product->points, array('placeholder'=>__('Points pro Produkt'), 'class'=>'form-control', 'id'=>'points')) }}
+ --}}
{{ Form::text('amount', $product->amount, array('placeholder'=>__('Anzahl/Verfügbarkeit'), 'class'=>'form-control', 'id'=>'amount')) }} +
+
+ + {{ Form::text('price_ek', $product->getFormattedPriceEk(), array('placeholder'=>__('Preis EK in EUR'), 'class'=>'form-control', 'id'=>'price_ek')) }}
+
+
+ + + + + + +
+
+ + {{ Form::text('value_commission', $product->getFormattedValueCommission(), array('placeholder'=>__('Einzelrabatt in %'), 'class'=>'form-control', 'id'=>'value_commission')) }} +
+
+ + {{ Form::text('partner_commission', $product->getFormattedPartnerCommission(), array('placeholder'=>__('Vertriebspartner Einzelrabatt in %'), 'class'=>'form-control', 'id'=>'partner_commission')) }} +
+
diff --git a/resources/views/admin/product/index.blade.php b/resources/views/admin/product/index.blade.php index 19a2668..57b0462 100755 --- a/resources/views/admin/product/index.blade.php +++ b/resources/views/admin/product/index.blade.php @@ -20,14 +20,13 @@ {{__('Name')}} {{__('Artikelnummer')}} {{__('Kategorie')}} - {{__('Points')}} {{__('Preis')}} {{__('Inhalt')}} {{__('Einheit')}} {{__('Grundpreis')}} {{__('Gewicht')}} {{__('sichbar')}} - {{__('KP')}} + {{__('ER')}} {{__('Status')}} @@ -54,13 +53,12 @@ @endforeach {{ $value->getFormattedPrice() }} - {{ $value->points }} {{ $value->contents_total }} {{ $value->getUnitType() }} {{ $value->getBasePriceFormatted() }} {{ $value->weight }} {{ $value->getShowAtType() }} - {!! get_active_badge($value->shipping_addon) !!} + {!! get_active_badge($value->single_commission) !!} {!! get_active_badge($value->active) !!}   diff --git a/resources/views/admin/sales/_detail.blade.php b/resources/views/admin/sales/_detail.blade.php index a05aef7..f1d7672 100644 --- a/resources/views/admin/sales/_detail.blade.php +++ b/resources/views/admin/sales/_detail.blade.php @@ -73,7 +73,7 @@
@endif -
Zugewiesener Berater
+
Zugewiesener Vertriebspartner
@if($isView === 'sales_user') {{-- @if($shopping_order->user_shop) {{$shopping_order->user_shop->title}} @@ -88,7 +88,7 @@ data-action="shopping-user-is-like-member" data-back="{{route('admin_sales_customers_detail', [$shopping_order->id])}}" data-modal="modal-xl" - data-route="{{route('modal_load')}}"> Berater zuordnen + data-route="{{route('modal_load')}}"> Vertriebspartner zuordnen @else @if($shopping_order->member) @@ -121,7 +121,7 @@ @if($shopping_order->shopping_user->is_from === 'shopping' || $shopping_order->shopping_user->is_from === 'extern') Rechnungsadresse des Kunden @else - Rechnungsadresse des Beraters + Rechnungsadresse des Vertriebspartners @endif
@@ -186,16 +186,16 @@
@if($shopping_order->shopping_user->is_from === 'user_order' || $shopping_order->shopping_user->is_from === 'extern') @if($shopping_order->shopping_user->is_for === 'me') - Lieferadresse des Berater + Lieferadresse des Vertriebspartner @else Lieferadresse des Kunden @endif @endif @if($shopping_order->shopping_user->is_from === 'wizard') - Lieferadresse des Berater + Lieferadresse des Vertriebspartner @endif @if($shopping_order->shopping_user->is_from === 'membership') - Lieferadresse des Berater + Lieferadresse des Vertriebspartner @endif @if($shopping_order->shopping_user->is_from === 'shopping') Lieferadresse des Kunden @@ -266,22 +266,22 @@
@if($shopping_order->shopping_user->is_from === 'user_order') @if($shopping_order->shopping_user->is_for === 'me') - Bestellung für Berater + Bestellung für Vertriebspartner @else Bestellung für Kunde @endif @endif @if($shopping_order->shopping_user->is_from === 'wizard') - Beraterbestellung für Registrierung + Vertriebspartnerbestellung für Registrierung @endif @if($shopping_order->shopping_user->is_from === 'membership') - Beraterbestellung für Mitgliedschaft + Vertriebspartnerbestellung für Mitgliedschaft @endif @if($shopping_order->shopping_user->is_from === 'shopping') Kundenbestellung über Shop @endif @if($shopping_order->shopping_user->is_from === 'homeparty') -
Beraterbestellung für eine Homeparty
+
Vertriebspartnerbestellung für eine Homeparty

@endif @@ -360,43 +360,92 @@ + + @if($shopping_order->shopping_user->is_from === 'user_order') + + + Zwischensumme + + + {{ $shopping_order->getFormattedSubtotalFull() }} €* + + + + + Handelspanne + + + - {{ $shopping_order->getFormattedDiscount() }} €* + + + + + Summe (Netto) + + + {{ $shopping_order->getFormattedSubtotal() }} €* + + + @endif + {{__('email.checkout_mail_shipping')}} - + @if($shopping_order->shopping_user->is_from === 'user_order') - {{ $shopping_order->getFormattedShippingNet() }} € + {{ $shopping_order->getFormattedShippingNet() }} €* @else {{ $shopping_order->getFormattedShipping() }} € @endif - {{__('email.checkout_mail_subtotal_ws')}} - - {{ $shopping_order->getFormattedSubtotalWs() }} € + + {{ $shopping_order->getFormattedSubtotalShipping() }} €* - + {{__('email.checkout_mail_tax')}} - + {{ $shopping_order->getFormattedTax() }} € + @if($shopping_order->shopping_user->is_from === 'user_order' && $shopping_order->payment_credit > 0) + + + Summe (Brutto): + + + {{ $shopping_order->getFormattedTotalWithoutCredit() }} € + + + + + aus Guthaben (Brutto): + + + {{ $shopping_order->getFormattedPaymentCredit() }} € + + + @endif - {{__('email.checkout_mail_total')}} + Gesamtsumme (Brutto): - + {{ $shopping_order->getFormattedTotalShipping() }} €
- {{__('email.checkout_mail_tax_info')}} + * Nettobeträge diff --git a/resources/views/admin/sales/customers.blade.php b/resources/views/admin/sales/customers.blade.php index b96ca67..bd96f25 100644 --- a/resources/views/admin/sales/customers.blade.php +++ b/resources/views/admin/sales/customers.blade.php @@ -10,7 +10,7 @@
- + - {{ __('Berater erstellen und eine E-Mail zur Einladung senden!') }} + {{ __('Vertriebspartner erstellen und eine E-Mail zur Einladung senden!') }}
diff --git a/resources/views/user/homeparty/order.blade.php b/resources/views/user/homeparty/order.blade.php index 82428ee..e198109 100644 --- a/resources/views/user/homeparty/order.blade.php +++ b/resources/views/user/homeparty/order.blade.php @@ -211,7 +211,7 @@


- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. @else
Die Bestellung kann erst abgesendet werden, wenn die Lieferadresse Gastgeber/in angelegt ist. diff --git a/resources/views/user/membership/_change_level.blade.php b/resources/views/user/membership/_change_level.blade.php index fe6b06c..43c84d5 100644 --- a/resources/views/user/membership/_change_level.blade.php +++ b/resources/views/user/membership/_change_level.blade.php @@ -1,6 +1,5 @@ {!! Form::open(['url' => route('user_membership_store', ['change_level']), 'class' => 'form-horizontal']) !!} -
@@ -20,7 +19,7 @@
{{$user_level->name}}
- {!! $user_level->getLang('content') !!} + {!! \App\Services\HTMLHelper::setContentReadMore($user_level->getLang('content')) !!}
diff --git a/resources/views/user/membership/_payment.blade.php b/resources/views/user/membership/_payment.blade.php index 54ef574..211f789 100644 --- a/resources/views/user/membership/_payment.blade.php +++ b/resources/views/user/membership/_payment.blade.php @@ -48,7 +48,7 @@
 

- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. {!! Form::close() !!} diff --git a/resources/views/user/membership/_payment_order.blade.php b/resources/views/user/membership/_payment_order.blade.php index cb38a2b..584e772 100644 --- a/resources/views/user/membership/_payment_order.blade.php +++ b/resources/views/user/membership/_payment_order.blade.php @@ -56,7 +56,7 @@ @endif  

- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. {!! Form::close() !!} diff --git a/resources/views/user/membership/_upgrade.blade.php b/resources/views/user/membership/_upgrade.blade.php index 6603b45..cb61abd 100644 --- a/resources/views/user/membership/_upgrade.blade.php +++ b/resources/views/user/membership/_upgrade.blade.php @@ -41,6 +41,6 @@ @include('user.membership._abo_options')  

- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. {!! Form::close() !!} \ No newline at end of file diff --git a/resources/views/user/membership/index.blade.php b/resources/views/user/membership/index.blade.php index 17197bc..46702b9 100644 --- a/resources/views/user/membership/index.blade.php +++ b/resources/views/user/membership/index.blade.php @@ -45,11 +45,11 @@ --}} @if($user->payment_order_id) @if($user->payment_order_product->identifier === 'show_upgrade') -

Eine Rückstufung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.

+

Eine Rückstufung Deiner Vertriebspartner-Mitgliedschaft ist nicht mehr möglich.

Du hast die Möglichkeit Dein Paket zu upgraden, wähle einfach das erweiterte Paket aus und gehe weiter zur Zahlung.

@endif @if($user->payment_order_product->identifier === 'show_order') -

Eine Änderung Deines Berater-Paketes ist nicht mehr möglich.

+

Eine Änderung Deines Vertriebspartner-Paketes ist nicht mehr möglich.

@endif @endif @@ -78,7 +78,7 @@
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryUpgradeOrder->getStatusType())}}
@endif
Erweitere jetzt Deine Mitglidschaft auf MIVITA BUSINESS Paket!
-

Berechnet werden die restlichen Monate bis zur Berater-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.

+

Berechnet werden die restlichen Monate bis zur Vertriebspartner-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.

@if($userHistoryUpgradeOrder && $userHistoryUpgradeOrder->status > 2)
Artikel entfernen - {{-- @if(!$row->options->comp) @else @@ -145,7 +148,7 @@
-
{{ Yard::instance('shopping')->rowPriceNet($row, 3) }} €
+
{{ Yard::instance('shopping')->rowPriceNet($row, 3) }} €*
@@ -159,7 +162,7 @@ --}}
-
{{ Yard::instance('shopping')->rowSubtotalNet($row) }} €
+
{{ Yard::instance('shopping')->rowSubtotalNet($row) }} €*
@@ -171,6 +174,8 @@
+ {{ Yard::instance('shopping')->calculateMargins() }} +
@@ -183,34 +188,97 @@
{{__('Bild')}} {{__('Produkt')}}{{__('Mein Preis netto')}}{{__('Mein Preis brutto')}}{{__('Preis netto')}}{{__('Preis brutto')}}{{__('Provision')}} {{__('Gewicht')}}{{__('VK-Preis brutto')}} {{__('Inhalt (ml)')}} {{__('Artikelnummer')}} #
- - + + + @if(Yard::instance('shopping')->getYardMargin() && Yard::instance('shopping')->getYardMargin()->isMargin()) + @foreach(Yard::instance('shopping')->getYardMargin()->items as $item) + + + + + @endforeach + @endif + @if(Yard::instance('shopping')->getYardCommission() && Yard::instance('shopping')->getYardCommission()->isCommission()) + + + + + @endif + + + + + @if(Yard::instance('shopping')->getYardMargin() && Yard::instance('shopping')->getYardMargin()->net_partner_commission > 0) + + + + + @endif + - + - - + - - + + + + @if(Yard::instance('shopping')->getPaymentCredit()) + + + - - + + + @endif + + + + + + + + + + +
Zwischensumme:{{ Yard::instance('shopping')->subtotal() }} €Zwischensumme: + {{ Yard::instance('shopping')->subtotal(null, null, null, false) }} €* +
Staffelrabatt +
ab {{ $item->getFormatted('price_from') }} / {{ $item->getFormatted('trading_margin') }}% :
+ - {{ $item->getFormatted('value_margin') }} €* +
Einzelrabatt: + - {{ Yard::instance('shopping')->getYardCommission()->getFormatted('single_value_commission') }} €* +
Summe (Netto): + {{ Yard::instance('shopping')->subtotal() }} €* +
Provision Vertriebspartern: + {{ Yard::instance('shopping')->getYardMargin()->getFormatted('net_partner_commission') }} €* +
Lieferland:{{ Yard::instance('shopping')->getShippingCountryName() }} + {{ Yard::instance('shopping')->getShippingCountryName() }} +
Versandkosten: - {{ Yard::instance('shopping')->shippingNet() }} € + Versandkosten: + {{ Yard::instance('shopping')->shippingNet() }} €*
Summe ohne MwSt: - {{ Yard::instance('shopping')->subtotalWithShipping() }} € + {{ Yard::instance('shopping')->subtotalWithShipping() }} €*
zzgl. MwSt:{{ Yard::instance('shopping')->taxWithShipping() }} €zzgl. MwSt: + {{ Yard::instance('shopping')->taxWithShipping() }} € +
Summe (Brutto): + {{ Yard::instance('shopping')->totalWithShippingWithoutCredit() }} € +
Gesamtsumme Brutto:{{ Yard::instance('shopping')->totalWithShipping() }} €aus Guthaben (Brutto): + - {{ Yard::instance('shopping')->totalfromCredit() }} € +
Gesamtsumme (Brutto): + {{ Yard::instance('shopping')->totalWithShipping() }} € +
* Nettobeträge
@@ -221,7 +289,7 @@


- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. @endif @endif \ No newline at end of file diff --git a/resources/views/user/team/members.blade.php b/resources/views/user/team/members.blade.php index 640bbd6..50c4142 100644 --- a/resources/views/user/team/members.blade.php +++ b/resources/views/user/team/members.blade.php @@ -19,10 +19,10 @@ {{ __('navigation.my_team') }}
-
Berater registrieren
+
Vertriebspartner registrieren
-
Link für Beraterregistrierung
+
Link für Vertriebspartnerregistrierung
@@ -31,7 +31,7 @@
-

Du möchtest einen neuen Berater registrieren? Super, das freut uns. Sende ihm einfach nachfolgenden Link per Mail, WhatsApp oder SMS zu. Er gelangt damit auf die Registrierungsseite von partner.gruene-seele.bio. Wichtig ist, dass Du diesen Link nicht veränderst, denn die angehängte Berater-ID identifiziert Dich als Sponsor von dem neuen Berater. Nur so können Dir künftige Provisionen durch Umsätze von ihm zugeordnet werden. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren. +

Du möchtest einen neuen Vertriebspartner registrieren? Super, das freut uns. Sende ihm einfach nachfolgenden Link per Mail, WhatsApp oder SMS zu. Er gelangt damit auf die Registrierungsseite von partner.gruene-seele.bio. Wichtig ist, dass Du diesen Link nicht veränderst, denn die angehängte Vertriebspartner-ID identifiziert Dich als Sponsor von dem neuen Vertriebspartner. Nur so können Dir künftige Provisionen durch Umsätze von ihm zugeordnet werden. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.

diff --git a/resources/views/user/wizard/_change.blade.php b/resources/views/user/wizard/_change.blade.php index 3e2d81e..3ae3ad9 100644 --- a/resources/views/user/wizard/_change.blade.php +++ b/resources/views/user/wizard/_change.blade.php @@ -24,7 +24,7 @@
{{$user_level->name}}
- {!! $user_level->getLang('content') !!} + {!! \App\Services\HTMLHelper::setContentReadMore($user_level->getLang('content')) !!}
diff --git a/resources/views/user/wizard/_payment.blade.php b/resources/views/user/wizard/_payment.blade.php index 4349311..7691f62 100644 --- a/resources/views/user/wizard/_payment.blade.php +++ b/resources/views/user/wizard/_payment.blade.php @@ -95,7 +95,7 @@

- {{-- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. --}} + {{-- Du wirst auf unseren checkout weitergeletet, die Verbindung ist SSL verschlüsselt. --}} {!! Form::close() !!}