bug fixes, AM change feature, refactoring

This commit is contained in:
Kwesi Banson Jnr
2025-11-23 14:40:32 +00:00
parent eabf61b7da
commit d5ac7391dd
41 changed files with 1559 additions and 125 deletions

View File

@@ -6,7 +6,7 @@ use Illuminate\Http\Request;
use App\Models;
use Session;
use Excel;
use App\Imports\Senderidimport;
use App\Imports\SenderidImport;
use Illuminate\Support\Facades\File;
class SenderIdController extends Controller
@@ -35,8 +35,10 @@ class SenderIdController extends Controller
->paginate(15);
if($request->has('keyword')){
$queries = [];
$keyword = $request->keyword;
$request->session()->put('current_user.senderid_keyword', $keyword);
$queries['keyword'] = $keyword;
$senderid_arr = \DB::table('sender_ids')
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
@@ -109,14 +111,35 @@ class SenderIdController extends Controller
'status' => 'required',
'remarks' => 'sometimes',
]);
// dump($request->all());
/*
$check_duplicate = Models\SenderId::where('senderid', $request->senderid)
->where('mno_name', $request->mno_name)
->first();
if($check_duplicate){
return redirect()->back()->withInput()->withErrors("Sender ID already exist for " . $request->mno_name );
*/
$check_duplicate = Models\SenderId::where('senderid', $request->senderid)->first();
// dd($check_duplicate);
if ($check_duplicate) {
// code...
if ($request->direct_mno == 'YES' && $check_duplicate->direct_mno == 'YES') {
if ($request->mno_name == $check_duplicate->mno_name) {
return redirect()->back()->withInput()->withErrors("Sender ID already exist for " . $request->mno_name );
}
}
if ($request->direct_mno == 'NO' && $check_duplicate->direct_mno == 'NO') {
if ($request->supplier_name == $check_duplicate->supplier_name) {
return redirect()->back()->withInput()->withErrors("Sender ID already exist for " . $request->supplier_name );
}
}
}
// dd('foo stop');
// if($check_duplicate){
// return redirect()->back()->withInput()->withErrors("Sender ID already exist for " . $request->mno_name );
// }
$senderid_arr = $request->except('_token');
$senderid_arr['created_by'] = session('current_user.id');
$senderid_arr['last_modified_by'] = session('current_user.id');
@@ -179,7 +202,7 @@ class SenderIdController extends Controller
$request->senderid_file->storeAs('general_files', $filename, 'public');
$stored_file = public_path('documents/general_files/'.$filename);
$extracted_arr = Excel::toArray(new Senderidimport, $stored_file);
$extracted_arr = Excel::toArray(new SenderidImport, $stored_file);
// dd($extracted_arr[0]);
$row_count = $extracted_arr[0];
$main = [];
@@ -227,6 +250,7 @@ class SenderIdController extends Controller
// dd('foo bar');
$senderid_arr['senderid'] = $value['senderid'];
$senderid_arr['mno_name'] = $value['mno_name'];
$senderid_arr['status'] = $value['status'];
$senderid_arr['created_by'] = session('current_user.id');
$senderid_arr['last_modified_by'] = session('current_user.id');
$senderid_arr['remarks'] = $value['remarks'];
@@ -235,6 +259,7 @@ class SenderIdController extends Controller
else{
$senderid_arr['senderid'] = $value['senderid'];
$senderid_arr['supplier_name'] = $value['supplier_name'];
$senderid_arr['status'] = $value['status'];
$senderid_arr['created_by'] = session('current_user.id');
$senderid_arr['last_modified_by'] = session('current_user.id');
$senderid_arr['remarks'] = $value['remarks'];
@@ -261,7 +286,7 @@ class SenderIdController extends Controller
return \Response::download($file, 'Sender ID Upload Report', $headers);
}
public function getSampleFile(){
$file = public_path('documents/general_files/senderid_sample_file.xlsx');
$file = public_path('helper_documents/senderid_sample_file.xlsx');
#$extension = pathinfo($file, PATHINFO_EXTENSION);
$headers = ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
@@ -374,6 +399,65 @@ class SenderIdController extends Controller
}
}
public function exportSenderIdCsv(){
$fileName = 'senderid_list.csv';
$users = Models\SenderId::all()->toArray(); // Adjust model as needed
$headers = [
'Content-Type' => 'text/csv',
'Content-Disposition' => "attachment; filename=\"$fileName\"",
'Pragma' => 'no-cache',
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Expires' => '0',
];
$keyword = session('current_user.senderid_keyword');
// dd(request('keyword'));
// dd($keyword);
request()->session()->put('current_user.senderid_keyword', null);
// dump($keyword);
$senderid_arr = \DB::table('sender_ids')
->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'sender_ids.created_by')
->join('staff_members AS staffmodify', 'staffmodify.id', '=', 'sender_ids.last_modified_by')
->select('sender_ids.id', 'mno_name', 'supplier_name', 'sender_ids.senderid', 'sender_ids.status', 'sender_ids.remarks', 'staffcreate.name As createdBy', 'sender_ids.direct_mno', 'staffmodify.name AS modifiedBy')
->whereRaw("sender_ids.senderid LIKE '%$keyword%' OR sender_ids.status LIKE '%$keyword%' OR mno_name LIKE '%$keyword%' OR supplier_name LIKE '%$keyword%' OR staffcreate.name LIKE '%$keyword%' OR staffmodify.name LIKE '%$keyword%' OR sender_ids.direct_mno LIKE '%$keyword%'")
->orderBy('sender_ids.senderid', 'ASC')
->get()->toArray();
// dd($senderid_arr);
# add headers for each column in the CSV download
array_unshift($senderid_arr, array_keys((array)$senderid_arr[0]));
$callback = function() use ($senderid_arr){
$file_handle = fopen('php://output', 'w');
foreach ($senderid_arr as $row) {
$row = (array)$row;
fputcsv($file_handle, $row);
}
fclose($file_handle);
};
// return Response::stream($callback, 200, $headers);
return response()->stream($callback, 200, $headers);
// $callback = function() use ($senderid_arr) {
// $file = fopen('php://output', 'w');
// // Add CSV headers
// fputcsv($file, array_keys($senderid_arr[0]));
// // Add data rows
// foreach ($senderid_arr as $row) {
// fputcsv($file, $row);
// }
// fclose($file);
// };
// return response()->stream($callback, 200, $headers);
}
public function getMNOList($type){
if ($type == 'YES') {