This repository has been archived on 2025-07-15. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lean_in_world/app/Http/Controllers/Admin/PaymentController.php
meghamalore eed0ce11d2 first commit
2024-07-04 16:57:26 +05:30

153 lines
5.9 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Mollie\Laravel\Facades\Mollie;
use Mollie\Api\Exceptions\ApiException;
use Mollie\Api\MollieApiClient;
use App\Models\Frontend\payment_transaction_master;
use App\Models\Admin\program;
use App\Models\Admin\country;
use App\Exports\UsersExport;
use Carbon\Carbon;
use PDF;
use Excel;
class PaymentController extends Controller {
public function index() {
$weekAgo = Carbon::now()->subWeek();
$latest_payments = payment_transaction_master::with('user', 'Programs.programe_country')
->where('created_at', '>=', $weekAgo) // Filter transactions from the last week
->orderByDesc('created_at')
->get()
->toArray();
$register_payments = payment_transaction_master::with('user', 'Programs.programe_country')
->where('payment_status', 1)
->get()
->toArray();
$volunteer_payments = payment_transaction_master::with('user', 'Programs.programe_country')
->where('payment_status', 2)
->get()
->toArray();
$country = country::all()->toArray();
// dd($latest_payments,$register_payments,$volunteer_payments);
return view('Admin.Pages.manage_payments.manage_payment')->with(['latest_pay' => $latest_payments, 'regi_pay' => $register_payments, 'vol_pay' => $volunteer_payments, 'country' => $country]);
}
public function createPayment(Request $request) {
// dd($request->all());
$paymentAmount = $request->query('payment_amount');
$convertName = $request->query('selected_currency');
$redirect_url = $request->query('redirect_url');
$programId = $request->query('pro_id');
$programWeek = $request->query('selected_week');
$p_start_date = $request->query('start_date');
$url = url($redirect_url);
$metadata = [
'prog_id' => $programId,
'prog_week' => $programWeek,
'prog_start_date' => $p_start_date,
];
// dd($metadata);
// dd($paymentAmount,$convertName,$redirect_url,$url,$progs_id,$progs_week,$p_start_date,$p_end_date);
$payment = Mollie::api()->payments()->create([
'amount' => [
'currency' => $convertName,
'value' => $paymentAmount
],
'metadata' => $metadata,
'description' => 'Test payment',
'redirectUrl' => $url
]);
session(['transaction_id' => $payment->id]);
$redirectUrl = $payment->getCheckoutUrl();
return response()->json(['redirect_url' => $redirectUrl]);
}
// public function paymentStatus(Request $request) {
// if (session()->has('transaction_id')) {
// $transaction_id = session('transaction_id');
// }
//
// $payment = Mollie::api()->payments()->get($transaction_id);
//
// // Process the payment status
// if ($payment->isPaid()) {
// // Payment is successful
// // Do something here
// } elseif ($payment->isOpen()) {
// // Payment is still open
// // Do something here
// } elseif ($payment->isCanceled()) {
// // Payment is canceled
// // Do something here
// }
//
// return view('payment.status', compact('payment'));
// }
public function download_pdf($id) {
try {
$latest_payments = payment_transaction_master::with('user', 'Programs.programe_country')
->where('id', $id)
->get()
->toArray();
// $start_date = date('d-m-y', strtotime($latest_payments[0]['programs']['start_date']));
if (isset($latest_payments[0]) && isset($latest_payments[0]['programs']) && isset($latest_payments[0]['programs']['start_date'])) {
$start_date = date('d-m-y', strtotime($latest_payments[0]['programs']['start_date']));
} else {
// Set a default value here.
$start_date = 'No start date available';
}
// $end_date = date('d-m-y', strtotime($latest_payments[0]['programs']['end_date']));
if (isset($latest_payments[0]) && isset($latest_payments[0]['programs']) && isset($latest_payments[0]['programs']['end_date'])) {
$end_date = date('d-m-y', strtotime($latest_payments[0]['programs']['end_date']));
} else {
// Set a default value here.
$end_date = 'No end date available';
}
$data = [
'title' => 'Payment Invoice',
'date' => date('j F Y', strtotime('25 March 2023')),
'start_date' => $start_date,
'end_date' => $end_date,
'latest_payments' => $latest_payments
];
$pdf = PDF::loadView('Admin.Pages.manage_payments.payment_invoice', $data);
return $pdf->download('invoice.pdf');
} catch (Exception $e) {
// Handle the exception here, e.g., log it or return an error response.
return response()->json(['error' => $e->getMessage()], 500);
}
}
//------------------------------------export start here----------------------------------------------------------
public function exportUser(Request $request) {
$start_date = $request->input('start_date');
$end_date = $request->input('end_date');
$country_id = $request->input('country_id');
// Build filters based on the provided parameters
$filters = [
'start_date' => $start_date,
'end_date' => $end_date,
'country_id' => $country_id,
];
// Pass the filters to the UsersExport class
return Excel::download(new UsersExport($filters), 'users.xlsx');
}
}