diff --git a/app/Enums/Permission.php b/app/Enums/Permission.php
index 5131b9d..89b4997 100644
--- a/app/Enums/Permission.php
+++ b/app/Enums/Permission.php
@@ -71,9 +71,8 @@ enum Permission: string
case PRODUCTS_UPDATE = 'products.update';
case PRODUCTS_DELETE = 'products.delete';
case PRODUCTS_TOGGLE_STATUS = 'products.toggle_status';
-
- // Stocks
- case STOCKS_VIEW = 'stocks.view';
+ case PRODUCTS_TRANSFER_STOCK = 'products.transfer_stock';
+ case PRODUCTS_VIEW_STOCK_MUTATIONS = 'products.view_stock_mutations';
// Orders
case ORDERS_VIEW = 'orders.view';
diff --git a/database/seeders/RolePermissionSeeder.php b/database/seeders/RolePermissionSeeder.php
index f754601..0c77041 100644
--- a/database/seeders/RolePermissionSeeder.php
+++ b/database/seeders/RolePermissionSeeder.php
@@ -21,7 +21,7 @@ public function run(): void
'leave_requests' => ['view', 'create', 'update', 'delete', 'verify'],
'categories' => ['view', 'create', 'update', 'delete'],
'customers' => ['view', 'create', 'update', 'delete'],
- 'products' => ['view', 'create', 'update', 'delete', 'toggle_status'],
+ 'products' => ['view', 'create', 'update', 'delete', 'toggle_status', 'transfer_stock', 'view_stock_mutations'],
'stocks' => ['view'],
'orders' => ['view', 'create', 'update', 'delete', 'send', 'complete', 'cancel'],
'cuttings' => ['view', 'create', 'update', 'delete', 'complete'],
@@ -92,7 +92,6 @@ public function run(): void
'analysis.top_products',
'analysis.marketing_sales',
- 'stocks.view',
'stok_opnames.view',
'attendances.view',
@@ -124,6 +123,8 @@ public function run(): void
'products.update',
'products.delete',
'products.toggle_status',
+ 'products.transfer_stock',
+ 'products.view_stock_mutations',
'owner_verifications.view',
@@ -251,7 +252,6 @@ public function run(): void
'raw_materials.create',
'raw_materials.update',
'raw_materials.toggle_status',
- 'stocks.view',
'owner_verifications.view',
@@ -396,8 +396,6 @@ public function run(): void
'products.view',
- 'stocks.view',
-
'orders.view',
'cuttings.view',
@@ -455,8 +453,6 @@ public function run(): void
'products.view',
- 'stocks.view',
-
'stok_opnames.view',
'stok_opnames.create',
'stok_opnames.update',
diff --git a/resources/js/pages/admin/master/product/variant/sub-row.tsx b/resources/js/pages/admin/master/product/variant/sub-row.tsx
index 6377be6..1042938 100644
--- a/resources/js/pages/admin/master/product/variant/sub-row.tsx
+++ b/resources/js/pages/admin/master/product/variant/sub-row.tsx
@@ -124,7 +124,7 @@ export function VariantSubRow({
icon: (
),
- show: can('stocks.view'),
+ show: can('products.transfer_stock'),
onClick: () =>
setTransferVariant({
product,
@@ -136,7 +136,7 @@ export function VariantSubRow({
icon: (
),
- show: can('stocks.view'),
+ show: can('products.view_stock_mutations'),
onClick: () => {
router.visit(
stockMutations.url({
diff --git a/routes/web.php b/routes/web.php
index 6657c1d..4b4ca00 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -45,8 +45,8 @@
Route::delete('products/{product}/variants/{variant}', [ProductVariantController::class, 'destroy'])->name('products.variants.destroy')->middleware('permission:products.delete');
Route::get('products/{product}/variants/{variant}/edit', [ProductVariantController::class, 'edit'])->name('products.variants.edit')->middleware('permission:products.update');
Route::put('products/{product}/variants/{variant}', [ProductVariantController::class, 'update'])->name('products.variants.update')->middleware('permission:products.update');
- Route::post('products/{product}/variants/{variant}/transfer-stock', [ProductVariantController::class, 'transferStock'])->name('products.variants.transfer-stock')->middleware('permission:products.update');
- Route::get('products/{product}/variants/{variant}/stock-mutations', [StockMutationController::class, 'index'])->name('products.variants.stock-mutations')->middleware('permission:products.view');
+ Route::post('products/{product}/variants/{variant}/transfer-stock', [ProductVariantController::class, 'transferStock'])->name('products.variants.transfer-stock')->middleware('permission:products.transfer_stock');
+ Route::get('products/{product}/variants/{variant}/stock-mutations', [StockMutationController::class, 'index'])->name('products.variants.stock-mutations')->middleware('permission:products.view_stock_mutations');
Route::resource('raw-materials', RawMaterialController::class)->except(['show'])->middleware('permission:raw_materials.view|raw_materials.create|raw_materials.update|raw_materials.delete');
Route::post('raw-materials/{rawMaterial}/toggle-status', [RawMaterialController::class, 'toggleStatus'])->name('raw-materials.toggle-status')->middleware('permission:raw_materials.toggle_status');