json(['message' => 'Data Arrangement processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processCustomerData($periods) { try { // Pass the periods to the job for processing ProcessCustomerDataJob::dispatch($periods); return response()->json([ 'message' => 'Data Customer processing job has been successfully queued', 'periods' => $periods ]); } catch (Exception $e) { Log::error('Error in processCustomerData: ' . $e->getMessage()); return response()->json(['error' => $e->getMessage()], 500); } } public function processBillDetailData($periods) { try { ProcessBillDetailDataJob::dispatch($periods); return response()->json(['message' => 'Data Bill Details processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processAccountData($periods){ try{ ProcessAccountDataJob::dispatch($periods); return response()->json(['message' => 'Data Account processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processTransactionData($periods){ try{ ProcessTransactionDataJob::dispatch($periods); Log::info('Data Transaction processing job has been successfully'); return response()->json(['message' => 'Data Transaction processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processFundsTransferData($periods){ try{ ProcessFundsTransferDataJob::dispatch($periods); return response()->json(['message' => 'Data Funds Transfer processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processStmtNarrParamData($periods) { try { ProcessStmtNarrParamDataJob::dispatch($periods); return response()->json(['message' => 'Data TempStmtNarrParam processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processStmtNarrFormatData($periods){ try { ProcessStmtNarrFormatDataJob::dispatch($periods); return response()->json(['message' => 'Data TempStmtNarrFormat processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function ProcessFtTxnTypeConditioData($periods){ try { ProcessFtTxnTypeConditionJob::dispatch($periods); return response()->json(['message' => 'Data FtTxnTypeCondition processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function processStmtEntryData($periods){ try { ProcessStmtEntryDataJob::dispatch($periods); return response()->json(['message' => 'Data TempStmtEntry processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function ProcessCompanyData($periods){ try { ProcessCompanyDataJob::dispatch($periods); return response()->json(['message' => 'Data TempStmtEntry processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function ProcessDataCaptureData($periods){ try { ProcessDataCaptureDataJob::dispatch($periods); return response()->json(['message' => 'Data TempStmtEntry processing job has been successfully']); } catch (Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function index() { $disk = Storage::disk('sftpStatement'); // Get all directories (periods) in the SFTP disk $allDirectories = $disk->directories(); //$this->processTransactionData(['_parameter']); $this->processStmtNarrParamData(['_parameter']); //$this->processStmtNarrFormatData(['_parameter']); $this->ProcessFtTxnTypeConditioData(['_parameter']); // Filter out the _parameter folder $periods = array_filter($allDirectories, function($dir) { return $dir !== '_parameter'; }); // Sort periods by date (descending) usort($periods, function($a, $b) { return strcmp($b, $a); // Reverse comparison for descending order }); if (empty($periods)) { return response()->json(['message' => 'No valid period folders found in SFTP storage'], 404); } $this->processCustomerData(['20250519']); //$this->processAccountData(['20250519']); $this->processArrangementData(['20250512']); $this->processBillDetailData(['20250512']); $this->processFundsTransferData(['20250512']); $this->processStmtEntryData(['20250512']); //$this->ProcessCompanyData($periods); $this->ProcessDataCaptureData($periods); return response()->json(['message' => 'Data processing job has been successfully']); } }