[PROMOTE] 晉升 dev 到 demo

1. [FIX] 修正機台報表因 joinSub 漏掉無付費營業額機台出貨數量的問題
This commit is contained in:
sky121113 2026-06-05 21:50:37 +08:00
commit c9fa5ea5e2

View File

@ -181,7 +181,7 @@ class AnalysisController extends Controller
// 聯結機台與子查詢,取得最終統計資料
$mainQuery = \Illuminate\Support\Facades\DB::table('machines as m')
->joinSub($salesQuery, 'sq', 'sq.machine_id', '=', 'm.id')
->leftJoinSub($salesQuery, 'sq', 'sq.machine_id', '=', 'm.id')
->leftJoinSub($dispenseQuery, 'dq', 'dq.machine_id', '=', 'm.id')
->select([
'm.id as machine_id',
@ -191,7 +191,11 @@ class AnalysisController extends Controller
\Illuminate\Support\Facades\DB::raw('CAST(COALESCE(sq.total_sales, 0) as DECIMAL(10,2)) as total_sales'),
\Illuminate\Support\Facades\DB::raw('CAST(COALESCE(dq.total_cost, 0) as DECIMAL(10,2)) as total_cost'),
\Illuminate\Support\Facades\DB::raw('CAST((COALESCE(sq.total_sales, 0) - COALESCE(dq.total_cost, 0)) as DECIMAL(10,2)) as total_profit')
]);
])
->where(function($query) {
$query->whereNotNull('sq.total_sales')
->orWhereNotNull('dq.total_quantity');
});
if ($effectiveCompanyId) {
$mainQuery->where('m.company_id', $effectiveCompanyId);