Add filter by sale_channel, add method to get prices by offer, sale_channel and quantity

This commit is contained in:
Ludovic CANDELLIER
2022-01-23 21:37:54 +01:00
parent 94a162deb7
commit fe759565a8
36 changed files with 29 additions and 1165 deletions

View File

@@ -12,7 +12,7 @@ class SaleChannelsDataTable extends DataTable
public function query(SaleChannel $model) public function query(SaleChannel $model)
{ {
$model = $model->withCount('deliveries'); $model = $model->withCount(['deliveries', 'tariffs']);
return $this->buildQuery($model); return $this->buildQuery($model);
} }
@@ -21,7 +21,8 @@ class SaleChannelsDataTable extends DataTable
return [ return [
Column::make('code')->title('Code abrégé')->width(100), Column::make('code')->title('Code abrégé')->width(100),
Column::make('name')->title('Nom'), Column::make('name')->title('Nom'),
Column::make('deliveries_count')->title(__('shop.deliveries.list'))->searchable(false)->class('text-right'), Column::make('deliveries_count')->title('#Distrib')->searchable(false)->class('text-right'),
Column::make('tariffs_count')->title('#Tarifs')->searchable(false)->class('text-right'),
$this->makeColumnButtons(), $this->makeColumnButtons(),
]; ];
} }

View File

@@ -5,7 +5,6 @@ namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Repositories\Shop\ArticleNatures;
use App\Repositories\Shop\SaleChannels; use App\Repositories\Shop\SaleChannels;
use App\Datatables\Shop\SaleChannelsDataTable; use App\Datatables\Shop\SaleChannelsDataTable;

View File

@@ -21,6 +21,6 @@ class SaleChannel extends Model
public function tariffs() public function tariffs()
{ {
return $this->hasManyThrough(Tariff::class, PriceList::class, 'id1', 'tariff_id', 'id2', 'id3') return $this->hasManyThrough(Tariff::class, PriceList::class, 'sale_channel_id', 'id', 'id', 'tariff_id');
} }
} }

View File

