|  | @@ -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 | +};
 |