diff --git a/app/Http/Controllers/Api/LedgerController.php b/app/Http/Controllers/Api/LedgerController.php index 7e6a726..1302725 100644 --- a/app/Http/Controllers/Api/LedgerController.php +++ b/app/Http/Controllers/Api/LedgerController.php @@ -197,25 +197,38 @@ class LedgerController extends Controller ->where('date', $date) ->first(); - return [ - 'data' => $ledger ? $this->prepareLedger($ledger) : null, - ]; - } + $items = []; + + if ($user->store->isLotteryStore()) { + /** @var \Illuminate\Database\Eloquent\Collection */ + $lotteryTypes = Keyword::filter(['parent_key' => 'lottery_type']) + ->oldest('sort') + ->get(); + + $ledgerItems = collect(); + if ($ledger) { + $ledgerItems = $ledger->items->keyBy('ledger_item_type_id'); + } + + $items = $lotteryTypes->map(function ($lotteryType) use ($ledgerItems) { + $ledgerItem = $ledgerItems->get($lotteryType->key); + return [ + 'id' => $lotteryType->key, + 'name' => $lotteryType->name, + 'sales' => $ledgerItem?->sales, + 'expenditure' => $ledgerItem?->expenditure, + ]; + })->all(); + } - protected function prepareLedger(Ledger $ledger) - { return [ - 'date' => $ledger->date, - 'items' => $ledger->items->map(fn ($item) => [ - 'id' => $item->ledger_item_type_id, - 'sales' => $item->sales, - 'expenditure' => $item->expenditure, - ]), - 'new_customers' => $ledger->new_customers, - 'sales' => $ledger->sales, - 'expenditure' => $ledger->expenditure, - 'handover_amount' => $ledger->handover_amount, - 'photos' => $ledger->photos, + 'date' => $date, + 'items' => $items, + 'new_customers' => $ledger?->new_customers, + 'sales' => $ledger?->sales, + 'expenditure' => $ledger?->expenditure, + 'handover_amount' => $ledger?->handover_amount, + 'photos' => $ledger?->photos ?: [], ]; } }