File manager - Edit - /var/www/payraty/accounting_main/app/Http/Controllers/BankStatementController.php
Back
<?php namespace App\Http\Controllers; use App\Models\BankAccount; use App\Models\Transfer; use App\Models\BankStatement; use App\Models\Utility; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Facades\Excel; class BankStatementController extends Controller { public function index(Request $request) { $user = Auth::user(); $statements = BankStatement::where('organisation_id', $user->organisation_id)->get(); return view('bankStatement.index', compact('statements')); } public function upload(Request $request) { // Validate the uploaded file $validator = Validator::make($request->all(), [ 'bank_statement' => 'required|file|mimes:csv,xlsx', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $user = Auth::user(); // Process the uploaded file $file = $request->file('bank_statement'); try { // Load the file using Laravel Excel $data = Excel::toArray([], $file); if (empty($data) || empty($data[0])) { return redirect()->back()->with('error', 'The file is empty or invalid.'); } if (isset($data[0]) && is_array($data[0])) { // Flatten the data to remove the outer array $data = $data[0]; } foreach ($data as $key => $row) { // Skip the header row if ($key === 0) { Log::info('Header row', [$row]); continue; } // Ensure the row has the required number of columns if (count($row) < 6) { Log::warning('Invalid row skipped', [$row]); continue; } $date = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[0]); // Map row data to columns $bankStatement = new BankStatement(); $bankStatement->date = $date; $bankStatement->withdrawals = (float) $row[1]; $bankStatement->deposits = (float) $row[2]; $bankStatement->payee = $row[3]; $bankStatement->description = $row[4]; $bankStatement->reference_number = $row[5]; $bankStatement->organisation_id = $user->organisation_id; $bankStatement->save(); } return redirect()->back()->with('success', 'Bank statement imported successfully.'); } catch (\Exception $e) { return redirect()->back()->with('error', 'An error occurred while processing the file: ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings