refactor: restructure stock management components and update routes

- Removed legacy stock management components including PurchaseForm, RestockForm, StockOpnameForm, and StockTransferForm.
- Updated routes to reflect new structure under 'studio.stock' namespace for better organization.
- Adjusted view files for stock management to align with the new routing and component structure.
- Modified action routes in the ViewServiceProvider to ensure proper access control and navigation.
- Cleaned up related test files to remove references to deleted components.
This commit is contained in:
Yoga Pangestu 2026-01-09 21:57:06 +07:00
parent dffc9f9e72
commit 293dd7d1fd
30 changed files with 104 additions and 97 deletions

View File

@ -34,7 +34,7 @@ public function columns(): array
if (auth()->user()->can('show stock opname')) { if (auth()->user()->can('show stock opname')) {
$actions .= view('components.actions.table.new-page-action', [ $actions .= view('components.actions.table.new-page-action', [
'label' => 'Lihat', 'label' => 'Lihat',
'route' => route('studio.manage.stock_opname.show', ['stockOpname', $row->hash]), 'route' => route('studio.stock.stock_opname.show', ['stockOpname', $row->hash]),
'buttonColor' => 'blue', 'buttonColor' => 'blue',
'buttonIcon' => 'eye', 'buttonIcon' => 'eye',
])->render(); ])->render();

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Forms\Studio\Manage; namespace App\Livewire\Forms\Studio\Stock;
use App\Models\Purchase; use App\Models\Purchase;
use App\Rules\UnsignedInteger; use App\Rules\UnsignedInteger;

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Forms\Studio\Manage; namespace App\Livewire\Forms\Studio\Stock;
use App\Models\Restock; use App\Models\Restock;
use App\Traits\Media\WithMediaHandler; use App\Traits\Media\WithMediaHandler;

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Forms\Studio\Manage; namespace App\Livewire\Forms\Studio\Stock;
use App\Models\StockOpname; use App\Models\StockOpname;
use App\Models\StockOpnameItem; use App\Models\StockOpnameItem;

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Forms\Studio\Manage; namespace App\Livewire\Forms\Studio\Stock;
use App\Models\StockTransfer; use App\Models\StockTransfer;
use App\Traits\Media\WithMediaHandler; use App\Traits\Media\WithMediaHandler;

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Livewire\Studio\Manage\Purchase; namespace App\Livewire\Studio\Stock\Purchase;
use App\Livewire\Forms\Studio\Manage\PurchaseForm; use App\Livewire\Forms\Studio\Stock\PurchaseForm;
use App\Models\Bottle; use App\Models\Bottle;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\Product; use App\Models\Product;
@ -64,14 +64,14 @@ public function save(): void
$this->form->store(); $this->form->store();
$this->redirectRoute('studio.manage.purchase.index', [ $this->redirectRoute('studio.stock.purchase.index', [
'notification' => 'Belanja berhasil ditambahkan.', 'notification' => 'Belanja berhasil ditambahkan.',
], navigate: true); ], navigate: true);
} }
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.purchase.form', [ return view('livewire.studio.stock.purchase.form', [
'pageTitle' => 'Tambah Belanja', 'pageTitle' => 'Tambah Belanja',
]); ]);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Studio\Manage\Purchase; namespace App\Livewire\Studio\Stock\Purchase;
use App\Models\Purchase; use App\Models\Purchase;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
@ -42,7 +42,7 @@ public function delete(Purchase $purchase): void
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.purchase.index', [ return view('livewire.studio.stock.purchase.index', [
'pageTitle' => 'Belanja', 'pageTitle' => 'Belanja',
]); ]);
} }

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Livewire\Studio\Manage\Restock; namespace App\Livewire\Studio\Stock\Restock;
use App\Livewire\Forms\Studio\Manage\RestockForm; use App\Livewire\Forms\Studio\Stock\RestockForm;
use App\Models\Warehouse; use App\Models\Warehouse;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
use App\Traits\Components\WithConfirmation; use App\Traits\Components\WithConfirmation;
@ -116,14 +116,14 @@ public function save(): void
return; return;
} }
$this->redirectRoute('studio.manage.restock.index', [ $this->redirectRoute('studio.stock.restock.index', [
'notification' => 'Restock berhasil diproses.', 'notification' => 'Restock berhasil diproses.',
], navigate: true); ], navigate: true);
} }
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.restock.form', [ return view('livewire.studio.stock.restock.form', [
'pageTitle' => 'Tambah Restock Toko', 'pageTitle' => 'Tambah Restock Toko',
]); ]);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Studio\Manage\Restock; namespace App\Livewire\Studio\Stock\Restock;
use App\Models\Restock; use App\Models\Restock;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
@ -42,7 +42,7 @@ public function delete(Restock $restock): void
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.restock.index', [ return view('livewire.studio.stock.restock.index', [
'pageTitle' => 'Restock Toko', 'pageTitle' => 'Restock Toko',
]); ]);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Studio\Manage\StockOpname; namespace App\Livewire\Studio\Stock\StockOpname;
use App\Enums\StockOpnameStatus; use App\Enums\StockOpnameStatus;
use App\Models\StockOpname; use App\Models\StockOpname;
@ -59,7 +59,7 @@ public function requestApproval(StockOpname $stockOpname): void
$this->toast('Permohonan persetujuan berhasil diajukan.', 'Berhasil'); $this->toast('Permohonan persetujuan berhasil diajukan.', 'Berhasil');
$this->redirectRoute('studio.manage.stock_opname.index', navigate: true); $this->redirectRoute('studio.stock.stock_opname.index', navigate: true);
} }
public function approveApproval(StockOpname $stockOpname): void public function approveApproval(StockOpname $stockOpname): void
@ -120,12 +120,12 @@ public function approveApproval(StockOpname $stockOpname): void
$this->toast('Stock opname berhasil disetujui dan stok outlet disesuaikan.', 'Berhasil'); $this->toast('Stock opname berhasil disetujui dan stok outlet disesuaikan.', 'Berhasil');
$this->redirectRoute('studio.manage.stock_opname.index', navigate: true); $this->redirectRoute('studio.stock.stock_opname.index', navigate: true);
} }
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.stock-opname.index', [ return view('livewire.studio.stock.stock-opname.index', [
'pageTitle' => 'Stock Opname', 'pageTitle' => 'Stock Opname',
]); ]);
} }

