| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Http\Controllers;
- use App\Owner;
- use App\OwnerLogisticFeeReport;
- use App\Services\common\ExportService;
- use App\Services\OwnerLogisticFeeReportService;
- use App\Services\UserService;
- use Illuminate\Http\Request;
- use Oursdreams\Export\Export;
- class OwnerLogisticFeeReportController extends Controller
- {
- /* @var OwnerLogisticFeeReportService $service */
- private $service;
- /* @var UserService $userService */
- private $userService;
- /**
- * OwnerLogisticFeeReportController constructor.
- */
- public function __construct()
- {
- $this->middleware('auth');
- }
- /**
- * Display a listing of the resource.
- */
- public function index(Request $request)
- {
- $paginateParams = $request->input();
- list($permittingOwnerIds, $date, $owner_id) = $this->getRequestParams($request);
- $reports = $this->service->getRecordPagination($owner_id, $date, $paginateParams);
- $recordTotal = $this->service->getRecordTotal($owner_id, $date);
- $owner = Owner::query()->selectRaw("name")->find($owner_id);
- $owners = Owner::query()->selectRaw("id,name")->whereIn('id', $permittingOwnerIds)->get();
- return view('finance.settlementBills.logisticFee.report.index', compact('reports', 'recordTotal', 'paginateParams', 'owners', 'owner'));
- }
- public function export(Request $request)
- {
- list($permittingOwnerIds, $date, $owner_id) = $this->getRequestParams($request);
- $query = $this->service->getSql($owner_id, $date);
- if (!$request->exists('checkAllSign')) {
- $query->whereIn('id', explode(',', $request['data']));
- }
- $reports = $query->get();
- $json = [];
- foreach ($reports as $report) {
- $json[] = [
- $report->logistic->name ?? '',
- $report->province,
- $report->initial_weight,
- $report->initial_amount,
- $report->additional_weight,
- $report->additional_amount,
- $report->fee,
- ];
- }
- $row = ['快递公司', '地区', '首重', '订单数', '续重', '续重合计', '(省份)合计'];
- return Export::make($row, $json, "快递费用合计");
- }
- /**
- * @param Request $request
- * @return array
- */
- private function getRequestParams(Request $request): array
- {
- $this->service = app('OwnerLogisticFeeReportService');
- $this->userService = app('UserService');
- $permittingOwnerIds = $this->userService->getPermittingOwnerIds(auth()->user());
- if (is_null($request->year) || is_null($request->month)) {
- $date = now()->subMonth()->startOfMonth()->toDateString();
- } else {
- $date = $request->year . '-' . $request->month . '-' . '01';
- }
- if (is_null($request->owner_id)) {
- $owner_id = $permittingOwnerIds[0];
- } else {
- $owner_id = $request->owner_id;
- }
- return array($permittingOwnerIds, $date, $owner_id);
- }
- }
|