Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-api into develop

This commit is contained in:
김보곤
2026-02-25 14:10:53 +09:00
36 changed files with 3904 additions and 2779 deletions

View File

@@ -6,6 +6,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\Order\CreateFromQuoteRequest;
use App\Http\Requests\Order\CreateProductionOrderRequest;
use App\Http\Requests\Order\OrderBulkDeleteRequest;
use App\Http\Requests\Order\StoreOrderRequest;
use App\Http\Requests\Order\UpdateOrderRequest;
use App\Http\Requests\Order\UpdateOrderStatusRequest;
@@ -66,6 +67,21 @@ public function update(UpdateOrderRequest $request, int $id)
}, __('message.order.updated'));
}
/**
* 일괄 삭제
*/
public function bulkDestroy(OrderBulkDeleteRequest $request)
{
return ApiResponse::handle(function () use ($request) {
$validated = $request->validated();
return $this->service->bulkDestroy(
$validated['ids'],
$validated['force'] ?? false
);
}, __('message.order.bulk_deleted'));
}
/**
* 삭제
*/
@@ -119,12 +135,25 @@ public function revertOrderConfirmation(int $id)
}
/**
* 생산지시 되돌리기 (작업지시 및 관련 데이터 삭제)
* 절곡 BOM 품목 재고 확인
*/
public function revertProductionOrder(int $id)
public function checkBendingStock(int $id)
{
return ApiResponse::handle(function () use ($id) {
return $this->service->revertProductionOrder($id);
return $this->service->checkBendingStockForOrder($id);
}, __('message.fetched'));
}
/**
* 생산지시 되돌리기 (작업지시 및 관련 데이터 삭제)
*/
public function revertProductionOrder(Request $request, int $id)
{
$force = $request->boolean('force', false);
$reason = $request->input('reason');
return ApiResponse::handle(function () use ($id, $force, $reason) {
return $this->service->revertProductionOrder($id, $force, $reason);
}, __('message.order.production_order_reverted'));
}
}

View File

@@ -22,6 +22,7 @@ public function index(Request $request): JsonResponse
$params = $request->only([
'search',
'item_type',
'item_category',
'status',
'location',
'sort_by',

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests\Order;
use Illuminate\Foundation\Http\FormRequest;
class OrderBulkDeleteRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'ids' => 'required|array|min:1',
'ids.*' => 'required|integer',
'force' => 'sometimes|boolean',
];
}
}

View File

@@ -24,8 +24,13 @@ public function rules(): array
'order_qty' => ['nullable', 'numeric', 'min:0'],
'order_unit' => ['nullable', 'string', 'max:20'],
'due_date' => ['nullable', 'date'],
'receiving_qty' => ['nullable', 'numeric', 'min:0'],
'receiving_date' => ['nullable', 'date'],
'lot_no' => ['nullable', 'string', 'max:50'],
'status' => ['nullable', 'string', 'in:order_completed,shipping,inspection_pending,receiving_pending'],
'remark' => ['nullable', 'string', 'max:1000'],
'manufacturer' => ['nullable', 'string', 'max:100'],
'material_no' => ['nullable', 'string', 'max:50'],
];
}

View File

@@ -23,7 +23,7 @@ public function rules(): array
'order_qty' => ['sometimes', 'numeric', 'min:0'],
'order_unit' => ['nullable', 'string', 'max:20'],
'due_date' => ['nullable', 'date'],
'status' => ['sometimes', 'string', 'in:order_completed,shipping,inspection_pending,receiving_pending,completed'],
'status' => ['sometimes', 'string', 'in:order_completed,shipping,inspection_pending,receiving_pending,completed,inspection_completed'],
'remark' => ['nullable', 'string', 'max:1000'],
'receiving_qty' => ['nullable', 'numeric', 'min:0'],
'receiving_date' => ['nullable', 'date'],
@@ -31,6 +31,8 @@ public function rules(): array
'inspection_status' => ['nullable', 'string', 'max:10'],
'inspection_date' => ['nullable', 'date'],
'inspection_result' => ['nullable', 'string', 'max:20'],
'manufacturer' => ['nullable', 'string', 'max:100'],
'material_no' => ['nullable', 'string', 'max:50'],
];
}