From 3fb6c0a0524c9d705e58f4158c7372171b69060d Mon Sep 17 00:00:00 2001 From: Deon George Date: Wed, 20 Apr 2022 17:05:49 +1000 Subject: [PATCH] Fixes identified by CI testing --- database/factories/ProductFactory.php | 19 +++++++------------ database/factories/ServiceFactory.php | 15 +++++++-------- ...022_04_19_121452_rename_service_tables.php | 7 ++++++- tests/Feature/InvoiceTest.php | 8 ++++++-- 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/database/factories/ProductFactory.php b/database/factories/ProductFactory.php index 78387c0..7bd1197 100644 --- a/database/factories/ProductFactory.php +++ b/database/factories/ProductFactory.php @@ -27,14 +27,12 @@ class ProductFactory extends Factory { return [ 'id' => $this->faker->numberBetween(1,65535), + // 'created_at', + // 'updated_at', //* 'site_id', // Needs to be passed in - // 'date_orig', - // 'date_last', 'taxable' => TRUE, 'active' => TRUE, // 'position' - // 'group_avail' - // 'avail_category' // 'price_type' 'pricing'=>json_encode([ [ @@ -45,12 +43,9 @@ class ProductFactory extends Factory ] ] ]), - // 'price_recurr_default' - // 'price_recurr_day' - // 'price_recurr_weekday' - // 'price_recurr_strict' - // 'prod_plugin_file' - // 'prod_plugin_data' => 1, + // 'price_recur_default' + // 'price_recur_strict' + // 'model_id' => 1, // 'accounting' // 'model' => 'App\Models\Product\Adsl', ]; @@ -62,7 +57,7 @@ class ProductFactory extends Factory { return $this->state(function () { return [ - 'price_recurr_strict' => FALSE, + 'price_recur_strict' => FALSE, ]; }); } @@ -71,7 +66,7 @@ class ProductFactory extends Factory { return $this->state(function () { return [ - 'price_recurr_strict' => TRUE, + 'price_recur_strict' => TRUE, ]; }); } diff --git a/database/factories/ServiceFactory.php b/database/factories/ServiceFactory.php index c853f1c..66b0543 100644 --- a/database/factories/ServiceFactory.php +++ b/database/factories/ServiceFactory.php @@ -42,8 +42,8 @@ class ServiceFactory extends Factory { return [ 'id' => $this->faker->numberBetween(1,65535), - // 'date_orig', - // 'date_last', + // 'created_at', + // 'updated_at', //* 'site_id', // Needs to be passed in //* 'account_id' // 'account_billing_id' @@ -52,17 +52,16 @@ class ServiceFactory extends Factory 'suspend_billing' => FALSE, 'external_billing' => FALSE, 'price' => 100, - 'price_group' => 1, // 'price_override', // 'taxable', // 'queue', - 'date_last_invoice' => Carbon::createFromFormat('Y-m-d','2021-01-01'), - // 'date_next_invoice', + 'invoice_last_at' => Carbon::createFromFormat('Y-m-d','2021-01-01'), + // 'invoice_next_at', // 'recur_schedule', // 'prod_attr', - // 'date_start', - // 'date_end', - // 'orderedby_id', + // 'start_at', + // 'stop_at', + // 'ordered_by', // 'order_status', // 'order_info', 'model' => 'App\Models\Service\Broadband', diff --git a/database/migrations/2022_04_19_121452_rename_service_tables.php b/database/migrations/2022_04_19_121452_rename_service_tables.php index 2eb2516..e88c1b6 100644 --- a/database/migrations/2022_04_19_121452_rename_service_tables.php +++ b/database/migrations/2022_04_19_121452_rename_service_tables.php @@ -59,7 +59,7 @@ class RenameServiceTables extends Migration $table->foreign(['account_id','site_id'])->references(['id','site_id'])->on('accounts'); $table->foreign(['product_id','site_id'])->references(['id','site_id'])->on('products'); $table->foreign(['ordered_by','site_id'])->references(['id','site_id'])->on('users'); - $table->foreign(['site_id'])->references(['id'])->on('sites'); + $table->foreign(['site_id'])->references(['site_id'])->on('sites'); }); DB::statement('ALTER TABLE service_domains RENAME TO service_domain'); @@ -326,6 +326,11 @@ class RenameServiceTables extends Migration foreach (DB::select('SELECT * FROM products where model="App\\\\Models\\\\Product\\\\SSL"') as $o) { DB::select('UPDATE services set model="App\\\\Models\\\\Service\\\\SSL" WHERE product_id='.$o->id); }; + + Schema::table('products', function (Blueprint $table) { + $table->dropForeign(['site_id']); + $table->foreign(['site_id'])->references(['site_id'])->on('sites'); + }); } /** diff --git a/tests/Feature/InvoiceTest.php b/tests/Feature/InvoiceTest.php index f562e5d..ae558a4 100644 --- a/tests/Feature/InvoiceTest.php +++ b/tests/Feature/InvoiceTest.php @@ -42,15 +42,19 @@ class InvoiceTest extends TestCase $this->site_setup(); $this->account_setup(); + dump($this->setup['site']); // Create two services for the same account // First service was billed a month ago, so this invoice will have 1 service charge + $po = Product::factory()->notStrict()->create([ + 'site_id'=>Arr::get($this->setup,'site.a')->site_id, + ]); + dump($po); $o = Service::factory()->create([ 'site_id'=>Arr::get($this->setup,'site.a')->site_id, 'account_id'=>Arr::get($this->setup,'account.a')->id, + 'product_id'=>$po->id, ]); - $po = Product::factory()->notStrict()->make(); - $o->product_id = $po->id; $o->setRelation('product',$po); $this->assertEquals(110,$o->next_invoice_items(FALSE)->sum('total'),'Invoice Equals 110');