@@ -5,21 +5,33 @@ namespace App\Repositories\Shop;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Yajra\DataTables\DataTables;
use App\Models\Shop\PriceListValue; use App\Models\Shop\PriceListValue;
use App\Models\Shop\PriceList;
use App\Models\Shop\Offer;
class PriceListValues class PriceListValues
{ {
public static function getByPriceListValue($id)
public static function getPriceByOffer($offer_id, $quantity = 1, $sale_channel_id = false)
{ {
return PriceListValue::byPriceListValue($id)->get(); $prices = self::getPricesByOffer($offer_id, $sale_channel_id);
$price = $prices ? $prices->where('quantity', '<=', $quantity)->sortByDesc('quantity')->first() : false;
return $price ? $price->price_taxed : false;
} }
public static function getDatatable() public static function getPricesByOffer($offer_id, $sale_channel_id = false)
{ {
$model = PriceListValue::orderBy('name'); $price_list = Offer::with([
return Datatables::of($model)->make(true); 'price_lists' => function ($query) use ($sale_channel_id) {
$sale_channel_id ? $query->bySaleChannel($sale_channel_id) : $query;
},
])->find($offer_id)->price_lists->first();
return $price_list ? $price_list->price_list_values : false;
}
public static function getByPriceList($id)
{
return PriceListValue::byPriceList($id)->get();
} }
public static function getAll() public static function getAll()

View File

@@ -11,6 +11,11 @@ use App\Models\Shop\PriceList;
class PriceLists class PriceLists
{ {
public static function getByOfferAndSaleChannel($offer_id, $sale_channel_id)
{
return PriceList::bySaleChannel($sale_channel_id)->byOffer($offer_id)->get();
}
public static function getByOffer($offer_id) public static function getByOffer($offer_id)
{ {
return PriceList::byOffer($offer_id)->get(); return PriceList::byOffer($offer_id)->get();

View File

@@ -1,42 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateActivityLogTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('activity_log', function(Blueprint $table)
{
$table->bigInteger('id', true)->unsigned();
$table->string('log_name')->nullable()->index();
$table->text('description', 65535);
$table->bigInteger('subject_id')->unsigned()->nullable();
$table->string('subject_type')->nullable();
$table->bigInteger('causer_id')->unsigned()->nullable();
$table->string('causer_type')->nullable();
$table->text('properties', 65535)->nullable();
$table->timestamps();
$table->index(['subject_id','subject_type'], 'subject');
$table->index(['causer_id','causer_type'], 'causer');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('activity_log');
}
}

View File

@@ -1,39 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateAuthenticationLogTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('authentication_log', function(Blueprint $table)
{
$table->bigInteger('id', true)->unsigned();
$table->string('authenticatable_type');
$table->bigInteger('authenticatable_id')->unsigned();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent', 65535)->nullable();
$table->dateTime('login_at')->nullable();
$table->dateTime('logout_at')->nullable();
$table->index(['authenticatable_type','authenticatable_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('authentication_log');
}
}

View File

@@ -1,41 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateCategoriesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('categories', function(Blueprint $table)
{
$table->increments('id');
$table->string('slug')->unique();
$table->text('name', 65535);
$table->text('description', 65535)->nullable();
$table->integer('_lft')->unsigned()->default(0);
$table->integer('_rgt')->unsigned()->default(0);
$table->integer('parent_id')->unsigned()->nullable();
$table->timestamps();
$table->softDeletes();
$table->index(['_lft','_rgt','parent_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('categories');
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateCategorizablesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('categorizables', function(Blueprint $table)
{
$table->integer('category_id')->unsigned();
$table->string('categorizable_type');
$table->bigInteger('categorizable_id')->unsigned();
$table->timestamps();
$table->unique(['category_id','categorizable_id','categorizable_type'], 'categorizables_ids_type_unique');
$table->index(['categorizable_type','categorizable_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('categorizables');
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateFailedJobsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('failed_jobs', function(Blueprint $table)
{
$table->bigInteger('id', true)->unsigned();
$table->text('connection', 65535);
$table->text('queue', 65535);
$table->text('payload');
$table->text('exception');
$table->timestamp('failed_at')->default(DB::raw('CURRENT_TIMESTAMP'));
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('failed_jobs');
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateMailLogsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('mail_logs', function(Blueprint $table)
{
$table->increments('id');
$table->string('sent_to')->nullable();
$table->text('data', 65535);
$table->text('route', 65535);
$table->text('event', 65535);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('mail_logs');
}
}

View File

@@ -1,46 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateMediaTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('media', function(Blueprint $table)
{
$table->bigInteger('id', true)->unsigned();
$table->string('model_type');
$table->bigInteger('model_id')->unsigned();
$table->string('collection_name');
$table->string('name');
$table->string('file_name');
$table->string('mime_type')->nullable();
$table->string('disk');
$table->bigInteger('size')->unsigned();
$table->text('manipulations');
$table->text('custom_properties');
$table->text('responsive_images');
$table->integer('order_column')->unsigned()->nullable();
$table->timestamps();
$table->index(['model_type','model_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('media');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreatePasswordResetsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('password_resets', function(Blueprint $table)
{
$table->string('email')->index();
$table->string('token');
$table->dateTime('created_at')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('password_resets');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreatePermissionRoleTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('permission_role', function(Blueprint $table)
{
$table->integer('permission_id')->unsigned();
$table->integer('role_id')->unsigned()->index('permission_role_role_id_foreign');
$table->primary(['permission_id','role_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('permission_role');
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreatePermissionUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('permission_user', function(Blueprint $table)
{
$table->integer('permission_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->string('user_type');
$table->primary(['permission_id','user_id','user_type']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('permission_user');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreatePermissionsCategoriesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('permissions_categories', function(Blueprint $table)
{
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('permissions_categories');
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreatePermissionsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('permissions', function(Blueprint $table)
{
$table->increments('id');
$table->integer('category_id')->unsigned()->nullable()->index('permissions_category_id_foreign');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('permissions');
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateRoleUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('role_user', function(Blueprint $table)
{
$table->bigInteger('user_id')->unsigned();
$table->integer('role_id')->unsigned()->index('role_user_role_id_foreign');
$table->string('user_type');
$table->primary(['user_id','role_id','user_type']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('role_user');
}
}

View File

@@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateRolesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('roles', function(Blueprint $table)
{
$table->increments('id');
$table->string('name')->unique();
$table->string('display_name')->nullable();
$table->string('description')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('roles');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTaggingTagGroupsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tagging_tag_groups', function(Blueprint $table)
{
$table->increments('id');
$table->string('slug', 125)->index();
$table->string('name', 125);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('tagging_tag_groups');
}
}

View File

@@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTaggingTaggedTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tagging_tagged', function(Blueprint $table)
{
$table->increments('id');
$table->integer('taggable_id')->unsigned()->index();
$table->string('taggable_type', 125)->index();
$table->string('tag_name', 125);
$table->string('tag_slug', 125)->index();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('tagging_tagged');
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTaggingTagsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('tagging_tags', function(Blueprint $table)
{
$table->increments('id');
$table->string('slug', 125)->index();
$table->string('name', 125);
$table->boolean('suggest')->default(0);
$table->integer('count')->unsigned()->default(0);
$table->integer('tag_group_id')->unsigned()->nullable()->index('tagging_tags_tag_group_id_foreign');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('tagging_tags');
}
}

View File

@@ -1,39 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTeamInvitesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('team_invites', function(Blueprint $table)
{
$table->increments('id');
$table->bigInteger('user_id')->unsigned();
$table->integer('team_id')->unsigned()->index('team_invites_team_id_foreign');
$table->enum('type', array('invite','request'));
$table->string('email');
$table->string('accept_token');
$table->string('deny_token');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('team_invites');
}
}

View File

@@ -1,34 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTeamUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('team_user', function(Blueprint $table)
{
$table->bigInteger('user_id')->unsigned()->index('team_user_user_id_foreign');
$table->integer('team_id')->unsigned()->index('team_user_team_id_foreign');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('team_user');
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateTeamsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('teams', function(Blueprint $table)
{
$table->increments('id');
$table->integer('owner_id')->unsigned()->nullable();
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('teams');
}
}

View File

@@ -1,45 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->bigInteger('id', true)->unsigned();
$table->boolean('active')->default(0);
$table->string('first_name')->nullable();
$table->string('last_name')->nullable();
$table->string('email')->unique();
$table->dateTime('email_verified_at')->nullable();
$table->string('password');
$table->string('remember_token', 100)->nullable();
$table->timestamps();
$table->softDeletes();
$table->dateTime('last_login')->nullable();
$table->boolean('verified')->default(0);
$table->string('verification_token')->nullable();
$table->integer('current_team_id')->unsigned()->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToCategorizablesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('categorizables', function(Blueprint $table)
{
$table->foreign('category_id')->references('id')->on('categories')->onUpdate('CASCADE')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('categorizables', function(Blueprint $table)
{
$table->dropForeign('categorizables_category_id_foreign');
});
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToPermissionRoleTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('permission_role', function(Blueprint $table)
{
$table->foreign('permission_id')->references('id')->on('permissions')->onUpdate('CASCADE')->onDelete('CASCADE');
$table->foreign('role_id')->references('id')->on('roles')->onUpdate('CASCADE')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('permission_role', function(Blueprint $table)
{
$table->dropForeign('permission_role_permission_id_foreign');
$table->dropForeign('permission_role_role_id_foreign');
});
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToPermissionUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('permission_user', function(Blueprint $table)
{
$table->foreign('permission_id')->references('id')->on('permissions')->onUpdate('CASCADE')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('permission_user', function(Blueprint $table)
{
$table->dropForeign('permission_user_permission_id_foreign');
});
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToPermissionsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('permissions', function(Blueprint $table)
{
$table->foreign('category_id')->references('id')->on('permissions_categories')->onUpdate('RESTRICT')->onDelete('SET NULL');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('permissions', function(Blueprint $table)
{
$table->dropForeign('permissions_category_id_foreign');
});
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToRoleUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('role_user', function(Blueprint $table)
{
$table->foreign('role_id')->references('id')->on('roles')->onUpdate('CASCADE')->onDelete('CASCADE');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('role_user', function(Blueprint $table)
{
$table->dropForeign('role_user_role_id_foreign');
$table->dropForeign('role_user_user_id_foreign');
});
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToTaggingTagsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('tagging_tags', function(Blueprint $table)
{
$table->foreign('tag_group_id')->references('id')->on('tagging_tag_groups')->onUpdate('RESTRICT')->onDelete('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('tagging_tags', function(Blueprint $table)
{
$table->dropForeign('tagging_tags_tag_group_id_foreign');
});
}
}

View File

@@ -1,35 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToTeamInvitesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('team_invites', function(Blueprint $table)
{
$table->foreign('team_id')->references('id')->on('teams')->onUpdate('RESTRICT')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('team_invites', function(Blueprint $table)
{
$table->dropForeign('team_invites_team_id_foreign');
});
}
}

View File

@@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AddForeignKeysToTeamUserTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('team_user', function(Blueprint $table)
{
$table->foreign('team_id')->references('id')->on('teams')->onUpdate('RESTRICT')->onDelete('CASCADE');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('team_user', function(Blueprint $table)
{
$table->dropForeign('team_user_team_id_foreign');
$table->dropForeign('team_user_user_id_foreign');
});
}
}

View File

@@ -1,83 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class TeamworkSetupTables extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table(\Config::get('teamwork.users_table'), function (Blueprint $table) {
$table->integer('current_team_id')->unsigned()->nullable();
});
Schema::create(\Config::get('teamwork.teams_table'), function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->integer('owner_id')->unsigned()->nullable();
$table->string('name');
$table->timestamps();
});
Schema::create(\Config::get('teamwork.team_user_table'), function (Blueprint $table) {
$table->bigInteger('user_id')->unsigned();
$table->integer('team_id')->unsigned();
$table->timestamps();
$table->foreign('user_id')
->references(\Config::get('teamwork.user_foreign_key'))
->on(\Config::get('teamwork.users_table'))
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('team_id')
->references('id')
->on(\Config::get('teamwork.teams_table'))
->onDelete('cascade');
});
Schema::create(\Config::get('teamwork.team_invites_table'), function (Blueprint $table) {
$table->increments('id');
$table->bigInteger('user_id')->unsigned();
$table->integer('team_id')->unsigned();
$table->enum('type', ['invite', 'request']);
$table->string('email');
$table->string('accept_token');
$table->string('deny_token');
$table->timestamps();
$table->foreign('team_id')
->references('id')
->on(\Config::get('teamwork.teams_table'))
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table(\Config::get('teamwork.users_table'), function (Blueprint $table) {
$table->dropColumn('current_team_id');
});
Schema::table(\Config::get('teamwork.team_user_table'), function (Blueprint $table) {
if (DB::getDriverName() !== 'sqlite') {
$table->dropForeign(\Config::get('teamwork.team_user_table').'_user_id_foreign');
}
if (DB::getDriverName() !== 'sqlite') {
$table->dropForeign(\Config::get('teamwork.team_user_table').'_team_id_foreign');
}
});
Schema::drop(\Config::get('teamwork.team_user_table'));
Schema::drop(\Config::get('teamwork.team_invites_table'));
Schema::drop(\Config::get('teamwork.teams_table'));
}
}