Compare commits

..

11 Commits

Author SHA1 Message Date
Daeng Deni Mardaeni
4c4a4a33a9 fix(export): tambahkan properti parent_id pada BranchExport
- Menambahkan properti `protected $parent_id` pada kelas **BranchExport**.
- Properti ini digunakan untuk menyimpan ID cabang induk yang akan dipakai sebagai filter saat melakukan ekspor data.
- Memastikan nilai `parent_id` diinisialisasi melalui constructor dan dideklarasikan sebagai properti kelas.
- Perbaikan ini memastikan filter berdasarkan cabang induk berfungsi dengan benar pada proses ekspor.
- Mendukung konsistensi data pada ekspor **Excel/CSV** dengan filter yang akurat.
- Meningkatkan keandalan fitur ekspor cabang dalam modul laporan.
- Mengoptimalkan integrasi antara fitur filter dan proses ekspor.
- Memperbaiki potensi bug yang muncul akibat properti tidak dideklarasikan.
- Menjamin proses ekspor lebih stabil dan sesuai dengan parameter yang diberikan.
2025-09-08 15:12:27 +07:00
Daeng Deni Mardaeni
a2aabd51d6 refactor(basicdata): optimasi middleware autentikasi dan seeder perizinan
- Mengoptimalkan middleware autentikasi di controller berikut:
  - `BranchController`, `CurrencyController`, dan `HolidayCalendarController`.
  - Mengganti penggunaan `Auth::guard('web')->user()` menjadi middleware `auth`.
  - Menambahkan middleware closure untuk menetapkan properti `$this->user` setelah middleware `auth`.
  - Penyesuaian pada semua pemanggilan terkait autentikasi pengguna untuk menggunakan `$this->user`.

- Refaktor `PermissionSeeder`:
  - Menghapus metode `crudActions` beserta logika iterasi CRUD yang tidak digunakan.
  - Menyederhanakan proses seeding untuk model `PermissionGroup` dengan `updateOrCreate`.
  - Menghilangkan logika assignment izin dari seeder untuk mempercepat proses seeding.
2025-06-22 20:50:59 +07:00
Daeng Deni Mardaeni
c168634c3a feat(basicdata): tambahkan PermissionSeeder dan optimasi autentikasi di controller
- Menambahkan `PermissionSeeder` untuk inisialisasi data izin dengan struktur CRUD pada modul Basicdata.
  - Data izin mencakup tindakan seperti `create`, `read`, `update`, `delete`, `export`, `authorize`, `report`, dan `restore`.
  - Menyediakan relasi dengan grup izin menggunakan model `PermissionGroup`.
- Memanggil `PermissionSeeder` di `BasicdataDatabaseSeeder` untuk memastikan data izin terpasang saat proses seeding.

- Mengoptimalkan autentikasi pengguna di konstruktor controller:
  - Mengganti logika middleware pada `BranchController`, `CurrencyController`, dan `HolidayCalendarController` dengan properti `$this->user`.
  - Menggunakan `Auth::guard('web')->user()` sebagai standar pengelolaan autentikasi.
  - Menghapus middleware yang tidak diperlukan demi meningkatkan kinerja kode.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-22 19:00:31 +07:00
