From be9916850dafee0bef76d7e6abbf92e5c0a0ce0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sun, 22 Mar 2026 19:00:00 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[=EC=B6=9C=EA=B3=A0=EA=B4=80=EB=A6=AC]?= =?UTF-8?q?=20=EC=9E=AC=EA=B3=B5=ED=92=88(STOCK)=20=EC=88=98=EC=A3=BC=20?= =?UTF-8?q?=EC=B6=9C=EA=B3=A0=EB=A5=BC=20=EB=AA=A9=EB=A1=9D/=ED=86=B5?= =?UTF-8?q?=EA=B3=84=EC=97=90=EC=84=9C=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - index: whereDoesntHave('order', STOCK) 조건 추가 - stats: base query에 동일 조건 적용 (전체/상태별/긴급/오늘예정) --- app/Services/ShipmentService.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/Services/ShipmentService.php b/app/Services/ShipmentService.php index b6c1e073..2556da19 100644 --- a/app/Services/ShipmentService.php +++ b/app/Services/ShipmentService.php @@ -20,7 +20,9 @@ public function index(array $params): LengthAwarePaginator $query = Shipment::query() ->where('tenant_id', $tenantId) - ->with(['items', 'vehicleDispatches', 'order.client', 'order.writer', 'workOrder', 'creator']); + ->with(['items', 'vehicleDispatches', 'order.client', 'order.writer', 'workOrder', 'creator']) + // 재공품(STOCK) 수주의 출고는 목록에서 제외 + ->whereDoesntHave('order', fn ($q) => $q->where('order_type_code', 'STOCK')); // 검색어 필터 if (! empty($params['search'])) { @@ -84,30 +86,34 @@ public function stats(): array { $tenantId = $this->tenantId(); - $total = Shipment::where('tenant_id', $tenantId)->count(); + // 재공품(STOCK) 수주 제외 base query + $base = fn () => Shipment::where('tenant_id', $tenantId) + ->whereDoesntHave('order', fn ($q) => $q->where('order_type_code', 'STOCK')); - $scheduled = Shipment::where('tenant_id', $tenantId) + $total = $base()->count(); + + $scheduled = $base() ->where('status', 'scheduled') ->count(); - $ready = Shipment::where('tenant_id', $tenantId) + $ready = $base() ->where('status', 'ready') ->count(); - $shipping = Shipment::where('tenant_id', $tenantId) + $shipping = $base() ->where('status', 'shipping') ->count(); - $completed = Shipment::where('tenant_id', $tenantId) + $completed = $base() ->where('status', 'completed') ->count(); - $urgent = Shipment::where('tenant_id', $tenantId) + $urgent = $base() ->where('priority', 'urgent') ->whereIn('status', ['scheduled', 'ready']) ->count(); - $todayScheduled = Shipment::where('tenant_id', $tenantId) + $todayScheduled = $base() ->whereDate('scheduled_date', now()) ->count();