Laravel - Совокупная сумма работает только на страницу - PullRequest
0 голосов
/ 09 июля 2019

В моем контроллере у меня есть этот код:

public function salesReport(Request $request)
    {

        $billings = DB::table('sales')
            ->select(
                'cust_code',
                'trans_id',
                DB::raw('created_at as created_date'), 'amount',)->orderByRaw('created_at DESC');

        if (isset($request->start_date) && isset($request->end_date)) {
            $billings = $billings->whereBetween('created_at', [$start_date . ' 00:00:00', $end_date . ' 23:59:59']);
            $render['start_date'] = $request->start_date;
            $render['end_date'] = $request->end_date;
        } elseif (isset($request->start_date)) {
            $billings = $billings->where('created_at', $request->start_date);
            $render['start_date'] = $request->start_date;
        }
        $billings = $billings->orderBy('created_at', 'DESC');
        $billings = $billings->paginate(15);
        $billings = $billings->appends($render);
        $data['billings'] = $billings;
        return view('report.bbnaijaonetimebillingsReport', $data);
    }

Я хочу выполнить совокупную сумму для суммы на основе выбранного элемента.

Я сделал это в представлении:

<td>{{ $billing->cust_code }}</td>
<td>{{ $billing->trans_id }}</td>
<td>{{ $billing->created_date }}</td>
<td>{{ $billing->amount }}</td>

Затем я использую это для выполнения совокупной суммы:

{{$ billings-> sum ('amount')}}

Но что я заметил, так это то, что он выполняет функцию суммирования для каждой нумерации страниц (отображается страница). Но я этого не хочу. Я хочу сумму для выбранных элементов, даже если есть 5 страниц, она должна суммировать все.

1 Ответ

0 голосов
/ 09 июля 2019

вы разбиваете на $ billings, поэтому вы получаете сумму разбитых на страницы объектов.Создайте другой объект, например $sumBillings, и вставьте другой запрос

    public function salesReport(Request $request)
    {

        $sumBillings = DB::table('sales')
        ->select(
           'cust_code', 
           'trans_id',
             DB::raw('created_at as created_date'),
           'amount',
      )               
     ->orderByRaw('created_at DESC')
        if(isset($request->start_date) && isset($request->end_date))
        {
            $sumBillings=$sumBillings->whereBetween('created_at',[$start_date.' 00:00:00',$end_date.' 23:59:59']);
            $render['start_date']=$request->start_date;
            $render['end_date']=$request->end_date;
        }elseif(isset($request->start_date))
        {
            $sumBillings=$sumBillings->where('created_at',$request->start_date);
            $render['start_date']=$request->start_date;
        }         
        $sumBillings= $sumBillings->orderBy('created_at','DESC');
        $sumBillings->get();
        $sumBillings= $sumBillings->appends($render);

$billings = DB::table('sales')
    ->select(
       'cust_code', 
       'trans_id',
         DB::raw('created_at as created_date'),
       'amount',
  )               
 ->orderByRaw('created_at DESC')
    if(isset($request->start_date) && isset($request->end_date))
    {
        $billings=$billings->whereBetween('created_at',[$start_date.' 00:00:00',$end_date.' 23:59:59']);
        $render['start_date']=$request->start_date;
        $render['end_date']=$request->end_date;
    }elseif(isset($request->start_date))
    {
        $billings=$billings->where('created_at',$request->start_date);
        $render['start_date']=$request->start_date;
    }         
    $billings= $billings->orderBy('created_at','DESC');
    $billings= $billings->paginate(15);
    $billings= $billings->appends($render);
    $data['billings'] = $billings; 

return view('report.bbnaijaonetimebillingsReport',$data)->with('sumBillings', $sumBillings);
.
...