Переглянути джерело

Merge pull request #170 from andrewdwallo/development-3.x

update transactions via migration
3.x
Andrew Wallo 4 місяці тому
джерело
коміт
a10746ede0
Аккаунт користувача з таким Email не знайдено

+ 39
- 0
database/migrations/2025_05_19_220942_update_transaction_payees.php Переглянути файл

@@ -0,0 +1,39 @@
1
+<?php
2
+
3
+use App\Models\Accounting\Bill;
4
+use App\Models\Accounting\Invoice;
5
+use App\Models\Accounting\Transaction;
6
+use App\Models\Common\Client;
7
+use App\Models\Common\Vendor;
8
+use Illuminate\Database\Migrations\Migration;
9
+
10
+return new class extends Migration
11
+{
12
+    /**
13
+     * Run the migrations.
14
+     */
15
+    public function up(): void
16
+    {
17
+        $transactions = Transaction::query()
18
+            ->withoutGlobalScopes()
19
+            ->whereHasMorph('transactionable', [Invoice::class, Bill::class])
20
+            ->whereDoesntHaveMorph('payeeable', [Client::class, Vendor::class])
21
+            ->get();
22
+
23
+        foreach ($transactions as $transaction) {
24
+            $document = $transaction->transactionable;
25
+
26
+            if ($document instanceof Invoice) {
27
+                $transaction->payeeable_id = $document->client_id;
28
+                $transaction->payeeable_type = Client::class;
29
+
30
+                $transaction->saveQuietly();
31
+            } elseif ($document instanceof Bill) {
32
+                $transaction->payeeable_id = $document->vendor_id;
33
+                $transaction->payeeable_type = Vendor::class;
34
+
35
+                $transaction->saveQuietly();
36
+            }
37
+        }
38
+    }
39
+};

Завантаження…
Відмінити
Зберегти