Compare commits

...

10 Commits

52 changed files with 3849 additions and 273 deletions

View File

@ -0,0 +1,67 @@
<?php
namespace Modules\Employee\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class EmployeeController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('employee::index');
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('employee::create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): RedirectResponse
{
//
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('employee::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
return view('employee::edit');
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id): RedirectResponse
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
//
}
}

View File

@ -0,0 +1,114 @@
<?php
namespace Modules\Employee\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class EmployeeServiceProvider extends ServiceProvider
{
protected string $moduleName = 'Employee';
protected string $moduleNameLower = 'employee';
/**
* Boot the application events.
*/
public function boot(): void
{
$this->registerCommands();
$this->registerCommandSchedules();
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->loadMigrationsFrom(module_path($this->moduleName, 'database/migrations'));
}
/**
* Register the service provider.
*/
public function register(): void
{
$this->app->register(RouteServiceProvider::class);
}
/**
* Register commands in the format of Command::class
*/
protected function registerCommands(): void
{
// $this->commands([]);
}
/**
* Register command Schedules.
*/
protected function registerCommandSchedules(): void
{
// $this->app->booted(function () {
// $schedule = $this->app->make(Schedule::class);
// $schedule->command('inspire')->hourly();
// });
}
/**
* Register translations.
*/
public function registerTranslations(): void
{
$langPath = resource_path('lang/modules/'.$this->moduleNameLower);
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, $this->moduleNameLower);
$this->loadJsonTranslationsFrom($langPath);
} else {
$this->loadTranslationsFrom(module_path($this->moduleName, 'lang'), $this->moduleNameLower);
$this->loadJsonTranslationsFrom(module_path($this->moduleName, 'lang'));
}
}
/**
* Register config.
*/
protected function registerConfig(): void
{
$this->publishes([module_path($this->moduleName, 'config/config.php') => config_path($this->moduleNameLower.'.php')], 'config');
$this->mergeConfigFrom(module_path($this->moduleName, 'config/config.php'), $this->moduleNameLower);
}
/**
* Register views.
*/
public function registerViews(): void
{
$viewPath = resource_path('views/modules/'.$this->moduleNameLower);
$sourcePath = module_path($this->moduleName, 'resources/views');
$this->publishes([$sourcePath => $viewPath], ['views', $this->moduleNameLower.'-module-views']);
$this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
$componentNamespace = str_replace('/', '\\', config('modules.namespace').'\\'.$this->moduleName.'\\'.ltrim(config('modules.paths.generator.component-class.path'), config('modules.paths.app_folder','')));
Blade::componentNamespace($componentNamespace, $this->moduleNameLower);
}
/**
* Get the services provided by the provider.
*/
public function provides(): array
{
return [];
}
private function getPublishableViewPaths(): array
{
$paths = [];
foreach (config('view.paths') as $path) {
if (is_dir($path.'/modules/'.$this->moduleNameLower)) {
$paths[] = $path.'/modules/'.$this->moduleNameLower;
}
}
return $paths;
}
}

View File

@ -0,0 +1,49 @@
<?php
namespace Modules\Employee\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* Called before routes are registered.
*
* Register any model bindings or pattern based filters.
*/
public function boot(): void
{
parent::boot();
}
/**
* Define the routes for the application.
*/
public function map(): void
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*/
protected function mapWebRoutes(): void
{
Route::middleware('web')->group(module_path('Employee', '/routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*/
protected function mapApiRoutes(): void
{
Route::middleware('api')->prefix('api')->name('api.')->group(module_path('Employee', '/routes/api.php'));
}
}

View File

@ -0,0 +1,30 @@
{
"name": "nwidart/employee",
"description": "",
"authors": [
{
"name": "Nicolas Widart",
"email": "n.widart@gmail.com"
}
],
"extra": {
"laravel": {
"providers": [],
"aliases": {
}
}
},
"autoload": {
"psr-4": {
"Modules\\Employee\\": "app/",
"Modules\\Employee\\Database\\Factories\\": "database/factories/",
"Modules\\Employee\\Database\\Seeders\\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
"Modules\\Employee\\Tests\\": "tests/"
}
}
}

View File

View File

@ -0,0 +1,5 @@
<?php
return [
'name' => 'Employee',
];

View File

@ -0,0 +1,16 @@
<?php
namespace Modules\Employee\database\seeders;
use Illuminate\Database\Seeder;
class EmployeeDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// $this->call([]);
}
}

