From c0c5f42ba1b29109e22d3dd0ae21f1b6a36cce10 Mon Sep 17 00:00:00 2001 From: harshjagad20 Date: Wed, 8 Dec 2021 12:24:25 +0530 Subject: [PATCH] fix: profit loss report issue --- .../V1/Admin/Report/ProfitLossReportController.php | 9 ++++----- app/Models/Payment.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php index d8ff06f1..49fe99d6 100644 --- a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php @@ -7,7 +7,7 @@ use Crater\Http\Controllers\Controller; use Crater\Models\Company; use Crater\Models\CompanySetting; use Crater\Models\Expense; -use Crater\Models\Invoice; +use Crater\Models\Payment; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use PDF; @@ -31,10 +31,9 @@ class ProfitLossReportController extends Controller App::setLocale($locale); - $invoicesAmount = Invoice::whereCompanyId($company->id) + $paymentsAmount = Payment::whereCompanyId($company->id) ->applyFilters($request->only(['from_date', 'to_date'])) - ->wherePaidStatus(Invoice::STATUS_PAID) - ->sum('base_total'); + ->sum('base_amount'); $expenseCategories = Expense::with('category') ->whereCompanyId($company->id) @@ -68,7 +67,7 @@ class ProfitLossReportController extends Controller view()->share([ 'company' => $company, - 'income' => $invoicesAmount, + 'income' => $paymentsAmount, 'expenseCategories' => $expenseCategories, 'totalExpense' => $totalAmount, 'colorSettings' => $colorSettings, diff --git a/app/Models/Payment.php b/app/Models/Payment.php index a3c572ad..559c8eb5 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -312,6 +312,12 @@ class Payment extends Model implements HasMedia $query->whereCustomer($filters->get('customer_id')); } + if ($filters->get('from_date') && $filters->get('to_date')) { + $start = Carbon::createFromFormat('Y-m-d', $filters->get('from_date')); + $end = Carbon::createFromFormat('Y-m-d', $filters->get('to_date')); + $query->paymentsBetween($start, $end); + } + if ($filters->get('orderByField') || $filters->get('orderBy')) { $field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number'; $orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc'; @@ -319,6 +325,14 @@ class Payment extends Model implements HasMedia } } + public function scopePaymentsBetween($query, $start, $end) + { + return $query->whereBetween( + 'payments.payment_date', + [$start->format('Y-m-d'), $end->format('Y-m-d')] + ); + } + public function scopeWhereOrder($query, $orderByField, $orderBy) { $query->orderBy($orderByField, $orderBy);