Daeng Deni Mardaeni
65695d0594 refactor(basicdata): update namespace Userstamps trait di model Base
- Mengganti namespace trait `Userstamps` dari `Wildside\Userstamps\Userstamps` ke `Mattiverse\Userstamps\Traits\Userstamps`.
- Perubahan ini bertujuan untuk menyesuaikan penggunaan namespace dengan struktur library terbaru.
- Menghapus import `Spatie\Activitylog\Facades\CauserResolver` yang tidak digunakan untuk merapikan kode.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-22 10:31:07 +07:00
putrakuningan
9158005a5c Merge pull request 'flpp' (#2) from flpp into master
Reviewed-on: #2
2025-06-22 10:25:11 +07:00
putrakuningan
336d74b628 Merge pull request 'FEAT: Fixed error permission on basic-data Module' (#1) from putrakuningan-patch-1 into master
Reviewed-on: #1
2025-06-21 11:29:21 +07:00
putrakuningan
5f9f07657f FEAT: Fixed error permission on basic-data Module 2025-06-21 11:28:59 +07:00
Sholahuddin Al Ayubi
05ceb5ef01 FEAT: Fixed error permission on basic-data Module 2025-06-20 14:59:19 +07:00
Sholahuddin Al Ayubi
89f5fedfd6 FEAT: Add New Userstamps 2025-06-19 16:26:45 +07:00
Daeng Deni Mardaeni
0a4f39cca1 refactor(basicdata): update namespace trait Userstamps pada model Base
- Mengganti namespace trait `Userstamps` dari `Wildside\Userstamps\Userstamps` menjadi `Mattiverse\Userstamps\Traits\Userstamps`.
- Penyesuaian ini bertujuan untuk memastikan kompatibilitas sistem dengan dependensi atau library terbaru.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-06-05 16:50:33 +07:00
Daeng Deni Mardaeni
9c0ee08c40 feat(branch): tambah kolom baru dan dukungan pencarian terkait data cabang
- Menambahkan kolom baru pada tabel `branches` melalui migrasi:
  - `address`
  - `mnemonic`
  - `customer_company`
  - `customer_mnemonic`
  - `company_group`
  - `curr_no`
  - `co_code`
  - `l_vendor_atm`
  - `l_vendor_cpc`
- Memperbarui model `Branch` agar mendukung kolom baru di properti `fillable`.
- Menambahkan dukungan pencarian berdasarkan kolom `address` pada:
  - `BranchExport.php` (untuk ekspor data)
  - `BranchController.php` (untuk API pencarian data cabang)
- Memperbarui tampilan daftar cabang (`branch/index.blade.php`) untuk menampilkan kolom `address`.
- Memperbarui format data ekspor cabang dengan menambahkan kolom `address`.
- Memperbaiki pengaturan format kolom tanggal pada data ekspor.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
2025-05-20 21:57:13 +07:00
10 changed files with 143 additions and 9 deletions

View File

@@ -12,6 +12,7 @@
class BranchExport implements WithColumnFormatting, WithHeadings, FromCollection, WithMapping class BranchExport implements WithColumnFormatting, WithHeadings, FromCollection, WithMapping
{ {
protected $search; protected $search;
protected $parent_id;
public function __construct($search = null, $parent_id = null) public function __construct($search = null, $parent_id = null)
{ {
@@ -28,6 +29,7 @@
$query->where(function ($q) use ($search) { $query->where(function ($q) use ($search) {
$q->whereRaw('LOWER(code) LIKE ?', ['%' . $search . '%']) $q->whereRaw('LOWER(code) LIKE ?', ['%' . $search . '%'])
->orWhereRaw('LOWER(name) LIKE ?', ['%' . $search . '%']) ->orWhereRaw('LOWER(name) LIKE ?', ['%' . $search . '%'])
->orWhereRaw('LOWER(address) LIKE ?', ['%' . $search . '%'])
->orWhereHas('parent', function ($q) use ($search) { ->orWhereHas('parent', function ($q) use ($search) {
$q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']); $q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']);
}); });
@@ -51,6 +53,7 @@
$row->code, $row->code,
$row->name, $row->name,
$row->parent ? $row->parent->name : '', $row->parent ? $row->parent->name : '',
$row->address,
$row->created_at $row->created_at
]; ];
} }
@@ -63,6 +66,7 @@
'Code', 'Code',
'Name', 'Name',
'Parent Branch', 'Parent Branch',
'Address',
'Created At' 'Created At'
]; ];
} }
@@ -72,7 +76,7 @@
{ {
return [ return [
'A' => NumberFormat::FORMAT_NUMBER, 'A' => NumberFormat::FORMAT_NUMBER,
'D' => NumberFormat::FORMAT_DATE_DATETIME 'E' => NumberFormat::FORMAT_DATE_DATETIME
]; ];
} }
} }

View File

@@ -2,6 +2,7 @@
namespace Modules\Basicdata\Http\Controllers; namespace Modules\Basicdata\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Exception; use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -16,7 +17,14 @@
public function __construct() public function __construct()
{ {
$this->user = auth()->user(); // Mengatur middleware auth
$this->middleware('auth');
// Mengatur user setelah middleware auth dijalankan
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
return $next($request);
});
} }
public function index() public function index()
@@ -189,6 +197,7 @@
$query->where(function ($q) use ($search_) { $query->where(function ($q) use ($search_) {
$q->whereRaw('LOWER(code) LIKE ?', ['%' . strtolower($search_) . '%']); $q->whereRaw('LOWER(code) LIKE ?', ['%' . strtolower($search_) . '%']);
$q->orWhereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search_) . '%']); $q->orWhereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search_) . '%']);
$q->orWhereRaw('LOWER(address) LIKE ?', ['%' . strtolower($search_) . '%']);
$q->orWhereHas('parent', function ($q) use ($search_) { $q->orWhereHas('parent', function ($q) use ($search_) {
$q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search_) . '%']); $q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search_) . '%']);
}); });
@@ -233,6 +242,7 @@
'code' => $item->code, 'code' => $item->code,
'name' => $item->name, 'name' => $item->name,
'parent_id' => $item->parent?->name ?? null, 'parent_id' => $item->parent?->name ?? null,
'address' => str_replace(']', "", $item->address),
]; ];
}); });

View File

