validate([ 'file' => 'required|mimes:csv|max:4098' ]); if (!$request->file()) { return back(); } $result = []; $csv_contents = $request->file('file')->getContent(); $rows = str_getcsv($csv_contents, PHP_EOL); $headers = null; foreach ($rows as $index => $row) { $columns = str_getcsv($row, ','); if ($index === 0) { $headers = (object) [ 'Date', 'Transaction Number', 'Transaction Valid', 'Customer Number', 'Reference', 'Amount', ]; continue; } $date = new DateTime($columns[0] ?? null); $valid_transaction = TransactionCodeHelper::verifyKey($columns[1]) ? 'Yes' : 'No'; $amount = sprintf( '$%s', number_format((float) ((int) $columns[4] / 100) ?? null, 2, '.', ''), ); $result[$index] = (object) [ $date->format('Y/m/d h:i a'), $columns[1] ?? null, $valid_transaction, $columns[2] ?? null, $columns[3] ?? null, $amount, ]; } usort($result, function ($a, $b) { return strtotime($a->{0}) < strtotime($b->{0}); }); $result[0] = $headers; return back() ->with('results', (object) $result); } }