Homeparty online, Cron SEPA

This commit is contained in:
Kevin Adametz 2021-04-23 14:54:09 +02:00
parent 13fb2cfe98
commit 36872100c6
41 changed files with 1140 additions and 189 deletions

View file

@ -7,6 +7,7 @@ use App\Mail\MailVerifyAccount;
use App\Models\UserHistory; use App\Models\UserHistory;
use App\Models\UserMessage; use App\Models\UserMessage;
use App\Repositories\UserRepository; use App\Repositories\UserRepository;
use App\Services\PaymentHelper;
use App\User; use App\User;
use Carbon; use Carbon;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
@ -104,14 +105,39 @@ class CronController extends Controller
dump($user->email." | ".$user->getPaymentAccountDateFormat()); dump($user->email." | ".$user->getPaymentAccountDateFormat());
die();*/ die();*/
foreach ($users as $user){ foreach ($users as $user){
$this->checkReminderPayments($user); // $this->checkReminderPayments($user);
/*dump($user->daysActiveAccount()); $this->userInitAboPayment($user);
dump($user->email." | ".$user->getPaymentAccountDateFormat());
dump('-------------------');*/
} }
return "TOSK"; return "TOSK";
} }
private function userInitAboPayment(User $user){
if(!$user->isAcountAboPayDate()){
return false;
}
//user has a open Abo Payment
if($this->checkIsAboPaymentOpen($user)){
return false;
}
if($user->payment_order_product){
$this->buyProductAboPayment($user, $user->payment_order_product);
}
/*dump($user->daysActiveAccount());
dump($user->email." | ".$user->getPaymentAccountDateFormat());
dump('-------------------');*/
}
private function checkIsAboPaymentOpen(User $user){
$isOpen = UserHistory::whereUserId($user->id)
->whereAction('abo_open_payment')
->whereIdentifier($user->payment_account)
->where('status', '>=', 1) //open //error // payment
->get()->last();
if($isOpen){
return true;
}
return false;
}
private function checkReminderPayments(User $user){ private function checkReminderPayments(User $user){
@ -158,7 +184,6 @@ class CronController extends Controller
} }
} }
private function checkIsReminderSend(User $user, $status){ private function checkIsReminderSend(User $user, $status){
$isSend = UserHistory::whereUserId($user->id) $isSend = UserHistory::whereUserId($user->id)
@ -237,4 +262,11 @@ class CronController extends Controller
return 1; return 1;
} }
private function buyProductAboPayment($user, $product){
$paymentHelper = new PaymentHelper();
$paymentHelper->setProduct($product);
$paymentHelper->initELVPayment($user);
}
} }

View file

@ -2,19 +2,20 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Request;
use App\User;
use Validator;
use App\Services\SysLog;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Services\UserService;
use App\Mail\MailAccountActive;
use App\Mail\MailCustomMessage; use App\Mail\MailCustomMessage;
use App\Mail\MailVerifyAccount; use App\Mail\MailVerifyAccount;
use App\Mail\MailVerifyContact; use App\Mail\MailVerifyContact;
use App\Mail\MailAccountActive;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Repositories\ContractPDFRepository;
use App\Repositories\UserRepository; use App\Repositories\UserRepository;
use App\Services\UserService;
use App\User;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Request; use App\Repositories\ContractPDFRepository;
use Validator;
class LeadController extends Controller class LeadController extends Controller
{ {
@ -187,6 +188,21 @@ class LeadController extends Controller
$this->userRepo->update($data); $this->userRepo->update($data);
if(isset($data['m_data_edit']) && $data['m_data_edit'] === "TSOK"){ if(isset($data['m_data_edit']) && $data['m_data_edit'] === "TSOK"){
//syslog
if(isset($data['m_sponsor'])){
if($user->m_sponsor != $data['m_sponsor']){
$from_user = isset($user->user_sponsor->email) ? $user->user_sponsor->email : "empty";
$t_user = User::find($data['m_sponsor']);
$to_user = isset($t_user->email) ? $t_user->email : "empty";
SysLog::action('save-m_sponsor', 'lead_edit_sponsor', 3)
->setUserId(\Auth::user()->id)
->setModel($user->id, User::class)
->setMessage('Set user new sponsor from: '.$from_user." | to: ".$to_user)
->save();
}
}
$user = $this->userRepo->getModel(); $user = $this->userRepo->getModel();
$user->m_level = isset($data['m_level']) ? $data['m_level'] : NULL; $user->m_level = isset($data['m_level']) ? $data['m_level'] : NULL;
$user->m_sponsor = isset($data['m_sponsor']) ? $data['m_sponsor'] : NULL; $user->m_sponsor = isset($data['m_sponsor']) ? $data['m_sponsor'] : NULL;

View file

@ -229,8 +229,13 @@ class PayoneController extends Controller
} }
} }
public function ResponseData(){ public function onlyPaymentResponse(){
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
$response = Payone::sendRequest($request);
return $response;
}
public function ResponseData(){
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls); $request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
//RECHNUNG MIV //RECHNUNG MIV

View file

@ -0,0 +1,78 @@
<?php
namespace App\Http\Controllers\SyS;
use Request;
use Carbon;
use App\Models\SySetting;
use App\Models\ShoppingOrder;
use App\Http\Controllers\Controller;
class SalesController extends Controller
{
protected $userRepo;
public function __construct()
{
$this->middleware('sysadmin');
}
public function index()
{
$start = 2019;
$end = date('Y');
$years = range($start, $end);
if(Request::get('filter_sales_year')){
$active_year = Request::get('filter_sales_year');
}else{
$active_year = $end;
}
$date1 = Carbon::parse('01.01.'.$active_year." 00:00:00")->format('Y-m-d H:i:s');
$date2 = Carbon::parse('31.12.'.$active_year." 23:59:59")->toDateString();
$values = ShoppingOrder::where('shopping_orders.auth_user_id', '!=', NULL) //::with('shopping_user', )->select('shopping_orders.*')
->where('mode', '=', 'live')
->where('paid', '=', 1)
->whereHas('shopping_order_items', function($q) {
$q->where('product_id', 34)->OrWhere('product_id', 35)->OrWhere('product_id', 36)->OrWhere('product_id', 67)->OrWhere('product_id', 69);
})
->whereBetween('created_at', [$date1, $date2])
->get();
$data = [
'years' => $years,
'active_year' => $active_year,
'values' => $values,
];
return view('sys.sales.index', $data);
}
public function store()
{
$data = Request::all();
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new"){
$model = SySetting::create($data);
}else{
$model = SySetting::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('sysadmin_settings'));
}
}

View file

@ -39,7 +39,6 @@ class AdminToolsController extends Controller
public function customers() public function customers()
{ {
$shopping_users = ShoppingUser::where('member_id', '=', NULL)->where('auth_user_id', '=', NULL)->get(); $shopping_users = ShoppingUser::where('member_id', '=', NULL)->where('auth_user_id', '=', NULL)->get();
$data = [ $data = [
'values' => $shopping_users, 'values' => $shopping_users,
@ -76,11 +75,8 @@ class AdminToolsController extends Controller
$pdf->_set('user_id', $user->id); $pdf->_set('user_id', $user->id);
$pdf->_set('identifier', 'contract'); $pdf->_set('identifier', 'contract');
$pdf->createContractPDF(); $pdf->createContractPDF();
} }
if(strpos($data['action'], 'checkOne_') !== false){ if(strpos($data['action'], 'checkOne_') !== false){
$id = (int) str_replace('checkOne_', '', $data['action']); $id = (int) str_replace('checkOne_', '', $data['action']);
$shopping_user = ShoppingUser::findOrFail($id); $shopping_user = ShoppingUser::findOrFail($id);
@ -104,9 +100,9 @@ class AdminToolsController extends Controller
'values' => $values, 'values' => $values,
'text' => $text, 'text' => $text,
]; ];
return view('sys.admin.cronjobs', $data); return view('sys.admin.cronjobs', $data);
} }
public function cronjobsStore() public function cronjobsStore()
{ {
$data = Request::all(); $data = Request::all();
@ -114,7 +110,6 @@ class AdminToolsController extends Controller
return back(); return back();
} }
public function domainSSL() public function domainSSL()
{ {
$user_shops = UserShop::all(); $user_shops = UserShop::all();
@ -144,10 +139,8 @@ class AdminToolsController extends Controller
]; ];
return view('sys.admin.domain-ssl', $data); return view('sys.admin.domain-ssl', $data);
} }
public function domainSSLStore() public function domainSSLStore()
{ {
$data = Request::all(); $data = Request::all();
@ -165,6 +158,7 @@ class AdminToolsController extends Controller
return view('sys.admin.shopping-orders', $data); return view('sys.admin.shopping-orders', $data);
} }
public function shoppingOrdersStore() public function shoppingOrdersStore()
{ {
//first run //first run
@ -197,9 +191,6 @@ class AdminToolsController extends Controller
\Session()->flash('alert-save', true); \Session()->flash('alert-save', true);
} }
return back(); return back();
} }
} }

View file

