diff --git a/app/Jobs/ProcessFundsTransferDataJob.php b/app/Jobs/ProcessFundsTransferDataJob.php new file mode 100644 index 0000000..8429dfe --- /dev/null +++ b/app/Jobs/ProcessFundsTransferDataJob.php @@ -0,0 +1,71 @@ +getFillable(); + while (($row = fgetcsv($handle, 0, "~")) !== false) { + if (count($row) > count($headers)) { + $row = array_slice($row, 0, count($headers)); + } + if (count($headers) === count($row)) { + $data = array_combine($headers, $row); + + try { + TempFundsTransfer::updateOrCreate(['_id' => $data['_id']], $data); + } catch (Exception $e) { + Log::error('Error processing funds transfer: ' . $e->getMessage()); + } + } + } + fclose($handle); + } else { + throw new Exception("Unable to open file: {$filePath}"); + } + } catch (Exception $e) { + Log::error('Error in ProcessFundsTransferDataJob: ' . $e->getMessage()); + throw $e; + } + } + } diff --git a/app/Models/TempFundsTransfer.php b/app/Models/TempFundsTransfer.php new file mode 100644 index 0000000..258402e --- /dev/null +++ b/app/Models/TempFundsTransfer.php @@ -0,0 +1,23 @@ +id(); + foreach ($fieldsArray as $field) { + $field = trim($field); + $table->string($field)->nullable(); + } + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('temp_funds_transfer'); + } +};