Files
cheerstothe_season_2.0/app/Http/Controllers/Admin/ManageCustomerController.php
sayaliparab 548f8c6060 DASSHBOARD
2024-06-05 20:10:58 +05:30

232 lines
7.4 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Models\IamPrincipal;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\OrderedPassport;
use App\Exports\customer_export;
use App\Exports\customer_export_selected;
use App\Exports\CustomerExportSelected;
use App\Models\ManageRestaurant;
use App\Models\RedeemRestaurant;
use Barryvdh\DomPDF\PDF as DomPDFPDF;
use Exception;
use PDF;
class ManageCustomerController extends Controller
{
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get User Page.
*/
public function index()
{
try {
// Eager load the state relationship for all customers
$customers = IamPrincipal::where('principal_type_xid', 3)
->with('state')
->orderBy('created_at', 'desc')
->get();
return view('Admin.pages.manage_users.manage_customer.customer', compact('customers'));
} catch (Exception $e) {
Log::error("Manage Voucher Page Not Load " . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get Passport Page.
*/
public function view_customer($id)
{
try {
$customers_data = IamPrincipal::findOrFail($id);
return view('Admin.pages.manage_users.manage_customer.view_customer_details', compact('customers_data'));
} catch (Exception $e) {
Log::error("Manage Voucher Page Not Load " . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get Customer data.
*/
public function edit_customer($id)
{
try {
$customers_data = IamPrincipal::findOrFail($id);
return view('Admin.pages.manage_users.manage_customer.edit_customer', compact('customers_data'));
} catch (Exception $e) {
Log::error("Manage Voucher Page Not Load " . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Update Customer Form.
*/
public function update(Request $request)
{
try {
DB::beginTransaction();
$customer_data = IamPrincipal::where('id', $request->customer_id)->first();
$customer_data->first_name = $request->input('name');
$customer_data->last_name = $request->input('last_name');
$customer_data->phone_number = $request->input('phone');
$customer_data->email_address = $request->input('email_id');
$customer_data->save();
DB::commit();
return jsonResponseWithSuccessMessage(__('success.update_data'));
} catch (Exception $e) {
DB::rollBack();
Log::error("updateCustomerNewsArticle Services Page Load Failed " . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
public function archive_customer()
{
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get archieve customer.
*/
try {
$customers = IamPrincipal::where('principal_type_xid', 3)->onlyTrashed()->latest()->get();
return view('Admin.pages.manage_users.manage_customer.archive_manage_customer', compact('customers'));
} catch (Exception $e) {
Log::error("Manage Voucher Page Not Load " . $e->getMessage());
return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
}
}
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get delete customer.
*/
public function delete_customer($id)
{
try {
DB::beginTransaction();
$passport = IamPrincipal::find($id);
$passport->one_signal_player_id = null;
$passport->deleted_by_admin = 1;
$passport->save();
$passport->delete();
// dd($passport);
DB::commit();
return response()->json(['success' => true, 'status' => 200]);
} catch (Exception $e) {
DB::rollBack();
Log::error("delete_passport function Load Failed " . $e->getMessage());
return response()->json(['success' => false, 'status' => 500, 'message' => __('auth.something_went_wrong')]);
}
}
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Get pdf.
*/
public function download_pdf($id)
{
try {
$customers_data = IamPrincipal::findOrFail($id);
$data = [
'customers_data' => $customers_data
];
$pdf = PDF::loadView('Admin.pages.manage_users.manage_customer.view_customer_details_pdf', $data);
return $pdf->download('customer_details.pdf');
} catch (Exception $e) {
Log::error("Error generating PDF: " . $e->getMessage());
return response()->json(['error' => __('auth.something_went_wrong')], 500);
}
}
// public function exportSelectedCustomer(Request $request)
// {
// try {
// if ($request->has('all_id')) {
// return Excel::download(new customer_export, 'Passport_data.xlsx');
// }
// $ids = $request->selected_id;
// $fileName = 'selected_customer_data.xlsx';
// return Excel::download(new customer_export_selected($ids), $fileName);
// } catch (\Exception $e) {
// return response()->json(['error' => 'Export failed. Something went wrong.'], 500);
// }
// }
/*
Created By : Sayali Parab
Created at : 28 May 2024
Use : To Deleted Data Restore.
*/
public function unarchive_customer($id)
{
try {
DB::beginTransaction();
IamPrincipal::withTrashed()->where('id', $id)->restore();
DB::commit();
return response()->json(['success' => true, 'status' => 200]);
} catch (Exception $e) {
DB::rollBack();
Log::error("delete_passport function Load Failed " . $e->getMessage());
return response()->json(['success' => false, 'status' => 500, 'message' => __('auth.something_went_wrong')]);
}
}
/*
Created By : Sayli Raut
Created at : 05 June 2024
Use : To get customer redeem restaurant details.
*/
public function manageCustomerRestaurants(Request $request, $id)
{
try {
$redeemDetails = RedeemRestaurant::with('restaurant', 'customer')->where('iam_principal_xid', $id)->get();
return view('Admin.pages.manage_users.manage_customer.customer_restaurants', compact('redeemDetails'));
} catch (Exception $e) {
Log::error("Error getting restaurant details: " . $e->getMessage());
return response()->json(['error' => __('auth.something_went_wrong')], 500);
}
}
}