report可過濾client

This commit is contained in:
kroutony 2022-07-09 22:24:13 +08:00
parent 4c29eb106e
commit 851ad32aaf
2 changed files with 24 additions and 1 deletions

View File

@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Client;
use App\Models\Payment; use App\Models\Payment;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -25,6 +26,7 @@ private function groupAndSumPaymentsByYear($payments)
public function reports(Request $request) public function reports(Request $request)
{ {
$clients = Client::all();
$clientId = $request->get('client_id'); $clientId = $request->get('client_id');
$today = Carbon::today(); $today = Carbon::today();
$paymentQuery = Payment::whereBetween( $paymentQuery = Payment::whereBetween(
@ -32,10 +34,12 @@ public function reports(Request $request)
[$today->startOfYear()->toDateTimeString(), $today->endOfYear()->toDateTimeString()] [$today->startOfYear()->toDateTimeString(), $today->endOfYear()->toDateTimeString()]
); );
$client = null;
if($clientId) { if($clientId) {
$paymentQuery->whereHas('project', function($query) use ($clientId) { $paymentQuery->whereHas('project', function($query) use ($clientId) {
return $query->where('client_id', '=', $clientId); return $query->where('client_id', '=', $clientId);
}); });
$client = Client::find($clientId);
} }
$paymentsInThisYear = $paymentQuery->get(); $paymentsInThisYear = $paymentQuery->get();
$thisYearPaymentGroup = $this->groupAndSumPaymentsByYear($paymentsInThisYear); $thisYearPaymentGroup = $this->groupAndSumPaymentsByYear($paymentsInThisYear);
@ -59,6 +63,6 @@ public function reports(Request $request)
'sum' => $lastYearPaymentGroup->sum(), 'sum' => $lastYearPaymentGroup->sum(),
], ],
]; ];
return view('reports', ['data' => $data]); return view('reports', ['data' => $data, 'client' => $client, 'clients' => $clients]);
} }
} }

View File

@ -4,6 +4,25 @@
<div class="container"> <div class="container">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-6"> <div class="col-6">
<div>
<form>
<div class="col">
<select name="client_id" class="form-control">
@foreach($clients as $client)
<option value="{{ $client->id }}">{{ $client->name }}</option>
@endforeach
</select>
</div>
<div class="col">
<button>搜尋</button>
</div>
</form>
</div>
@if($client)
<div>客戶: {{ $client->name }}</div>
@endif
今年 ({{ $data['thisYearPaymentGroup']['year'] }}) 總收入 {{ $data['thisYearPaymentGroup']['sum'] }} 今年 ({{ $data['thisYearPaymentGroup']['year'] }}) 總收入 {{ $data['thisYearPaymentGroup']['sum'] }}
<canvas id="myChart" width="400" height="400"></canvas> <canvas id="myChart" width="400" height="400"></canvas>
<script> <script>