diff --git a/database/factories/BookingFactory.php b/database/factories/BookingFactory.php index 683bb47..61983b0 100644 --- a/database/factories/BookingFactory.php +++ b/database/factories/BookingFactory.php @@ -1,12 +1,16 @@ define(App\Booking::class, function (Faker $faker) { return [ 'date'=> $faker->dateTimeBetween('2014-01-01'), 'reference' => $faker->text(50), 'person_or_company' => $faker->name, - 'note' => $faker->text(10) + 'note' => $faker->text(10), + + 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), + 'updated_at' => Carbon::now()->format('Y-m-d H:i:s') ]; }); diff --git a/database/factories/MemberStateFactory.php b/database/factories/MemberStateFactory.php index a22def4..9369c69 100644 --- a/database/factories/MemberStateFactory.php +++ b/database/factories/MemberStateFactory.php @@ -2,11 +2,10 @@ use Faker\Generator as Faker; use Carbon\Carbon; -use Carbon\CarbonPeriod; $factory->define(App\MemberState::class, function (Faker $faker) { return [ 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), - 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), + 'updated_at' => Carbon::now()->format('Y-m-d H:i:s') ]; }); diff --git a/database/factories/SubBookingFactory.php b/database/factories/SubBookingFactory.php index c6385c1..8d78288 100644 --- a/database/factories/SubBookingFactory.php +++ b/database/factories/SubBookingFactory.php @@ -1,9 +1,58 @@ define(App\SubBooking::class, function (Faker $faker) { + + // Select randomly an existing target from the database + $randomPersonTarget = PersonTarget::all()->random(); + $randomAccountType = null; + + // Randomly decide, if the target is paid, underpaid or overpaid + if (rand_bool(20)) { + // Overpaid + if ($randomPersonTarget->ioType->name === 'Einnahme') { + $randomAccountType = AccountType::incomes()->random(); + $amount = $randomPersonTarget->difference() + rand(1, 100); + } else { + $randomAccountType = AccountType::expeditures()->random(); + $amount = $randomPersonTarget->difference() + rand(1, 100); + } + } else if (rand_bool(20)) { + // Underpaid + if ($randomPersonTarget->ioType->name === 'Einnahme') { + $randomAccountType = AccountType::incomes()->random(); + $amount = $randomPersonTarget->difference() - rand(1, $randomPersonTarget->difference()); + } else { + $randomAccountType = AccountType::expeditures()->random(); + $amount = $randomPersonTarget->difference() - rand(1, $randomPersonTarget->difference()); + } + } else { + if ($randomPersonTarget->ioType->name === 'Einnahme') { + $randomAccountType = AccountType::incomes()->random(); + $amount = $randomPersonTarget->difference(); + } else { + $randomAccountType = AccountType::expeditures()->random(); + $amount = $randomPersonTarget->difference(); + } + } + return [ - '' + 'booking_id' => Booking::all('id')->random()->id, + 'project_id' => Project::all('id')->random()->id, + 'account_type_id' => $randomAccountType->id, + 'person_target_id' => $randomPersonTarget->id, + + 'reference' => $faker->text(50), + 'amount' => $amount, + + 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), + 'updated_at' => Carbon::now()->format('Y-m-d H:i:s') ]; }); diff --git a/database/seeds/data/test/TestSubBookingsTableSeeder.php b/database/seeds/data/test/TestSubBookingsTableSeeder.php index 4a156f8..892cac6 100644 --- a/database/seeds/data/test/TestSubBookingsTableSeeder.php +++ b/database/seeds/data/test/TestSubBookingsTableSeeder.php @@ -11,6 +11,6 @@ class TestSubBookingsTableSeeder extends Seeder */ public function run() { - // + factory(App\SubBooking::class, 800)->create(); } }