View File

@ -1,9 +1,9 @@
<?php <?php
namespace App\Livewire\Studio\Manage\StockOpname; namespace App\Livewire\Studio\Stock\StockOpname;
use App\Enums\StockOpnameStatus; use App\Enums\StockOpnameStatus;
use App\Livewire\Forms\Studio\Manage\StockOpnameForm; use App\Livewire\Forms\Studio\Stock\StockOpnameForm;
use App\Models\StockOpname; use App\Models\StockOpname;
use App\Models\StockOpnameItem; use App\Models\StockOpnameItem;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
@ -61,7 +61,7 @@ public function updated(string $propertyName, $value): void
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.stock-opname.manage', [ return view('livewire.studio.stock.stock-opname.manage', [
'pageTitle' => 'Kelola Stock Opname', 'pageTitle' => 'Kelola Stock Opname',
]); ]);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Studio\Manage\StockOpname; namespace App\Livewire\Studio\Stock\StockOpname;
use App\Models\StockOpname; use App\Models\StockOpname;
use App\Models\StockOpnameItem; use App\Models\StockOpnameItem;
@ -30,7 +30,7 @@ public function mount(StockOpname $stockOpname): void
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.stock-opname.show', [ return view('livewire.studio.stock.stock-opname.show', [
'pageTitle' => 'Lihat Stock Opname', 'pageTitle' => 'Lihat Stock Opname',
]); ]);
} }

View File

@ -1,8 +1,8 @@
<?php <?php
namespace App\Livewire\Studio\Manage\StockTransfer; namespace App\Livewire\Studio\Stock\StockTransfer;
use App\Livewire\Forms\Studio\Manage\StockTransferForm; use App\Livewire\Forms\Studio\Stock\StockTransferForm;
use App\Models\Outlet; use App\Models\Outlet;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
use App\Traits\Components\WithConfirmation; use App\Traits\Components\WithConfirmation;
@ -116,14 +116,14 @@ public function save(): void
return; return;
} }
$this->redirectRoute('studio.manage.stock_transfer.index', [ $this->redirectRoute('studio.stock.stock_transfer.index', [
'notification' => 'Transfer stok berhasil diproses.', 'notification' => 'Transfer stok berhasil diproses.',
], navigate: true); ], navigate: true);
} }
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.stock-transfer.form', [ return view('livewire.studio.stock.stock-transfer.form', [
'pageTitle' => 'Tambah Transfer Stok Antar Outlet', 'pageTitle' => 'Tambah Transfer Stok Antar Outlet',
]); ]);
} }

