update
parent
8daa8f6857
commit
81b3798e05
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Master;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AccessMenu extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'ms_access_menu';
|
||||||
|
protected $primaryKey = 'MsAccessMenuId';
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Master;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Group extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
protected $table = 'ms_group';
|
||||||
|
protected $primaryKey = 'MsGroupId';
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
|
@ -0,0 +1,170 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Master;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Menu extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
protected $table = 'ms_menu';
|
||||||
|
protected $primaryKey = 'MsMenuId';
|
||||||
|
protected $guarded = [];
|
||||||
|
|
||||||
|
public function submenu()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Menu::class,'parent_id','id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function coreMenus($type, array $status = [1]): mixed
|
||||||
|
{
|
||||||
|
return Menu::where('parent_id', '=', 0)
|
||||||
|
->where('menu_type', '=', $type)
|
||||||
|
->whereIn('status', $status);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function coreMenusByParent($id, array $status = [1]): mixed
|
||||||
|
{
|
||||||
|
return Menu::where('parent_id', '=', $id)
|
||||||
|
->whereIn('status', $status);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getMenuByParentPosition($id, $type, array $active = [1], int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('parent_id', '=', $id)
|
||||||
|
->where('menu_type', '=', $type)
|
||||||
|
->whereIn('status', $active)
|
||||||
|
->union(Menu::coreMenus($type, $active))
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alex.gz <amqit.consultant@gmail.com>
|
||||||
|
* @created 08/12/2023 12:53
|
||||||
|
*
|
||||||
|
* @param $type
|
||||||
|
* @param int|null $year
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function getParentByType($type, int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('parent_id', '=', 0)
|
||||||
|
->where('menu_type', '=', $type)
|
||||||
|
->union(Menu::coreMenus($type))
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alex.gz <amqit.consultant@gmail.com>
|
||||||
|
* @created 08/12/2023 18:07
|
||||||
|
*
|
||||||
|
* @param $type
|
||||||
|
* @param int|null $year
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function getMenuByYear($type, int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('parent_id', '=', 0)
|
||||||
|
->where('menu_type', '=', $type)
|
||||||
|
->where('status', '=', true)
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author alex.gz <amqit.consultant@gmail.com>
|
||||||
|
* @created 08/12/2023 12:54
|
||||||
|
*
|
||||||
|
* @param $type
|
||||||
|
* @param int|null $year
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public static function getParentByTypeStatus($type, int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('parent_id', '=', 0)
|
||||||
|
->where('menu_type', '=', $type)
|
||||||
|
->where('status', '=', true)
|
||||||
|
->union(Menu::coreMenus($type))
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getMenuByParent($id, array $active = [1], int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('parent_id', '=', $id)
|
||||||
|
->union(Menu::coreMenusByParent($id, $active))
|
||||||
|
->whereIn('status', $active)
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function countMenuByYear(int $year): mixed
|
||||||
|
{
|
||||||
|
$model = Menu::where('status', '=', true);
|
||||||
|
return $model->count();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getActiveById($id, int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('id', '=', $id)
|
||||||
|
->where('status', '=', true)
|
||||||
|
->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getActiveByPosition($type, int $year = null): mixed
|
||||||
|
{
|
||||||
|
if ($year) {
|
||||||
|
$currYear = $year;
|
||||||
|
} else {
|
||||||
|
$currYear = date('Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu::where('menu_type', '=', $type)
|
||||||
|
->where('status', '=', true)
|
||||||
|
->union(Menu::coreMenus($type))
|
||||||
|
->orderBy('ordering')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('ms_menu', function (Blueprint $table) {
|
||||||
|
$table->id('MsMenuId');
|
||||||
|
$table->foreignId('parent_id')->index()->default(0)->comment('idx menu_id');
|
||||||
|
$table->string('title', 150);
|
||||||
|
$table->string('module', 150)->nullable();
|
||||||
|
$table->string('url', 150)->nullable();
|
||||||
|
$table->string('menu_type', 50)->index()->nullable()->comment('tb_menu_group alias');
|
||||||
|
$table->string('menu_icons', 50)->nullable();
|
||||||
|
$table->tinyInteger('ordering')->default(0);
|
||||||
|
$table->boolean('status')->default(true)->comment('True/False');
|
||||||
|
$table->foreignId('created_by')->default(0);
|
||||||
|
$table->foreignId('updated_by')->default(0)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('menus');
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('ms_group', function (Blueprint $table) {
|
||||||
|
$table->id('MsGroupId');
|
||||||
|
$table->string('name', 50)->unique();
|
||||||
|
$table->string('alias', 50)->unique();
|
||||||
|
$table->boolean('status')->default(true)->comment('True/False');
|
||||||
|
$table->foreignId('created_by')->default(0);
|
||||||
|
$table->foreignId('updated_by')->default(0)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('groups');
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('ms_access_menu', function (Blueprint $table) {
|
||||||
|
$table->id('MsAccessMenuId');
|
||||||
|
$table->foreignId('ms_group_id')->comment('FK ms group');
|
||||||
|
$table->string('module', 150)->nullable();
|
||||||
|
$table->foreignId('ms_menu_id')->comment('FK tb_menu');
|
||||||
|
$table->string('menu_group', 20)->nullable()->default('adminsidebar');
|
||||||
|
$table->boolean('is_create')->default(false);
|
||||||
|
$table->boolean('is_read')->default(false);
|
||||||
|
$table->boolean('is_update')->default(false);
|
||||||
|
$table->boolean('is_delete')->default(false);
|
||||||
|
$table->boolean('is_verify')->default(false);
|
||||||
|
$table->boolean('is_approve')->default(false);
|
||||||
|
$table->boolean('is_download')->default(false);
|
||||||
|
$table->json('access')->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->foreign('ms_menu_id')->references('MsMenuId')->on('ms_menu')->cascadeOnDelete();
|
||||||
|
$table->foreign('ms_group_id')->references('MsGroupId')->on('ms_group')->cascadeOnDelete();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('access_menus');
|
||||||
|
}
|
||||||
|
};
|
|
@ -79,7 +79,7 @@ Route::get('/search', [SearchController::class, 'index'])->name('search');
|
||||||
// Route::get('/dashboard', function () {
|
// Route::get('/dashboard', function () {
|
||||||
// return Inertia::render('dashboard');
|
// return Inertia::render('dashboard');
|
||||||
// })->middleware(['auth','permission:Dashboard.index' ])->name('dashboard');
|
// })->middleware(['auth','permission:Dashboard.index' ])->name('dashboard');
|
||||||
Route::middleware(['auth', PermissionMiddleware::using('Dashboard.index')])->group(function () {
|
Route::middleware(['auth'])->group(function () {
|
||||||
Route::get('/dashboard', DashboardController::class)->name('dashboard');
|
Route::get('/dashboard', DashboardController::class)->name('dashboard');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue