diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index 340daed..ab65660 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -341,12 +341,14 @@ class StatisticsController extends CommonController public function memberBalanceByDate(Request $request) { + $is_export = $request->get('is_export', 0); $projects = $this->_checkProjects(); if (!$projects->count()) { return $this->error($this->noProjects); } $mode = $request->mode ?: 'customer'; $project_id = request()->project_id ?? $projects->first()->id; + $project = Project::find($project_id); $before_date = $request->before_date ?: date("Y-m-d"); $before_datetime = strtotime($before_date . " 23:59:59"); $before_datetime_text = date("Y-m-d H:i:s", $before_datetime); @@ -406,6 +408,45 @@ class StatisticsController extends CommonController "patient.name as patient_name", DB::raw("COALESCE(SUM(balance.money), 0) as balance"), ]); + + if ($is_export) { + $rows = $orderBalances->toArray(); + $spreadsheet = new Spreadsheet(); + $sheet = $spreadsheet->getActiveSheet(); + $sheet->setCellValue('A1', '项目名称'); + $sheet->setCellValue('B1', '时点'); + $sheet->setCellValue('C1', '订单号'); + $sheet->setCellValue('D1', '订单状态'); + $sheet->setCellValue('E1', '客户手机号'); + $sheet->setCellValue('F1', '联系人'); + $sheet->setCellValue('G1', '联系电话'); + $sheet->setCellValue('H1', '被陪护人'); + $sheet->setCellValue('I1', '服务开始'); + $sheet->setCellValue('J1', '服务结束'); + $sheet->setCellValue('K1', '时点余额'); + + $count = count($rows); + for ($i = 2; $i <= $count + 1; $i++) { + $row = $rows[$i - 2]; + $sheet->setCellValue('A' . $i, $row['project_name']); + $sheet->setCellValue('B' . $i, $row['point_time']); + $sheet->setCellValue('C' . $i, $row['serial']); + $sheet->setCellValue('D' . $i, $row['status_name']); + $sheet->setCellValue('E' . $i, $row['customer_mobile']); + $sheet->setCellValue('F' . $i, $row['contact']); + $sheet->setCellValue('G' . $i, $row['contact_mobile']); + $sheet->setCellValue('H' . $i, $row['patient_name']); + $sheet->setCellValue('I' . $i, $row['from_date']); + $sheet->setCellValue('J' . $i, $row['to_date']); + $sheet->setCellValue('K' . $i, $row['balance']); + } + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment;filename="' . ($project ? $project->name : '项目') . '_订单时点余额_' . date('YmdHis') . '.xlsx"'); + header('Cache-Control: max-age=0'); + $writer = new Xlsx($spreadsheet); + $writer->save('php://output'); + exit; + } } else { $customers = (new Customer()) ->whereNull("deleted_at") diff --git a/resources/views/admin/statistics/customer-balance.blade.php b/resources/views/admin/statistics/customer-balance.blade.php index c35e4ae..1f05f41 100755 --- a/resources/views/admin/statistics/customer-balance.blade.php +++ b/resources/views/admin/statistics/customer-balance.blade.php @@ -47,9 +47,7 @@ - @if(\App\Models\CommonModel::checkExport()) - - @endif + @endif @@ -133,7 +131,9 @@