diff --git a/app/Classes/Jobs/CreateBankStatementTransactionOwners.php b/app/Classes/Jobs/CreateBankStatementTransactionOwners.php index e7797210..caab846f 100644 --- a/app/Classes/Jobs/CreateBankStatementTransactionOwners.php +++ b/app/Classes/Jobs/CreateBankStatementTransactionOwners.php @@ -13,9 +13,15 @@ class CreateBankStatementTransactionOwners implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + private $transactions; + + public function __construct($transactions) { + $this->transactions = $transactions; + } + public function handle() { - (App()->make(CreateBankStatementTransactionOwnersProcessor::class))->execute(); + (App()->make(CreateBankStatementTransactionOwnersProcessor::class))->execute($this->transactions); } public function delay($delay) diff --git a/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php b/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php index ccc70032..36fc684a 100644 --- a/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php +++ b/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php @@ -23,11 +23,7 @@ class CreateBankStatementTransactionOwnersProcessor /** * @return void */ - public function execute() { - - $transactions = StatementTransaction::whereDoesntHave('owners', function($query){ - return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); - })->orderBy('posting_date')->get(); + public function execute($transactions) { // $transactions = StatementTransaction::whereDoesntHave('owners')->where('amount', '<', 0)->get(); diff --git a/app/Http/Controllers/Accounting/BankStatementController.php b/app/Http/Controllers/Accounting/BankStatementController.php index 8e5ee138..ac631ece 100644 --- a/app/Http/Controllers/Accounting/BankStatementController.php +++ b/app/Http/Controllers/Accounting/BankStatementController.php @@ -22,6 +22,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use DateTime; +use App\Models\StatementTransaction; class BankStatementController extends Controller { @@ -88,7 +89,9 @@ class BankStatementController extends Controller public function rerun() { - CreateBankStatementTransactionOwners::dispatch(); + foreach (StatementTransaction::doesntMapStatement()->get()->chunk(30) as $key => $transaction) { + CreateBankStatementTransactionOwners::dispatch($transaction); + } return redirect()->back()->with('success', 'Rerun triggered successfully'); } diff --git a/app/Models/StatementTransaction.php b/app/Models/StatementTransaction.php index 80d6759f..eb4bcdc8 100644 --- a/app/Models/StatementTransaction.php +++ b/app/Models/StatementTransaction.php @@ -5,6 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Staudenmeir\EloquentHasManyDeep\HasRelationships; +use App\Classes\ValueObjects\Constants\ApprovalStatus; class StatementTransaction extends Model { @@ -47,4 +48,11 @@ class StatementTransaction extends Model { return $this->hasMany(StatementTransactionOwner::class); } + + public function scopeDoesntMapStatement($query) + { + $query->whereDoesntHave('owners', function($query){ + return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + })->orderBy('posting_date'); + } }