View File

@ -0,0 +1,11 @@
{
"name": "Employee",
"alias": "employee",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Employee\\Providers\\EmployeeServiceProvider"
],
"files": []
}

View File

@ -0,0 +1,15 @@
{
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"devDependencies": {
"axios": "^1.1.2",
"laravel-vite-plugin": "^0.7.5",
"sass": "^1.69.5",
"postcss": "^8.3.7",
"vite": "^4.0.0"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Employee Module - {{ config('app.name', 'Laravel') }}</title>
<meta name="description" content="{{ $description ?? '' }}">
<meta name="keywords" content="{{ $keywords ?? '' }}">
<meta name="author" content="{{ $author ?? '' }}">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
{{-- Vite CSS --}}
{{-- {{ module_vite('build-employee', 'resources/assets/sass/app.scss') }} --}}
</head>
<body>
@yield('content')
{{-- Vite JS --}}
{{-- {{ module_vite('build-employee', 'resources/assets/js/app.js') }} --}}
</body>

File diff suppressed because it is too large Load Diff

View File

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Employee\Http\Controllers\EmployeeController;
/*
*--------------------------------------------------------------------------
* API Routes
*--------------------------------------------------------------------------
*
* Here is where you can register API routes for your application. These
* routes are loaded by the RouteServiceProvider within a group which
* is assigned the "api" middleware group. Enjoy building your API!
*
*/
Route::middleware(['auth:sanctum'])->prefix('v1')->group(function () {
Route::apiResource('employee', EmployeeController::class)->names('employee');
});

View File

@ -0,0 +1,19 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Employee\Http\Controllers\EmployeeController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::group([], function () {
Route::resource('employee', EmployeeController::class)->names('employee');
});

View File

@ -0,0 +1,26 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
build: {
outDir: '../../public/build-employee',
emptyOutDir: true,
manifest: true,
},
plugins: [
laravel({
publicDirectory: '../../public',
buildDirectory: 'build-employee',
input: [
__dirname + '/resources/assets/sass/app.scss',
__dirname + '/resources/assets/js/app.js'
],
refresh: true,
}),
],
});
//export const paths = [
// 'Modules/Employee/resources/assets/sass/app.scss',
// 'Modules/Employee/resources/assets/js/app.js',
//];

View File

@ -1,22 +0,0 @@
<?php
namespace Modules\Leave\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Modules\Leave\Database\factories\LeaveFactory;
class Leave extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*/
protected $fillable = [];
protected static function newFactory(): LeaveFactory
{
//return LeaveFactory::new();
}
}

View File

@ -22,6 +22,7 @@ class LeaveController extends Controller
public function index()
{
$data['leaves'] = $this->leaveRepository->findAll();
// dd($data['leaves']);
return view('leave::index');
}
@ -39,7 +40,14 @@ class LeaveController extends Controller
*/
public function store(Request $request): RedirectResponse
{
dd($request->all());
$inputData = $request->all();
try {
$this->leaveRepository->create($inputData);
toastr()->success('Leave Created Succesfully');
} catch (\Throwable $th) {
toastr()->error($th->getMessage());
}
return redirect()->route('leave.index');
}
/**

View File

View File

View File

@ -0,0 +1,12 @@
<?php
namespace Modules\Leave\Models;
use Illuminate\Database\Eloquent\Model;
class Leave extends Model
{
protected $table = 'leaves';
protected $guarded = [];
}

View File

View File

@ -4,6 +4,9 @@ namespace Modules\Leave\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Modules\Leave\Repositories\LeaveInterface;
use Modules\Leave\Repositories\LeaveRepository;
class LeaveServiceProvider extends ServiceProvider
{
@ -29,6 +32,7 @@ class LeaveServiceProvider extends ServiceProvider
*/
public function register(): void
{
$this->app->bind(LeaveInterface::class, LeaveRepository::class);
$this->app->register(RouteServiceProvider::class);
}

View File

View File

