Files
cheerstothe_season_2.0/app/Http/Controllers/Admin/ManageReportsController.php
sayaliparab f2daffaee5 rportChanges
2024-07-19 13:33:10 +05:30

87 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageState;
use Illuminate\Support\Facades\Log;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\ReportExports;
use App\Models\ManageRestaurant;
use App\Models\ReferralUsers;
use App\Exports\ExportReports;
class ManageReportsController extends Controller
{
/**
* Created By : sayali parab
* Created at : 03 July 2024
* Use : To get manage report page.
*/
public function index()
{
try {
$states = ManageState::all();
$restaurants = ManageRestaurant::all();
return view('Admin.pages.manage_reports.manage_reports', compact('states', 'restaurants'));
} catch (\Exception $e) {
Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage(), ['exception' => $e]);
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/**
* Created By : sayali parab
* Created at : 03 July 2024
* Use : To download the excel.
*/
public function exportReport(Request $request)
{
// dd($request->all());
$reportType = $request->input('reportType');
$states = $request->input('states');
$restaurants = $request->input('restaurants', []);
$startDate = $request->input('startDate');
$endDate = $request->input('endDate');
// Set the file name based on the report type
$fileName = 'reports.xlsx'; // default file name
if ($reportType == 'Total Subscribed') {
$fileName = 'total_subscribed_report.xlsx';
} elseif ($reportType == 'Total Users') {
$fileName = 'total_users_report.xlsx';
} elseif ($reportType == 'Redemptions') {
$fileName = 'redemptions_report.xlsx';
} elseif ($reportType == 'Redemptions for Specific Restaurants') {
$fileName = 'redemptions_specific_restaurants_report.xlsx';
} elseif ($reportType == 'Subscriptions Cancelled') {
$fileName = 'subscriptions_cancelled_report.xlsx';
} elseif ($reportType == 'Referrals Made') {
$fileName = 'referrals_made_report.xlsx';
} elseif ($reportType == 'Referees Joined') {
$fileName = 'referees_joined_report.xlsx';
}
// Log the report type and file name for debugging purposes
\Log::info('Report type: ' . $reportType);
\Log::info('File name: ' . $fileName);
try {
return Excel::download(new ExportReports($reportType, $states, $startDate, $endDate, $restaurants), $fileName);
} catch (\Exception $e) {
\Log::error('Export failed: ' . $e->getMessage());
\Log::error('Stack trace: ' . $e->getTraceAsString());
return response()->json(['error' => 'Export failed. Something went wrong.'], 500);
}
}
}