commit 08-2025
This commit is contained in:
parent
9b54eb0512
commit
02f2a4c23e
184 changed files with 31653 additions and 22327 deletions
147
app/Http/Controllers/PaymentReminderController.php
Normal file
147
app/Http/Controllers/PaymentReminderController.php
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Carbon;
|
||||
use Request;
|
||||
use App\Models\PaymentReminder;
|
||||
use App\Models\ShoppingPayment;
|
||||
use App\Services\PaymentReminderService;
|
||||
|
||||
class PaymentReminderController extends Controller
|
||||
{
|
||||
|
||||
private $filter_user_status;
|
||||
private $paymentReminderService;
|
||||
|
||||
public function __construct(PaymentReminderService $paymentReminderService)
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->paymentReminderService = $paymentReminderService;
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
// Hole die detaillierten Daten für die Tabellen-Ansicht
|
||||
$detailedData = $this->paymentReminderService->getDetailedPaymentsData();
|
||||
// $summaryData = $this->paymentReminderService->getAllOpenPayments();
|
||||
|
||||
// Statistiken für die Übersicht
|
||||
$totalPayments = collect($detailedData)->count();
|
||||
$totalAmount = collect($detailedData)->sum('amount')/100;
|
||||
$clearingTypes = collect($detailedData)->groupBy('clearingtype')->map->count();
|
||||
|
||||
$data = [
|
||||
'reminders' => PaymentReminder::all(),
|
||||
'detailedData' => $detailedData,
|
||||
//'summaryData' => $summaryData,
|
||||
'totalPayments' => $totalPayments,
|
||||
'totalAmount' => $totalAmount,
|
||||
'clearingTypes' => $clearingTypes,
|
||||
];
|
||||
return view('admin.payment.reminder.index', $data);
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
$reminder = new PaymentReminder();
|
||||
$reminder->active = true;
|
||||
$data = [
|
||||
'reminder' => $reminder,
|
||||
];
|
||||
return view('admin.payment.reminder.edit', $data);
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$data = [
|
||||
'reminder' => PaymentReminder::find($id),
|
||||
];
|
||||
return view('admin.payment.reminder.edit', $data);
|
||||
}
|
||||
|
||||
public function store()
|
||||
{
|
||||
$data = Request::all();
|
||||
$data['active'] = isset($data['active']) ? true : false;
|
||||
$data['action'] = isset($data['action']) ? $data['action'] : NULL;
|
||||
|
||||
if ($data['id'] === 'new') {
|
||||
PaymentReminder::create($data);
|
||||
} else {
|
||||
$reminder = PaymentReminder::find($data['id']);
|
||||
$reminder->update($data);
|
||||
}
|
||||
return redirect()->route('admin_payments_reminder')->with('success', 'Erinnerung gespeichert');
|
||||
}
|
||||
|
||||
public function action($action, $id)
|
||||
{
|
||||
|
||||
$payment = ShoppingPayment::find($id);
|
||||
if($action == 'send_reminder'){
|
||||
$bool = $this->paymentReminderService->sendReminder($payment);
|
||||
if($bool){
|
||||
\Session()->flash('alert-success', "Zahlungserinnerung gesendet");
|
||||
}else{
|
||||
\Session()->flash('alert-error', "Keine Zahlungserinnerung gesendet");
|
||||
}
|
||||
}
|
||||
if($action == 'no_payment'){
|
||||
$this->paymentReminderService->setNoNPayment($payment);
|
||||
\Session()->flash('alert-success', "Zahlung als nicht bezahlt markiert");
|
||||
}
|
||||
return redirect()->route('admin_payments_reminder');
|
||||
}
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$reminder = PaymentReminder::find($id);
|
||||
$reminder->delete();
|
||||
return redirect()->route('admin_payments_reminder');
|
||||
}
|
||||
|
||||
public function logs()
|
||||
{
|
||||
// Hole die Log-Statistiken für verschiedene Zeiträume
|
||||
$stats7Days = $this->paymentReminderService->getLogStatistics(7);
|
||||
$stats30Days = $this->paymentReminderService->getLogStatistics(30);
|
||||
$stats90Days = $this->paymentReminderService->getLogStatistics(90);
|
||||
|
||||
// Hole die neuesten Logs
|
||||
$recentLogs = $this->paymentReminderService->getPaymentReminderLogs(50);
|
||||
|
||||
// Filter-Parameter
|
||||
$orderId = Request::get('order_id');
|
||||
$action = Request::get('action');
|
||||
$startDate = Request::get('start_date');
|
||||
$endDate = Request::get('end_date');
|
||||
|
||||
// Gefilterte Logs
|
||||
$filteredLogs = null;
|
||||
if ($orderId || $action || $startDate || $endDate) {
|
||||
if ($startDate && $endDate) {
|
||||
$filteredLogs = $this->paymentReminderService->getLogsForDateRange($startDate, $endDate);
|
||||
} elseif ($orderId) {
|
||||
$filteredLogs = $this->paymentReminderService->getLogsForPayment($orderId);
|
||||
} elseif ($action) {
|
||||
$filteredLogs = $this->paymentReminderService->getPaymentReminderLogs(100, null, $action);
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
'stats7Days' => $stats7Days,
|
||||
'stats30Days' => $stats30Days,
|
||||
'stats90Days' => $stats90Days,
|
||||
'recentLogs' => $recentLogs,
|
||||
'filteredLogs' => $filteredLogs,
|
||||
'orderId' => $orderId,
|
||||
'action' => $action,
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
];
|
||||
|
||||
return view('admin.payment.reminder.logs', $data);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue