diff --git a/app/Abstracts/BulkAction.php b/app/Abstracts/BulkAction.php index 7057eda90..4aeb91894 100644 --- a/app/Abstracts/BulkAction.php +++ b/app/Abstracts/BulkAction.php @@ -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 { diff --git a/app/BulkActions/Auth/Users.php b/app/BulkActions/Auth/Users.php index 8f395a06e..e4e778927 100644 --- a/app/BulkActions/Auth/Users.php +++ b/app/BulkActions/Auth/Users.php @@ -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 { diff --git a/app/BulkActions/Banking/Transfers.php b/app/BulkActions/Banking/Transfers.php index d2065319a..d3c91c108 100644 --- a/app/BulkActions/Banking/Transfers.php +++ b/app/BulkActions/Banking/Transfers.php @@ -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 { diff --git a/app/BulkActions/Common/Items.php b/app/BulkActions/Common/Items.php index 8cc06f8de..b2e704247 100644 --- a/app/BulkActions/Common/Items.php +++ b/app/BulkActions/Common/Items.php @@ -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 { diff --git a/app/BulkActions/Purchases/Bills.php b/app/BulkActions/Purchases/Bills.php index 97bafb589..e3f220692 100644 --- a/app/BulkActions/Purchases/Bills.php +++ b/app/BulkActions/Purchases/Bills.php @@ -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 { diff --git a/app/BulkActions/Sales/Invoices.php b/app/BulkActions/Sales/Invoices.php index 176a40a0a..59c94814e 100644 --- a/app/BulkActions/Sales/Invoices.php +++ b/app/BulkActions/Sales/Invoices.php @@ -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 {