added tax to invoice/bill factories

This commit is contained in:
denisdulici 2020-03-15 20:29:07 +03:00
parent c6276a88a6
commit 36aabd14e7
3 changed files with 87 additions and 13 deletions

View File

@ -10,6 +10,7 @@ use App\Models\Common\Item;
use App\Models\Purchase\Bill;
use Faker\Generator as Faker;
use Jenssegers\Date\Date;
use App\Models\Setting\Tax;
$user = User::first();
$company = $user->companies()->first();
@ -28,7 +29,7 @@ $factory->define(Bill::class, function (Faker $faker) use ($company) {
if ($contacts->count()) {
$contact = $contacts->random(1)->first();
} else {
$contact = factory(Contact::class)->states('vendor')->create();
$contact = factory(Contact::class)->states('enabled', 'vendor')->create();
}
$statuses = ['draft', 'received', 'partial', 'paid'];
@ -78,15 +79,32 @@ $factory->state(Bill::class, 'items', function (Faker $faker) use ($company) {
$amount = $faker->randomFloat(2, 1, 1000);
$taxes = Tax::enabled()->get();
if ($taxes->count()) {
$tax = $taxes->random(1)->first();
} else {
$tax = factory(Tax::class)->states('enabled')->create();
}
$items = Item::enabled()->get();
if ($items->count()) {
$item = $items->random(1)->first();
} else {
$item = factory(Item::class)->create();
$item = factory(Item::class)->states('enabled')->create();
}
$items = [['name' => $item->name, 'item_id' => $item->id, 'quantity' => '1', 'price' => $amount, 'currency' => setting('default.currency')]];
$items = [
[
'name' => $item->name,
'item_id' => $item->id,
'tax_id' => [$tax->id],
'quantity' => '1',
'price' => $amount,
'currency' => setting('default.currency'),
]
];
return [
'items' => $items,
@ -106,15 +124,32 @@ $factory->afterCreating(Bill::class, function ($bill, $faker) use ($company) {
$amount = $faker->randomFloat(2, 1, 1000);
$taxes = Tax::enabled()->get();
if ($taxes->count()) {
$tax = $taxes->random(1)->first();
} else {
$tax = factory(Tax::class)->states('enabled')->create();
}
$items = Item::enabled()->get();
if ($items->count()) {
$item = $items->random(1)->first();
} else {
$item = factory(Item::class)->create();
$item = factory(Item::class)->states('enabled')->create();
}
$items = [['name' => $item->name, 'item_id' => $item->id, 'quantity' => '1', 'price' => $amount, 'currency' => $bill->currency_code]];
$items = [
[
'name' => $item->name,
'item_id' => $item->id,
'tax_id' => [$tax->id],
'quantity' => '1',
'price' => $amount,
'currency' => $bill->currency_code,
]
];
$request = [
'items' => $items,

View File

@ -9,6 +9,7 @@ use App\Models\Auth\User;
use App\Models\Common\Contact;
use App\Models\Common\Item;
use App\Models\Sale\Invoice;
use App\Models\Setting\Tax;
use Faker\Generator as Faker;
use Jenssegers\Date\Date;
@ -29,7 +30,7 @@ $factory->define(Invoice::class, function (Faker $faker) use ($company) {
if ($contacts->count()) {
$contact = $contacts->random(1)->first();
} else {
$contact = factory(Contact::class)->states('customer')->create();
$contact = factory(Contact::class)->states('enabled', 'customer')->create();
}
$statuses = ['draft', 'sent', 'viewed', 'partial', 'paid'];
@ -81,15 +82,32 @@ $factory->state(Invoice::class, 'items', function (Faker $faker) use ($company)
$amount = $faker->randomFloat(2, 1, 1000);
$taxes = Tax::enabled()->get();
if ($taxes->count()) {
$tax = $taxes->random(1)->first();
} else {
$tax = factory(Tax::class)->states('enabled')->create();
}
$items = Item::enabled()->get();
if ($items->count()) {
$item = $items->random(1)->first();
} else {
$item = factory(Item::class)->create();
$item = factory(Item::class)->states('enabled')->create();
}
$items = [['name' => $item->name, 'item_id' => $item->id, 'quantity' => '1', 'price' => $amount, 'currency' => setting('default.currency')]];
$items = [
[
'name' => $item->name,
'item_id' => $item->id,
'tax_id' => [$tax->id],
'quantity' => '1',
'price' => $amount,
'currency' => setting('default.currency'),
]
];
return [
'items' => $items,
@ -109,15 +127,32 @@ $factory->afterCreating(Invoice::class, function ($invoice, $faker) use ($compan
$amount = $faker->randomFloat(2, 1, 1000);
$taxes = Tax::enabled()->get();
if ($taxes->count()) {
$tax = $taxes->random(1)->first();
} else {
$tax = factory(Tax::class)->states('enabled')->create();
}
$items = Item::enabled()->get();
if ($items->count()) {
$item = $items->random(1)->first();
} else {
$item = factory(Item::class)->create();
$item = factory(Item::class)->states('enabled')->create();
}
$items = [['name' => $item->name, 'item_id' => $item->id, 'quantity' => '1', 'price' => $amount, 'currency' => $invoice->currency_code]];
$items = [
[
'name' => $item->name,
'item_id' => $item->id,
'tax_id' => [$tax->id],
'quantity' => '1',
'price' => $amount,
'currency' => $invoice->currency_code,
]
];
$request = [
'items' => $items,

View File

@ -9,6 +9,7 @@ use App\Models\Common\Item;
use App\Models\Purchase\Bill;
use App\Models\Sale\Invoice;
use App\Models\Setting\Category;
use App\Models\Setting\Tax;
use Illuminate\Database\Seeder;
class SampleData extends Seeder
@ -25,11 +26,11 @@ class SampleData extends Seeder
config(['mail.default' => 'log']);
$count = (int) $this->command->option('count');
$acc_count = ($count <= 10) ? $count : 10;
$small_count = ($count <= 10) ? $count : 10;
$this->command->info('Creating sample data...');
$bar = $this->command->getOutput()->createProgressBar(6);
$bar = $this->command->getOutput()->createProgressBar(7);
$bar->setFormat('verbose');
$bar->start();
@ -40,10 +41,13 @@ class SampleData extends Seeder
factory(Category::class, $count)->create();
$bar->advance();
factory(Tax::class, $small_count)->states('enabled')->create();
$bar->advance();
factory(Item::class, $count)->create();
$bar->advance();
factory(Account::class, $acc_count)->create();
factory(Account::class, $small_count)->create();
$bar->advance();
factory(Bill::class, $count)->create();