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") +
+
+
+
+
+
+ + + +
+
+ + + + + + + + + + + + + + @foreach ($area as $row) + + + + + + + + + @endforeach + +
病区护理费用(元)手续费0.6%增值税6%实际收入(元)院方管理费6%
{{ $row->name }}{{ $row->order_total }}{{ $row->shouxufei }}{{ $row->zengshishui }}{{ $row->shijishouru }}{{ $row->guanlifei }}
+
+
+
+
+ + +@endsection diff --git a/routes/web.php b/routes/web.php index 6f65ed4..ac6b030 100644 --- a/routes/web.php +++ b/routes/web.php @@ -96,6 +96,8 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::get("orders/artboard", 'OrdersController@artboard'); Route::get("statistics/bed", 'StatisticsController@bed'); + Route::get("statistics/income", 'StatisticsController@income'); + Route::get("statistics/huli", 'StatisticsController@huli'); Route::get("statistics/overview", 'StatisticsController@overview'); Route::get("statistics/salary", 'StatisticsController@salary');