نوب
3 سال پیش توسط نوب مطرح شد
0 پاسخ

کمک برای ساده سازی کد groupBy

@mohaligateway
@ali.bayat
@juza66
@Rp76
سلام دوستان
من یه کد نوشتم که لیست بدهکاران و میزان بدهیشونو نشون میده
آیا راهی هست که این کد کمتر و تمیزتر بشه ؟

برای نمایش میزان بدهی ها مجبور شدم توی حلقه استفاده شده در ویو بیام و دوباره کدی برای جمع کردن ستون sum_price بنویسم.
میخوام بدونم آیا راهی هست که کد کوتاهتر و در صورت امکان به داخل متد کنترلر بره ؟
اونجا تست میکنم کد را فقط جمع یک مشتری را میده

قسمت کنترلر

    public function debtors()
    {
        $all_debtors = work::select('status','sum_price')->where('status','unpaid')->sum('sum_price');
        $numToWord = new numToWord();
        $debtors =  work::where('user_id',auth()->user()->id)
            ->where('status','unpaid')
            ->groupBy('customer_id')
            ->get();
        return view('dashboard.admin.debtors.index', compact('all_debtors','debtors','numToWord'));
    }

قسمت view

@extends('dashboard.publics.app')
@section('breadcrumb')
    <li class="breadcrumb-item active">لیست بدهکاران</li>
@endsection
@section('content')
    <div class="row">
        <div class="col-12">
            <div class="card">
                <div class="card-header">
                    <div class="alert alert-dark mb-1 text-center">
                    کل مبلغ بدهی مشتریان : <span class="font-size-large">{{number_format($all_debtors)}}</span> ریال &nbsp;&nbsp;&nbsp; به حروف :  {{$numToWord->numberToWords($all_debtors)}} ریال</div>
                </div>

                <div class="card-content">
                    <div class="card-body">
                        <table class="table table-bordered table-striped">
                            <thead>
                            <tr class="bg-dark text-white">
                                <td>#</td>
                                <td>مشتری</td>
                                <td>تماس</td>
                                <td>میزان بدهی (ریال)</td>
                                <td>نام دفتر</td>
                            </tr>
                            </thead>
                            <tbody>
                            @php( $i=1)
                            @foreach($debtors as $debtor)
                                @php(
                                        $bedehi = \App\Models\work::select('id','customer_id','status','sum_price')
                                        ->where('customer_id',$debtor->customer_id)
                                        ->where('status','unpaid')
                                        ->sum('sum_price')
                                    )
                                <tr>
                                    <td data-label="#" style="width: auto">{{$i++}}</td>
                                    <td data-label="مشتری">

                                        {{$debtor->customer->name}} {{$debtor->customer->family}}
                                        @if($debtor->customer->company_name)
                                            ( {{$debtor->customer->company_name}} )
                                        @endif
                                    </td>
                                    <td>@if($debtor->customer->mobile) {{$debtor->customer->mobile}} @else {{$debtor->customer->phone}} @endif</td>
                                    <td>
                                        {{number_format($bedehi)}}
                                        <br>
                                        {{$numToWord->numberToWords($bedehi)}} ریال
                                    </td>
                                    <td>
                                        <a href="{{route('work_list')}}?customer={{$debtor->customer_id}}&product=&start_date=&end_date=&type=no" class="btn btn-warning btn-sm">مشاهده موارد</a>
                                    </td>
                                </tr>
                            @endforeach
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>

@endsection

ثبت پرسش جدید

به همدیگه کمک کنیم

به نوب کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام