mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 04:01:10 -04:00
fix: profit loss report issue
This commit is contained in:
@ -7,7 +7,7 @@ use Crater\Http\Controllers\Controller;
|
|||||||
use Crater\Models\Company;
|
use Crater\Models\Company;
|
||||||
use Crater\Models\CompanySetting;
|
use Crater\Models\CompanySetting;
|
||||||
use Crater\Models\Expense;
|
use Crater\Models\Expense;
|
||||||
use Crater\Models\Invoice;
|
use Crater\Models\Payment;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use PDF;
|
use PDF;
|
||||||
@ -31,10 +31,9 @@ class ProfitLossReportController extends Controller
|
|||||||
|
|
||||||
App::setLocale($locale);
|
App::setLocale($locale);
|
||||||
|
|
||||||
$invoicesAmount = Invoice::whereCompanyId($company->id)
|
$paymentsAmount = Payment::whereCompanyId($company->id)
|
||||||
->applyFilters($request->only(['from_date', 'to_date']))
|
->applyFilters($request->only(['from_date', 'to_date']))
|
||||||
->wherePaidStatus(Invoice::STATUS_PAID)
|
->sum('base_amount');
|
||||||
->sum('base_total');
|
|
||||||
|
|
||||||
$expenseCategories = Expense::with('category')
|
$expenseCategories = Expense::with('category')
|
||||||
->whereCompanyId($company->id)
|
->whereCompanyId($company->id)
|
||||||
@ -68,7 +67,7 @@ class ProfitLossReportController extends Controller
|
|||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'company' => $company,
|
'company' => $company,
|
||||||
'income' => $invoicesAmount,
|
'income' => $paymentsAmount,
|
||||||
'expenseCategories' => $expenseCategories,
|
'expenseCategories' => $expenseCategories,
|
||||||
'totalExpense' => $totalAmount,
|
'totalExpense' => $totalAmount,
|
||||||
'colorSettings' => $colorSettings,
|
'colorSettings' => $colorSettings,
|
||||||
|
|||||||
@ -312,6 +312,12 @@ class Payment extends Model implements HasMedia
|
|||||||
$query->whereCustomer($filters->get('customer_id'));
|
$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')) {
|
if ($filters->get('orderByField') || $filters->get('orderBy')) {
|
||||||
$field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number';
|
$field = $filters->get('orderByField') ? $filters->get('orderByField') : 'sequence_number';
|
||||||
$orderBy = $filters->get('orderBy') ? $filters->get('orderBy') : 'desc';
|
$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)
|
public function scopeWhereOrder($query, $orderByField, $orderBy)
|
||||||
{
|
{
|
||||||
$query->orderBy($orderByField, $orderBy);
|
$query->orderBy($orderByField, $orderBy);
|
||||||
|
|||||||
Reference in New Issue
Block a user