close #1880 Fixed: Reports Not all categories are displayed

This commit is contained in:
Cüneyt Şentürk 2021-02-27 21:03:56 +03:00
parent e4a461ac89
commit 587dde8a3a
7 changed files with 69 additions and 36 deletions

View File

@ -51,49 +51,67 @@ abstract class Report
return $years; return $years;
} }
public function getAccounts() public function getAccounts($limit = false)
{ {
return Account::enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id')->toArray(); $model = Account::enabled()->orderBy('name');
if ($limit !== false) {
$model->take(setting('default.select_limit'));
} }
public function getItemCategories() return $model->pluck('name', 'id')->toArray();
{
return $this->getCategories('item');
} }
public function getIncomeCategories() public function getItemCategories($limit = false)
{ {
return $this->getCategories('income'); return $this->getCategories('item', $limit);
} }
public function getExpenseCategories() public function getIncomeCategories($limit = false)
{ {
return $this->getCategories('expense'); return $this->getCategories('income', $limit);
} }
public function getIncomeExpenseCategories() public function getExpenseCategories($limit = false)
{ {
return $this->getCategories(['income', 'expense']); return $this->getCategories('expense', $limit);
} }
public function getCategories($types) public function getIncomeExpenseCategories($limit = false)
{ {
return Category::type($types)->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id')->toArray(); return $this->getCategories(['income', 'expense'], $limit);
} }
public function getCustomers() public function getCategories($types, $limit = false)
{ {
return $this->getContacts($this->getCustomerTypes()); $model = Category::type($types)->orderBy('name');
if ($limit !== false) {
$model->take(setting('default.select_limit'));
} }
public function getVendors() return $model->pluck('name', 'id')->toArray();
{
return $this->getContacts($this->getVendorTypes());
} }
public function getContacts($types) public function getCustomers($limit = false)
{ {
return Contact::type($types)->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id')->toArray(); return $this->getContacts($this->getCustomerTypes(), $limit);
}
public function getVendors($limit = false)
{
return $this->getContacts($this->getVendorTypes(), $limit);
}
public function getContacts($types, $limit = false)
{
$model = Contact::type($types)->orderBy('name');
if ($limit !== false) {
$model->take(setting('default.select_limit'));
}
return $model->pluck('name', 'id')->toArray();
} }
public function applyDateFilter($event) public function applyDateFilter($event)

View File

