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;
}
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'));
}
return $model->pluck('name', 'id')->toArray();
}
public function getItemCategories()
public function getItemCategories($limit = false)
{
return $this->getCategories('item');
return $this->getCategories('item', $limit);
}
public function getIncomeCategories()
public function getIncomeCategories($limit = false)
{
return $this->getCategories('income');
return $this->getCategories('income', $limit);
}
public function getExpenseCategories()
public function getExpenseCategories($limit = false)
{
return $this->getCategories('expense');
return $this->getCategories('expense', $limit);
}
public function getIncomeExpenseCategories()
public function getIncomeExpenseCategories($limit = false)
{
return $this->getCategories(['income', 'expense']);
return $this->getCategories(['income', 'expense'], $limit);
}
public function getCategories($types)
public function getCategories($types, $limit = false)
{
return Category::type($types)->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id')->toArray();
$model = Category::type($types)->orderBy('name');
if ($limit !== false) {
$model->take(setting('default.select_limit'));
}
return $model->pluck('name', 'id')->toArray();
}
public function getCustomers()
public function getCustomers($limit = false)
{
return $this->getContacts($this->getCustomerTypes());
return $this->getContacts($this->getCustomerTypes(), $limit);
}
public function getVendors()
public function getVendors($limit = false)
{
return $this->getContacts($this->getVendorTypes());
return $this->getContacts($this->getVendorTypes(), $limit);
}
public function getContacts($types)
public function getContacts($types, $limit = false)
{
return Contact::type($types)->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id')->toArray();
$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)

View File

@ -28,7 +28,8 @@ class AddAccounts extends Listener
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';
}
@ -74,14 +75,16 @@ class AddAccounts extends Listener
return;
}
$all_accounts = $this->getAccounts();
if ($account_ids = $this->getSearchStringValue('account_id')) {
$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);
});
} else {
$rows = $event->class->filters['accounts'];
$rows = $all_accounts;
}
$this->setRowNamesAndValues($event, $rows);

View File

@ -27,7 +27,7 @@ class AddCustomers extends Listener
return;
}
$event->class->filters['customers'] = $this->getCustomers();
$event->class->filters['customers'] = $this->getCustomers(true);
$event->class->filters['routes']['customers'] = 'customers.index';
}
@ -73,14 +73,16 @@ class AddCustomers extends Listener
return;
}
$all_customers = $this->getCustomers();
if ($customer_ids = $this->getSearchStringValue('customer_id')) {
$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);
});
} else {
$rows = $event->class->filters['customers'];
$rows = $all_customers;
}
$this->setRowNamesAndValues($event, $rows);

View File

@ -25,7 +25,8 @@ class AddExpenseCategories extends Listener
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'];
}
@ -56,14 +57,16 @@ class AddExpenseCategories extends Listener
return;
}
$all_categories = $this->getExpenseCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) {
$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);
});
} else {
$rows = $event->class->filters['categories'];
$rows = $all_categories;
}
$this->setRowNamesAndValues($event, $rows);

View File

@ -25,7 +25,8 @@ class AddIncomeCategories extends Listener
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'];
}
@ -56,14 +57,16 @@ class AddIncomeCategories extends Listener
return;
}
$all_categories = $this->getIncomeCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) {
$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);
});
} else {
$rows = $event->class->filters['categories'];
$rows = $all_categories;
}
$this->setRowNamesAndValues($event, $rows);

View File

@ -26,7 +26,7 @@ class AddIncomeExpenseCategories extends Listener
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'];
}
@ -75,14 +75,16 @@ class AddIncomeExpenseCategories extends Listener
break;
case 'App\Reports\IncomeExpenseSummary':
$all_categories = $this->getIncomeExpenseCategories();
if ($category_ids = $this->getSearchStringValue('category_id')) {
$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);
});
} else {
$rows = $event->class->filters['categories'];
$rows = $all_categories;
}
$this->setRowNamesAndValues($event, $rows);

View File

@ -27,7 +27,7 @@ class AddVendors extends Listener
return;
}
$event->class->filters['vendors'] = $this->getVendors();
$event->class->filters['vendors'] = $this->getVendors(true);
$event->class->filters['routes']['vendors'] = 'vendors.index';
}
@ -73,14 +73,16 @@ class AddVendors extends Listener
return;
}
$all_vendors = $this->getVendors();
if ($vendor_ids = $this->getSearchStringValue('vendor_id')) {
$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);
});
} else {
$rows = $event->class->filters['vendors'];
$rows = $all_vendors;
}
$this->setRowNamesAndValues($event, $rows);