added eager loading to bulk actions
This commit is contained in:
parent
77ab04db0c
commit
fa4c2b2a5a
@ -9,6 +9,7 @@ use App\Traits\Jobs;
|
||||
use App\Traits\Relationships;
|
||||
use App\Utilities\Export;
|
||||
use App\Utilities\Import;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
abstract class BulkAction
|
||||
{
|
||||
@ -39,9 +40,17 @@ abstract class BulkAction
|
||||
],
|
||||
];
|
||||
|
||||
public function getSelectedRecords($request)
|
||||
public function getSelectedRecords($request, $relationships = null)
|
||||
{
|
||||
return $this->model::find($this->getSelectedInput($request));
|
||||
if (empty($relationships)) {
|
||||
$model = $this->model::query();
|
||||
} else {
|
||||
$relationships = Arr::wrap($relationships);
|
||||
|
||||
$model = $this->model::with($relationships);
|
||||
}
|
||||
|
||||
return $model->find($this->getSelectedInput($request));
|
||||
}
|
||||
|
||||
public function getSelectedInput($request)
|
||||
@ -129,7 +138,7 @@ abstract class BulkAction
|
||||
|
||||
public function disableContacts($request)
|
||||
{
|
||||
$contacts = $this->getSelectedRecords($request);
|
||||
$contacts = $this->getSelectedRecords($request, 'user');
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
try {
|
||||
@ -142,7 +151,7 @@ abstract class BulkAction
|
||||
|
||||
public function deleteContacts($request)
|
||||
{
|
||||
$contacts = $this->getSelectedRecords($request);
|
||||
$contacts = $this->getSelectedRecords($request, 'user');
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
try {
|
||||
@ -155,7 +164,7 @@ abstract class BulkAction
|
||||
|
||||
public function deleteTransactions($request)
|
||||
{
|
||||
$transactions = $this->getSelectedRecords($request);
|
||||
$transactions = $this->getSelectedRecords($request, 'category');
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
try {
|
||||
|
@ -31,7 +31,7 @@ class Users extends BulkAction
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$users = $this->getSelectedRecords($request);
|
||||
$users = $this->getSelectedRecords($request, 'contact');
|
||||
|
||||
foreach ($users as $user) {
|
||||
try {
|
||||
|
@ -26,7 +26,9 @@ class Transfers extends BulkAction
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$transfers = $this->getSelectedRecords($request);
|
||||
$transfers = $this->getSelectedRecords($request, [
|
||||
'expense_transaction', 'income_transaction'
|
||||
]);
|
||||
|
||||
foreach ($transfers as $transfer) {
|
||||
try {
|
||||
|
@ -40,7 +40,7 @@ class Items extends BulkAction
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$items = $this->getSelectedRecords($request);
|
||||
$items = $this->getSelectedRecords($request, 'taxes');
|
||||
|
||||
foreach ($items as $item) {
|
||||
try {
|
||||
|
@ -47,7 +47,7 @@ class Bills extends BulkAction
|
||||
{
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {// Already in transactions
|
||||
foreach ($bills as $bill) {
|
||||
if ($bill->status == 'paid') {
|
||||
continue;
|
||||
}
|
||||
@ -61,6 +61,10 @@ class Bills extends BulkAction
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
if ($bill->status == 'received') {
|
||||
continue;
|
||||
}
|
||||
|
||||
event(new DocumentReceived($bill));
|
||||
}
|
||||
}
|
||||
@ -70,6 +74,10 @@ class Bills extends BulkAction
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
if ($bill->status == 'cancelled') {
|
||||
continue;
|
||||
}
|
||||
|
||||
event(new DocumentCancelled($bill));
|
||||
}
|
||||
}
|
||||
@ -89,7 +97,9 @@ class Bills extends BulkAction
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
$bills = $this->getSelectedRecords($request, [
|
||||
'items', 'item_taxes', 'histories', 'transactions', 'recurring', 'totals'
|
||||
]);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
try {
|
||||
|
@ -48,7 +48,6 @@ class Invoices extends BulkAction
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
// Already in transactions
|
||||
if ($invoice->status == 'paid') {
|
||||
continue;
|
||||
}
|
||||
@ -62,6 +61,10 @@ class Invoices extends BulkAction
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
if ($invoice->status == 'sent') {
|
||||
continue;
|
||||
}
|
||||
|
||||
event(new DocumentSent($invoice));
|
||||
}
|
||||
}
|
||||
@ -71,6 +74,10 @@ class Invoices extends BulkAction
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
if ($invoice->status == 'cancelled') {
|
||||
continue;
|
||||
}
|
||||
|
||||
event(new DocumentCancelled($invoice));
|
||||
}
|
||||
}
|
||||
@ -86,14 +93,11 @@ class Invoices extends BulkAction
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
$invoices = $this->getSelectedRecords($request, [
|
||||
'items', 'item_taxes', 'histories', 'transactions', 'recurring', 'totals'
|
||||
]);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
try {
|
||||
|
Loading…
x
Reference in New Issue
Block a user