@ -28,7 +28,8 @@ class AddAccounts extends Listener
return; return;
} }
$event->class->filters['accounts'] = $this->getAccounts(); // send true for add limit on search and filter..
$event->class->filters['accounts'] = $this->getAccounts(true);
$event->class->filters['routes']['accounts'] = 'accounts.index'; $event->class->filters['routes']['accounts'] = 'accounts.index';
} }
@ -74,14 +75,16 @@ class AddAccounts extends Listener
return; return;
} }
$all_accounts = $this->getAccounts();
if ($account_ids = $this->getSearchStringValue('account_id')) { if ($account_ids = $this->getSearchStringValue('account_id')) {
$accounts = explode(',', $account_ids); $accounts = explode(',', $account_ids);
$rows = collect($event->class->filters['accounts'])->filter(function ($value, $key) use ($accounts) { $rows = collect($all_accounts)->filter(function ($value, $key) use ($accounts) {
return in_array($key, $accounts); return in_array($key, $accounts);
}); });
} else { } else {
$rows = $event->class->filters['accounts']; $rows = $all_accounts;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);

View File

@ -27,7 +27,7 @@ class AddCustomers extends Listener
return; return;
} }
$event->class->filters['customers'] = $this->getCustomers(); $event->class->filters['customers'] = $this->getCustomers(true);
$event->class->filters['routes']['customers'] = 'customers.index'; $event->class->filters['routes']['customers'] = 'customers.index';
} }
@ -73,14 +73,16 @@ class AddCustomers extends Listener
return; return;
} }
$all_customers = $this->getCustomers();
if ($customer_ids = $this->getSearchStringValue('customer_id')) { if ($customer_ids = $this->getSearchStringValue('customer_id')) {
$customers = explode(',', $customer_ids); $customers = explode(',', $customer_ids);
$rows = collect($event->class->filters['customers'])->filter(function ($value, $key) use ($customers) { $rows = collect($all_customers)->filter(function ($value, $key) use ($customers) {
return in_array($key, $customers); return in_array($key, $customers);
}); });
} else { } else {
$rows = $event->class->filters['customers']; $rows = $all_customers;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);

View File

@ -25,7 +25,8 @@ class AddExpenseCategories extends Listener
return; return;
} }
$event->class->filters['categories'] = $this->getExpenseCategories(); // send true for add limit on search and filter..
$event->class->filters['categories'] = $this->getExpenseCategories(true);
$event->class->filters['routes']['categories'] = ['categories.index', 'search=type:expense']; $event->class->filters['routes']['categories'] = ['categories.index', 'search=type:expense'];
} }
@ -56,14 +57,16 @@ class AddExpenseCategories extends Listener
return; return;
} }
$all_categories = $this->getExpenseCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) { if ($category_ids = $this->getSearchStringValue('category_id')) {
$categories = explode(',', $category_ids); $categories = explode(',', $category_ids);
$rows = collect($event->class->filters['categories'])->filter(function ($value, $key) use ($categories) { $rows = collect($all_categories)->filter(function ($value, $key) use ($categories) {
return in_array($key, $categories); return in_array($key, $categories);
}); });
} else { } else {
$rows = $event->class->filters['categories']; $rows = $all_categories;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);

View File

@ -25,7 +25,8 @@ class AddIncomeCategories extends Listener
return; return;
} }
$event->class->filters['categories'] = $this->getIncomeCategories(); // send true for add limit on search and filter..
$event->class->filters['categories'] = $this->getIncomeCategories(true);
$event->class->filters['routes']['categories'] = ['categories.index', 'search=type:income']; $event->class->filters['routes']['categories'] = ['categories.index', 'search=type:income'];
} }
@ -56,14 +57,16 @@ class AddIncomeCategories extends Listener
return; return;
} }
$all_categories = $this->getIncomeCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) { if ($category_ids = $this->getSearchStringValue('category_id')) {
$categories = explode(',', $category_ids); $categories = explode(',', $category_ids);
$rows = collect($event->class->filters['categories'])->filter(function ($value, $key) use ($categories) { $rows = collect($all_categories)->filter(function ($value, $key) use ($categories) {
return in_array($key, $categories); return in_array($key, $categories);
}); });
} else { } else {
$rows = $event->class->filters['categories']; $rows = $all_categories;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);

View File

@ -26,7 +26,7 @@ class AddIncomeExpenseCategories extends Listener
return; return;
} }
$event->class->filters['categories'] = $this->getIncomeExpenseCategories(); $event->class->filters['categories'] = $this->getIncomeExpenseCategories(true);
$event->class->filters['routes']['categories'] = ['categories.index', 'search=type:income,expense']; $event->class->filters['routes']['categories'] = ['categories.index', 'search=type:income,expense'];
} }
@ -75,14 +75,16 @@ class AddIncomeExpenseCategories extends Listener
break; break;
case 'App\Reports\IncomeExpenseSummary': case 'App\Reports\IncomeExpenseSummary':
$all_categories = $this->getIncomeExpenseCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) { if ($category_ids = $this->getSearchStringValue('category_id')) {
$categories = explode(',', $category_ids); $categories = explode(',', $category_ids);
$rows = collect($event->class->filters['categories'])->filter(function ($value, $key) use ($categories) { $rows = collect($all_categories)->filter(function ($value, $key) use ($categories) {
return in_array($key, $categories); return in_array($key, $categories);
}); });
} else { } else {
$rows = $event->class->filters['categories']; $rows = $all_categories;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);

View File

@ -27,7 +27,7 @@ class AddVendors extends Listener
return; return;
} }
$event->class->filters['vendors'] = $this->getVendors(); $event->class->filters['vendors'] = $this->getVendors(true);
$event->class->filters['routes']['vendors'] = 'vendors.index'; $event->class->filters['routes']['vendors'] = 'vendors.index';
} }
@ -73,14 +73,16 @@ class AddVendors extends Listener
return; return;
} }
$all_vendors = $this->getVendors();
if ($vendor_ids = $this->getSearchStringValue('vendor_id')) { if ($vendor_ids = $this->getSearchStringValue('vendor_id')) {
$vendors = explode(',', $vendor_ids); $vendors = explode(',', $vendor_ids);
$rows = collect($event->class->filters['vendors'])->filter(function ($value, $key) use ($vendors) { $rows = collect($all_vendors)->filter(function ($value, $key) use ($vendors) {
return in_array($key, $vendors); return in_array($key, $vendors);
}); });
} else { } else {
$rows = $event->class->filters['vendors']; $rows = $all_vendors;
} }
$this->setRowNamesAndValues($event, $rows); $this->setRowNamesAndValues($event, $rows);