gruene-seele/app/Http/Controllers/PaymentPayCreditController.php
2021-05-12 15:44:48 +02:00

134 lines
No EOL
5 KiB
PHP

<?php
namespace App\Http\Controllers;
use Carbon;
use Request;
use App\User;
use App\Services\Util;
use App\Models\UserPayCredit;
use App\Services\Payment;
class PaymentPayCreditController extends Controller
{
private $filter_user_status;
public function __construct()
{
$this->middleware('auth');
$this->filter_user_status = 'all';
}
public function index()
{
$this->setActiveFilter();
$data = [
'filter_user_status' => $this->filter_user_status,
];
return view('admin.payment.pay_credit.index', $data);
}
private function setActiveFilter(){
if(Request::get('filter_user_status')){
$this->filter_user_status = Request::get('filter_user_status');
}
}
public function store(){
$data = Request::all();
if(isset($data['action']) && $data['action'] === 'add-user-pay-credit'){
$add_credit_error = false;
if(!isset($data['member_id']) || !$user = User::find($data['member_id'])){
$add_credit_error = 'Vertriebspartner nicht gefunden';
}
if(!isset($data['credit'])){
$add_credit_error = 'Bitte Betrag eingeben';
}
if(!isset($data['message'])){
$add_credit_error = 'Bitte Mitteilung eingeben';
}
if($add_credit_error){
$this->setActiveFilter();
$data = [
'filter_user_status' => $this->filter_user_status,
'add_credit_error' => $add_credit_error,
];
return view('admin.payment.pay_credit.index', $data);
}
$credit = Util::reFormatNumber($data['credit']);
$credit = number_format($credit, 2, '.', '');
Payment::addUserPayCredits($user, $credit, 3, $data['message']);
\Session()->flash('alert-success', "Einkaufsguthaben aufgeladen");
}
return redirect(route('admin_payments_paycredit'));
}
public function delete($id){
$UserPayCredit = UserPayCredit::findOrFail($id);
if($UserPayCredit->status === 3 && $deleteTime = $UserPayCredit->deleteTime()){
$user = $UserPayCredit->user;
$credit = $UserPayCredit->credit;
$user->payment_credit = $user->payment_credit - $credit;
$user->save();
$UserPayCredit->delete();
\Session()->flash('alert-success', "Guthaben ist gelöscht");
}else{
\Session()->flash('alert-error', "Guthaben kann nicht gelöscht werden");
}
return redirect(route('admin_payments_paycredit'));
}
public function datatable(){
$this->setActiveFilter();
$query = User::with('account')->select('users.*')->where('users.deleted_at', '=', null)
->where('active', true);
//->orderBy('created_at', 'DESC');
return \DataTables::eloquent($query)
->addColumn('id', function (User $user) {
return '<a href="' . route('admin_lead_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('first_name', function (User $user) {
return $user->account ? $user->account->first_name : '';
})
->addColumn('last_name', function (User $user) {
return $user->account ? $user->account->last_name : '';
})
->addColumn('payment_credit', function (User $user) {
return $user->payment_credit ? $user->getFormattedPaymentCredit().' €' : '';
})
->addColumn('is_active_account', function (User $user) {
if($user->payment_account){
if($user->isActiveAccount()){
return '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span></a>';
}
return '<span class="badge badge-pill badge-warning"><i class="fa fa-ban"></i></span></a>';
}
return '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span></a>';
})
->addColumn('action', function (User $user) {
return '<button class="btn btn-warning btn-sm icon-btn md-btn-flat" title="details" data-modal="modal-xl"
data-toggle="modal" data-target="#modals-load-content" data-id="'.$user->id.'" data-route="'.route('modal_load').'"
data-action="show-user-pay-credits" data-view="customer"><i class="ion ion-md-eye"></i></button>';
})
->orderColumn('id', 'id $1')
->orderColumn('txaction', 'txaction $1')
->orderColumn('payment_credit', 'payment_credit $1')
->orderColumn('is_active_account', 'is_active_account $1')
->rawColumns(['id', 'shipping_order', 'is_active_account', 'action'])
->make(true);
}
}