From e9b9cef2f19ecd1fd5063c0500c586fdad5386d5 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 26 Dec 2019 17:09:14 +1100 Subject: [PATCH] Add quotes to randomdata generator (#3171) --- app/Console/Commands/CreateTestData.php | 49 ++++++++++++++++++++++++- app/Factory/QuoteFactory.php | 2 +- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/app/Console/Commands/CreateTestData.php b/app/Console/Commands/CreateTestData.php index e8f08777265d..57452a1ca8f8 100644 --- a/app/Console/Commands/CreateTestData.php +++ b/app/Console/Commands/CreateTestData.php @@ -9,10 +9,12 @@ use App\Factory\ClientFactory; use App\Factory\InvoiceFactory; use App\Factory\InvoiceItemFactory; use App\Factory\PaymentFactory; +use App\Factory\QuoteFactory; use App\Helpers\Invoice\InvoiceSum; use App\Jobs\Company\UpdateCompanyLedgerWithInvoice; use App\Jobs\Invoice\CreateInvoiceInvitations; use App\Jobs\Invoice\UpdateInvoicePayment; +use App\Jobs\Quote\CreateQuoteInvitations; use App\Listeners\Invoice\CreateInvoiceInvitation; use App\Models\CompanyToken; use App\Models\Payment; @@ -265,11 +267,12 @@ class CreateTestData extends Command $y = $this->count * rand(1,5); - $this->info("Creating {$y} invoices"); + $this->info("Creating {$y} invoices & quotes"); for($x=0; $x<$y; $x++){ $this->createInvoice($client); + $this->createQuote($client); } } @@ -338,6 +341,50 @@ class CreateTestData extends Command } } + + private function createQuote($client) + { + $faker = \Faker\Factory::create(); + + $quote = QuoteFactory::create($client->company->id,$client->user->id);//stub the company and user_id + $quote->client_id = $client->id; + $quote->date = $faker->date(); + + $quote->line_items = $this->buildLineItems(); + $quote->uses_inclusive_taxes = false; + + if(rand(0,1)) + { + $quote->tax_name1 = 'GST'; + $quote->tax_rate1 = 10.00; + } + + if(rand(0,1)) + { + $quote->tax_name2 = 'VAT'; + $quote->tax_rate2 = 17.50; + } + + if(rand(0,1)) + { + $quote->tax_name3 = 'CA Sales Tax'; + $quote->tax_rate3 = 5; + } + + $quote->save(); + + $quote_calc = new InvoiceSum($quote); + $quote_calc->build(); + + $quote = $quote_calc->getInvoice(); + + $quote->save(); + + CreateQuoteInvitations::dispatch($quote); + + + } + private function buildLineItems() { $line_items = []; diff --git a/app/Factory/QuoteFactory.php b/app/Factory/QuoteFactory.php index 05e21e32a657..a535b400dc3f 100644 --- a/app/Factory/QuoteFactory.php +++ b/app/Factory/QuoteFactory.php @@ -22,7 +22,7 @@ class QuoteFactory { $quote = new Quote(); $quote->status_id = Quote::STATUS_DRAFT; - $quote->number = ''; + $quote->number = null; $quote->discount = 0; $quote->is_amount_discount = true; $quote->po_number = '';