View File

@ -1,6 +1,6 @@
<?php <?php
namespace App\Livewire\Studio\Manage\StockTransfer; namespace App\Livewire\Studio\Stock\StockTransfer;
use App\Models\StockTransfer; use App\Models\StockTransfer;
use App\Traits\Authorization\WithAuthorization; use App\Traits\Authorization\WithAuthorization;
@ -42,7 +42,7 @@ public function delete(StockTransfer $stockTransfer): void
public function render(): View public function render(): View
{ {
return view('livewire.studio.manage.stock-transfer.index', [ return view('livewire.studio.stock.stock-transfer.index', [
'pageTitle' => 'Transfer Stok Antar Outlet', 'pageTitle' => 'Transfer Stok Antar Outlet',
]); ]);
} }

View File

@ -174,34 +174,6 @@ public function boot(): void
'match' => 'studio.manage.order.*', 'match' => 'studio.manage.order.*',
'can' => 'view order', 'can' => 'view order',
], ],
[
'label' => 'Belanja',
'icon' => 'shopping-bag',
'route' => 'studio.manage.purchase.index',
'match' => 'studio.manage.purchase.*',
'can' => 'view purchase',
],
[
'label' => 'Restock Outlet',
'icon' => 'arrows-right-left',
'route' => 'studio.manage.restock.index',
'match' => 'studio.manage.restock.*',
'can' => 'view restock',
],
[
'label' => 'Transfer Stok',
'icon' => 'clipboard-document-list',
'route' => 'studio.manage.stock_transfer.index',
'match' => 'studio.manage.stock_transfer.*',
'can' => 'view stock transfer',
],
[
'label' => 'Stock Opname',
'icon' => 'clipboard-document-check',
'route' => 'studio.manage.stock_opname.index',
'match' => 'studio.manage.stock_opname.*',
'can' => 'view stock opname',
],
[ [
'label' => 'Artikel', 'label' => 'Artikel',
'icon' => 'newspaper', 'icon' => 'newspaper',
@ -211,6 +183,39 @@ public function boot(): void
], ],
], ],
], ],
[
'heading' => 'Kelola',
'items' => [
[
'label' => 'Belanja',
'icon' => 'shopping-bag',
'route' => 'studio.stock.purchase.index',
'match' => 'studio.stock.purchase.*',
'can' => 'view purchase',
],
[
'label' => 'Restock Outlet',
'icon' => 'arrows-right-left',
'route' => 'studio.stock.restock.index',
'match' => 'studio.stock.restock.*',
'can' => 'view restock',
],
[
'label' => 'Transfer Stok',
'icon' => 'clipboard-document-list',
'route' => 'studio.stock.stock_transfer.index',
'match' => 'studio.stock.stock_transfer.*',
'can' => 'view stock transfer',
],
[
'label' => 'Stock Opname',
'icon' => 'clipboard-document-check',
'route' => 'studio.stock.stock_opname.index',
'match' => 'studio.stock.stock_opname.*',
'can' => 'view stock opname',
],
],
],
[ [
'heading' => 'Informasi', 'heading' => 'Informasi',
'items' => [ 'items' => [

View File

@ -4,7 +4,7 @@
<flux:heading size="xl">{{ $pageTitle }}</flux:heading> <flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div> </div>
<div> <div>
<flux:button href="{{ route('studio.manage.purchase.index') }}" wire:navigate class="text-sm"> <flux:button href="{{ route('studio.stock.purchase.index') }}" wire:navigate class="text-sm">
Kembali Kembali
</flux:button> </flux:button>
</div> </div>

View File

@ -5,7 +5,7 @@
</div> </div>
@can('create purchase') @can('create purchase')
<div> <div>
<flux:button href="{{ route('studio.manage.purchase.create') }}" variant="primary" wire:navigate <flux:button href="{{ route('studio.stock.purchase.create') }}" variant="primary" wire:navigate
class="text-sm"> class="text-sm">
Tambah Tambah
</flux:button> </flux:button>

View File

@ -4,7 +4,7 @@
<flux:heading size="xl">{{ $pageTitle }}</flux:heading> <flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div> </div>
<div> <div>
<flux:button href="{{ route('studio.manage.restock.index') }}" wire:navigate class="text-sm"> <flux:button href="{{ route('studio.stock.restock.index') }}" wire:navigate class="text-sm">
Kembali Kembali
</flux:button> </flux:button>
</div> </div>

View File

@ -5,7 +5,7 @@
</div> </div>
@can('create restock') @can('create restock')
<div> <div>
<flux:button href="{{ route('studio.manage.restock.create') }}" variant="primary" wire:navigate <flux:button href="{{ route('studio.stock.restock.create') }}" variant="primary" wire:navigate
class="text-sm"> class="text-sm">
Tambah Tambah
</flux:button> </flux:button>

View File

@ -48,7 +48,7 @@
<div class="flex items-center mt-2 gap-2"> <div class="flex items-center mt-2 gap-2">
<flux:tooltip content="Lihat"> <flux:tooltip content="Lihat">
<flux:button variant="primary" color="blue" size="sm" icon="eye" <flux:button variant="primary" color="blue" size="sm" icon="eye"
href="{{ route('studio.manage.stock_opname.show', ['stockOpname' => $item->hash]) }}" href="{{ route('studio.stock.stock_opname.show', ['stockOpname' => $item->hash]) }}"
wire:navigate> wire:navigate>
</flux:button> </flux:button>
</flux:tooltip> </flux:tooltip>
@ -56,7 +56,7 @@
@if ($item->status === \App\Enums\StockOpnameStatus::PROCESS) @if ($item->status === \App\Enums\StockOpnameStatus::PROCESS)
<flux:tooltip content="Kelola"> <flux:tooltip content="Kelola">
<flux:button variant="primary" color="yellow" size="sm" icon="document-text" <flux:button variant="primary" color="yellow" size="sm" icon="document-text"
href="{{ route('studio.manage.stock_opname.manage', ['stockOpname' => $item->hash]) }}" href="{{ route('studio.stock.stock_opname.manage', ['stockOpname' => $item->hash]) }}"
wire:navigate> wire:navigate>
</flux:button> </flux:button>
</flux:tooltip> </flux:tooltip>

View File

@ -4,7 +4,7 @@
<flux:heading size="xl">{{ $pageTitle }}</flux:heading> <flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div> </div>
<div> <div>
<flux:button href="{{ route('studio.manage.stock_opname.index') }}" wire:navigate class="text-sm"> <flux:button href="{{ route('studio.stock.stock_opname.index') }}" wire:navigate class="text-sm">
Kembali Kembali
</flux:button> </flux:button>
</div> </div>

View File

@ -4,7 +4,7 @@
<flux:heading size="xl">{{ $pageTitle }}</flux:heading> <flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div> </div>
<div> <div>
<flux:button href="{{ route('studio.manage.stock_opname.index') }}" wire:navigate class="text-sm"> <flux:button href="{{ route('studio.stock.stock_opname.index') }}" wire:navigate class="text-sm">
Kembali Kembali
</flux:button> </flux:button>
</div> </div>

View File

@ -4,7 +4,7 @@
<flux:heading size="xl">{{ $pageTitle }}</flux:heading> <flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div> </div>
<div> <div>
<flux:button href="{{ route('studio.manage.stock_transfer.index') }}" wire:navigate class="text-sm"> <flux:button href="{{ route('studio.stock.stock_transfer.index') }}" wire:navigate class="text-sm">
Kembali Kembali
</flux:button> </flux:button>
</div> </div>

View File

@ -5,7 +5,7 @@
</div> </div>
@can('create stock transfer') @can('create stock transfer')
<div> <div>
<flux:button href="{{ route('studio.manage.stock_transfer.create') }}" variant="primary" wire:navigate <flux:button href="{{ route('studio.stock.stock_transfer.create') }}" variant="primary" wire:navigate
class="text-sm"> class="text-sm">
Tambah Tambah
</flux:button> </flux:button>

View File

@ -35,15 +35,6 @@
use App\Livewire\Studio\Manage\Order\Create as OrderCreate; use App\Livewire\Studio\Manage\Order\Create as OrderCreate;
use App\Livewire\Studio\Manage\Order\Index as OrderIndex; use App\Livewire\Studio\Manage\Order\Index as OrderIndex;
use App\Livewire\Studio\Manage\Order\Show as OrderShow; use App\Livewire\Studio\Manage\Order\Show as OrderShow;
use App\Livewire\Studio\Manage\Purchase\Create as PurchaseCreate;
use App\Livewire\Studio\Manage\Purchase\Index as PurchaseIndex;
use App\Livewire\Studio\Manage\Restock\Create as RestockCreate;
use App\Livewire\Studio\Manage\Restock\Index as RestockIndex;
use App\Livewire\Studio\Manage\StockOpname\Index as StockOpnameIndex;
use App\Livewire\Studio\Manage\StockOpname\Manage as StockOpnameManage;
use App\Livewire\Studio\Manage\StockOpname\Show as StockOpnameShow;
use App\Livewire\Studio\Manage\StockTransfer\Create as StockTransferCreate;
use App\Livewire\Studio\Manage\StockTransfer\Index as StockTransferIndex;
use App\Livewire\Studio\Master\Category as CategoryComponent; use App\Livewire\Studio\Master\Category as CategoryComponent;
use App\Livewire\Studio\Master\Formula as FormulaComponent; use App\Livewire\Studio\Master\Formula as FormulaComponent;
use App\Livewire\Studio\Master\Outlet\Create as OutletCreate; use App\Livewire\Studio\Master\Outlet\Create as OutletCreate;
@ -56,6 +47,15 @@
use App\Livewire\Studio\Master\Warehouse\Show as WarehouseShow; use App\Livewire\Studio\Master\Warehouse\Show as WarehouseShow;
use App\Livewire\Studio\Setting\Account as AccountComponent; use App\Livewire\Studio\Setting\Account as AccountComponent;
use App\Livewire\Studio\Setting\Application as ApplicationComponent; use App\Livewire\Studio\Setting\Application as ApplicationComponent;
use App\Livewire\Studio\Stock\Purchase\Create as PurchaseCreate;
use App\Livewire\Studio\Stock\Purchase\Index as PurchaseIndex;
use App\Livewire\Studio\Stock\Restock\Create as RestockCreate;
use App\Livewire\Studio\Stock\Restock\Index as RestockIndex;
use App\Livewire\Studio\Stock\StockOpname\Index as StockOpnameIndex;
use App\Livewire\Studio\Stock\StockOpname\Manage as StockOpnameManage;
use App\Livewire\Studio\Stock\StockOpname\Show as StockOpnameShow;
use App\Livewire\Studio\Stock\StockTransfer\Create as StockTransferCreate;
use App\Livewire\Studio\Stock\StockTransfer\Index as StockTransferIndex;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::middleware('auth')->prefix('studio')->group(function () { Route::middleware('auth')->prefix('studio')->group(function () {
@ -164,6 +164,14 @@
Route::get('/{order}/show', OrderShow::class)->name('show')->middleware('can:show order'); Route::get('/{order}/show', OrderShow::class)->name('show')->middleware('can:show order');
}); });
Route::prefix('articles')->name('article.')->group(function () {
Route::get('/', ArticleIndex::class)->name('index')->middleware('can:view article');
Route::get('/create', ArticleCreate::class)->name('create')->middleware('can:create article');
Route::get('/{article}/edit', ArticleEdit::class)->name('edit')->middleware('can:update article');
});
});
Route::prefix('stock')->name('studio.stock.')->group(function () {
Route::prefix('purchases')->name('purchase.')->group(function () { Route::prefix('purchases')->name('purchase.')->group(function () {
Route::get('/', PurchaseIndex::class)->name('index')->middleware('can:view purchase'); Route::get('/', PurchaseIndex::class)->name('index')->middleware('can:view purchase');
Route::get('/create', PurchaseCreate::class)->name('create')->middleware('can:create purchase'); Route::get('/create', PurchaseCreate::class)->name('create')->middleware('can:create purchase');
@ -184,12 +192,6 @@
Route::get('/{stockOpname}/show', StockOpnameShow::class)->name('show')->middleware('can:show stock opname'); Route::get('/{stockOpname}/show', StockOpnameShow::class)->name('show')->middleware('can:show stock opname');
Route::get('/{stockOpname}/manage', StockOpnameManage::class)->name('manage')->middleware('can:manage stock opname'); Route::get('/{stockOpname}/manage', StockOpnameManage::class)->name('manage')->middleware('can:manage stock opname');
}); });
Route::prefix('articles')->name('article.')->group(function () {
Route::get('/', ArticleIndex::class)->name('index')->middleware('can:view article');
Route::get('/create', ArticleCreate::class)->name('create')->middleware('can:create article');
Route::get('/{article}/edit', ArticleEdit::class)->name('edit')->middleware('can:update article');
});
}); });
Route::prefix('information')->name('studio.information.')->group(function () { Route::prefix('information')->name('studio.information.')->group(function () {

View File

@ -1,7 +1,7 @@
<?php <?php
use App\Livewire\Studio\Manage\Purchase\Create; use App\Livewire\Studio\Stock\Purchase\Create;
use App\Livewire\Studio\Manage\Purchase\Index; use App\Livewire\Studio\Stock\Purchase\Index;
use App\Models\Bottle; use App\Models\Bottle;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\Product; use App\Models\Product;
@ -28,14 +28,14 @@
it('renders the purchase index page', function () { it('renders the purchase index page', function () {
$this->actingAs($this->user) $this->actingAs($this->user)
->get(route('studio.manage.purchase.index')) ->get(route('studio.stock.purchase.index'))
->assertOk() ->assertOk()
->assertSeeLivewire(Index::class); ->assertSeeLivewire(Index::class);
}); });
it('renders the purchase create page', function () { it('renders the purchase create page', function () {
$this->actingAs($this->user) $this->actingAs($this->user)
->get(route('studio.manage.purchase.create')) ->get(route('studio.stock.purchase.create'))
->assertOk() ->assertOk()
->assertSeeLivewire(Create::class); ->assertSeeLivewire(Create::class);
}); });
@ -162,7 +162,7 @@
->set('form.invoice_number', 'INV-001') ->set('form.invoice_number', 'INV-001')
->call('save') ->call('save')
->assertHasNoErrors() ->assertHasNoErrors()
->assertRedirect(route('studio.manage.purchase.index', [ ->assertRedirect(route('studio.stock.purchase.index', [
'notification' => 'Belanja berhasil ditambahkan.', 'notification' => 'Belanja berhasil ditambahkan.',
])); ]));
@ -276,10 +276,10 @@
$this->user->permissions()->detach(); $this->user->permissions()->detach();
$this->actingAs($this->user) $this->actingAs($this->user)
->get(route('studio.manage.purchase.index')) ->get(route('studio.stock.purchase.index'))
->assertForbidden(); ->assertForbidden();
$this->actingAs($this->user) $this->actingAs($this->user)
->get(route('studio.manage.purchase.create')) ->get(route('studio.stock.purchase.create'))
->assertForbidden(); ->assertForbidden();
}); });

