diff --git a/app/Enums/CuttingStatus.php b/app/Enums/CuttingStatus.php index 770e32f..9d56305 100644 --- a/app/Enums/CuttingStatus.php +++ b/app/Enums/CuttingStatus.php @@ -65,29 +65,7 @@ public function availableActions(): array 'icon_only' => false, ], ], - self::COMPLETED => [ - [ - 'status' => self::VERIFIED->value, - 'label' => 'Verifikasi', - 'destructive' => false, - 'permission' => Permission::CUTTINGS_VERIFY->value, - 'icon_only' => false, - ], - [ - 'status' => self::REJECTED->value, - 'label' => 'Tolak', - 'destructive' => true, - 'permission' => Permission::CUTTINGS_REJECT->value, - 'icon_only' => false, - ], - [ - 'status' => self::IN_PROGRESS->value, - 'label' => 'Kembalikan ke Proses', - 'destructive' => true, - 'permission' => Permission::CUTTINGS_REJECT->value, - 'icon_only' => false, - ], - ], + self::COMPLETED => [], self::REJECTED => [ [ 'status' => self::IN_PROGRESS->value, diff --git a/app/Http/Controllers/Admin/Manage/CuttingController.php b/app/Http/Controllers/Admin/Manage/CuttingController.php index 38c8331..2520fe3 100644 --- a/app/Http/Controllers/Admin/Manage/CuttingController.php +++ b/app/Http/Controllers/Admin/Manage/CuttingController.php @@ -31,7 +31,6 @@ public function index(Request $request): Response return Inertia::render('admin/manage/cuttings/Index', [ 'cuttings' => $this->cuttingService->paginateForIndex($tableQuery, $request->user()), 'inProgressCuttings' => $this->cuttingService->getInProgressCuttings($request->user()), - 'completedCuttings' => $this->cuttingService->getCompletedCuttings($request->user()), 'filters' => $this->dataTableFilters($tableQuery), ]); } diff --git a/app/Http/Controllers/Admin/Master/ProductController.php b/app/Http/Controllers/Admin/Master/ProductController.php index 8b51abc..1fb8a10 100644 --- a/app/Http/Controllers/Admin/Master/ProductController.php +++ b/app/Http/Controllers/Admin/Master/ProductController.php @@ -11,6 +11,7 @@ use App\Http\Requests\Admin\Master\RejectProductRequest; use App\Models\Product; use App\Models\ProductVariant; +use App\Services\Manage\CuttingService; use App\Services\Master\ProductService; use App\Support\Media\MediaPresenter; use Illuminate\Http\RedirectResponse; @@ -24,6 +25,7 @@ class ProductController extends Controller use ParsesDataTableQuery; public function __construct( + private readonly CuttingService $cuttingService, private readonly ProductService $productService, ) {} @@ -36,6 +38,7 @@ public function index(Request $request): Response return Inertia::render('admin/master/products/Index', [ 'products' => $this->productService->paginateForIndex($tableQuery, $isActive, $categoryId, $status), + 'completedCuttings' => $this->cuttingService->getCompletedCuttings($request->user()), 'outOfStockGroups' => $this->productService->outOfStockGroups(), 'stockWarningGroups' => $this->productService->stockWarningGroups(), 'categories' => $this->productService->categoryOptions(), diff --git a/resources/js/components/admin/manage/cuttings/CuttingGroupedTable.vue b/resources/js/components/admin/manage/cuttings/CuttingGroupedTable.vue index c0accb9..4a0ca59 100644 --- a/resources/js/components/admin/manage/cuttings/CuttingGroupedTable.vue +++ b/resources/js/components/admin/manage/cuttings/CuttingGroupedTable.vue @@ -206,9 +206,15 @@ function getGroupedResults(results: any[]): GroupedCuttingResults[] { {{ material.material_usage_formatted }} + + ({{ material.material_usage_cm_formatted }}) + {{ material.remaining_material_formatted }} + + ({{ material.remaining_material_cm_formatted }}) + diff --git a/resources/js/components/admin/master/products/CuttingVerificationSection.vue b/resources/js/components/admin/master/products/CuttingVerificationSection.vue new file mode 100644 index 0000000..c671f53 --- /dev/null +++ b/resources/js/components/admin/master/products/CuttingVerificationSection.vue @@ -0,0 +1,748 @@ + + +