@ -28,8 +28,6 @@ class HomepartyController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware('superadmin');
$this->middleware('active.account'); $this->middleware('active.account');
} }
@ -45,6 +43,7 @@ class HomepartyController extends Controller
{ {
if($id === 'new'){ if($id === 'new'){
$homeparty = new Homeparty(); $homeparty = new Homeparty();
$homeparty->description = "Willkommen zu unserer Auszeitparty rund um das Thema Bio Aloe Vera und Naturkosmetik. Wir informieren Dich darüber, was Premiumqualität bei Naturkosmetik wirklich ausmacht, zeigen Dir viele Anwendungsbeispiele bei Haut- und Darmproblemen und natürlich kannst Du unsere Produkte ausgiebig testen. Wir freuen uns auf Dich!";
}else{ }else{
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
} }
@ -154,6 +153,7 @@ class HomepartyController extends Controller
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
if($gid === 'new'){ if($gid === 'new'){
$homeparty_user = new HomepartyUser(); $homeparty_user = new HomepartyUser();
$homeparty_user->same_as_billing = true;
}else{ }else{
$homeparty_user = HomepartyUser::findOrFail($gid); $homeparty_user = HomepartyUser::findOrFail($gid);
if($homeparty->id !== $homeparty_user->homeparty_id){ if($homeparty->id !== $homeparty_user->homeparty_id){
@ -238,8 +238,6 @@ class HomepartyController extends Controller
$homeparty = $this->getHomparty($id); $homeparty = $this->getHomparty($id);
if(Request::ajax()) { if(Request::ajax()) {
$data = Request::all(); $data = Request::all();
@ -415,9 +413,14 @@ class HomepartyController extends Controller
if($homeparty->id !== $homeparty_user->homeparty_id){ if($homeparty->id !== $homeparty_user->homeparty_id){
abort(404); abort(404);
} }
$homeparty_user->save(); if($homeparty_user->homeparty_user_order_items){
foreach($homeparty_user->homeparty_user_order_items as $homeparty_user_order_item){
$homeparty_user_order_item->delete();
}
}
//$homeparty_user->save();
$homeparty_user->delete(); $homeparty_user->delete();
\Session()->flash('alert-success', "Homeparty Gast gelöscht"); \Session()->flash('alert-success', "Auszeitparty Gast gelöscht");
return redirect(route('user_homeparty_guests', [$homeparty->id])); return redirect(route('user_homeparty_guests', [$homeparty->id]));
} }
@ -427,11 +430,20 @@ class HomepartyController extends Controller
if ($homeparty->id !== $homeparty_user->homeparty_id) { if ($homeparty->id !== $homeparty_user->homeparty_id) {
abort(404); abort(404);
} }
$homeparty_user->save(); if($homeparty_user->homeparty_user_order_items){
foreach($homeparty_user->homeparty_user_order_items as $homeparty_user_order_item){
$homeparty_user_order_item->delete();
}
}
$homeparty_user->delete(); $homeparty_user->delete();
} }
if($homeparty->homeparty_order_items){
foreach($homeparty->homeparty_order_items as $homeparty_order_item){
$homeparty_order_item->delete();
}
}
$homeparty->delete(); $homeparty->delete();
\Session()->flash('alert-success', "Homeparty gelöscht"); \Session()->flash('alert-success', "Auszeitparty gelöscht");
return redirect(route('user_homepartys')); return redirect(route('user_homepartys'));
} }

View file

@ -24,8 +24,6 @@ class OrderController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware('superadmin');
$this->middleware('active.account'); $this->middleware('active.account');
} }
@ -166,7 +164,6 @@ class OrderController extends Controller
public function payment($for, $id=null){ public function payment($for, $id=null){
$data = Request::all(); $data = Request::all();
$user = User::find(Auth::user()->id); $user = User::find(Auth::user()->id);
$rules = array( $rules = array(
'shipping_salutation' => 'required', 'shipping_salutation' => 'required',

View file

@ -42,7 +42,6 @@ class CheckoutController extends Controller
public function checkout(){ public function checkout(){
// dump(Request::all()); // dump(Request::all());
// $user_shop = Util::getUserShop(); // $user_shop = Util::getUserShop();
$shopping_data = Yard::instance('shopping')->getYardExtra('shopping_data'); $shopping_data = Yard::instance('shopping')->getYardExtra('shopping_data');

View file

@ -37,12 +37,15 @@ class HomepartyController extends Controller
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.'); abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
} }
$homeparty_user = null; $homeparty_user = null;
if($gid){ if($gid){
if($gid === 'new'){ if($gid === 'new'){
$homeparty_user = new HomepartyUser(); $homeparty_user = new HomepartyUser();
$homeparty_user->same_as_billing = true;
}else{ }else{
//no edit
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
$homeparty_user = HomepartyUser::find($gid); $homeparty_user = HomepartyUser::find($gid);
if(!$homeparty_user || $homeparty_user->homeparty_id !== $homeparty->id){ if(!$homeparty_user || $homeparty_user->homeparty_id !== $homeparty->id){
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.'); abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
@ -52,6 +55,8 @@ class HomepartyController extends Controller
$data = [ $data = [
'homeparty' => $homeparty, 'homeparty' => $homeparty,
'homeparty_user' => $homeparty_user, 'homeparty_user' => $homeparty_user,
'homeparty_host' => $homeparty->homeparty_host,
'mivita_member' => $homeparty->auth_user
]; ];
return view('user.homeparty.self_guest_detail', $data); return view('user.homeparty.self_guest_detail', $data);
@ -68,22 +73,7 @@ class HomepartyController extends Controller
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.'); abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
} }
if($gid === null){
$homeparty_user = HomepartyUser::create([
'homeparty_id' => $homeparty->id,
'auth_user_id' => $homeparty->auth_user_id,
'is_host' => false,
]);
}else{
$homeparty_user = HomepartyUser::find($gid);
if(!$homeparty_user || $homeparty_user->homeparty_id !== $homeparty->id){
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
}
}
if(!$homeparty_user){
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
}
$rules = array( $rules = array(
'billing_salutation' => 'required', 'billing_salutation' => 'required',
@ -93,6 +83,8 @@ class HomepartyController extends Controller
'billing_zipcode' => 'required', 'billing_zipcode' => 'required',
'billing_city' => 'required', 'billing_city' => 'required',
'billing_country_id' => 'required', 'billing_country_id' => 'required',
'checkbox_datenverarbeitung' => 'required',
'checkbox_daten_completely' => 'required'
); );
if (!Request::get('same_as_billing')) { if (!Request::get('same_as_billing')) {
$rules = array_merge($rules, [ $rules = array_merge($rules, [
@ -109,6 +101,24 @@ class HomepartyController extends Controller
if ($validator->fails()) { if ($validator->fails()) {
return back()->withErrors($validator)->withInput(Request::all()); return back()->withErrors($validator)->withInput(Request::all());
} }
if($gid === null){
$homeparty_user = HomepartyUser::create([
'homeparty_id' => $homeparty->id,
'auth_user_id' => $homeparty->auth_user_id,
'is_host' => false,
]);
}else{
//no edit
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
$homeparty_user = HomepartyUser::find($gid);
if(!$homeparty_user || $homeparty_user->homeparty_id !== $homeparty->id){
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
}
}
if(!$homeparty_user){
abort(403, 'Link für die Homeparty wurde nicht gefunden, oder ist nicht mehr aktiv.');
}
$data = Request::all(); $data = Request::all();
$data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false;

View file

@ -65,7 +65,6 @@ class RegisterController extends Controller
public function register(){ public function register(){
$rules = array( $rules = array(
'salutation' => 'required', 'salutation' => 'required',
'first_name'=>'required', 'first_name'=>'required',
@ -74,13 +73,13 @@ class RegisterController extends Controller
'email-confirm' => 'required|same:email', 'email-confirm' => 'required|same:email',
'password' => 'required|string|min:6|confirmed', 'password' => 'required|string|min:6|confirmed',
'password_confirmation' => 'required|string|min:6', 'password_confirmation' => 'required|string|min:6',
// 'g-recaptcha-response'=>'required|recaptcha', 'g-recaptcha-response'=>'required|recaptcha',
'accepted_data_protection' => 'required', 'accepted_data_protection' => 'required',
); );
/*Validator::extend('recaptcha', function($attribute, $value, $parameters, $validator) { Validator::extend('recaptcha', function($attribute, $value, $parameters, $validator) {
return $this->reCaptcha_validate($attribute, $value, $parameters, $validator); return $this->reCaptcha_validate($attribute, $value, $parameters, $validator);
});*/ });
$validator = Validator::make(Request::all(), $rules); $validator = Validator::make(Request::all(), $rules);
if ($validator->fails()) { if ($validator->fails()) {
@ -124,7 +123,7 @@ class RegisterController extends Controller
]; ];
return view('web.templates.registrierung_finish', $data); return view('web.templates.registrierung_finish', $data);
} }
/*
private function reCaptcha_validate($attribute, $value, $parameters, $validator) private function reCaptcha_validate($attribute, $value, $parameters, $validator)
{ {
@ -143,7 +142,7 @@ class RegisterController extends Controller
$body = json_decode((string)$response->getBody()); $body = json_decode((string)$response->getBody());
return $body->success; return $body->success;
} }
*/
} }

View file

@ -120,6 +120,10 @@ class Homeparty extends Model
return $this->hasMany('App\Models\HomepartyUser', 'homeparty_id')->where('is_host', false); return $this->hasMany('App\Models\HomepartyUser', 'homeparty_id')->where('is_host', false);
} }
public function homeparty_order_items(){
return $this->hasMany('App\Models\HomepartyUserOrderItem','homeparty_id');
}
public function getDateAttribute($value) public function getDateAttribute($value)
{ {

View file

@ -218,4 +218,12 @@ class UserAccount extends Model
return isset($this->notice[$key]) ? $this->notice[$key] : false; return isset($this->notice[$key]) ? $this->notice[$key] : false;
} }
public function getPhoneNumber(){
if($this->phone && $this->phone !== ""){
return ($this->pre_phone ? $this->pre_phone->phone : '')." ".$this->phone;
}
if($this->mobil && $this->mobil !== ""){
return ($this->pre_mobil ? $this->pre_mobil->phone : '')." ".$this->mobil;
}
}
} }

352
app/Services/CartHelper.php Normal file
View file

@ -0,0 +1,352 @@
<?php
namespace App\Services;
use App\Models\Attribute;
use App\Models\Category;
use App\Models\Country;
use App\Models\Ingredient;
use App\Models\Product;
use App\Models\ShippingCountry;
use App\Models\ShoppingUser;
use App\Models\UserLevel;
use App\User;
class HTMLHelper
{
private static $months = [
1 => 'Januar',
2 => 'Februar',
3 => 'März',
4 => 'April',
5 => 'Mai',
6 => 'Juni',
7 => 'Juli',
8 => 'August',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'Dezember',
];
private static $roles = [
0 => 'Kunde',
1 => 'Admin',
2 => 'SuperAdmin',
3 => 'SySAdmin',
];
public static function getMonth($i){
return self::$months[intval($i)];
}
public static function getRoleLabel($role_id = 0){
return '<span class="badge badge-pill '.self::getLabel($role_id).'">'.self::$roles[$role_id].'</span>';
}
public static function getLabel($id){
switch ($id) {
case 0:
return 'badge-default';
break;
case 1:
return 'badge-warning';
break;
case 2:
return 'badge-primary';
break;
case 3:
return 'badge-primary';
break;
}
}
public static function getRolesOptions(){
$ret = "";
foreach (self::$roles as $role_id => $value){
$ret .= '<option value="'.$role_id.'">'.$value.'</option>\n';
}
return $ret;
}
public static function getYearSelectOptions(){
$start = date("Y", strtotime("-5 years", time()));
$end = date("Y", strtotime("+1 years", time()));
$values = range($start, $end);
$now = date("Y", time());
$ret = "";
foreach ($values as $value){
$attr = ($value == $now) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
}
return $ret;
}
public static function getAttributesWithoutParents($id = false, $sameId = false, $all = true){
$values = Attribute::where('parent_id', null)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
if($sameId == $value->id){
continue;
}
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getCategoriesWithoutParents($id = false, $sameId = false, $all = true){
$values = Category::where('parent_id', null)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
if($sameId == $value->id){
continue;
}
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getProductsOptions($ids = array(), $all = true){
if($ids == null){
$ids = array();
}
$values = Product::where('active', 1)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getCategoriesOptions($ids = array(), $all = true){
$values = Category::where('active', 1)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getProductIngredientsOptions($has_ids = array(), $all = true){
$values = Ingredient::where('active', 1)->get();
$ret = "";
$attr = "";
foreach ($values as $value){
if(!in_array($value->id, $has_ids)){
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
}
return $ret;
}
public static function getAttributesOptions($ids = array(), $all = true){
$values = Attribute::where('active', 1)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
$attr = in_array($value->id, $ids) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getUserLevelOptions($id = false, $all = true){
$values = UserLevel::where('active', 1)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('no').'</option>\n';
}
foreach ($values as $value){
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->name.'</option>\n';
}
return $ret;
}
public static function getCompanyOptions($company){
$options = array(1 => __('business'), 0 => __('private'), );
$ret = "";
foreach ($options as $id => $value){
$attr = ($id == $company) ? 'selected="selected"' : '';
$ret .= '<option value="'.$id.'" '.$attr.'>'.$value.'</option>\n';
}
return $ret;
}
public static function getContriesWithMore($id, $all=true){#
$values = Country::all();
$counter = 1;
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
if( $counter == 7){
$ret .= '<optgroup label="'.__('further countrie').'">';
}
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->getLocated().'</option>\n';
$counter ++;
}
$ret .= '</optgroup>';
return $ret;
}
public static function getContriesCodes($id, $all=true){#
$values = Country::all();
$counter = 1;
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
if(!$value->phone) continue;
if( $counter == 7){
$ret .= '<optgroup label="'.__('further countrie').'">';
}
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->phone.'('.$value->getLocated().')</option>\n';
$counter ++;
}
$ret .= '</optgroup>';
return $ret;
}
public static function getCountriesWithoutUsedShippings($all=true){#
$values = Country::all();
$country_ids = ShippingCountry::all()->pluck('country_id')->toArray();
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
if(!in_array($value->id, $country_ids)){
$ret .= '<option value="'.$value->id.'">'.$value->getLocated().'</option>\n';
}
}
return $ret;
}
public static function getCountryNameFormShipping($id){
$value = ShippingCountry::find($id);
if($value){
return $value->country->getLocated();
}
return "not defined";
}
public static function getCountriesForShipping($id, $all=false){#
$values = ShippingCountry::all();
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$value->country->getLocated().'</option>\n';
}
return $ret;
}
public static function getSalutation($id){
$values = array('mr' => __('MR'), 'ms' => __('MS'));
$ret = "";
$ret .= '<option value="">'.__('please select').'</option>\n';
foreach ($values as $key => $value){
$attr = ($key == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
}
return $ret;
}
public static function getSalutationLang($id){
$values = array('mr' => __('MR'), 'ms' => __('MS'));
return (!empty($values[$id]) ? $values[$id] : '');
}
public static function getTaxSaleOptions($id){
$values = array('1' => __('taxable_sales_1'), '2' => __('taxable_sales_2'));
$ret = "";
$ret .= '<option value="">'.__('please select').'</option>\n';
foreach ($values as $key => $value){
$attr = ($key == $id) ? 'selected="selected"' : '';
$ret .= '<option value="'.$key.'" '.$attr.'>'.$value.'</option>\n';
}
return $ret;
}
public static function getMembersOptions($id, $all=false){
$values = User::where('active', '=', true)->where('blocked', '=', false)->where('payment_account', '>=', now())->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$to="";
if($value->account){
$to = $value->account->first_name." ".$value->account->last_name." | ";
}
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$to.$value->email.' #'.$value->number.'</option>\n';
}
return $ret;
}
public static function getUserCustomerOptions($id, $all=false){
$values = ShoppingUser::select(['id', 'billing_firstname', 'billing_lastname', 'billing_email', 'number'])
->where('shopping_users.member_id', '=', \Auth::user()->id)->get();
$ret = "";
if($all){
$ret .= '<option value="">'.__('please select').'</option>\n';
}
foreach ($values as $value){
dump($value);
$attr = ($value->id == $id) ? 'selected="selected"' : '';
$to = $value->billing_firstname." ".$value->billing_lastname." | ".$value->billing_email;
$ret .= '<option value="'.$value->id.'" '.$attr.'>'.$to.' #'.$value->number.'</option>\n';
}
return $ret;
}
public static function getOptionRange($select, $from=1, $to=50){
$values = range($from, $to);
$ret = "";
foreach ($values as $value){
$attr = ($value == $select) ? 'selected="selected"' : '';
$ret .= '<option value="'.$value.'" '.$attr.'>'.$value.'</option>\n';
}
return $ret;
}
}

View file

@ -0,0 +1,161 @@
<?php
namespace App\Services;
use Yard;
use App\User;
use App\Models\UserHistory;
use App\Models\ShoppingUser;
use App\Models\ShoppingOrder;
use App\Models\ShoppingOrderItem;
use App\Models\PaymentTransaction;
use App\Http\Controllers\Pay\PayoneController;
class PaymentHelper
{
public function setProduct($product){
Yard::instance('shopping')->destroy();
Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, ['image' => "", 'slug' => $product->slug, 'weight' => $product->weight]);
}
public function initELVPayment($user){
$shopping_user = $this->makeShoppingUser($user);
$shopping_order = $this->makeShoppingOrder($user, $shopping_user);
$pay = new PayoneController();
$pay->init($shopping_user, $shopping_order);
$amount = Yard::instance('shopping')->totalWithShipping(2, '.', '') * 100;
$payment_method = 'elv';
$ret['elv']['mandate_identification'] = isset($user->account->payment_data['mandate_identification']) ? $user->account->payment_data['mandate_identification'] : "";
$ret['elv']['creditor_identifier'] = isset($user->account->payment_data['creditor_identifier']) ? $user->account->payment_data['creditor_identifier'] : "";
$ret['elv']['iban'] = isset($user->account->payment_data['iban']) ? $user->account->payment_data['iban'] : "";
$ret['elv']['bic'] = isset($user->account->payment_data['bic']) ? $user->account->payment_data['bic'] : "";
$ret['elv']['bankaccountholder'] = isset($user->account->payment_data['bankaccountholder']) ? $user->account->payment_data['bankaccountholder'] : "";
$reference = $pay->setPrePayment($payment_method, $amount, 'EUR', $ret);
$pay->setPersonalData();
$response = $pay->onlyPaymentResponse();
$shopping_payment = $pay->getShoppingPayment();
if($response['status'] === 'ERROR'){
$payT = PaymentTransaction::create([
'shopping_payment_id' => $shopping_payment->id,
'request' => 'authorization',
'errorcode' => $response['errorcode'],
'errormessage' => $response['errormessage'],
'customermessage' => $response['customermessage'],
'status' => $response['status'],
'mode' => $shopping_payment->mode,
]);
UserHistory::create(['user_id'=>$user->id, 'shopping_order_id'=>$shopping_order->id, 'action'=>'abo_open_payment', 'referenz'=>$payT->id, 'identifier'=>$user->payment_account, 'status'=>3]);
}
if($response['status'] === 'REDIRECT'){
$payT = PaymentTransaction::create([
'shopping_payment_id' => $shopping_payment->id,
'request' => 'authorization',
'txid' => $response['txid'],
'userid' => $response['userid'],
'status' => $response['status'],
'mode' => $shopping_payment->mode,
]);
UserHistory::create(['user_id'=>$user->id, 'shopping_order_id'=>$shopping_order->id, 'action'=>'abo_open_payment', 'referenz'=>$payT->id, 'identifier'=>$user->payment_account, 'status'=>4]);
}
if($response['status'] === 'APPROVED'){
$payT = PaymentTransaction::create([
'shopping_payment_id' => $shopping_payment->id,
'request' => 'authorization',
'txid' => $response['txid'],
'userid' => $response['userid'],
'status' => $response['status'],
'transmitted_data' => $response,
'mode' => $shopping_payment->mode
]);
UserHistory::create(['user_id'=>$user->id, 'shopping_order_id'=>$shopping_order->id, 'action'=>'abo_open_payment', 'referenz'=>$payT->id, 'identifier'=>$user->payment_account, 'status'=>5]);
}
}
public function makeShoppingUser($user, $is_from = 'membership', $is_for = 'me'){
$shopping_user = new ShoppingUser();
$shopping_user->auth_user_id = $user->id;
$shopping_user->mode = 'prev';
$shopping_user->billing_salutation = $user->account->salutation;
$shopping_user->billing_company = $user->account->company;
$shopping_user->billing_firstname = $user->account->first_name;
$shopping_user->billing_lastname = $user->account->last_name;
$shopping_user->billing_address = $user->account->address;
$shopping_user->billing_address_2 = $user->account->address_2;
$shopping_user->billing_zipcode = $user->account->zipcode;
$shopping_user->billing_city = $user->account->city;
$shopping_user->billing_country_id = $user->account->country_id;
$shopping_user->billing_phone = $user->account->phone;
$shopping_user->billing_email = $user->email;
$shopping_user->faker_mail = false;
$shopping_user->shipping_email = $user->email;
$shopping_user->accepted_data_checkbox = 1;
$shopping_user->is_for = $is_for;
$shopping_user->is_from = $is_from;
$shopping_user->homeparty_id = null;
$shopping_user->same_as_billing = $user->account->same_as_billing ? false : true;
$shopping_user->shipping_salutation = $user->account->shipping_salutation;
$shopping_user->shipping_company = $user->account->shipping_company;
$shopping_user->shipping_firstname = $user->account->shipping_firstname;
$shopping_user->shipping_lastname = $user->account->shipping_lastname;
$shopping_user->shipping_address = $user->account->shipping_address;
$shopping_user->shipping_address_2 = $user->account->shipping_address_2;
$shopping_user->shipping_zipcode = $user->account->shipping_zipcode;
$shopping_user->shipping_city = $user->account->shipping_city;
$shopping_user->shipping_country_id = $user->account->shipping_country_id;
$shopping_user->shipping_phone = $user->account->shipping_phone;
$shopping_user->save();
return $shopping_user;
}
public function makeShoppingOrder($user, $shopping_user){
$data = [
'shopping_user_id' => $shopping_user->id,
'auth_user_id' => $shopping_user->auth_user_id,
'country_id' => Yard::instance('shopping')->getShippingCountryId(),
'user_shop_id' => 1,
'payment_for' => Util::getUserPaymentFor(),
'total' => Yard::instance('shopping')->total(2, '.', ''),
'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, '.', ''),
'tax' => Yard::instance('shopping')->taxWithShipping(2, '.', ''),
'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''),
'points' => Yard::instance('shopping')->points(),
'weight' => Yard::instance('shopping')->weight(),
'txaction' => 'prev',
'mode' => $user->test_mode ? 'test' : 'live',
];
$shopping_order = ShoppingOrder::create($data);
$items = Yard::instance('shopping')->getContentByOrder();
foreach ($items as $item) {
if (!ShoppingOrderItem::where('shopping_order_id', $shopping_order->id)->where('row_id', $item->rowId)->count()){
$data = [
'shopping_order_id' => $shopping_order->id,
'row_id' => $item->rowId,
'product_id' => $item->id,
'comp' => $item->options->comp,
'qty' => $item->qty,
'price' => $item->price,
'price_net' => Yard::instance('shopping')->rowPriceNet($item, 3, '.', ''),
'tax_rate' => $item->taxRate,
'slug' => $item->options->slug
];
$shopping_order_item = ShoppingOrderItem::create($data);
}
}
return $shopping_order;
}
}

View file

@ -165,6 +165,19 @@ class Util
return false; return false;
} }
public static function checkUserLandIsNot($user){
if(isset($user->account->country_id)){
//ch schweiz is out
if($user->account->country_id === 6){
return false;
}
return true;
}
return false;
}
public static function getMyMivitaUrl($protocol = true){ public static function getMyMivitaUrl($protocol = true){
$pro = $protocol ? config('app.protocol') : ""; $pro = $protocol ? config('app.protocol') : "";
return $pro.config('app.pre_url_crm').config('app.domain').config('app.tld_care'); return $pro.config('app.pre_url_crm').config('app.domain').config('app.tld_care');

View file

@ -342,6 +342,17 @@ class User extends Authenticatable
return Carbon::now()->diffForHumans(Carbon::parse($this->payment_shop)); return Carbon::now()->diffForHumans(Carbon::parse($this->payment_shop));
} }
public function isAcountAboPayDate(){
if($this->isAboOption()){
$pay_days = Carbon::parse($this->payment_account)->modify('- '.config('mivita.abo_booking_days').' days');
$diff_days = Carbon::now()->diffInDays($pay_days, false);
if($diff_days <= 0){
return true;
}
}
return false;
}
/** /**
* @return string * @return string
*/ */

8
mivita.code-workspace Normal file
View file

@ -0,0 +1,8 @@
{
"folders": [
{
"path": "."
}
],
"settings": {}
}

BIN
public/images/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View file

@ -45,7 +45,7 @@
'checkout_copy3line' => 'Bei Fragen sind wir jederzeit für Dich da.', 'checkout_copy3line' => 'Bei Fragen sind wir jederzeit für Dich da.',
'checkout_copy3line_extern' => 'Bestellung über Berater:', 'checkout_copy3line_extern' => 'Bestellung über Berater:',
'status_copy1line' => 'Status zu Deiner Bestellung auf mivita.care', 'status_copy1line' => 'Status zu Deiner Bestellung auf mivita.care',
'footer_copy1' => 'mivita e.K. | Leinfeld 2 | 87755 Kirchhaslach | Telefon: +49 (0) 8333 946 98 90 | Fax: +49 (0) 8333 7268 E-Mail: info@mivita.care', 'footer_copy1' => 'mivita e.K. | Leinfeld 2 | 87755 Kirchhaslach | Telefon: +49 (0) 8333 946 17 67 | E-Mail: info@mivita.care',
'footer_copy2' => 'Geschäftsinhaber: Alois Ried | Registergericht: Memmingen | Registernummer: HRA 12236 | USt-ID-Nr.: DE 244162340', 'footer_copy2' => 'Geschäftsinhaber: Alois Ried | Registergericht: Memmingen | Registernummer: HRA 12236 | USt-ID-Nr.: DE 244162340',
'footer_copy3' => '© 2020 All Rights Reserved', 'footer_copy3' => '© 2020 All Rights Reserved',
'checkout_mail_hl1' => 'Du hast folgende Artikel bestellt:', 'checkout_mail_hl1' => 'Du hast folgende Artikel bestellt:',

View file

@ -10,7 +10,7 @@ return [
'my_team' => 'Mein Team', 'my_team' => 'Mein Team',
'my_clients' => 'Meine Kunden', 'my_clients' => 'Meine Kunden',
'my_orders' => 'Meine Bestellungen', 'my_orders' => 'Meine Bestellungen',
'my_homeparty' => 'Meine Homeparty', 'my_homeparty' => 'Meine Auszeitparty',
'member_register' => 'Berater registrieren', 'member_register' => 'Berater registrieren',
'member'=>'Berater', 'member'=>'Berater',
'membership' => 'Mitgliedschaft', 'membership' => 'Mitgliedschaft',

View file

@ -74,7 +74,7 @@
</ul> </ul>
</li> </li>
@endif @endif
@if(Auth::user()->isActiveAccount() && Auth::user()->isSySAdmin()) @if(Auth::user()->isActiveAccount() && \App\Services\Util::checkUserLandIsNot(Auth::user()))
<li class="sidenav-item @if(Request::is('user/orders', 'user/order/*')) open @endif"> <li class="sidenav-item @if(Request::is('user/orders', 'user/order/*')) open @endif">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"> <a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-ios-cart"></i> <i class="sidenav-icon ion ion-ios-cart"></i>
@ -90,7 +90,7 @@
</ul> </ul>
</li> </li>
@endif @endif
@if(Auth::user()->isActiveAccount() && Auth::user()->isSySAdmin()) @if(Auth::user()->isActiveAccount() && \App\Services\Util::checkUserLandIsNot(Auth::user()))
<li class="sidenav-item @if(Request::is('user/homepartys', 'user/homeparty/*')) open @endif"> <li class="sidenav-item @if(Request::is('user/homepartys', 'user/homeparty/*')) open @endif">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"> <a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-ios-pizza"></i> <i class="sidenav-icon ion ion-ios-pizza"></i>
@ -213,6 +213,9 @@
<div>Tools</div> <div>Tools</div>
</a> </a>
<ul class="sidenav-menu"> <ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('sysadmin/sales/members') ? ' active' : '' }}">
<a href="{{ route('sysadmin_sales_members') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>Buchnungen Berater</div></a>
</li>
<li class="sidenav-item{{ Request::is('sysadmin/tools/customers') ? ' active' : '' }}"> <li class="sidenav-item{{ Request::is('sysadmin/tools/customers') ? ' active' : '' }}">
<a href="{{ route('sysadmin_tools_customers') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contact"></i><div>Kunden</div></a> <a href="{{ route('sysadmin_tools_customers') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contact"></i><div>Kunden</div></a>
</li> </li>

View file

@ -46,8 +46,7 @@
Herr Alois Ried<br> Herr Alois Ried<br>
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach<br> 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
Fax: +49 (0) 8333 7268<br>
Mail: info@mivita.care<br> Mail: info@mivita.care<br>
<br><br> <br><br>
<strong>III. Cookies</strong> <strong>III. Cookies</strong>

View file

@ -10,8 +10,7 @@
<p><strong>mivita e.K.</strong><br> <p><strong>mivita e.K.</strong><br>
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach<br> 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
Fax: +49 (0) 8333 7268<br>
E-Mail: info@mivita.care<br></p> E-Mail: info@mivita.care<br></p>
<p><strong>Geschäftsinhaber:</strong><br> Alois Ried<br><br> <p><strong>Geschäftsinhaber:</strong><br> Alois Ried<br><br>
@ -23,7 +22,7 @@
<strong>USt-ID-Nr.:</strong><br> DE 244162340<br></p> <strong>USt-ID-Nr.:</strong><br> DE 244162340<br></p>
<br> <br>
<p><strong>Support mivita:</strong><br> <p><strong>Support mivita:</strong><br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
E-Mail:: <a href="mailto:info@mivita.care">info@mivita.care</a></p> E-Mail:: <a href="mailto:info@mivita.care">info@mivita.care</a></p>
<br> <br>

View file

@ -0,0 +1,65 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h6 class="card-header">
Berater Bestellungen
</h6>
<div class="col-sm-6 mb-2">
{!! Form::open(['url' => route('sysadmin_sales_members'), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
<label class="form-label" for="filter_user_shop_id">Filter Jahr</label>
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
@foreach($years as $year)
<option value="{{$year}}" @if($active_year == $year) selected @endif>{{$year}}</option>
@endforeach
</select>
{!! Form::close() !!}
</div>
<div class="card-datatable table-responsive">
<table class="datatables-style table table-striped table-bordered">
<thead>
<tr>
<th>{{__('Vorname')}}</th>
<th>{{__('Nachname') }}</th>
<th>{{__('E-Mail') }}</th>
<th>{{__('Betrag') }}</th>
<th>{{__('Datum') }}</th>
<th>{{__('Order')}}</th>
<th>{{__('Status')}}</th>
</tr>
</thead>
<tbody>
@foreach($values as $value)
<tr>
<td>{{ $value->shopping_user->billing_firstname }}</td>
<td>{{ $value->shopping_user->billing_lastname }}</td>
<td>{{ $value->shopping_user->billing_email }}</td>
<td>{{ $value->getFormattedTotalShipping()."" }}</td>
<td>{{ $value->created_at->format("d.m.Y") }}</td>
<td>@foreach($value->shopping_order_items as $shopping_order_item)
{{ $shopping_order_item->product->name }}<br>
@endforeach
</td>
<td>{!! App\Services\Payment::getShoppingOrderBadge($value) !!}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<script>
$('#filter_sales_year').on('change', function(){
$('#filter_sales_member').submit();
});
</script>
@endsection

View file

@ -12,15 +12,14 @@
</div> </div>
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a> <a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4> </h4>
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!} {!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
<div class="card mb-4"> <div class="card mb-4">
<h5 class="card-header"> <h5 class="card-header">
<div class="row"> <div class="row">
@if(!$homeparty->id) @if(!$homeparty->id)
<div class="col-12"> <div class="col-12">
Neue Homeparty anlegen <span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
Neue Auszeitparty anlegen
</div> </div>
@else @else
<div class="col-12"> <div class="col-12">
@ -39,8 +38,8 @@
<div class="card-body"> <div class="card-body">
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4 {{ $errors->has('name') ? 'has-error' : '' }}"> <div class="form-group col-md-4 {{ $errors->has('name') ? 'has-error' : '' }}">
<label for="name" class="form-label">{{ __('Veranstaltungsname') }}*</label> <label for="name" class="form-label">{{ __('Gastgeber / Veranstalter') }}*</label>
{{ Form::text('name', $homeparty->name, array('placeholder'=>__('Veranstaltungsname'), 'class'=>'form-control', 'required')) }} {{ Form::text('name', $homeparty->name, array('placeholder'=>__('Gastgeber / Veranstalter'), 'class'=>'form-control', 'required')) }}
@if ($errors->has('name')) @if ($errors->has('name'))
<span class="help-block"> <span class="help-block">
<strong>{{ $errors->first('name') }}</strong> <strong>{{ $errors->first('name') }}</strong>
@ -68,12 +67,12 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label" for="description">{{ __('Beschreibung') }}</label> <label class="form-label" for="description">{{ __('Beschreibung / Willkommenstext') }}</label>
{{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }} {{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>5)) }}
</div> </div>
</div> </div>
</div> </div>
<div class="text-left mt-3"> <div class="text-left mt-3 mb-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store"> <button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-party-store">
@if($homeparty->id) {{ __('Änderungen speichern') }} @else {{ __('speichern') }} @endif</button>&nbsp; @if($homeparty->id) {{ __('Änderungen speichern') }} @else {{ __('speichern') }} @endif</button>&nbsp;
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a> <a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
@ -82,21 +81,7 @@
@if($homeparty->id) @if($homeparty->id)
<div class="card mb-3 mt-2">
<div class="col-md-12 px-4 pt-4">
<h6 class="mb-4">Lass den Gastgeber/in seine Daten selber ausfüllen</h6>
<div class="form-group">
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link" placeholder="">
</div>
</div>
<p>Teile diesen Link mit dem Gastgeber/in und Gästen (z.B. WhatsApp oder SMS), damit gelangt sie auf eine Zielseite wo sie ihre Daten selber ausfüllen können. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p>
</div>
</div>
<hr>
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!} {!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<div class="card mb-4"> <div class="card mb-4">
<h5 class="card-header"> <h5 class="card-header">
@ -117,6 +102,23 @@
<a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a> <a href="{{route('user_homepartys')}}" class="btn btn-default mb-2">zurück zur Übersicht</a>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}
<hr>
<div class="card mb-3 mt-2">
<div class="col-md-12 px-4 pt-4">
<label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label>
<div class="form-group">
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link" placeholder="">
</div>
</div>
<p>Teile diesen Link mit den Gästen (z.B. WhatsApp oder SMS), damit gelangt sie auf eine Zielseite wo sie ihre Daten selber ausfüllen können. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.</p>
</div>
</div>
@endif @endif

View file

@ -6,6 +6,21 @@
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-default float-right">zurück</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4> </h4>
@if(!$homeparty->completed)
<div class="card mb-3">
<div class="card-body py-3">
<div class="form-group mb-0">
<label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label>
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-sm btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link_{{$homeparty->id}}"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link_{{$homeparty->id}}" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link_{{$homeparty->id}}" placeholder="">
</div>
</div>
</div>
</div>
@endif
{!! Form::open(['url' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!} {!! Form::open(['url' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
<div class="card mb-4"> <div class="card mb-4">
<h5 class="card-header"> <h5 class="card-header">

View file

@ -4,7 +4,7 @@
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 "> <h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}</div> <div>{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
@if(!$homeparty->completed) @if(!$homeparty->completed)
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, 'new'])}}" class="btn btn-sm btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-add"></span>&nbsp; Neue Gast anlegen</a> <a href="{{route('user_homeparty_guest_detail', [$homeparty->id, 'new'])}}" class="btn btn-sm btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-person-add"></span>&nbsp; Gast anlegen</a>
@endif @endif
</h4> </h4>
@ -13,7 +13,7 @@
@php($g_count = 1) @php($g_count = 1)
@foreach($homeparty->homeparty_users as $homeparty_user) @foreach($homeparty->homeparty_users as $homeparty_user)
<div class="card mb-4"> <div class="card mb-3">
<div class="card-body d-flex justify-content-between align-items-start pb-2"> <div class="card-body d-flex justify-content-between align-items-start pb-2">
<div> <div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold"> <a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold">
@ -29,25 +29,18 @@
@if(!$homeparty->completed) @if(!$homeparty->completed)
<div> <div>
<a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a> <a href="{{route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a>
<div class="btn-group project-actions"> <div class="btn-group project-actions">
@if($homeparty_user->is_host)
<span class="ion ion-md-trash text-muted" data-toggle="tooltip" title="Gastgeber kann nicht gelsöcht werden"></span>
<button type="button" class="btn btn-sm btn-default icon-btn borderless rounded-pill md-btn-flat dropdown-toggle hide-arrow" data-toggle="dropdown"> @else
<i class="ion ion-ios-more"></i> <a href="{{ route('user_homeparty_delete', ['hpu', $homeparty->id, $homeparty_user->id]) }}"
</button> class="" onclick="return confirm('Homeparty Gast wirklich löschen?');">
<div class="dropdown-menu dropdown-menu-right"> <span class="ion ion-md-trash text-danger"></span>
@if($homeparty_user->is_host) </a>
<a href="#" class=" dropdown-item"> @endif
Gastgeber/in kann nicht gelöscht werden
</a>
@else
<a href="{{ route('user_homeparty_delete', ['hpu', $homeparty->id, $homeparty_user->id]) }}"
class=" dropdown-item" onclick="return confirm('Homeparty Gast wirklich löschen?');">
<span class="ion ion-md-trash text-danger"></span> löschen
</a>
@endif
</div>
</div> </div>
</div> </div>
@endif @endif
@ -55,10 +48,7 @@
<div class="progress rounded-0" style="height: 2px;"> <div class="progress rounded-0" style="height: 2px;">
<div class="progress-bar" style="width: 100%;"></div> <div class="progress-bar" style="width: 100%;"></div>
</div> </div>
<div class="card-body pt-1 pb-3"> <div class="card-body pt-0 mt-2">
{{$homeparty->description}}
</div>
<div class="card-body pt-0">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<div class="text-muted small">Adresse</div> <div class="text-muted small">Adresse</div>
@ -81,9 +71,25 @@
</div> </div>
@endforeach @endforeach
@if(!$homeparty->completed)
<div class="card">
<div class="card-body py-3">
<div class="form-group mb-0">
<label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label>
<div class="input-group">
<span class="input-group-prepend">
<button class="btn btn-sm btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link_{{$homeparty->id}}"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span>
<input type="text" class="form-control" name="homeparty_link_{{$homeparty->id}}" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link_{{$homeparty->id}}" placeholder="">
</div>
</div>
</div>
</div>
@endif
</div> </div>
</div> </div>
<div class="text-left mt-1"> <div class="text-left mt-3">
@if(!$homeparty->completed) @if(!$homeparty->completed)
<a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Homparty verwalten</a> <a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-sm btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Homparty verwalten</a>
@endif @endif
@ -91,4 +97,22 @@
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default mb-2">zurück zur Übersicht</a> <a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default mb-2">zurück zur Übersicht</a>
</div> </div>
<script>
$( document ).ready(function() {
var clipboardDemos = new ClipboardJS('[data-clipboard-demo]');
clipboardDemos.on('success', function (e) {
e.clearSelection();
$(e.trigger).tooltip('enable').tooltip('show');
});
clipboardDemos.on('error', function (e) {
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
$('button[data-clipboard-demo]').on('mouseout', function () {
$(this).tooltip('disable');
})
});
</script>
@endsection @endsection

View file

@ -3,7 +3,7 @@
@section('content') @section('content')
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 "> <h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>{{ __('navigation.my_homeparty') }} / {{ __('navigation.overview') }}</div> <div>{{ __('navigation.my_homeparty') }} / {{ __('navigation.overview') }}</div>
<a href="{{route('user_homeparty_detail', ['new'])}}" class="btn btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-add"></span>&nbsp; Neue Homeparty anlegen</a> <a href="{{route('user_homeparty_detail', ['new'])}}" class="btn btn-secondary rounded-pill d-block float-right"><span class="ion ion-md-add"></span>&nbsp; Neue Auszeitparty anlegen</a>
</h4> </h4>
<div class="row"> <div class="row">
@ -19,17 +19,11 @@
@endif @endif
</div> </div>
@if(!$homeparty->completed) @if(!$homeparty->completed)
<div class="btn-group project-actions"> <div class="btn-group project-actions">
<button type="button" class="btn btn-sm btn-default icon-btn borderless rounded-pill md-btn-flat dropdown-toggle hide-arrow" data-toggle="dropdown"> <a href="{{ route('user_homeparty_delete', ['hp', $homeparty->id]) }}"
<i class="ion ion-ios-more"></i> class=" dropdown-item" onclick="return confirm('Auszeitparty wirklich löschen?');">
</button> <span class="ion ion-md-trash text-danger"></span>
<div class="dropdown-menu dropdown-menu-right"> </a>
<a href="{{ route('user_homeparty_delete', ['hp', $homeparty->id]) }}"
class=" dropdown-item" onclick="return confirm('Homeparty wirklich löschen?');">
<span class="ion ion-md-trash text-danger"></span> löschen
</a>
</div>
</div> </div>
@endif @endif
</div> </div>
@ -46,7 +40,7 @@
<div class="font-weight-bold">{{$homeparty->date}}</div> <div class="font-weight-bold">{{$homeparty->date}}</div>
</div> </div>
<div class="col"> <div class="col">
<div class="text-muted small">Ort</div> <div class="text-muted small">Veranstaltungsort</div>
<div class="font-weight-bold">{{$homeparty->place}}</div> <div class="font-weight-bold">{{$homeparty->place}}</div>
</div> </div>
<div class="col"> <div class="col">
@ -67,10 +61,11 @@
<hr class="m-0"> <hr class="m-0">
<div class="card-body py-3"> <div class="card-body py-3">
<div class="form-group mb-0"> <div class="form-group mb-0">
<label class="form-label">Einladungslink für Gäste <span class="text-muted"> (lass Deine Gäste ihre Daten selber ausfüllen)</span></label>
<div class="input-group"> <div class="input-group">
<span class="input-group-prepend"> <span class="input-group-prepend">
<button class="btn btn-sm btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link_{{$homeparty->id}}"><i class="ion ion-ios-copy"></i> Link kopieren</button> <button class="btn btn-sm btn-secondary" type="button" title="Kopiert!" data-clipboard-demo data-clipboard-target="#homeparty_link_{{$homeparty->id}}"><i class="ion ion-ios-copy"></i> Link kopieren</button>
</span> </span>
<input type="text" class="form-control" name="homeparty_link_{{$homeparty->id}}" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link_{{$homeparty->id}}" placeholder=""> <input type="text" class="form-control" name="homeparty_link_{{$homeparty->id}}" value="{{ $homeparty->getTokenLink() }}" id="homeparty_link_{{$homeparty->id}}" placeholder="">
</div> </div>
</div> </div>
@ -80,15 +75,13 @@
<div class="card-body py-3"> <div class="card-body py-3">
<div class="d-flex flex-wrap"> <div class="d-flex flex-wrap">
@if(!$homeparty->completed) @if(!$homeparty->completed)
<a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Verwalten</a> <a href="{{route('user_homeparty_detail', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-ios-cog"></i> Verwalten</a>
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person-add"></i> Gäste anlegen</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a>
<a href="{{ route('user_homeparty_guest_detail', [$homeparty->id, 'new']) }}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person-add"></i> Gast anlegen</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung</a> <a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung</a>
@else @else
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-person"></i> Gäste ansehen</a> <a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-contacts"></i> Gästeliste</a>
<a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung ansehen</a> <a href="{{route('user_homeparty_order', [$homeparty->id])}}" class="btn btn-secondary mr-2 mb-2"><i class="ion ion-md-basket"></i> Bestellung ansehen</a>
@endif @endif
</div> </div>
</div> </div>

View file

@ -5,43 +5,152 @@
@if($homeparty_user === null) @if($homeparty_user === null)
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 "> <h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>Homeparty / {{ $homeparty->name }} - {{ $homeparty->date }}</div> <div>Auszeitparty / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
</h4> </h4>
@if(Session::has('alert-save')) @if(Session::has('alert-save'))
<div class="alert alert-dark-secondary alert-dismissible fade show"> <div class="alert alert-dark-secondary alert-dismissible fade show">
<div class="font-weight-bold"> <div class="font-weight-bold">
{{__('saved')}}: {{__('The changes have been saved.')}} {{__('saved')}}:
Deine Daten erfolgreich wurden angelegt. Viel Spaß bei der Auszeitparty!
</div> </div>
</div> </div>
@endif @endif
<div class="card mb-4">
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h4 class="font-weight-normal mb-0">
@if($homeparty_host)
@if($homeparty_host->billing_salutation === 'mr')
Dein Gastgeber
@else
Deine Gastgeberin
@endif
@endif
</h4>
<div class="media align-items-center py-3 mb-3 mt-0">
<img src="{{ asset('images/avatar.png') }}" alt="" class="d-block ui-w-80 rounded-circle">
<div class="media-body ml-4">
<div class="text-body text-big font-weight-semibold mb-0">
@if($homeparty_host)
{{$homeparty_host->billing_firstname}} {{$homeparty_host->billing_lastname}}
@endif
</div>
<div class="text-muted mb-2"><i class="ion ion-md-mail pr-1"></i>
@if($homeparty_host)
{{ $homeparty_host->billing_email }}
@endif
</div>
<div class="text-muted mb-2"><i class="ion ion-md-phone-portrait pr-2"></i>
@if($homeparty_host)
{{ $homeparty_host->billing_phone }}
@endif
</div>
</div>
</div>
</div>
<div class="col-md-6">
<h4 class="font-weight-normal mb-0">Deine MIVITA Beratung</h4>
<div class="media align-items-center py-3 mb-3 mt-0">
<img src="{{ asset('images/avatar.png') }}" alt="" class="d-block ui-w-80 rounded-circle">
<div class="media-body ml-4">
<div class="text-body text-big font-weight-semibold mb-0">
@if($mivita_member)
{{ $mivita_member->account->first_name }} {{ $mivita_member->account->last_name }}
@endif
</div>
<div class="text-muted mb-2"><i class="ion ion-md-mail pr-1"></i>
@if($mivita_member)
{{ $mivita_member->email }}
@endif
</div>
<div class="text-muted mb-2"><i class="ion ion-md-phone-portrait pr-2"></i>
@if($mivita_member)
{{ $mivita_member->account->getPhoneNumber() }}
@endif
</div>
</div>
</div>
</div>
</div>
</div>
<div class="progress rounded-0" style="height: 2px;">
<div class="progress-bar" style="width: 100%;"></div>
</div>
<div class="card-body pt-3 pb-3">
<h4 class="font-weight-normal mb-2">Einladung</h4>
{{$homeparty->description}}
</div>
<div class="card-body pt-0">
<div class="row">
<div class="col">
<div class="text-muted small">Datum</div>
<div class="font-weight-bold">{{$homeparty->date}}</div>
</div>
<div class="col">
<div class="text-muted small">Veranstaltungsort</div>
<div class="font-weight-bold">{{$homeparty->place}}</div>
</div>
<div class="col">
<div class="text-muted small">Straße / Hausnummer</div>
<div class="font-weight-bold">
@if($homeparty_host)
{{ $homeparty_host->billing_address }}
@endif
</div>
</div>
<div class="col">
<div class="text-muted small">PLZ &amp; Ort</div>
<div class="font-weight-bold">
@if($homeparty_host)
{{ $homeparty_host->billing_zipcode }} {{ $homeparty_host->billing_city }}
@endif
</div>
</div>
<div class="col">
<div class="text-muted small">Land</div>
<div class="font-weight-bold">
@if($homeparty_host && $homeparty_host->billing_country)
{{ $homeparty_host->billing_country->de }}
@endif
</div>
</div>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
@php($g_count = 1) @php($g_count = 1)
@foreach($homeparty->homeparty_users as $homeparty_user) @foreach($homeparty->homeparty_guests as $homeparty_user)
<div class="card mb-4"> <div class="card mb-3">
<div class="card-body d-flex justify-content-between align-items-start pb-2"> <div class="card-body d-flex justify-content-between align-items-start pt-3 pb-3">
<div> <div>
<a href="{{route('homeparty', [$homeparty->token, $homeparty_user->id])}}" class="text-body text-big font-weight-semibold"> <div class="text-body text-big font-weight-semibold">
@if($homeparty_user->is_host) @if($homeparty_user->is_host)
<span class="text-muted">Gastgeber/in: </span> <span class="text-muted">Gastgeber/in: </span>
@else @else
<span class="text-muted">Gast {{$g_count++}}: </span> <span class="text-muted">Gast {{$g_count++}}: </span>
@endif @endif
{{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}} {{$homeparty_user->billing_firstname}} {{$homeparty_user->billing_lastname}}
</a> </div>
{{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}} {{-- <span class="badge badge-success align-text-bottom ml-1">offen ...</span> --}}
</div> </div>
<div> {{-- <div>
<a href="{{route('homeparty', [$homeparty->token, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a> <a href="{{route('homeparty', [$homeparty->token, $homeparty_user->id])}}" class="btn btn-sm btn-secondary mr-2"><i class="fa fa-edit"></i> bearbeiten</a>
</div> </div>
--}}
</div> </div>
<div class="progress rounded-0" style="height: 2px;"> {{-- <div class="progress rounded-0" style="height: 2px;">
<div class="progress-bar" style="width: 100%;"></div> <div class="progress-bar" style="width: 100%;"></div>
</div> </div>
<div class="card-body pt-1 pb-3"> <div class="card-body pt-3">
{{$homeparty->description}}
</div>
<div class="card-body pt-0">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<div class="text-muted small">Adresse</div> <div class="text-muted small">Adresse</div>
@ -60,17 +169,16 @@
<div class="font-weight-bold">{{$homeparty_user->billing_email}}</div> <div class="font-weight-bold">{{$homeparty_user->billing_email}}</div>
</div> </div>
</div> </div>
</div> </div>--}}
</div> </div>
@endforeach @endforeach
</div> </div>
</div> </div>
<a href="{{route('homeparty', [$homeparty->token, 'new'])}}" class="btn btn-md btn-secondary rounded-pill"><span class="ion ion-md-add"></span>&nbsp; Neue Gast anlegen</a> <a href="{{route('homeparty', [$homeparty->token, 'new'])}}" class="btn btn-md btn-secondary rounded-pill"><span class="ion ion-md-person-add"></span>&nbsp; als Gast eintragen</a>
@else @else
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 "> <h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
<div>Homeparty / {{ $homeparty->name }} - {{ $homeparty->date }}</div> <div>Auszeitparty / {{ $homeparty->name }} - {{ $homeparty->date }}</div>
<a href="{{route('homeparty', [$homeparty->token])}}" class="btn btn-sm btn-default float-right">zurück</a> <a href="{{route('homeparty', [$homeparty->token])}}" class="btn btn-sm btn-default float-right">zurück</a>
</h4> </h4>
@ -82,9 +190,23 @@
</div> </div>
</div> </div>
@endif @endif
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<div class="card mb-4"> <div class="card mb-4">
<div class="col-md-12 px-4 pt-4"> <div class="col-md-12 px-4 pt-4">
<h6 class="mb-4">Eingabe Deiner persönlichen Daten für die Homeparty</h6> <h6 class="mb-2">Eingabe Deiner persönlichen Daten für die Auszeitparty</h6>
<p>Hinweis: Aus Datenschutzgründen werden Deine persönlichen Daten hier den anderen Teilnehmern nicht angezeigt. Nach dem Absenden können Sie auch nicht mehr bearbeitet werden. Möchtest Du nachträglich eine Änderung vornehmen, wende Dich bitte an Deinen persönlichen MIVITA Berater.</p>
<hr> <hr>
</div> </div>
<h5 class="card-header"> <h5 class="card-header">
@ -101,9 +223,9 @@
@include('user.homeparty._edit') @include('user.homeparty._edit')
<hr class="mt-0"> <hr class="mt-0">
<div class="form-row px-4"> <div class="form-row px-4">
<div class="form-group"> <div class="form-group mb-0">
<label class="custom-control custom-checkbox m-2 "> <label class="custom-control custom-checkbox m-2 ">
<input type="checkbox" class="custom-control-input" name="check_for_ot" id="checkbox_for_me" required> <input type="checkbox" class="custom-control-input" name="checkbox_datenverarbeitung" id="checkbox_datenverarbeitung" required>
<span class="custom-control-label secondary"> <span class="custom-control-label secondary">
<span class="fa fa-angle-double-left text-primary fa-lg"></span> <span class="fa fa-angle-double-left text-primary fa-lg"></span>
Hiermit willige ich in die im Rahmen der <button type="button" class="btn btn-outline-primary btn-xs update_modal_data_load" data-url="https://my.mivita.test/loading/modal" data-data="data_protection" data-target="#modal-loading">Datenschutzerklärung</button> Hiermit willige ich in die im Rahmen der <button type="button" class="btn btn-outline-primary btn-xs update_modal_data_load" data-url="https://my.mivita.test/loading/modal" data-data="data_protection" data-target="#modal-loading">Datenschutzerklärung</button>
@ -112,9 +234,20 @@ genannte Datenverarbeitung ein. Ich wurde darüber informiert, dass ich diese Ei
</label> </label>
</div> </div>
</div> </div>
<div class="form-row px-4">
<div class="form-group">
<label class="custom-control custom-checkbox m-2">
<input type="checkbox" class="custom-control-input" name="checkbox_daten_completely" id="checkbox_daten_completely">
<span class="custom-control-label secondary">
<span class="fa fa-angle-double-left text-primary fa-lg"></span>
Ich bestätige, dass meine Daten richtig und vollständig sind. Eine Änderung ist nach dem Absenden nur noch über meinen persönlichen MIVITA Berater möglich.*
</span>
</label>
</div>
</div>
</div> </div>
<div class="text-left mt-3"> <div class="text-left mt-3">
<button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store"> @if($homeparty_user->id) {{ __('Änderungen speichern') }} @else {{ __('speichern') }} @endif</button>&nbsp; <button type="submit" class="btn btn-secondary mr-2 mb-2" name="action" value="homeparty-user-store"> @if($homeparty_user->id) {{ __('Änderungen speichern') }} @else {{ __('absenden') }} @endif</button>&nbsp;
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}

View file

@ -4,8 +4,8 @@
{{ Form::hidden('shipping_company', $shopping_user->billing_company) }} {{ Form::hidden('shipping_company', $shopping_user->billing_company) }}
{{ Form::hidden('shipping_salutation', $shopping_user->billing_salutation) }} {{ Form::hidden('shipping_salutation', $shopping_user->billing_salutation) }}
{{ Form::hidden('shipping_firstname', $shopping_user->billing_first_name) }} {{ Form::hidden('shipping_firstname', $shopping_user->billing_firstname) }}
{{ Form::hidden('shipping_lastname', $shopping_user->billing_last_name) }} {{ Form::hidden('shipping_lastname', $shopping_user->billing_lastname) }}
{{ Form::hidden('shipping_address', $shopping_user->billing_address) }} {{ Form::hidden('shipping_address', $shopping_user->billing_address) }}
{{ Form::hidden('shipping_address_2', $shopping_user->billing_address_2) }} {{ Form::hidden('shipping_address_2', $shopping_user->billing_address_2) }}
{{ Form::hidden('shipping_zipcode', $shopping_user->billing_zipcode) }} {{ Form::hidden('shipping_zipcode', $shopping_user->billing_zipcode) }}

View file

@ -135,9 +135,9 @@
</div> </div>
<div class="form-group col-md-12"> <div class="form-group col-md-12">
@if($errors->has('phone') || $errors->has('mobil')) @if($errors->has('phone') || $errors->has('mobil'))
<div class="alert badge-danger block p-2">Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div> <div class="alert badge-danger block p-2">Fehler: Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
@else @else
<div class="badge badge-warning">Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div> <div class="badge badge-default">Hinweis: Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*</div>
@endif @endif
</div> </div>

View file

@ -9,7 +9,7 @@
<p class="font-lato weight-300 size-20 nomargin-bottom"> <p class="font-lato weight-300 size-20 nomargin-bottom">
Du möchtest Vertriebspartner werden oder hast Fragen zu unseren Produkten? Du möchtest Vertriebspartner werden oder hast Fragen zu unseren Produkten?
</p> </p>
<h3>Jetzt Kontakt aufnehmen: <span><strong style="color:#566d56">+49 (0) 8333 946 98 90</strong></span> <h3>Jetzt Kontakt aufnehmen: <span><strong style="color:#566d56">+49 (0) 8333 946 17 67</strong></span>
</h3> </h3>
</div><!-- /left text --> </div><!-- /left text -->
@ -47,7 +47,7 @@
87755 Kirchhaslach<br> 87755 Kirchhaslach<br>
</li> </li>
<li class="footer-sprite phone"> <li class="footer-sprite phone">
Telefon: +49 (0) 8333 946 98 90 Telefon: +49 (0) 8333 946 17 67
</li> </li>
<li class="footer-sprite email"> <li class="footer-sprite email">
<a href="mailto:info@riwa-tec.de">info@mivita.care</a> <a href="mailto:info@riwa-tec.de">info@mivita.care</a>

View file

@ -69,6 +69,13 @@
Produktwelt Produktwelt
</a> </a>
</li> </li>
@if(!$user_shop)
<li class="">
<a href="https://mivita.shop/produkte/alle-produkte">
Shop
</a>
</li>
@endif
<li class="{{ Request::is('geschaeftsmodell/*') ? ' active' : '' }}"> <li class="{{ Request::is('geschaeftsmodell/*') ? ' active' : '' }}">
<a href="{{url('/geschaeftsmodell/karrierechancen')}} "> <a href="{{url('/geschaeftsmodell/karrierechancen')}} ">
Karrierechancen Karrierechancen

View file

@ -7,6 +7,10 @@
.tp-caption { .tp-caption {
text-shadow: none; text-shadow: none;
} }
.tp-caption.large_bold_white {
font-size:40px;
line-height:52px;
}
</style> </style>
<!-- REVOLUTION SLIDER --> <!-- REVOLUTION SLIDER -->
@ -24,9 +28,9 @@
<div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div> <div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="tp-caption customin ltl tp-resizeme text_white" <div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center" data-x="center"
data-y="60" data-y="50"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;" data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800" data-speed="800"
data-start="1000" data-start="1000"
@ -37,12 +41,12 @@
data-endelementdelay="0.1" data-endelementdelay="0.1"
data-endspeed="1000" data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;"> data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="weight-400">Deutscher Direktvertrieb für</span> <span class="h1">Bio Aloe Vera &amp; Naturkosmetik</span>
</div> </div>
<div class="tp-caption customin ltl tp-resizeme large_bold_white" <div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center" data-x="center"
data-y="100" data-y="120"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;" data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800" data-speed="800"
data-start="1200" data-start="1200"
@ -53,7 +57,7 @@
data-endelementdelay="0.1" data-endelementdelay="0.1"
data-endspeed="1000" data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;"> data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="h1">100% Premium Bio Aloe Vera</span> <span class="weight-400">Nahrungsergänzung</span>
</div> </div>
</li> </li>
</ul> </ul>

View file

@ -49,8 +49,7 @@ Verantwortlicher im Sinne der Datenschutz-Grundverordnung sowie der in den Mitgl
Herr Alois Ried<br> Herr Alois Ried<br>
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach<br> 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
Fax: +49 (0) 8333 7268<br>
Mail: info@mivita.care<br> Mail: info@mivita.care<br>
<br><br> <br><br>
<strong>III. Cookies</strong> <strong>III. Cookies</strong>

View file

@ -11,8 +11,7 @@
<p><strong>mivita e.K.</strong><br> <p><strong>mivita e.K.</strong><br>
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach<br> 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
Fax: +49 (0) 8333 7268<br>
E-Mail: info@mivita.care<br></p> E-Mail: info@mivita.care<br></p>
<p><strong>Geschäftsinhaber:</strong><br> Alois Ried<br><br> <p><strong>Geschäftsinhaber:</strong><br> Alois Ried<br><br>
@ -24,7 +23,7 @@
<strong>USt-ID-Nr.:</strong><br> DE 244162340<br></p> <strong>USt-ID-Nr.:</strong><br> DE 244162340<br></p>
<br> <br>
<p><strong>Support mivita:</strong><br> <p><strong>Support mivita:</strong><br>
Telefon: +49 (0) 8333 946 98 90<br> Telefon: +49 (0) 8333 946 17 67<br>
E-Mail:: <a href="mailto:info@mivita.care">info@mivita.care</a></p> E-Mail:: <a href="mailto:info@mivita.care">info@mivita.care</a></p>
<br> <br>

View file

@ -264,9 +264,9 @@
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach</span> 87755 Kirchhaslach</span>
<span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a <span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a
href="tel:0 8333-946 98 90">0 8333-946 98 90</a></span> href="tel:083339461767">0 8333 946 17 67 </a></span>
<span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a <span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a
href="mailto:info@riwa-tec.de">info@mivita.care</a></span> href="mailto:info@mivita.care">info@mivita.care</a></span>
</p> </p>
<hr/> <hr/>

View file

@ -70,7 +70,7 @@
} }
</style> </style>
{{-- <script src='https://www.google.com/recaptcha/api.js'></script>--}} <script src='https://www.google.com/recaptcha/api.js'></script>
<section> <section>
@ -169,6 +169,10 @@
</div> </div>
<div class="col-md-12">
<hr>
</div>
<div class="col-md-12" style="margin-bottom: 8px; margin-top: 8px;"> <div class="col-md-12" style="margin-bottom: 8px; margin-top: 8px;">
<label class="checkbox {{ ($errors->has('accepted_data_protection') ? 'error' : '') }}" for="accepted_data_protection"> <label class="checkbox {{ ($errors->has('accepted_data_protection') ? 'error' : '') }}" for="accepted_data_protection">
@ -186,7 +190,7 @@
</div> </div>
{{-- <div class="row contact-row"> <div class="row contact-row">
<div class="col-md-12"> <div class="col-md-12">
<div class="g-recaptcha" data-sitekey="{{$GOOGLE_ReCAPTCHA_KEY}}"></div> <div class="g-recaptcha" data-sitekey="{{$GOOGLE_ReCAPTCHA_KEY}}"></div>
@if ($errors->has('g-recaptcha-response')) @if ($errors->has('g-recaptcha-response'))
@ -196,7 +200,7 @@
@endif @endif
</div> </div>
</div> </div>
--}}
<button type="submit" class="btn btn-primary btn-text-500"><i class="fa fa-check"></i> jetzt registrieren</button> <button type="submit" class="btn btn-primary btn-text-500"><i class="fa fa-check"></i> jetzt registrieren</button>
{!! Form::close() !!} {!! Form::close() !!}
</div> <!-- end col --> </div> <!-- end col -->
@ -246,9 +250,9 @@
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach</span> 87755 Kirchhaslach</span>
<span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a <span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a
href="tel:0 8333-946 98 90">0 8333-946 98 90</a></span> href="tel:0 8333 946 17 67">0 8333 946 17 67</a></span>
<span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a <span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a
href="mailto:info@riwa-tec.de">info@mivita.care</a></span> href="mailto:info@mivita.care">info@mivita.care</a></span>
</p> </p>
<hr/> <hr/>
<h4 class="font300">Geschäftszeiten</h4> <h4 class="font300">Geschäftszeiten</h4>

View file

@ -138,7 +138,7 @@
Leinfeld 2<br> Leinfeld 2<br>
87755 Kirchhaslach</span> 87755 Kirchhaslach</span>
<span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a <span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a
href="tel:0 8333-946 98 90">0 8333-946 98 90</a></span> href="tel:0 8333 946 17 67">0 8333 946 17 67</a></span>
<span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a <span class="block"><strong><i class="fa fa-envelope"></i> Email:</strong> <a
href="mailto:info@riwa-tec.de">info@mivita.care</a></span> href="mailto:info@riwa-tec.de">info@mivita.care</a></span>
</p> </p>

View file

@ -39,6 +39,10 @@
border: 6px solid #bbccab; border: 6px solid #bbccab;
margin-bottom: 10px; margin-bottom: 10px;
} }
.tp-caption.large_bold_white {
font-size:40px;
line-height:52px;
}
</style> </style>
@ -57,9 +61,9 @@
<div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div> <div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="tp-caption customin ltl tp-resizeme text_white" <div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center" data-x="center"
data-y="60" data-y="50"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;" data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800" data-speed="800"
data-start="1000" data-start="1000"
@ -70,12 +74,12 @@
data-endelementdelay="0.1" data-endelementdelay="0.1"
data-endspeed="1000" data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;"> data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="weight-400">Deutscher Direktvertrieb für</span> <span class="h1">Bio Aloe Vera &amp; Naturkosmetik</span>
</div> </div>
<div class="tp-caption customin ltl tp-resizeme large_bold_white" <div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center" data-x="center"
data-y="100" data-y="120"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;" data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800" data-speed="800"
data-start="1200" data-start="1200"
@ -86,8 +90,8 @@
data-endelementdelay="0.1" data-endelementdelay="0.1"
data-endspeed="1000" data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;"> data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="h1">100% Premium Bio Aloe Vera</span> <span class="weight-400">Nahrungsergänzung</span>
</div> </div>
</li> </li>
</ul> </ul>
<div class="tp-bannertimer"></div> <div class="tp-bannertimer"></div>

View file

@ -434,6 +434,11 @@ Route::domain(config('app.pre_url_crm').config('app.domain').config('app.tld_car
Route::get('/sysadmin/settings', 'SyS\SettingController@index')->name('sysadmin_settings'); Route::get('/sysadmin/settings', 'SyS\SettingController@index')->name('sysadmin_settings');
Route::post('/sysadmin/tools/setting/store', 'SyS\SettingController@store')->name('sysadmin_setting_store'); Route::post('/sysadmin/tools/setting/store', 'SyS\SettingController@store')->name('sysadmin_setting_store');
Route::get('/sysadmin/sales/members', 'SyS\SalesController@index')->name('sysadmin_sales_members');
Route::post('/sysadmin/sales/members', 'SyS\SalesController@index')->name('sysadmin_sales_members');
}); });
}); });