More works on products
This commit is contained in:
@@ -13,7 +13,6 @@ class OptimizeProduct extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
/*
|
||||
Schema::table('ab_product', function (Blueprint $table) {
|
||||
$table->dropForeign(['site_id']);
|
||||
$table->dropIndex(['id','site_id']);
|
||||
@@ -30,11 +29,13 @@ class OptimizeProduct extends Migration
|
||||
$table->dateTime('updated_at')->nullable()->after('created_at');
|
||||
});
|
||||
|
||||
DB::statement('ALTER TABLE suppliers MODIFY address1 varchar(255),MODIFY city varchar(255),MODIFY state varchar(255),MODIFY postcode varchar(255)');
|
||||
|
||||
Schema::table('supplier_details', function (Blueprint $table) {
|
||||
$table->jsonb('connections')->nullable();
|
||||
});
|
||||
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM AB_ADSL_SUPPLIER') as $o) {
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM ab_adsl_supplier') as $o) {
|
||||
switch($o->name) {
|
||||
case 'PeopleAgent':
|
||||
$type = 'broadband';
|
||||
@@ -66,15 +67,7 @@ class OptimizeProduct extends Migration
|
||||
}
|
||||
|
||||
$so = \App\Models\Supplier::where('name',$name)->singleOrNew();
|
||||
|
||||
if (! $so->exists) {
|
||||
$so->name = $name;
|
||||
$so->address1 = '...';
|
||||
$so->city = '...';
|
||||
$so->state = '...';
|
||||
$so->postcode = '...';
|
||||
}
|
||||
|
||||
$so->name = $name;
|
||||
$so->active = $so->active ?: $o->active;
|
||||
$so->save();
|
||||
|
||||
@@ -134,7 +127,7 @@ class OptimizeProduct extends Migration
|
||||
\Illuminate\Support\Facades\DB::select("UPDATE products SET model='App\\\\Models\\\\Product\\\\Broadband' where model='App\\\\Models\\\\Product\\\\Adsl'");
|
||||
|
||||
// Convert to use the new supplier
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM AB_ADSL_SUPPLIER') as $o) {
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM ab_adsl_supplier') as $o) {
|
||||
switch ($o->name) {
|
||||
case 'PeopleAgent':
|
||||
$so = \App\Models\Supplier::where('name','People Telecom')->singleOrFail();
|
||||
@@ -278,9 +271,347 @@ class OptimizeProduct extends Migration
|
||||
Schema::table('products', function (Blueprint $table) {
|
||||
$table->dropColumn(['date_orig','date_last','group_avail','avail_category','price_recurr_day','price_recurr_weekday','prod_plugin_file']);
|
||||
});
|
||||
*/
|
||||
Schema::dropIfExists('ab_voip_plan');
|
||||
|
||||
abort(500,'here');
|
||||
Schema::create('tlds',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->string('name',64)->unique();
|
||||
});
|
||||
|
||||
Schema::create('supplier_domain',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->boolean('active');
|
||||
$table->integer('supplier_detail_id')->unsigned();
|
||||
$table->string('product_id',16);
|
||||
$table->string('product_desc',128)->nullable();
|
||||
$table->float('base_cost');
|
||||
$table->float('setup_cost')->nullable();
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
$table->integer('tld_id')->unsigned();
|
||||
$table->text('whois_url')->nullable();
|
||||
$table->text('config')->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['tld_id'])->references(['id'])->on('tlds');
|
||||
$table->foreign(['supplier_detail_id','site_id'])->references(['id','site_id'])->on('supplier_details');
|
||||
});
|
||||
Schema::create('supplier_host',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->boolean('active');
|
||||
$table->integer('supplier_detail_id')->unsigned();
|
||||
$table->string('product_id',16);
|
||||
$table->string('product_desc',128)->nullable();
|
||||
$table->float('base_cost');
|
||||
$table->float('setup_cost')->nullable();
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_detail_id','site_id'])->references(['id','site_id'])->on('supplier_details');
|
||||
});
|
||||
Schema::create('supplier_ssl',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->boolean('active');
|
||||
$table->integer('supplier_detail_id')->unsigned();
|
||||
$table->string('product_id',16);
|
||||
$table->string('product_desc',128)->nullable();
|
||||
$table->float('base_cost');
|
||||
$table->float('setup_cost')->nullable();
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_detail_id','site_id'])->references(['id','site_id'])->on('supplier_details');
|
||||
});
|
||||
Schema::create('supplier_generic',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->boolean('active');
|
||||
$table->integer('supplier_detail_id')->unsigned();
|
||||
$table->string('product_id',16);
|
||||
$table->string('product_desc',128)->nullable();
|
||||
$table->float('base_cost');
|
||||
$table->float('setup_cost')->nullable();
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_detail_id','site_id'])->references(['id','site_id'])->on('supplier_details');
|
||||
});
|
||||
Schema::create('supplier_voip',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->boolean('active');
|
||||
$table->integer('supplier_detail_id')->unsigned();
|
||||
$table->string('product_id',16);
|
||||
$table->string('product_desc',128)->nullable();
|
||||
$table->float('base_cost');
|
||||
$table->float('setup_cost')->nullable();
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_detail_id','site_id'])->references(['id','site_id'])->on('supplier_details');
|
||||
});
|
||||
|
||||
Schema::create('product_domain',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->integer('supplier_domain_id')->unsigned();
|
||||
$table->string('name',64);
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_domain_id','site_id'])->references(['id','site_id'])->on('supplier_domain');
|
||||
});
|
||||
Schema::create('product_host',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->integer('supplier_host_id')->unsigned();
|
||||
$table->string('name',64);
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_host_id','site_id'])->references(['id','site_id'])->on('supplier_host');
|
||||
});
|
||||
Schema::create('product_ssl',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->integer('supplier_ssl_id')->unsigned();
|
||||
$table->string('name',64);
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_ssl_id','site_id'])->references(['id','site_id'])->on('supplier_ssl');
|
||||
});
|
||||
Schema::create('product_generic',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->integer('supplier_generic_id')->unsigned();
|
||||
$table->string('name',64);
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_generic_id','site_id'])->references(['id','site_id'])->on('supplier_generic');
|
||||
});
|
||||
Schema::create('product_voip',function (Blueprint $table) {
|
||||
$table->integer('id',TRUE)->unsigned();
|
||||
$table->timestamps();
|
||||
$table->integer('site_id')->unsigned();
|
||||
$table->integer('supplier_voip_id')->unsigned();
|
||||
$table->string('name',64);
|
||||
$table->integer('contract_term')->unsigned()->nullable();
|
||||
|
||||
$table->index(['id','site_id']);
|
||||
$table->foreign(['site_id'])->references(['id'])->on('sites');
|
||||
$table->foreign(['supplier_voip_id','site_id'])->references(['id','site_id'])->on('supplier_voip');
|
||||
});
|
||||
|
||||
// Setup Domains
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM ab_domain_tld') as $o) {
|
||||
$oo = new \App\Models\TLD;
|
||||
|
||||
if ($o->date_orig)
|
||||
$oo->created_at = \Carbon\Carbon::createFromTimestamp($o->date_orig);
|
||||
if ($o->date_last)
|
||||
$oo->created_at = \Carbon\Carbon::createFromTimestamp($o->date_last);
|
||||
|
||||
$oo->name = strtolower($o->name);
|
||||
$oo->save();
|
||||
};
|
||||
|
||||
foreach (\Illuminate\Support\Facades\DB::select('SELECT * FROM ab_domain_registrar') as $o) {
|
||||
$so = \App\Models\Supplier::where('name',$o->name)->singleOrNew();
|
||||
$so->name = $o->name;
|
||||
$so->active = $so->active ?: $o->active;
|
||||
$so->save();
|
||||
|
||||
$sdo = \App\Models\SupplierDetail::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('supplier_id',$so->id)
|
||||
->where('site_id',1)
|
||||
->firstOrNew();
|
||||
|
||||
$sdo->site_id = 1;
|
||||
$connects = collect();
|
||||
if ($o->whitelabel_url)
|
||||
$connects->put('whitelabel_url',$o->whitelabel_url);
|
||||
if ($o->manage_url)
|
||||
$connects->put('manage_url',$o->manage_url);
|
||||
|
||||
$sdo->connections = $connects;
|
||||
$so->detail()->save($sdo);
|
||||
|
||||
foreach (\App\Models\TLD::cursor() as $tldo) {
|
||||
$sd = \App\Models\Supplier\Domain::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('tld_id',$tldo->id)
|
||||
->where('site_id',$sdo->site_id)
|
||||
->where('supplier_detail_id',$sdo->id)
|
||||
->firstOrNew();
|
||||
|
||||
$sd->supplier_detail_id = $sdo->id;
|
||||
$sd->tld_id = $tldo->id;
|
||||
$sd->site_id = $sdo->site_id;
|
||||
$sd->active = TRUE;
|
||||
$sd->product_id = 'Domain Name';
|
||||
$sd->product_desc = 'Domain Name License';
|
||||
$sd->base_cost = '.01';
|
||||
$sd->contract_term = 12;
|
||||
|
||||
$sd->save();
|
||||
|
||||
$pd = \App\Models\Product\Domain::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('site_id',$sdo->site_id)
|
||||
->where('supplier_domain_id',$sd->id)
|
||||
->firstOrNew();
|
||||
|
||||
$pd->supplier_domain_id = $sd->id;
|
||||
$pd->site_id = $sd->site_id;
|
||||
$pd->name = $sd->name;
|
||||
|
||||
$pd->save();
|
||||
}
|
||||
}
|
||||
|
||||
// SSL
|
||||
$so = \App\Models\Supplier::where('name','Graytech Hosting Pty Ltd')->firstOrNew();
|
||||
$so->name = 'Graytech Hosting Pty Ltd';
|
||||
$so->active = TRUE;
|
||||
$so->save();
|
||||
|
||||
$sdo = \App\Models\SupplierDetail::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('site_id','1')
|
||||
->where('supplier_id',$so->id)
|
||||
->firstOrNew();
|
||||
$sdo->site_id = 1;
|
||||
$so->detail()->save($sdo);
|
||||
|
||||
$o = new \App\Models\Supplier\SSL;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'Graytech SSL';
|
||||
$o->base_cost = 0;
|
||||
$o->setup_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\SSL;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_ssl_id = $o->id;
|
||||
$oo->name = 'Graytech SSL';
|
||||
$oo->save();
|
||||
|
||||
$o = new \App\Models\Supplier\Host;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'Graytech Hosting';
|
||||
$o->base_cost = 0;
|
||||
$o->setup_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\Host;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_host_id = $o->id;
|
||||
$oo->name = 'Graytech Hosting';
|
||||
$oo->save();
|
||||
|
||||
$so = \App\Models\Supplier::where('name','crazydomain')->firstOrFail();
|
||||
$sdo = \App\Models\SupplierDetail::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('site_id','1')
|
||||
->where('supplier_id',$so->id)
|
||||
->firstOrNew();
|
||||
$sdo->site_id = 1;
|
||||
$so->detail()->save($sdo);
|
||||
|
||||
$o = new \App\Models\Supplier\Host;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'CD Host';
|
||||
$o->base_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\Host;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_host_id = $o->id;
|
||||
$oo->name = 'Crazy Domains Hosting';
|
||||
$oo->save();
|
||||
|
||||
// VOIP
|
||||
$so = \App\Models\Supplier::where('name','Exetel')->firstOrFail();
|
||||
$sdo = \App\Models\SupplierDetail::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)
|
||||
->where('site_id','1')
|
||||
->where('supplier_id',$so->id)
|
||||
->firstOrNew();
|
||||
$sdo->site_id = 1;
|
||||
$so->detail()->save($sdo);
|
||||
|
||||
$o = new \App\Models\Supplier\Voip;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'VOIP $10';
|
||||
$o->base_cost = 9.09;
|
||||
$o->setup_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\Voip;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_voip_id = $o->id;
|
||||
$oo->name = 'VOIP $10';
|
||||
$oo->save();
|
||||
|
||||
$o = new \App\Models\Supplier\Voip;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'VOIP';
|
||||
$o->base_cost = 0;
|
||||
$o->setup_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\Voip;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_voip_id = $o->id;
|
||||
$oo->name = 'VOIP';
|
||||
$oo->save();
|
||||
|
||||
$o = new \App\Models\Supplier\Voip;
|
||||
$o->site_id = $sdo->site_id;
|
||||
$o->active = TRUE;
|
||||
$o->product_id = 'VOIP B-100';
|
||||
$o->product_desc = 'VOIP Business 100 Lines';
|
||||
$o->base_cost = 22.727;
|
||||
$o->setup_cost = 0;
|
||||
$o->supplier_detail_id = $sdo->id;
|
||||
$o->save();
|
||||
|
||||
$oo = new \App\Models\Product\Voip;
|
||||
$oo->site_id = $sdo->site_id;
|
||||
$oo->supplier_voip_id = $o->id;
|
||||
$oo->name = 'VOIP B-10';
|
||||
$oo->save();
|
||||
|
||||
// Manually run this, since we havent worked out site_id when running migrate.
|
||||
// update products set model_id=49,model='App\\Models\\Product\\Domain' where id=78;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -290,6 +621,6 @@ class OptimizeProduct extends Migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//abort(500,'Cant go back');
|
||||
abort(500,'Cant go back');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user