@ -8,7 +8,7 @@ class LeaveRepository implements LeaveInterface
{
public function findAll()
{
return Leave::all();
return Leave::get();
}
public function getLeaveById($leaveId)

View File

@ -12,8 +12,10 @@ return new class extends Migration
public function up(): void
{
Schema::create('leaves', function (Blueprint $table) {
$table->id();
$table->tinyInteger('leave_id')->unsigned()->autoIncrement();
$table->integer('employee_id');
$table->date('start_date');
$table->date('end_date');
$table->timestamps();
});
}

View File

@ -24,7 +24,8 @@
<div class="col-lg-8">
<div class="card">
<div class="card-body">
<form action="">
<form action="{{ route('leave.store') }}" method="post" class="needs-validation" novalidate>
@csrf
@include('leave::partials.action')
</form>
</div>
@ -37,3 +38,7 @@
<!-- container-fluid -->
</div>
@endsection
@push('js')
<script src="{{ asset('assets/js/pages/form-validation.init.js') }}"></script>
@endpush

View File

@ -1,22 +1,26 @@
<div class="mb-3">
<label for="employeeName" class="form-label">Employee Name</label>
<input type="text" class="form-control" id="employeeName" placeholder="Enter emploree name">
<input type="text" class="form-control" id="employeeName" placeholder="Enter emploree name" name="employeeName"
required>
<div class="invalid-feedback">
Please enter Employee Name.
</div>
</div>
<div class="mb-3">
<label for="employeeUrl" class="form-label">Employee Department URL</label>
<input type="url" class="form-control" id="employeeUrl" placeholder="Enter emploree url">
<input type="url" class="form-control" id="employeeUrl" placeholder="Enter emploree url" name="employeeUrl">
</div>
<div class="mb-3">
<label for="StartleaveDate" class="form-label">Start Leave Date</label>
<input type="date" class="form-control" id="StartleaveDate">
<input type="date" class="form-control" id="StartleaveDate" name="start_date">
</div>
<div class="mb-3">
<label for="EndleaveDate" class="form-label">End Leave Date</label>
<input type="date" class="form-control" id="EndleaveDate">
<input type="date" class="form-control" id="EndleaveDate" name="end_date">
</div>
<div class="mb-3">
<label for="VertimeassageInput" class="form-label">Message</label>
<textarea class="form-control" id="VertimeassageInput" rows="3" placeholder="Enter your message"></textarea>
<textarea class="form-control" id="VertimeassageInput" rows="3" placeholder="Enter your message" name="remark"></textarea>
</div>
<div class="text-end">
<button type="submit" class="btn btn-primary">Add Leave</button>

View File

@ -185,7 +185,8 @@ class OMIS
]);
}
}
private function initDB()
public static function initDB()
{
static $initialized = false;
if (!$initialized) {
@ -225,64 +226,64 @@ class OMIS
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_users` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(255) NULL,
`email` varchar(255) NULL,
`username` varchar(255) NULL,
`email_verified_at` timestamp NULL DEFAULT NULL,
`password` varchar(255) NULL,
`remember_token` varchar(100) DEFAULT NULL,
`display_order` INT(11) DEFAULT 1,
`roles_id` INT(11),
`branches_id` INT(11),
`vendors_id` INT(11),
`employees_id` INT(11),
`status` INT(11) DEFAULT 1,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` INT(11),
`updated_at` timestamp NULL DEFAULT NULL,
`updatedby` INT(11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
");
DB::statement("CREATE TABLE IF NOT EXISTS tbl_roles (
role_id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
alias VARCHAR(255),
description TEXT,
display_order INT(11),
status INT(11),
remarks TEXT,
created_at DATETIME,
createdby INT(11),
updated_at DATETIME,
updatedby INT(11)
);");
DB::statement("CREATE TABLE IF NOT EXISTS tbl_permissions (
permission_id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
alias VARCHAR(255),
modal VARCHAR(255),
command VARCHAR(255),
created_at DATETIME,
createdby INT(11),
updated_at DATETIME,
updatedby INT(11),
status INT(11)
// DB::statement("CREATE TABLE IF NOT EXISTS `tbl_users` (
// `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
// `name` varchar(255) NULL,
// `email` varchar(255) NULL,
// `username` varchar(255) NULL,
// `email_verified_at` timestamp NULL DEFAULT NULL,
// `password` varchar(255) NULL,
// `remember_token` varchar(100) DEFAULT NULL,
// `display_order` INT(11) DEFAULT 1,
// `roles_id` INT(11),
// `branches_id` INT(11),
// `vendors_id` INT(11),
// `employees_id` INT(11),
// `status` INT(11) DEFAULT 1,
// `created_at` timestamp NULL DEFAULT NULL,
// `createdby` INT(11),
// `updated_at` timestamp NULL DEFAULT NULL,
// `updatedby` INT(11)
// ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
// ");
// DB::statement("CREATE TABLE IF NOT EXISTS tbl_roles (
// role_id INT(11) AUTO_INCREMENT PRIMARY KEY,
// title VARCHAR(255),
// alias VARCHAR(255),
// description TEXT,
// display_order INT(11),
// status INT(11),
// remarks TEXT,
// created_at DATETIME,
// createdby INT(11),
// updated_at DATETIME,
// updatedby INT(11)
// );");
// DB::statement("CREATE TABLE IF NOT EXISTS tbl_permissions (
// permission_id INT(11) AUTO_INCREMENT PRIMARY KEY,
// title VARCHAR(255),
// alias VARCHAR(255),
// modal VARCHAR(255),
// command VARCHAR(255),
// created_at DATETIME,
// createdby INT(11),
// updated_at DATETIME,
// updatedby INT(11),
// status INT(11)
);");
DB::statement("CREATE TABLE IF NOT EXISTS tbl_rolepermissions (
rolepermission_id INT(11) AUTO_INCREMENT PRIMARY KEY,
roles_id INT(11),
permissions_id INT(11),
display_order INT(11),
remarks VARCHAR(255),
created_at DATETIME,
createdby INT(11),
updated_at DATETIME,
updatedby INT(11),
status INT(11)
);");
// );");
// DB::statement("CREATE TABLE IF NOT EXISTS tbl_rolepermissions (
// rolepermission_id INT(11) AUTO_INCREMENT PRIMARY KEY,
// roles_id INT(11),
// permissions_id INT(11),
// display_order INT(11),
// remarks VARCHAR(255),
// created_at DATETIME,
// createdby INT(11),
// updated_at DATETIME,
// updatedby INT(11),
// status INT(11)
// );");
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_settings` (
`setting_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) NULL,
@ -509,8 +510,7 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_castes` (
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_castes` (
`caste_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
@ -524,8 +524,7 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_ethnicities` (
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_ethnicities` (
`ethnicity_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
@ -539,8 +538,7 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_dags` (
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_dags` (
`dag_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
@ -554,83 +552,12 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_nationalities` (
`nationality_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` int(11) DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_employees` (
`employee_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`first_name` varchar(255) DEFAULT NULL,
`middle_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`genders_id` int(11) DEFAULT NULL,
`nepali_dob` date DEFAULT NULL,
`dob` date DEFAULT NULL,
`nationalities_id` int(11) DEFAULT NULL,
`about_me` text,
`signature` varchar(255) DEFAULT NULL,
`father_name` varchar(255) DEFAULT NULL,
`mother_name` varchar(255) DEFAULT NULL,
`grand_father_name` varchar(255) DEFAULT NULL,
`grand_mother_name` varchar(255) DEFAULT NULL,
`spouse` varchar(255) DEFAULT NULL,
`contact` varchar(255) DEFAULT NULL,
`alt_contact` varchar(255) DEFAULT NULL,
`profile_picture` varchar(255) DEFAULT NULL,
`users_id` int(11) DEFAULT NULL,
`is_login_required` tinyint(1) DEFAULT NULL,
`skills` text,
`experience` text,
`permanent_address` text,
`permanent_city` int(11) DEFAULT NULL,
`temporary_address` text,
`temporary_city` int(11) DEFAULT NULL,
`old_system_address` text,
`education` text,
`castes_id` int(11) DEFAULT NULL,
`ethnicities_id` int(11) DEFAULT NULL,
`dags_id` int(11) DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` int(11) DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_onboardings` (
`onboarding_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`doj` datetime DEFAULT NULL,
`designations_id` int(11) DEFAULT NULL,
`position_status` varchar(255) DEFAULT NULL,
`departments_id` int(11) DEFAULT NULL,
`shifts_id` int(11) DEFAULT NULL,
`agreement` varchar(255) DEFAULT NULL,
`nda` varchar(255) DEFAULT NULL,
`terms` text DEFAULT NULL,
`workoptions` varchar(255) DEFAULT NULL,
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_nationalities` (
`nationality_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`remarks` text DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` int(11) DEFAULT NULL,
@ -639,6 +566,75 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// DB::statement("CREATE TABLE IF NOT EXISTS `tbl_employees` (
// `employee_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
// `first_name` varchar(255) DEFAULT NULL,
// `middle_name` varchar(255) DEFAULT NULL,
// `last_name` varchar(255) DEFAULT NULL,
// `email` varchar(255) DEFAULT NULL,
// `genders_id` int(11) DEFAULT NULL,
// `nepali_dob` date DEFAULT NULL,
// `dob` date DEFAULT NULL,
// `nationalities_id` int(11) DEFAULT NULL,
// `about_me` text,
// `signature` varchar(255) DEFAULT NULL,
// `father_name` varchar(255) DEFAULT NULL,
// `mother_name` varchar(255) DEFAULT NULL,
// `grand_father_name` varchar(255) DEFAULT NULL,
// `grand_mother_name` varchar(255) DEFAULT NULL,
// `spouse` varchar(255) DEFAULT NULL,
// `contact` varchar(255) DEFAULT NULL,
// `alt_contact` varchar(255) DEFAULT NULL,
// `profile_picture` varchar(255) DEFAULT NULL,
// `users_id` int(11) DEFAULT NULL,
// `is_login_required` tinyint(1) DEFAULT NULL,
// `skills` text,
// `experience` text,
// `permanent_address` text,
// `permanent_city` int(11) DEFAULT NULL,
// `temporary_address` text,
// `temporary_city` int(11) DEFAULT NULL,
// `old_system_address` text,
// `education` text,
// `castes_id` int(11) DEFAULT NULL,
// `ethnicities_id` int(11) DEFAULT NULL,
// `dags_id` int(11) DEFAULT NULL,
// `title` varchar(255) DEFAULT NULL,
// `alias` varchar(255) DEFAULT NULL,
// `status` varchar(255) DEFAULT NULL,
// `display_order` int(11) DEFAULT NULL,
// `created_at` timestamp NULL DEFAULT NULL,
// `createdby` int(11) DEFAULT NULL,
// `updated_at` timestamp NULL DEFAULT NULL,
// `updatedby` int(11) DEFAULT NULL,
// `remarks` varchar(255) DEFAULT NULL
// ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
// ");
// DB::statement("
// CREATE TABLE IF NOT EXISTS `tbl_onboardings` (
// `onboarding_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
// `doj` datetime DEFAULT NULL,
// `designations_id` int(11) DEFAULT NULL,
// `position_status` varchar(255) DEFAULT NULL,
// `departments_id` int(11) DEFAULT NULL,
// `shifts_id` int(11) DEFAULT NULL,
// `agreement` varchar(255) DEFAULT NULL,
// `nda` varchar(255) DEFAULT NULL,
// `terms` text DEFAULT NULL,
// `workoptions` varchar(255) DEFAULT NULL,
// `title` varchar(255) DEFAULT NULL,
// `alias` varchar(255) DEFAULT NULL,
// `status` int(11) DEFAULT NULL,
// `remarks` text DEFAULT NULL,
// `display_order` int(11) DEFAULT NULL,
// `created_at` timestamp NULL DEFAULT NULL,
// `createdby` int(11) DEFAULT NULL,
// `updated_at` timestamp NULL DEFAULT NULL,
// `updatedby` int(11) DEFAULT NULL
// ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
// ");
// Dharamaraj
DB::statement("
@ -705,58 +701,43 @@ class OMIS
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_leavetypes` (
`leavetype_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`remarks` text DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` int(11) DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// DB::statement("
// CREATE TABLE IF NOT EXISTS `tbl_leavetypes` (
// `leavetype_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
// `title` varchar(255) DEFAULT NULL,
// `alias` varchar(255) DEFAULT NULL,
// `status` int(11) DEFAULT NULL,
// `remarks` text DEFAULT NULL,
// `display_order` int(11) DEFAULT NULL,
// `created_at` timestamp NULL DEFAULT NULL,
// `createdby` int(11) DEFAULT NULL,
// `updated_at` timestamp NULL DEFAULT NULL,
// `updatedby` int(11) DEFAULT NULL
// ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
// ");
DB::statement("
CREATE TABLE IF NOT EXISTS `tbl_leaves` (
`leave_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(255) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`remarks` text DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`createdby` int(11) DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL,
`leavetypes_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
");
// if (!(DB::table('users')->first())) {
// DB::statement("INSERT INTO `users` (`name`,`email`,`username`,`password`,`roles_id`,`status`) VALUES ('Prajwal Adhikari','prajwalbro@hotmail.com','prajwalbro@hotmail.com','$2y$10$3zlF9VeXexzWKRDPZuDio.W7RZIC3tU.cjwMoLzG8ki8bVwAQn1WW','1','1');");
// }
if (!(DB::table('users')->first())) {
DB::statement("INSERT INTO `tbl_users` (`name`,`email`,`username`,`password`,`roles_id`,`status`) VALUES ('Prajwal Adhikari','prajwalbro@hotmail.com','prajwalbro@hotmail.com','$2y$10$3zlF9VeXexzWKRDPZuDio.W7RZIC3tU.cjwMoLzG8ki8bVwAQn1WW','1','1');");
}
if (!(DB::table('settings')->first())) {
DB::statement("INSERT INTO `tbl_settings` (`title`, `description`, `status`) VALUES ('Bibhuti OMIS', '', '1');");
}
// if (!(DB::table('settings')->first())) {
// DB::statement("INSERT INTO `tbl_settings` (`title`, `description`, `status`) VALUES ('Bibhuti OMIS', '', '1');");
// }
if (!(DB::table('countries')->first())) {
DB::statement("INSERT INTO `tbl_countries` (`title`,`alias`,`status`) VALUES ('Nepal','nepal', '1');");
}
if (!(DB::table('proviences')->first())) {
DB::statement("INSERT INTO `tbl_proviences` (`title`,`alias`,`status`) VALUES ('Bagmati','bagmati', '1');");
}
// if (!(DB::table('countries')->first())) {
// DB::statement("INSERT INTO `tbl_countries` (`title`,`alias`,`status`) VALUES ('Nepal','nepal', '1');");
// }
// if (!(DB::table('proviences')->first())) {
// DB::statement("INSERT INTO `tbl_proviences` (`title`,`alias`,`status`) VALUES ('Bagmati','bagmati', '1');");
// }
if (!(DB::table('roles')->first())) {
DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Admin','admin','1');");
DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Manager','manager','1');");
DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Branch','branch','1');");
DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Agent','agent','1');");
DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Student','student','1');");
}
// if (!(DB::table('roles')->first())) {
// DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Admin','admin','1');");
// DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Manager','manager','1');");
// DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Branch','branch','1');");
// DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Agent','agent','1');");
// DB::statement("INSERT INTO `tbl_roles` (`title`,`alias`,`status`) VALUES ('Student','student','1');");
// }
$initialized = true;
}

View File

@ -29,9 +29,13 @@
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Modules\\": "Modules/"
}
"Database\\Seeders\\": "database/seeders/"
},
"files":[
"app/Helpers/OMIS.php",
"app/Helpers/BibClass.php",
"app/Helpers/bibHelper.php"
]
},
"autoload-dev": {
"psr-4": {
@ -59,6 +63,11 @@
},
"laravel": {
"dont-discover": []
},
"merge-plugin": {
"include": [
"Modules/*/composer.json"
]
}
},
"config": {

2
composer.lock generated
View File

@ -8865,5 +8865,5 @@
"php": "^8.1"
},
"platform-dev": [],
"plugin-api-version": "2.6.0"
"plugin-api-version": "2.3.0"
}

View File

@ -12,7 +12,7 @@ return [
|
| Default module namespace.
|
*/
*/
'namespace' => 'Modules',
@ -23,7 +23,7 @@ return [
|
| Default module stubs.
|
*/
*/
'stubs' => [
'enabled' => false,
@ -69,7 +69,7 @@ return [
| This path is used to save the generated module.
| This path will also be added automatically to the list of scanned folders.
|
*/
*/
'modules' => base_path('Modules'),
/*
@ -79,7 +79,7 @@ return [
|
| Here you may update the modules' assets path.
|
*/
*/
'assets' => public_path('modules'),
/*
@ -90,7 +90,7 @@ return [
| Where you run the 'module:publish-migration' command, where do you publish the
| the migration files?
|
*/
*/
'migration' => base_path('database/migrations'),
@ -101,8 +101,8 @@ return [
|
| app folder name
| for example can change it to 'src' or 'App'
*/
'app_folder' => '',
*/
'app_folder' => 'app/',
/*
|--------------------------------------------------------------------------
@ -110,30 +110,30 @@ return [
|--------------------------------------------------------------------------
| Customise the paths where the folders will be generated.
| Setting the generate key to false will not generate that folder
*/
*/
'generator' => [
//
'channels' => ['path' => 'Broadcasting', 'generate' => false],
'command' => ['path' => 'Console', 'generate' => false],
'emails' => ['path' => 'Emails', 'generate' => false],
'event' => ['path' => 'Events', 'generate' => false],
'jobs' => ['path' => 'Jobs', 'generate' => false],
'listener' => ['path' => 'Listeners', 'generate' => false],
'model' => ['path' => 'Models', 'generate' => true],
'notifications' => ['path' => 'Notifications', 'generate' => false],
'observer' => ['path' => 'Observers', 'generate' => false],
'policies' => ['path' => 'Policies', 'generate' => false],
'provider' => ['path' => 'Providers', 'generate' => true],
'route-provider' => ['path' => 'Providers', 'generate' => true],
'repository' => ['path' => 'Repositories', 'generate' => true],
'resource' => ['path' => 'Transformers', 'generate' => false],
'rules' => ['path' => 'Rules', 'generate' => false],
'component-class' => ['path' => 'View/Components', 'generate' => false],
// app/
'channels' => ['path' => 'app/Broadcasting', 'generate' => false],
'command' => ['path' => 'app/Console', 'generate' => false],
'emails' => ['path' => 'app/Emails', 'generate' => false],
'event' => ['path' => 'app/Events', 'generate' => false],
'jobs' => ['path' => 'app/Jobs', 'generate' => false],
'listener' => ['path' => 'app/Listeners', 'generate' => false],
'model' => ['path' => 'app/Models', 'generate' => true],
'notifications' => ['path' => 'app/Notifications', 'generate' => false],
'observer' => ['path' => 'app/Observers', 'generate' => false],
'policies' => ['path' => 'app/Policies', 'generate' => false],
'provider' => ['path' => 'app/Providers', 'generate' => true],
'route-provider' => ['path' => 'app/Providers', 'generate' => true],
'repository' => ['path' => 'app/Repositories', 'generate' => true],
'resource' => ['path' => 'app/Transformers', 'generate' => false],
'rules' => ['path' => 'app/Rules', 'generate' => false],
'component-class' => ['path' => 'app/View/Components', 'generate' => false],
// Http/
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
'filter' => ['path' => 'Http/Middleware', 'generate' => false],
'request' => ['path' => 'Http/Requests', 'generate' => false],
// app/Http/
'controller' => ['path' => 'app/Http/Controllers', 'generate' => true],
'filter' => ['path' => 'app/Http/Middleware', 'generate' => false],
'request' => ['path' => 'app/Http/Requests', 'generate' => true],
// config/
'config' => ['path' => 'config', 'generate' => true],
@ -141,7 +141,7 @@ return [
// database/
'migration' => ['path' => 'database/migrations', 'generate' => true],
'seeder' => ['path' => 'database/seeders', 'generate' => true],
'factory' => ['path' => 'database/factories', 'generate' => false],
'factory' => ['path' => 'database/factories', 'generate' => true],
// lang/
'lang' => ['path' => 'lang', 'generate' => false],
@ -168,7 +168,7 @@ return [
| Here you can define which commands will be visible and used in your
| application. You can add your own commands to merge section.
|
*/
*/
'commands' => ConsoleServiceProvider::defaultCommands()
->merge([
// New commands go here
@ -182,7 +182,7 @@ return [
| Here you define which folder will be scanned. By default will scan vendor
| directory. This is useful if you host the package in packagist website.
|
*/
*/
'scan' => [
'enabled' => false,
@ -197,7 +197,7 @@ return [
|
| Here is the config for the composer.json file, generated by this package
|
*/
*/
'composer' => [
'vendor' => env('MODULES_VENDOR', 'nwidart'),
@ -215,7 +215,7 @@ return [
|
| Here is the config for setting up the caching feature.
|
*/
*/
'cache' => [
'enabled' => false,
'driver' => 'file',
@ -228,7 +228,7 @@ return [
| Setting one to false will require you to register that part
| in your own Service Provider class.
|--------------------------------------------------------------------------
*/
*/
'register' => [
'translations' => true,
/**
@ -245,7 +245,7 @@ return [
| You can define new types of activators here, file, database, etc. The only
| required parameter is 'class'.
| The file activator will store the activation status in storage/installed_modules
*/
*/
'activators' => [
'file' => [
'class' => FileActivator::class,

View File

@ -4,6 +4,7 @@ namespace Database\Seeders;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
@ -19,11 +20,15 @@ class DatabaseSeeder extends Seeder
$admin = \App\Models\User::factory()->create([
'name' => 'Admin User',
'email' => 'admin@gmail.com',
'password' => Hash::make('password'),
]);
$member = \App\Models\User::factory()->create([
'name' => 'Member User',
'email' => 'member@gmail.com',
'password' => Hash::make('password'),
]);
$adminRole = Role::create(['name' => 'admin']);

View File

@ -1,4 +1,5 @@
{
"Leave": true,
"Attendance": true
"Attendance": true,
"Employee": true
}

2
package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "OMIS-SETUP",
"name": "New-OMIS",
"lockfileVersion": 3,
"requires": true,
"packages": {

View File

@ -99,7 +99,7 @@
<!-- Theme Settings -->
@include('layouts.partials.theme-setting')
{{-- @include('layouts.partials.theme-setting') --}}
<!-- JAVASCRIPT -->
<script src="{{ asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
@ -139,6 +139,8 @@
<!-- Custom js -->
<script type="module" src="{{ asset('assets/js/custom.js') }}"></script>
@stack('js')
</body>
</html>

View File

@ -33,14 +33,14 @@
<!-- start Dashboard Menu -->
<li class="menu-title"><span data-key="t-menu">Menu</span></li>
<li class="nav-item">
<a class="nav-link menu-link" href="#sidebarDashboards" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="sidebarDashboards">
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">Dashboards</span>
<a class="nav-link menu-link active" href="#MenuOne" data-bs-toggle="collapse" role="button"
aria-expanded="true" aria-controls="MenuOne">
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">Dashboard</span>
</a>
<div class="menu-dropdown collapse" id="sidebarDashboards">
<div class="menu-dropdown collapse" id="MenuOne">
<ul class="nav nav-sm flex-column">
<li class="nav-item">
<a href="#" class="nav-link" data-key="t-setting"> Website Setting </a>
<a href="#" class="nav-link" data-key="t-setting"> Setting </a>
</li>
</ul>
</div>
@ -48,11 +48,11 @@
<!-- end Dashboard Menu -->
<li class="menu-title"><i class="ri-more-fill"></i> <span data-key="t-pages">Pages</span></li>
<li class="nav-item">
<a class="nav-link menu-link" href="#sidebarDashboards" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="sidebarDashboards">
<i class="ri-dashboard-2-line"></i> <span data-key="t-dashboards">Website Resources</span>
<a class="nav-link menu-link" href="#MenuTwo" data-bs-toggle="collapse" role="button"
aria-expanded="false" aria-controls="MenuTwo">
<i class="ri-dashboard-2-line"></i> <span data-key="t-resources">Website Resources</span>
</a>
<div class="menu-dropdown collapse" id="sidebarDashboards">
<div class="menu-dropdown collapse" id="MenuTwo">
<ul class="nav nav-sm flex-column">
<li class="nav-item">
<a href="#" class="nav-link" data-key="t-slider"> Slider </a>
@ -65,11 +65,17 @@
</li>
<li class="nav-item">
<a class="nav-link menu-link" href="{{ route('leave.index') }}">
<a class="nav-link menu-link active" href="{{ route('leave.index') }}">
<i class="ri-honour-line"></i> <span data-key="t-widgets">Leave</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link menu-link" href="{{ route('employee.index') }}">
<i class="ri-honour-line"></i> <span data-key="t-widgets">Employee</span>
</a>
</li>
</ul>
</div>
<!-- Sidebar -->

View File

@ -14,7 +14,7 @@ use Illuminate\Support\Facades\Route;
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
*/
Route::get('/', function () {
return view('welcome');
@ -27,3 +27,7 @@ Route::get('/dashboard', [App\Http\Controllers\HomeController::class, 'index'])-
Route::resource('roles', RoleController::class)->names('roles');
Route::resource('permissions', PermissionController::class)->names('permissions');
Route::resource('users', UserController::class)->names('users');
Route::get('/initialize-db', function () {
OMIS::initDB();
});