From ae0a279cf9a6b5a1ca27d041b094f1cf49eedbb5 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 27 Jun 2024 15:46:44 +0800 Subject: [PATCH] update --- .../Admin/StatisticsController.php | 64 +++++++++++++++++ .../views/admin/statistics/income.blade.php | 68 +++++++++++++++++++ routes/web.php | 2 + 3 files changed, 134 insertions(+) create mode 100755 resources/views/admin/statistics/income.blade.php diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index 5509319..ddff4f9 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -527,4 +527,68 @@ class StatisticsController extends CommonController return view($this->bladePath . ".bed", compact("area", "orderTotal", "totalBed", "project", "project_id", "month", "projects")); } + /** + * 收入统计 + * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function income() + { + $is_export = \request('is_export', 0); + $projects = $this->_checkProjects(); + if (!$projects->count()) { + return $this->error($this->noProjects); + } + $project_id = request()->project_id ?? $projects->first()->id; + $project = Project::find($project_id); + + $month = request()->month ?? date("Y-m"); + $months = $this->_getMonths(); + // 当月天数 + $days = date('t', strtotime($month)); + $area = Area::withCount('beds')->where('project_id', $project_id)->get(); + $beds = Bed::whereIn('area_id', $area->pluck('id'))->where('project_id', $project_id)->get(); + $totalBed = $beds->count(); + // 订单总数 + $orderTotal = Orders::where('project_id', $project_id) + ->where('created_at', 'like', '%' . $month . '%') + ->whereIn('bed_id', $beds->pluck('id')) + ->sum('total'); + foreach ($area as $item) { + $item->order_total = $orderTotal; + $item->shouxufei = $orderTotal * 0.006; + $item->zengshishui = $orderTotal * 0.06; + $item->shijishouru = $orderTotal - $item->shouxufei - $item->zengshishui; + $item->guanlifei = $item->shijishouru * 0.06; + } + + // 导出 + if ($is_export) { + $area = $area->toArray(); + $spreadsheet = new Spreadsheet(); + $sheet = $spreadsheet->getActiveSheet(); + $sheet->setCellValue('A1', '病区'); + $sheet->setCellValue('B1', '护理费用(元)'); + $sheet->setCellValue('C1', '手续费0.6%'); + $sheet->setCellValue('D1', '增值税6%'); + $sheet->setCellValue('E1', '实际收入(元)'); + $sheet->setCellValue('F1', '院方管理费6%'); + $count = count($area); //计算有多少条数据 + for ($i = 2; $i <= $count + 1; $i++) { + $sheet->setCellValue('A' . $i, $area[$i - 2]['name']); + $sheet->setCellValue('B' . $i, $area[$i - 2]['order_total']); + $sheet->setCellValue('C' . $i, $area[$i - 2]['shouxufei']); + $sheet->setCellValue('D' . $i, $area[$i - 2]['zengshishui']); + $sheet->setCellValue('E' . $i, $area[$i - 2]['shijishouru']); + $sheet->setCellValue('F' . $i, $area[$i - 2]['guanlifei']); + } + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment;filename="' . $project->name . '_' . date('YmdHis') . '.xlsx"'); + header('Cache-Control: max-age=0'); + $writer = new Xlsx($spreadsheet); + $writer->save('php://output'); + exit; + } + return view($this->bladePath . ".bed", compact("area", "orderTotal", "totalBed", "project", "project_id", "month", "projects")); + } + } diff --git a/resources/views/admin/statistics/income.blade.php b/resources/views/admin/statistics/income.blade.php new file mode 100755 index 0000000..aa6333c --- /dev/null +++ b/resources/views/admin/statistics/income.blade.php @@ -0,0 +1,68 @@ +@extends("admin.layouts.layout") + +@push("header") + +@endpush + +@section("content") +
| 病区 | +护理费用(元) | +手续费0.6% | +增值税6% | +实际收入(元) | +院方管理费6% | + +
|---|---|---|---|---|---|
| {{ $row->name }} | +{{ $row->order_total }} | +{{ $row->shouxufei }} | +{{ $row->zengshishui }} | +{{ $row->shijishouru }} | +{{ $row->guanlifei }} | +