diff --git a/app/Http/Controllers/Auth/User/LoginController.php b/app/Http/Controllers/Auth/User/LoginController.php new file mode 100644 index 0000000..e69de29 diff --git a/app/Models/User.php b/app/Models/User.php index 3dfbd80..8869a39 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -6,11 +6,13 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +use Illuminate\Database\Eloquent\SoftDeletes; class User extends Authenticatable { /** @use HasFactory<\Database\Factories\UserFactory> */ use HasFactory, Notifiable; + use SoftDeletes; /** * The attributes that are mass assignable. @@ -20,7 +22,9 @@ class User extends Authenticatable protected $fillable = [ 'name', 'email', + 'username', 'password', + 'phone', ]; /** diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 83ab770..f23ba06 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -20,8 +20,10 @@ class CreateUsersTable extends Migration $table->string('username')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); + $table->string('phone'); $table->rememberToken(); $table->timestamps(); + $table->softDeletes(); }); } diff --git a/database/migrations/2020_09_12_043205_create_admins_table.php b/database/migrations/2020_09_12_043205_create_admins_table.php index 546f57d..066c59b 100644 --- a/database/migrations/2020_09_12_043205_create_admins_table.php +++ b/database/migrations/2020_09_12_043205_create_admins_table.php @@ -22,6 +22,7 @@ class CreateAdminsTable extends Migration $table->string('password'); $table->rememberToken(); $table->timestamps(); + $table->softDeletes(); }); } diff --git a/database/migrations/2024_12_01_082306_create_login_logs_table.php b/database/migrations/2024_12_01_082306_create_login_logs_table.php index f8c1007..6d36f73 100644 --- a/database/migrations/2024_12_01_082306_create_login_logs_table.php +++ b/database/migrations/2024_12_01_082306_create_login_logs_table.php @@ -21,6 +21,7 @@ return new class extends Migration // Foreign key $table->foreign('user_id')->references('id')->on('admins')->onDelete('cascade'); + $table->softDeletes(); }); } diff --git a/database/migrations/2024_12_11_033042_create_rayon_table.php b/database/migrations/2024_12_11_033042_create_rayon_table.php new file mode 100644 index 0000000..47de486 --- /dev/null +++ b/database/migrations/2024_12_11_033042_create_rayon_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('name'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('rayon'); + } +}; diff --git a/database/migrations/2024_12_11_033120_create_form_up_country_table.php b/database/migrations/2024_12_11_033120_create_form_up_country_table.php new file mode 100644 index 0000000..fea69b8 --- /dev/null +++ b/database/migrations/2024_12_11_033120_create_form_up_country_table.php @@ -0,0 +1,44 @@ +id(); + $table->string('expense_number')->unique(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->foreignId('rayon_id')->constrained('rayon')->cascadeOnDelete(); + $table->date('tanggal'); + $table->string('tujuan'); + $table->integer('jarak'); + $table->integer('allowance'); + $table->integer('transport_dalkot'); + $table->integer('transport_ankot'); + $table->integer('hotel'); + $table->integer('total'); + $table->string('bukti1')->nullable(); + $table->string('bukti2')->nullable(); + $table->string('bukti3')->nullable(); + $table->string('account_number'); + $table->string('status'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_up_country'); + } +}; diff --git a/database/migrations/2024_12_11_033929_create_form_vehicle_running_cost.php b/database/migrations/2024_12_11_033929_create_form_vehicle_running_cost.php new file mode 100644 index 0000000..4208df5 --- /dev/null +++ b/database/migrations/2024_12_11_033929_create_form_vehicle_running_cost.php @@ -0,0 +1,42 @@ +id(); + $table->string('expense_number')->unique(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->dateTime('tanggal'); + $table->integer('liter'); + $table->integer('harga'); + $table->integer('jarak'); + $table->string('tipe_bensin'); + $table->string('nopol'); + $table->text('keterangan'); + $table->string('bukti1')->nullable(); + $table->string('bukti2')->nullable(); + $table->string('bukti3')->nullable(); + $table->string('account_number'); + $table->string('status'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_vehicle_running_cost'); + } +}; diff --git a/database/migrations/2024_12_11_034540_create_form_entertainment_presentation_table.php b/database/migrations/2024_12_11_034540_create_form_entertainment_presentation_table.php new file mode 100644 index 0000000..9f42968 --- /dev/null +++ b/database/migrations/2024_12_11_034540_create_form_entertainment_presentation_table.php @@ -0,0 +1,42 @@ +id(); + $table->string('expense_number')->unique(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->date('tanggal'); + $table->string('jenis'); + $table->text('keterangan'); + $table->integer('total'); + $table->string('name'); + $table->string('alamat'); + $table->string('nik_or_npwp'); + $table->string('bukti1')->nullable(); + $table->string('bukti2')->nullable(); + $table->string('bukti3')->nullable(); + $table->string('account_number'); + $table->string('status'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_entertainment_presentation'); + } +}; diff --git a/database/migrations/2024_12_11_034916_create_form_meeting_seminar_table.php b/database/migrations/2024_12_11_034916_create_form_meeting_seminar_table.php new file mode 100644 index 0000000..8293be3 --- /dev/null +++ b/database/migrations/2024_12_11_034916_create_form_meeting_seminar_table.php @@ -0,0 +1,39 @@ +id(); + $table->string('expense_number')->unique(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->integer('allowance'); + $table->integer('transport_ankot'); + $table->integer('hotel'); + $table->integer('total'); + $table->string('bukti1')->nullable(); + $table->string('bukti2')->nullable(); + $table->string('bukti3')->nullable(); + $table->string('account_number'); + $table->string('status'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_meeting_seminar'); + } +}; diff --git a/database/migrations/2024_12_11_041207_create_kategori_table.php b/database/migrations/2024_12_11_041207_create_kategori_table.php new file mode 100644 index 0000000..94d12f0 --- /dev/null +++ b/database/migrations/2024_12_11_041207_create_kategori_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('name'); + $table->string('account_number'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kategori'); + } +}; diff --git a/database/migrations/2024_12_11_041438_create_form_others_table.php b/database/migrations/2024_12_11_041438_create_form_others_table.php new file mode 100644 index 0000000..7e60b95 --- /dev/null +++ b/database/migrations/2024_12_11_041438_create_form_others_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('expense_number')->unique(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->foreignId('kategori_id')->constrained('kategori')->cascadeOnDelete(); + $table->date('tanggal'); + $table->text('keterangan'); + $table->integer('total'); + $table->string('bukti1')->nullable(); + $table->string('bukti2')->nullable(); + $table->string('bukti3')->nullable(); + $table->string('status')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('form_others'); + } +}; diff --git a/database/migrations/2024_12_11_041819_create_region_table.php b/database/migrations/2024_12_11_041819_create_region_table.php new file mode 100644 index 0000000..0513751 --- /dev/null +++ b/database/migrations/2024_12_11_041819_create_region_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('code'); + $table->string('name'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('region'); + } +}; diff --git a/database/migrations/2024_12_11_041930_create_cost_centre_table.php b/database/migrations/2024_12_11_041930_create_cost_centre_table.php new file mode 100644 index 0000000..27e1d04 --- /dev/null +++ b/database/migrations/2024_12_11_041930_create_cost_centre_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('code'); + $table->string('name'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cost_centre'); + } +}; diff --git a/database/migrations/2024_12_11_042054_create_cabang_table.php b/database/migrations/2024_12_11_042054_create_cabang_table.php new file mode 100644 index 0000000..bb5ac34 --- /dev/null +++ b/database/migrations/2024_12_11_042054_create_cabang_table.php @@ -0,0 +1,32 @@ +id(); + $table->foreignId('region_id')->constrained('region')->onDelete('cascade'); + $table->foreignId('cost_id')->constrained('cost_centre')->onDelete('cascade'); + $table->string('code'); + $table->string('name'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cabang'); + } +}; diff --git a/database/migrations/2024_12_11_042306_create_user_has_cabang_table.php b/database/migrations/2024_12_11_042306_create_user_has_cabang_table.php new file mode 100644 index 0000000..850058f --- /dev/null +++ b/database/migrations/2024_12_11_042306_create_user_has_cabang_table.php @@ -0,0 +1,30 @@ +id(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->foreignId('cabang_id')->constrained('cabang')->cascadeOnDelete(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('user_has_cabang'); + } +}; diff --git a/database/migrations/2024_12_11_042442_create_audit_trail_table.php b/database/migrations/2024_12_11_042442_create_audit_trail_table.php new file mode 100644 index 0000000..4d42a83 --- /dev/null +++ b/database/migrations/2024_12_11_042442_create_audit_trail_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignId('user_id')->constrained('users')->cascadeOnDelete(); + $table->string('ip_address'); + $table->string('activity')->nullable(); + $table->string('action')->nullable(); + $table->text('user_agent')->nullable(); + $table->string('browser')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('audit_trail'); + } +}; diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 149dac7..6e988e9 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -14,6 +14,6 @@ class DatabaseSeeder extends Seeder $this->call(UserSeeder::class); $this->call(AdminSeeder::class); $this->call(RolePermissionSeeder::class); - // $this->call(MenusTableSeeder::class); + $this->call(MenuSeeder::class); } } diff --git a/database/seeds/MenusTableSeeder.php b/database/seeds/MenuSeeder.php similarity index 89% rename from database/seeds/MenusTableSeeder.php rename to database/seeds/MenuSeeder.php index d2126e4..d36fa04 100644 --- a/database/seeds/MenusTableSeeder.php +++ b/database/seeds/MenuSeeder.php @@ -1,15 +1,19 @@ insert([ [ diff --git a/database/seeds/UserSeeder.php b/database/seeds/UserSeeder.php index 5951577..04cb22e 100644 --- a/database/seeds/UserSeeder.php +++ b/database/seeds/UserSeeder.php @@ -20,6 +20,7 @@ class UserSeeder extends Seeder $user->username = "user1"; $user->email = "user1@gmail.com"; $user->password = Hash::make('12345678'); + $user->phone = "085112345678"; $user->save(); } } diff --git a/routes/web.php b/routes/web.php index 6a974a0..5989c8b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,8 +11,6 @@ use App\Http\Controllers\Backend\MenuRoleController; Auth::routes(); - - Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () { // Login Routes. Route::post('/login/submit', [LoginController::class, 'login'])->name('login.submit'); @@ -22,8 +20,6 @@ Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () { }); - - /** * Admin routes */