fix: profit loss report issue

This commit is contained in:
harshjagad20
2021-12-08 12:24:25 +05:30
parent e8b4339237
commit c0c5f42ba1
2 changed files with 18 additions and 5 deletions

View File

@ -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,

View File

@ -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);