improved performance

This commit is contained in:
Denis Duliçi 2020-06-06 21:47:02 +03:00
parent f003f99d71
commit 657c86a29c
11 changed files with 22 additions and 22 deletions

View File

@ -171,7 +171,7 @@ abstract class DocumentModel extends Model
{ {
$amount = $this->amount; $amount = $this->amount;
$this->totals()->where('code', 'tax')->each(function ($tax) use(&$amount) { collect($this->totals)->where('code', 'tax')->each(function ($tax) use(&$amount) {
$amount -= $tax->amount; $amount -= $tax->amount;
}); });

View File

@ -28,7 +28,7 @@ class Items extends Controller
*/ */
public function index() public function index()
{ {
$items = Item::with(['category', 'tax'])->collect(); $items = Item::with('category')->collect();
return view('common.items.index', compact('items')); return view('common.items.index', compact('items'));
} }

View File

@ -37,7 +37,7 @@ class Bills extends Controller
*/ */
public function index() public function index()
{ {
$bills = Bill::with(['contact', 'items', 'histories', 'transactions'])->collect(['billed_at'=> 'desc']); $bills = Bill::with('contact')->collect(['billed_at'=> 'desc']);
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id'); $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -30,7 +30,7 @@ class Payments extends Controller
*/ */
public function index() public function index()
{ {
$payments = Transaction::expense()->with(['account', 'category', 'contact'])->isNotTransfer()->collect(['paid_at'=> 'desc']); $payments = Transaction::with(['account', 'category', 'contact'])->expense()->isNotTransfer()->collect(['paid_at'=> 'desc']);
$vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id'); $vendors = Contact::vendor()->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -38,7 +38,7 @@ class Invoices extends Controller
*/ */
public function index() public function index()
{ {
$invoices = Invoice::with(['contact', 'items', 'histories', 'transactions'])->collect(['invoice_number'=> 'desc']); $invoices = Invoice::with('contact')->collect(['invoice_number'=> 'desc']);
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id'); $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -30,7 +30,7 @@ class Revenues extends Controller
*/ */
public function index() public function index()
{ {
$revenues = Transaction::income()->with(['account', 'category', 'contact'])->isNotTransfer()->collect(['paid_at'=> 'desc']); $revenues = Transaction::with(['account', 'category', 'contact'])->income()->isNotTransfer()->collect(['paid_at'=> 'desc']);
$customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id'); $customers = Contact::customer()->enabled()->orderBy('name')->pluck('name', 'id');

View File

@ -30,7 +30,7 @@ class ExpenseSummary extends Report
public function setData() public function setData()
{ {
$transactions = $this->applyFilters(Transaction::expense()->isNotTransfer(), ['date_field' => 'paid_at']); $transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']);
switch ($this->model->settings->basis) { switch ($this->model->settings->basis) {
case 'cash': case 'cash':
@ -41,7 +41,7 @@ class ExpenseSummary extends Report
break; break;
default: default:
// Bills // Bills
$bills = $this->applyFilters(Bill::accrued(), ['date_field' => 'billed_at'])->get(); $bills = $this->applyFilters(Bill::with(['recurring', 'transactions'])->accrued(), ['date_field' => 'billed_at'])->get();
Recurring::reflect($bills, 'billed_at'); Recurring::reflect($bills, 'billed_at');
$this->setTotals($bills, 'billed_at'); $this->setTotals($bills, 'billed_at');

View File

@ -16,8 +16,8 @@ class IncomeExpenseSummary extends Report
public function setData() public function setData()
{ {
$income_transactions = $this->applyFilters(Transaction::income()->isNotTransfer(), ['date_field' => 'paid_at']); $income_transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']);
$expense_transactions = $this->applyFilters(Transaction::expense()->isNotTransfer(), ['date_field' => 'paid_at']); $expense_transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']);
switch ($this->model->settings->basis) { switch ($this->model->settings->basis) {
case 'cash': case 'cash':
@ -32,7 +32,7 @@ class IncomeExpenseSummary extends Report
break; break;
default: default:
// Invoices // Invoices
$invoices = $this->applyFilters(Invoice::accrued(), ['date_field' => 'invoiced_at'])->get(); $invoices = $this->applyFilters(Invoice::with(['recurring', 'transactions'])->accrued(), ['date_field' => 'invoiced_at'])->get();
Recurring::reflect($invoices, 'invoiced_at'); Recurring::reflect($invoices, 'invoiced_at');
$this->setTotals($invoices, 'invoiced_at', true); $this->setTotals($invoices, 'invoiced_at', true);
@ -42,7 +42,7 @@ class IncomeExpenseSummary extends Report
$this->setTotals($revenues, 'paid_at', true); $this->setTotals($revenues, 'paid_at', true);
// Bills // Bills
$bills = $this->applyFilters(Bill::accrued(), ['date_field' => 'billed_at'])->get(); $bills = $this->applyFilters(Bill::with(['recurring', 'transactions'])->accrued(), ['date_field' => 'billed_at'])->get();
Recurring::reflect($bills, 'bill', 'billed_at'); Recurring::reflect($bills, 'bill', 'billed_at');
$this->setTotals($bills, 'billed_at', true); $this->setTotals($bills, 'billed_at', true);

View File

@ -30,7 +30,7 @@ class IncomeSummary extends Report
public function setData() public function setData()
{ {
$transactions = $this->applyFilters(Transaction::income()->isNotTransfer(), ['date_field' => 'paid_at']); $transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']);
switch ($this->model->settings->basis) { switch ($this->model->settings->basis) {
case 'cash': case 'cash':
@ -41,7 +41,7 @@ class IncomeSummary extends Report
break; break;
default: default:
// Invoices // Invoices
$invoices = $this->applyFilters(Invoice::accrued(), ['date_field' => 'invoiced_at'])->get(); $invoices = $this->applyFilters(Invoice::with(['recurring', 'transactions'])->accrued(), ['date_field' => 'invoiced_at'])->get();
Recurring::reflect($invoices, 'invoiced_at'); Recurring::reflect($invoices, 'invoiced_at');
$this->setTotals($invoices, 'invoiced_at'); $this->setTotals($invoices, 'invoiced_at');

View File

@ -35,8 +35,8 @@ class ProfitLoss extends Report
public function setData() public function setData()
{ {
$income_transactions = $this->applyFilters(Transaction::income()->isNotTransfer(), ['date_field' => 'paid_at']); $income_transactions = $this->applyFilters(Transaction::with('recurring')->income()->isNotTransfer(), ['date_field' => 'paid_at']);
$expense_transactions = $this->applyFilters(Transaction::expense()->isNotTransfer(), ['date_field' => 'paid_at']); $expense_transactions = $this->applyFilters(Transaction::with('recurring')->expense()->isNotTransfer(), ['date_field' => 'paid_at']);
switch ($this->model->settings->basis) { switch ($this->model->settings->basis) {
case 'cash': case 'cash':
@ -51,7 +51,7 @@ class ProfitLoss extends Report
break; break;
default: default:
// Invoices // Invoices
$invoices = $this->applyFilters(Invoice::accrued(), ['date_field' => 'invoiced_at'])->get(); $invoices = $this->applyFilters(Invoice::with(['recurring', 'transactions', 'totals'])->accrued(), ['date_field' => 'invoiced_at'])->get();
Recurring::reflect($invoices, 'invoiced_at'); Recurring::reflect($invoices, 'invoiced_at');
$this->setTotals($invoices, 'invoiced_at', true, $this->tables['income'], false); $this->setTotals($invoices, 'invoiced_at', true, $this->tables['income'], false);
@ -61,7 +61,7 @@ class ProfitLoss extends Report
$this->setTotals($revenues, 'paid_at', true, $this->tables['income'], false); $this->setTotals($revenues, 'paid_at', true, $this->tables['income'], false);
// Bills // Bills
$bills = $this->applyFilters(Bill::accrued(), ['date_field' => 'billed_at'])->get(); $bills = $this->applyFilters(Bill::with(['recurring', 'transactions', 'totals'])->accrued(), ['date_field' => 'billed_at'])->get();
Recurring::reflect($bills, 'bill', 'billed_at'); Recurring::reflect($bills, 'bill', 'billed_at');
$this->setTotals($bills, 'billed_at', true, $this->tables['expense'], false); $this->setTotals($bills, 'billed_at', true, $this->tables['expense'], false);

View File

@ -42,22 +42,22 @@ class TaxSummary extends Report
switch ($this->model->settings->basis) { switch ($this->model->settings->basis) {
case 'cash': case 'cash':
// Invoice Payments // Invoice Payments
$invoices = $this->applyFilters(Transaction::with(['invoice', 'invoice.totals'])->income()->isDocument()->isNotTransfer(), ['date_field' => 'paid_at'])->get(); $invoices = $this->applyFilters(Transaction::with(['recurring', 'invoice', 'invoice.totals'])->income()->isDocument()->isNotTransfer(), ['date_field' => 'paid_at'])->get();
$this->setTotals($invoices, 'paid_at'); $this->setTotals($invoices, 'paid_at');
// Bill Payments // Bill Payments
$bills = $this->applyFilters(Transaction::with(['bill', 'bill.totals'])->expense()->isDocument()->isNotTransfer(), ['date_field' => 'paid_at'])->get(); $bills = $this->applyFilters(Transaction::with(['recurring', 'bill', 'bill.totals'])->expense()->isDocument()->isNotTransfer(), ['date_field' => 'paid_at'])->get();
$this->setTotals($bills, 'paid_at'); $this->setTotals($bills, 'paid_at');
break; break;
default: default:
// Invoices // Invoices
$invoices = $this->applyFilters(Invoice::accrued(), ['date_field' => 'invoiced_at'])->get(); $invoices = $this->applyFilters(Invoice::with(['recurring', 'transactions', 'totals'])->accrued(), ['date_field' => 'invoiced_at'])->get();
Recurring::reflect($invoices, 'invoiced_at'); Recurring::reflect($invoices, 'invoiced_at');
$this->setTotals($invoices, 'invoiced_at'); $this->setTotals($invoices, 'invoiced_at');
// Bills // Bills
$bills = $this->applyFilters(Bill::accrued(), ['date_field' => 'billed_at'])->get(); $bills = $this->applyFilters(Bill::with(['recurring', 'transactions', 'totals'])->accrued(), ['date_field' => 'billed_at'])->get();
Recurring::reflect($bills, 'billed_at'); Recurring::reflect($bills, 'billed_at');
$this->setTotals($bills, 'billed_at'); $this->setTotals($bills, 'billed_at');