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