Updates to 03-2025

This commit is contained in:
Kevin Adametz 2025-04-01 10:39:21 +02:00
parent 6167273a48
commit 9b54eb0512
348 changed files with 34535 additions and 5774 deletions

View file

@ -2,20 +2,23 @@
namespace App\Http\Controllers;
use App\Exports\ExcelExport;
use Request;
use App\User;
use Validator;
use App\Services\SysLog;
use App\Models\UserAccount;
use App\Models\UserHistory;
use Maatwebsite\Excel\Facades\Excel;
use App\Services\UserService;
use App\Mail\MailAccountActive;
use App\Mail\MailCustomMessage;
use App\Mail\MailVerifyAccount;
use App\Mail\MailVerifyContact;
use App\Mail\MailAccountActive;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Repositories\ContractPDFRepository;
use App\Models\UserWhitelabelProduct;
use App\Repositories\UserRepository;
use App\Services\SysLog;
use App\Services\UserService;
use App\User;
use Illuminate\Support\Facades\Mail;
use Request;
use Validator;
use App\Repositories\ContractPDFRepository;
class LeadController extends Controller
{
@ -33,13 +36,14 @@ class LeadController extends Controller
*/
public function index()
{
$this->setFilterVars();
$data = [
'values' => User::where('admin', '=', 0)->where('confirmation_code_remider', '!=', 2)->get(),
];
return view('admin.lead.index', $data);
}
/**
* @param $id
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
@ -122,6 +126,17 @@ class LeadController extends Controller
$data = Request::all();
$show = Request::get('show');
if(isset($data['action']) && $data['action'] == "reverse_charge_validate" && isset($data['user_id'])){
$user = User::findOrFail($data['user_id']);
return $this->userRepo->reverse_charge_validate($data, $user, route('admin_lead_edit', [$user->id]));
}
if(isset($data['action']) && $data['action'] == "reverse_charge_delete" && isset($data['user_id'])){
$user = User::findOrFail($data['user_id']);
return $this->userRepo->reverse_charge_delete($data, $user, route('admin_lead_edit', [$user->id]));
}
if ($data['user_id'] === "new" || $data['user_id'] == 0) {
$rules = array(
'salutation' => 'required',
@ -187,6 +202,7 @@ class LeadController extends Controller
if(isset($data['m_data_edit']) && $data['m_data_edit'] === "TSOK"){
$user = $this->userRepo->getModel();
$user->m_level = isset($data['m_level']) ? $data['m_level'] : NULL;
$user->lead_type_id = isset($data['lead_type_id']) ? $data['lead_type_id'] : NULL;
$user->m_sponsor = isset($data['m_sponsor']) ? $data['m_sponsor'] : NULL;
$user->save();
}
@ -215,8 +231,229 @@ class LeadController extends Controller
}
//user released when register is complete
public function released($action, $id){
public function update()
{
$data = Request::all();
$show = Request::get('show');
if(!isset($data['user_id']) || $data['user_id'] === "new" || $data['user_id'] == 0){
abort(404, 'User not found');
}
$user = User::findOrFail($data['user_id']);
if(isset($data['action'])){
//add whitelabel products
if($data['action'] === 'add_whitelabel_products'){
if(isset($data['whitelabel_products']) && is_array($data['whitelabel_products'])){
foreach ($data['whitelabel_products'] as $product_id){
$user->whitelabel_products()->create(['product_id' => $product_id]);
}
}
\Session()->flash('alert-save', true);
}
//remove whitelabel products
if($data['action'] === 'remove_whitelabel_products'){
if(isset($data['whitelabel_products']) && is_array($data['whitelabel_products'])){
$user->whitelabel_products()->whereIn('product_id', $data['whitelabel_products'])->delete();
}
\Session()->flash('alert-success', "Produkt gelöscht");
}
if($data['action'] === 'upload_white_label_image'){
//id == user_whitelabel_product_id
$whitelabel_product = UserWhitelabelProduct::findOrFail($data['id']);
if($whitelabel_product && $user->id == $whitelabel_product->user_id){
return \App\Services\ProductImage::imageUpload('user_wl_product', $whitelabel_product, Request::get('upload_type'));
}
}
//update whitelabel products
if($data['action'] === 'update_whitelabel_products'){
if(isset($data['image_wl_attributes']) && is_array($data['image_wl_attributes'])){
foreach ( $user->whitelabel_products as $wl_product){
foreach ($wl_product->whitelabel_images as $wl_image) {
$wl_image->update([
'attributes' => isset($data['image_wl_attributes'][$wl_image->id]) ? $data['image_wl_attributes'][$wl_image->id] : NULL,
]);
}
}
}
\Session()->flash('alert-save', true);
}
}
return redirect(route('admin_lead_edit', [$user->id])."?show=".$show);
}
public function remove($action, $user_id, $id, $mid=null){
$show = Request::get('show');
$user = User::findOrFail($user_id);
if($action === 'remove_whitelabel_label'){
$model = $user->whitelabel_products()->where('id', $id)->first();
return \App\Services\ProductImage::imageDelete('user_wl_image', $model, $mid);
}
if($action === 'remove_whitelabel_product'){
$model = $user->whitelabel_products()->where('id', $id)->first();
//remove images
foreach ($model->whitelabel_images as $image){
\App\Services\ProductImage::imageDelete('user_wl_image', $model, $image->id);
}
$model->delete();
\Session()->flash('alert-success', "White Label Produkt entfernt");
return redirect(route('admin_lead_edit', [$user->id])."?show=$show");
}
}
public function download(){
if(Request::get('action') === "export"){
$query = $this->initSearch();
$columns = [];
$filename = "GS-VP-export-".date("d-m-Y");
$headers = array(
'ID',
'Email',
'Firma',
'Anrede',
'Vorname',
'Nachname',
'Mitglied',
'Bis',
'Art',
);
$objects = $query->get();
if($objects){
foreach ($objects as $obj){
$columns[] = array(
'ID' => $obj->id,
'Email' => $obj->email,
'Firma' => $obj->account ? $obj->account->company : '',
'Anrede' => $obj->account ? ($obj->account->salutation == 'mr' ? 'Herr' : 'Frau') : '-',
'Vorname' => $obj->account ? $obj->account->first_name : '',
'Nachname' => $obj->account ? $obj->account->last_name : '',
'Mitglied' => $obj->payment_account ? ($obj->isActiveAccount() ? 'JA' : 'Abgelaufen') : "Nein",
'Bis' => $obj->payment_account ? $obj->getPaymentAccountDateFormat(false) : '-',
'Art' => $obj->lead_type ? $obj->lead_type->name : '-',
);
}
}
return Excel::download(new ExcelExport($columns, $headers), $filename.'.xls');
}
}
private function setFilterVars(){
if(!session('filter_lead_type_id')){
session(['filter_lead_type_id' => 'all']);
}
if(Request::get('filter_lead_type_id')){
session(['filter_lead_type_id' => Request::get('filter_lead_type_id')]);
}
}
private function initSearch(){
$this->setFilterVars();
$query = User::with('account')->select('users.*')->where('users.deleted_at', '=', null)->where('users.admin', "<", 4);
if(session('filter_lead_type_id') && session('filter_lead_type_id') !== null && session('filter_lead_type_id') !== "all"){
$query->where('lead_type_id', session('filter_lead_type_id'));
}
return $query;
}
public function getLeads()
{
$query = $this->initSearch();
return \DataTables::eloquent($query)
->addColumn('first_name', function (User $user) {
return $user->account ? $user->account->first_name : '';
})
->addColumn('company', function (User $user) {
return $user->account ? $user->account->company : '';
})
->addColumn('last_name', function (User $user) {
return $user->account ? $user->account->last_name : '';
})
->addColumn('user_level', function (User $user) {
return $user->user_level ? $user->user_level->name : '';
})
->addColumn('lead_type', function (User $user) {
return $user->lead_type ? $user->lead_type->name : '';
})
->addColumn('id', function (User $user) {
return '<a href="' . route('admin_lead_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
})
->addColumn('confirmed', function (User $user) {
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('active', function (User $user) {
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('agreement', function (User $user) {
return $user->agreement ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_account', function (User $user) {
return $user->payment_account ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_account_date', function (User $user) {
return $user->payment_account ? $user->getPaymentAccountDateFormat(false) : "-";
})
/*->addColumn('payment_shop', function (User $user) {
return $user->payment_shop ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_shop_date', function (User $user) {
return $user->payment_shop ? $user->getPaymentShopDateFormat(false) : "-";
})*/
->addColumn('turnover', function (User $user) {
return "-";
})
->addColumn('sales_total', function (User $user) {
return "-";
})
->orderColumn('id', 'id $1')
->orderColumn('confirmed', 'confirmed $1')
->orderColumn('active', 'active $1')
->orderColumn('lead_type', 'lead_type_id $1')
->orderColumn('agreement', 'agreement $1')
->orderColumn('payment_account', 'payment_account $1')
//->orderColumn('payment_shop', 'payment_shop $1')
->rawColumns(['id', 'confirmed', 'active', 'agreement', 'payment_account'])
->make(true);
}
private function activeAccountPayment($user){
if($user->user_level){
if($user->user_level->payment_year){
//if true = payments
$user->wizard = 20;
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
}else{
//if false = no payments for 1 year
$user->wizard = 100;
$user->payment_account = \Carbon::now()->modify('1 year');
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
}
}
}
//user released when register is complete
public function released($action, $id){
$user = User::findOrFail($id);
if($action === 'completed'){
@ -299,7 +536,7 @@ class LeadController extends Controller
\Session()->flash('alert-success', "E-Mail an Vertriebspartner gesendet.");
}
if($action === 'reset_switch'){
$user->wizard = 4;
$user->wizard = 3;
$user->save();
UserHistory::create(['user_id' => $user->id, 'action'=>'reset_switch', 'status'=>0]);
\Session()->flash('alert-success', "Vertriebspartner zurückgesetzt!");
@ -353,7 +590,9 @@ class LeadController extends Controller
//send new verfified mail to user
public function newMailVerified($id){
/* public function newMailVerified($id){
User Register sind in der DB UserRegister, erst bei bestätigung wird es in die User DB übertragen
$user = User::findOrFail($id);
@ -378,7 +617,7 @@ class LeadController extends Controller
\Session()->flash('alert-success', "E-Mail erneut gesendet");
return redirect(route('admin_lead_edit', [$user->id]));
}
}*/
public function deleteFile($user_id, $file_id, $relation){
@ -392,89 +631,4 @@ class LeadController extends Controller
}
return back();
}
public function getLeads()
{
$query = User::with('account')->select('users.*')->where('users.deleted_at', '=', null)->where('users.admin', "<", 4);
return \DataTables::eloquent($query)
->addColumn('first_name', function (User $user) {
return $user->account ? $user->account->first_name : '';
})
->addColumn('company', function (User $user) {
return $user->account ? $user->account->company : '';
})
->addColumn('last_name', function (User $user) {
return $user->account ? $user->account->last_name : '';
})
->addColumn('user_level', function (User $user) {
return $user->user_level ? $user->user_level->name : '';
})
->addColumn('id', function (User $user) {
return '<a href="' . route('admin_lead_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
})
->addColumn('confirmed', function (User $user) {
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('active', function (User $user) {
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('agreement', function (User $user) {
return $user->agreement ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_account', function (User $user) {
return $user->payment_account ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_account_date', function (User $user) {
return $user->payment_account ? $user->getPaymentAccountDateFormat(false) : "-";
})
/*->addColumn('payment_shop', function (User $user) {
return $user->payment_shop ? ' <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
})
->addColumn('payment_shop_date', function (User $user) {
return $user->payment_shop ? $user->getPaymentShopDateFormat(false) : "-";
})*/
->addColumn('turnover', function (User $user) {
return "-";
})
->addColumn('sales_total', function (User $user) {
return "-";
})
->orderColumn('id', 'id $1')
->orderColumn('confirmed', 'confirmed $1')
->orderColumn('active', 'active $1')
->orderColumn('agreement', 'agreement $1')
->orderColumn('payment_account', 'payment_account $1')
//->orderColumn('payment_shop', 'payment_shop $1')
->rawColumns(['id', 'confirmed', 'active', 'agreement', 'payment_account'])
->make(true);
}
private function activeAccountPayment($user){
if($user->user_level){
if($user->user_level->payment_year){
//if true = payments
$user->wizard = 20;
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
}else{
//if false = no payments for 1 year
$user->wizard = 100;
$user->payment_account = \Carbon::now()->modify('1 year');
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
}
}
}
}