new_malcomm_oline/database/seeders/AdvanceSeeder.php

61 lines
2.7 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Advance;
use App\Models\AdvanceType;
use App\Models\User;
use Illuminate\Database\Seeder;
class AdvanceSeeder extends Seeder
{
public function run(): void
{
$users = User::query()->orderBy('id')->pluck('id')->all();
$types = AdvanceType::query()->pluck('id', 'name')->all();
if (empty($users) || empty($types)) {
return;
}
$entries = [
['user_index' => 0, 'type' => 'Paliwo', 'amount' => 180.50, 'days_ago' => 1],
['user_index' => 1, 'type' => 'Hotel', 'amount' => 240.00, 'days_ago' => 2],
['user_index' => 2, 'type' => 'Wpłata', 'amount' => 500.00, 'days_ago' => 3],
['user_index' => 0, 'type' => 'Paliwo', 'amount' => 95.20, 'days_ago' => 6],
['user_index' => 1, 'type' => 'Hotel', 'amount' => 310.40, 'days_ago' => 8],
['user_index' => 3, 'type' => 'Paliwo', 'amount' => 150.10, 'days_ago' => 9],
['user_index' => 4, 'type' => 'Wpłata', 'amount' => 750.00, 'days_ago' => 10],
['user_index' => 2, 'type' => 'Hotel', 'amount' => 420.00, 'days_ago' => 12],
['user_index' => 5, 'type' => 'Paliwo', 'amount' => 205.30, 'days_ago' => 14],
['user_index' => 6, 'type' => 'Wpłata', 'amount' => 600.00, 'days_ago' => 15],
['user_index' => 0, 'type' => 'Hotel', 'amount' => 280.00, 'days_ago' => 17],
['user_index' => 1, 'type' => 'Paliwo', 'amount' => 120.00, 'days_ago' => 18],
['user_index' => 3, 'type' => 'Wpłata', 'amount' => 900.00, 'days_ago' => 20],
['user_index' => 4, 'type' => 'Hotel', 'amount' => 360.75, 'days_ago' => 22],
['user_index' => 5, 'type' => 'Paliwo', 'amount' => 175.25, 'days_ago' => 24],
['user_index' => 6, 'type' => 'Wpłata', 'amount' => 850.00, 'days_ago' => 26],
['user_index' => 2, 'type' => 'Paliwo', 'amount' => 165.15, 'days_ago' => 28],
['user_index' => 0, 'type' => 'Wpłata', 'amount' => 1200.00, 'days_ago' => 29],
['user_index' => 1, 'type' => 'Hotel', 'amount' => 540.20, 'days_ago' => 30],
['user_index' => 3, 'type' => 'Paliwo', 'amount' => 210.45, 'days_ago' => 33],
];
foreach ($entries as $index => $entry) {
$userId = $users[$entry['user_index']] ?? $users[0];
$typeId = $types[$entry['type']] ?? null;
if (! $typeId) {
continue;
}
Advance::create([
'date' => now()->subDays($entry['days_ago'])->toDateString(),
'user_id' => $userId,
'amount' => $entry['amount'],
'advance_type_id' => $typeId,
]);
}
}
}