Export add

This commit is contained in:
sayaliparab
2024-06-17 12:34:42 +05:30
parent 1cac85cf94
commit 1904e4aacc
5 changed files with 86 additions and 32 deletions

View File

@@ -18,8 +18,10 @@ class customer_export implements FromCollection , WithHeadings
public function collection(){
return IamPrincipal::where('principal_type_xid',3)
->select('first_name',
'last_name',
'email_address',
'date_of_birth',
'state_xid',
'phone_number')->get();
@@ -30,8 +32,10 @@ class customer_export implements FromCollection , WithHeadings
{
return [
'first_name',
'last_name',
'email_address',
'date_of_birth',
'state_xid',
'phone_number'
];
}

View File

@@ -5,48 +5,64 @@ namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use App\Models\IamPrincipal;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
class customer_export_selected implements FromCollection ,WithHeadings
class customer_export_selected implements FromCollection, WithHeadings
{
protected $ids;
public function __construct($ids)
{
$this->ids = $ids;
$this->ids = explode(',', $ids); // Ensure ids are split into an array
}
/**
* @return \Illuminate\Support\Collection
*/
* @return \Illuminate\Support\Collection
*/
public function collection()
{
// Log the ids for debugging purposes
Log::info('Fetching data for IDs: ' . implode(',', $this->ids));
$selectedCareIds = explode(',', $this->ids);
$selected_customer = IamPrincipal::whereIn('id', $this->ids)
->with('state:id,name') // Eager load the state relationship
->orderBy('id', 'desc')
->select(
'first_name',
'last_name',
'email_address',
'date_of_birth',
'state_xid',
'phone_number'
)
->get()
->map(function ($customer) {
return [
'first_name' => $customer->first_name,
'last_name' => $customer->last_name,
'email_address' => $customer->email_address,
'date_of_birth' => $customer->date_of_birth,
'state_xid' => $customer->state->name ?? '', // Access the state name and handle null
'phone_number' => $customer->phone_number,
];
});
$selected_customer = IamPrincipal::whereIn('id', $selectedCareIds)
->orderBy('id', 'Desc')
->select(
'first_name',
'email_address',
'date_of_birth',
'phone_number'
)
->get();
return $selected_customer;
// Log the fetched data for debugging purposes
Log::info('Fetched customer data: ' . $selected_customer->toJson());
return new Collection($selected_customer);
}
//function header in excel
public function headings(): array
{
return [
'first_name',
'email_address',
'date_of_birth',
'phone_number'
];
'First Name',
'Last Name',
'Email Address',
'Date of Birth',
'state_name',
'Phone Number'
];
}
}

View File

@@ -219,24 +219,57 @@ class ManageCustomerController extends Controller
}
// public function exportSelectedCustomer(Request $request)
// {
// // dd($request->all());
// try {
// if ($request->has('all_id')) {
// return Excel::download(new customer_export, 'Passport_data.xlsx');
// }
// $ids = $request->selected_id;
// // dd( $ids);
// $fileName = 'selected_customer_data.xlsx';
// return Excel::download(new customer_export_selected($ids), $fileName);
// // dd($ids);
// } catch (\Exception $e) {
// return response()->json(['error' => 'Export failed. Something went wrong.'], 500);
// }
// }
public function exportSelectedCustomer(Request $request)
{
// dd($request->all());
try {
if ($request->has('all_id')) {
return Excel::download(new customer_export, 'Passport_data.xlsx');
}
$ids = $request->selected_id;
// dd( $ids);
// Check if ids is not null or empty
if (empty($ids)) {
return response()->json(['error' => 'No IDs provided for export.'], 400);
}
// Log the ids for debugging purposes
Log::info("Selected IDs for export: " . $ids);
$fileName = 'selected_customer_data.xlsx';
// Additional log before attempting download
Log::info("Attempting to export selected customers to file: " . $fileName);
// Attempt to create and download the Excel file
return Excel::download(new customer_export_selected($ids), $fileName);
} catch (\Exception $e) {
Log::error('Export failed: ' . $e->getMessage());
return response()->json(['error' => 'Export failed. Something went wrong.'], 500);
}
}

View File

@@ -171,4 +171,5 @@ class ManageNotificationsController extends Controller
$notification = NotificationDetails::with('notification')->findOrFail($id);
return view('Admin.pages.manage_notification.manage_notifications_view', compact('notification'));
}
}

View File

@@ -34,12 +34,12 @@ class PrivacyPolicyController extends Controller
* Created at : 29 May 2024
* Use : To edit.
*/
public function edit($id){
public function edit($id)
{
$edit_privacy_policy = PrivacyPolicy::find($id)->toArray();
return view('Admin.pages.manage_cms.manage_privacy.manage_privacy_policy_edit', compact('edit_privacy_policy'));
}
/**
* Created By : sayali parab
* Created at : 29 May 2024