View File

@ -1,6 +1,6 @@
<?php <?php
use App\Livewire\Studio\Manage\Restock\Create; use App\Livewire\Studio\Stock\Restock\Create;
use App\Models\Bottle; use App\Models\Bottle;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\Product; use App\Models\Product;
@ -84,7 +84,7 @@
->call('addItem', 'botol') ->call('addItem', 'botol')
->call('save') ->call('save')
->assertRedirect(route('studio.manage.restock.index', ['notification' => 'Restock berhasil diproses.'])); ->assertRedirect(route('studio.stock.restock.index', ['notification' => 'Restock berhasil diproses.']));
// Verify DB records // Verify DB records
$this->assertDatabaseHas('restocks', [ $this->assertDatabaseHas('restocks', [

View File

@ -1,6 +1,6 @@
<?php <?php
use App\Livewire\Studio\Manage\Restock\Index; use App\Livewire\Studio\Stock\Restock\Index;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\Restock; use App\Models\Restock;
use App\Models\Warehouse; use App\Models\Warehouse;

View File

@ -1,7 +1,7 @@
<?php <?php
use App\Enums\StockOpnameStatus; use App\Enums\StockOpnameStatus;
use App\Livewire\Studio\Manage\StockOpname\Index; use App\Livewire\Studio\Stock\StockOpname\Index;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\StockOpname; use App\Models\StockOpname;
use App\Models\StockOpnameItem; use App\Models\StockOpnameItem;

View File

@ -1,7 +1,7 @@
<?php <?php
use App\Enums\StockOpnameStatus; use App\Enums\StockOpnameStatus;
use App\Livewire\Studio\Manage\StockOpname\Manage; use App\Livewire\Studio\Stock\StockOpname\Manage;
use App\Models\Perfume; use App\Models\Perfume;
use App\Models\StockOpname; use App\Models\StockOpname;
use App\Models\StockOpnameItem; use App\Models\StockOpnameItem;