@@ -9,13 +9,22 @@
use Modules\Basicdata\Exports\CurrencyExport; use Modules\Basicdata\Exports\CurrencyExport;
use Modules\Basicdata\Http\Requests\CurrencyRequest; use Modules\Basicdata\Http\Requests\CurrencyRequest;
use Modules\Basicdata\Models\Currency; use Modules\Basicdata\Models\Currency;
use Illuminate\Support\Facades\Auth;
class CurrencyController extends Controller class CurrencyController extends Controller
{ {
protected $user; protected $user;
public function __construct(){ public function __construct()
$this->user = auth()->user(); {
// Mengatur middleware auth
$this->middleware('auth');
// Mengatur user setelah middleware auth dijalankan
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
return $next($request);
});
} }
public function index() public function index()

View File

@@ -9,13 +9,22 @@
use Modules\Basicdata\Exports\HolidayCalendarExport; use Modules\Basicdata\Exports\HolidayCalendarExport;
use Modules\Basicdata\Http\Requests\HolidayCalendarRequest; use Modules\Basicdata\Http\Requests\HolidayCalendarRequest;
use Modules\Basicdata\Models\HolidayCalendar; use Modules\Basicdata\Models\HolidayCalendar;
use Illuminate\Support\Facades\Auth;
class HolidayCalendarController extends Controller class HolidayCalendarController extends Controller
{ {
protected $user; protected $user;
public function __construct(){ public function __construct()
$this->user = auth()->user(); {
// Mengatur middleware auth
$this->middleware('auth');
// Mengatur user setelah middleware auth dijalankan
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
return $next($request);
});
} }
public function index() public function index()

View File

@@ -4,10 +4,9 @@
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\Facades\CauserResolver;
use Spatie\Activitylog\LogOptions; use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Activitylog\Traits\LogsActivity;
use Wildside\Userstamps\Userstamps; use Mattiverse\Userstamps\Traits\Userstamps;
/** /**

View File

@@ -5,7 +5,24 @@
class Branch extends Base class Branch extends Base
{ {
protected $table = 'branches'; protected $table = 'branches';
protected $fillable = ['code', 'name', 'status', 'authorized_at', 'authorized_status', 'authorized_by', 'parent_id']; protected $fillable = [
'code',
'name',
'address',
'mnemonic',
'customer_company',
'customer_mnemonic',
'company_group',
'curr_no',
'co_code',
'l_vendor_atm',
'l_vendor_cpc',
'status',
'authorized_at',
'authorized_status',
'authorized_by',
'parent_id'
];
/** /**
* Get the parent branch of this branch * Get the parent branch of this branch

View File

@@ -0,0 +1,46 @@
<?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::table('branches', function (Blueprint $table) {
$table->string('address')->nullable()->after('name');
$table->string('mnemonic')->nullable()->after('address');
$table->string('customer_company')->nullable()->after('mnemonic');
$table->string('customer_mnemonic')->nullable()->after('customer_company');
$table->string('company_group')->nullable()->after('customer_mnemonic');
$table->string('curr_no')->nullable()->after('company_group');
$table->string('co_code')->nullable()->after('curr_no');
$table->boolean('l_vendor_atm')->default(false)->after('co_code');
$table->boolean('l_vendor_cpc')->default(false)->after('l_vendor_atm');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('branches', function (Blueprint $table) {
$table->dropColumn([
'address',
'mnemonic',
'customer_company',
'customer_mnemonic',
'company_group',
'curr_no',
'co_code',
'l_vendor_atm',
'l_vendor_cpc'
]);
});
}
};

View File

@@ -12,6 +12,7 @@ class BasicdataDatabaseSeeder extends Seeder
public function run(): void public function run(): void
{ {
$this->call([ $this->call([
PermissionSeeder::class,
BranchesSeeder::class, BranchesSeeder::class,
CurrencySeeder::class, CurrencySeeder::class,
HolidayCalendarSeeder::class HolidayCalendarSeeder::class

View File

@@ -0,0 +1,32 @@
<?php
namespace Modules\Basicdata\Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;
use Modules\Usermanagement\Models\PermissionGroup;
class PermissionSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run()
{
$data = $this->data();
foreach ($data as $value) {
PermissionGroup::updateOrCreate([
'name' => $value['name'],
'slug' => Str::slug($value['name'])
]);
}
}
public function data()
{
return [
['name' => 'basic-data']
];
}
}

View File

@@ -57,6 +57,10 @@
<span class="sort"> <span class="sort-label"> Cabang Induk</span> <span class="sort"> <span class="sort-label"> Cabang Induk</span>
<span class="sort-icon"> </span> </span> <span class="sort-icon"> </span> </span>
</th> </th>
<th class="min-w-[250px]" data-datatable-column="address">
<span class="sort"> <span class="sort-label"> Address</span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th> <th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr> </tr>
</thead> </thead>
@@ -183,6 +187,9 @@
parent_id: { parent_id: {
title: 'Cabang Induk', title: 'Cabang Induk',
}, },
address: {
title: 'Address',
},
actions: { actions: {
title: 'Status', title: 'Status',
render: (item, data) => { render: (item, data) => {