refactored bulk actions
This commit is contained in:
parent
d4efb90251
commit
a3dc7b8bb7
@ -2,6 +2,9 @@
|
||||
|
||||
namespace App\Abstracts;
|
||||
|
||||
use App\Jobs\Common\DeleteContact;
|
||||
use App\Jobs\Common\UpdateContact;
|
||||
use App\Jobs\Banking\DeleteTransaction;
|
||||
use App\Traits\Jobs;
|
||||
use App\Traits\Relationships;
|
||||
use Artisan;
|
||||
@ -16,24 +19,34 @@ abstract class BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-common-items'
|
||||
'permission' => 'update-common-items',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-common-items'
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'permission' => 'update-common-items',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-common-items'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-common-items',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
];
|
||||
|
||||
public function getSelectedRecords($request)
|
||||
{
|
||||
return $this->model::find($this->getSelectedInput($request));
|
||||
}
|
||||
|
||||
public function getSelectedInput($request)
|
||||
{
|
||||
return $request->get('selected', []);
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
@ -43,9 +56,7 @@ abstract class BulkAction
|
||||
*/
|
||||
public function duplicate($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$items = $this->model::find($selected);
|
||||
$items = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$item->duplicate();
|
||||
@ -61,9 +72,7 @@ abstract class BulkAction
|
||||
*/
|
||||
public function enable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$items = $this->model::find($selected);
|
||||
$items = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$item->enabled = 1;
|
||||
@ -80,9 +89,7 @@ abstract class BulkAction
|
||||
*/
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$items = $this->model::find($selected);
|
||||
$items = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$item->enabled = 0;
|
||||
@ -111,9 +118,7 @@ abstract class BulkAction
|
||||
*/
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$items = $this->model::find($selected);
|
||||
$items = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$item->delete();
|
||||
@ -121,4 +126,43 @@ abstract class BulkAction
|
||||
|
||||
Artisan::call('cache:clear');
|
||||
}
|
||||
|
||||
public function disableContacts($request)
|
||||
{
|
||||
$contacts = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
try {
|
||||
$this->dispatch(new UpdateContact($contact, request()->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteContacts($request)
|
||||
{
|
||||
$contacts = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
try {
|
||||
$this->dispatch(new DeleteContact($contact));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteTransactions($request)
|
||||
{
|
||||
$transactions = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
try {
|
||||
$this->dispatch(new DeleteTransaction($transaction));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,8 +12,8 @@ class Permissions extends BulkAction
|
||||
public $actions = [
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-auth-permissions'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-auth-permissions',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
@ -12,8 +12,8 @@ class Roles extends BulkAction
|
||||
public $actions = [
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-auth-roles'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-auth-roles',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ namespace App\BulkActions\Auth;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Jobs\Auth\DeleteUser;
|
||||
use App\Jobs\Auth\UpdateUser;
|
||||
use App\Models\Auth\User;
|
||||
|
||||
class Users extends BulkAction
|
||||
@ -14,54 +15,42 @@ class Users extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-auth-users'
|
||||
'permission' => 'update-auth-users',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-auth-users'
|
||||
'permission' => 'update-auth-users',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-auth-users'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-auth-users',
|
||||
],
|
||||
];
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$users = $this->model::find($selected);
|
||||
$users = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($users as $user) {
|
||||
// Can't disable yourself
|
||||
if ($user->id == user()->id) {
|
||||
continue;
|
||||
//$this->response->errorMethodNotAllowed(trans('auth.error.self_delete'));
|
||||
try {
|
||||
$this->dispatch(new UpdateUser($user, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
|
||||
$user->enabled = 0;
|
||||
$user->save();
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$users = $this->model::find($selected);
|
||||
$users = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($users as $user) {
|
||||
try {
|
||||
$this->dispatch(new DeleteUser($user));
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,51 +15,42 @@ class Accounts extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-banking-accounts'
|
||||
'permission' => 'update-banking-accounts',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-banking-accounts'
|
||||
'permission' => 'update-banking-accounts',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-banking-accounts'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-banking-accounts',
|
||||
],
|
||||
];
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$accounts = $this->model::find($selected);
|
||||
$accounts = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($accounts as $account) {
|
||||
try {
|
||||
$this->dispatch(new UpdateAccount($account, request()->merge(['enabled' => 1])));
|
||||
$this->dispatch(new UpdateAccount($account, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$accounts = $this->model::find($selected);
|
||||
$accounts = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($accounts as $account) {
|
||||
try {
|
||||
$this->dispatch(new DeleteAccount($account));
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,25 +14,23 @@ class Reconciliations extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-banking-reconciliations'
|
||||
'permission' => 'update-banking-reconciliations',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-banking-reconciliations'
|
||||
'permission' => 'update-banking-reconciliations',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-banking-reconciliations'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-banking-reconciliations',
|
||||
],
|
||||
];
|
||||
|
||||
public function enable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$reconciliations = $this->model::find($selected);
|
||||
$reconciliations = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($reconciliations as $reconciliation) {
|
||||
$reconciliation->enabled = 1;
|
||||
@ -49,9 +47,7 @@ class Reconciliations extends BulkAction
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$reconciliations = $this->model::find($selected);
|
||||
$reconciliations = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($reconciliations as $reconciliation) {
|
||||
$reconciliation->enabled = 0;
|
||||
@ -66,16 +62,9 @@ class Reconciliations extends BulkAction
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$reconciliations = $this->model::find($selected);
|
||||
$reconciliations = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($reconciliations as $reconciliation) {
|
||||
$reconciliation->delete();
|
||||
|
@ -14,23 +14,20 @@ class Transfers extends BulkAction
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_action.message.deletes',
|
||||
'permission' => 'delete-banking-transfers'
|
||||
]
|
||||
'permission' => 'delete-banking-transfers',
|
||||
],
|
||||
];
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$transfers = $this->model::find($selected);
|
||||
$transfers = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($transfers as $transfer) {
|
||||
$this->dispatch(new DeleteTransfer($transfer));
|
||||
try {
|
||||
$this->dispatch(new DeleteTransfer($transfer));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
namespace App\BulkActions\Common;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Jobs\Common\DeleteCompany;
|
||||
use App\Jobs\Common\UpdateCompany;
|
||||
use App\Models\Common\Company;
|
||||
|
||||
class Companies extends BulkAction
|
||||
@ -13,104 +15,56 @@ class Companies extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-common-companies'
|
||||
'permission' => 'update-common-companies',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-common-companies'
|
||||
'permission' => 'update-common-companies',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-common-companies'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-common-companies',
|
||||
],
|
||||
];
|
||||
|
||||
public function enable($request)
|
||||
{
|
||||
try {
|
||||
$selected = $request->get('selected', []);
|
||||
$companies = $this->getSelectedRecords($request);
|
||||
|
||||
$companies = $this->model::find($selected);
|
||||
|
||||
foreach ($companies as $company) {
|
||||
// Check if user can access company
|
||||
$this->owner($company);
|
||||
|
||||
$company->enabled = 1;
|
||||
$company->save();
|
||||
foreach ($companies as $company) {
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 1])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.enabled', ['type' => $company->name]);
|
||||
|
||||
return $this->itemResponse($company->fresh(), new Transformer(), $message);
|
||||
} catch (\HttpException $e) {
|
||||
$this->response->errorUnauthorized(trans('companies.error.not_user_company'));
|
||||
}
|
||||
}
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
try {
|
||||
$selected = $request->get('selected', []);
|
||||
$companies = $this->getSelectedRecords($request);
|
||||
|
||||
$companies = $this->model::find($selected);
|
||||
|
||||
foreach ($companies as $company) {
|
||||
// Check if user can access company
|
||||
$this->owner($company);
|
||||
|
||||
$company->enabled = 0;
|
||||
$company->save();
|
||||
foreach ($companies as $company) {
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
} catch (\HttpException $e) {
|
||||
$this->response->errorUnauthorized(trans('companies.error.not_user_company'));
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$companies = $this->model::find($selected);
|
||||
$companies = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($companies as $company) {
|
||||
// Can't delete active company
|
||||
if ($company->id == session('company_id')) {
|
||||
$content = trans('companies.error.delete_active');
|
||||
|
||||
return new Response($content, 422);
|
||||
}
|
||||
|
||||
try {
|
||||
// Check if user can access company
|
||||
$this->owner($company);
|
||||
|
||||
$company->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $company->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} catch (\HttpException $e) {
|
||||
$this->response->errorUnauthorized(trans('companies.error.not_user_company'));
|
||||
$this->dispatch(new DeleteCompany($company));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function owner(Company $company)
|
||||
{
|
||||
$companies = user()->companies()->pluck('id')->toArray();
|
||||
|
||||
if (in_array($company->id, $companies)) {
|
||||
return new Response('');
|
||||
}
|
||||
|
||||
$this->response->errorUnauthorized(trans('companies.error.not_user_company'));
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ namespace App\BulkActions\Common;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Exports\Common\Items as Export;
|
||||
use App\Jobs\Common\DeleteItem;
|
||||
use App\Jobs\Common\UpdateItem;
|
||||
use App\Models\Common\Item;
|
||||
|
||||
class Items extends BulkAction
|
||||
@ -14,76 +16,46 @@ class Items extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-common-items'
|
||||
'permission' => 'update-common-items',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-common-items'
|
||||
'permission' => 'update-common-items',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
'message' => 'bulk_actions.message.duplicate',
|
||||
'permission' => 'create-common-items',
|
||||
'multiple' => true
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'multiple' => true,
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-common-items'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-common-items',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param $id
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$items = $this->model::find($selected);
|
||||
$items = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$relationships = $this->countRelationships($item, [
|
||||
'invoice_items' => 'invoices',
|
||||
'bill_items' => 'bills',
|
||||
]);
|
||||
|
||||
if (empty($relationships)) {
|
||||
$item->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $item->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $item->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new DeleteItem($item));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Export the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.items', 2) . '.xlsx');
|
||||
}
|
||||
|
@ -4,9 +4,9 @@ namespace App\BulkActions\Expenses;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Exports\Expenses\Bills as Export;
|
||||
use App\Jobs\Expense\CreateBillHistory;
|
||||
use App\Jobs\Expense\DeleteBill;
|
||||
use App\Models\Expense\Bill;
|
||||
use App\Models\Expense\BillHistory;
|
||||
|
||||
class Bills extends BulkAction
|
||||
{
|
||||
@ -14,88 +14,71 @@ class Bills extends BulkAction
|
||||
|
||||
public $actions = [
|
||||
'received' => [
|
||||
'name' => 'general.received',
|
||||
'message' => '',
|
||||
'permission' => 'update-expenses-bills'
|
||||
'name' => 'bills.mark_received',
|
||||
'message' => 'bulk_actions.message.received',
|
||||
'permission' => 'update-expenses-bills',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
'message' => 'bulk_actions.message.duplicate',
|
||||
'permission' => 'create-expenses-bills',
|
||||
'multiple' => true
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'multiple' => true,
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-expenses-bills'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-expenses-bills',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
];
|
||||
|
||||
public function duplicate($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$bills = $this->model::find($selected);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
$clone = $bill->duplicate();
|
||||
|
||||
// Add bill history
|
||||
BillHistory::create([
|
||||
'company_id' => session('company_id'),
|
||||
'bill_id' => $clone->id,
|
||||
'status_code' => 'draft',
|
||||
'notify' => 0,
|
||||
'description' => trans('messages.success.added', ['type' => $clone->bill_number]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$bills = $this->model::find($selected);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
$this->dispatch(new DeleteBill($bill));
|
||||
}
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.bills', 2) . '.xlsx');
|
||||
}
|
||||
|
||||
public function received($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$bills = $this->model::find($selected);
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
$bill->bill_status_code = 'received';
|
||||
$bill->save();
|
||||
|
||||
// Add bill history
|
||||
BillHistory::create([
|
||||
'company_id' => $bill->company_id,
|
||||
'bill_id' => $bill->id,
|
||||
'status_code' => 'received',
|
||||
'notify' => 0,
|
||||
'description' => trans('bills.mark_recevied'),
|
||||
]);
|
||||
$description = trans('bills.mark_recevied');
|
||||
|
||||
$this->dispatch(new CreateBillHistory($bill, 0, $description));
|
||||
}
|
||||
}
|
||||
|
||||
public function duplicate($request)
|
||||
{
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
$clone = $bill->duplicate();
|
||||
|
||||
$description = trans('messages.success.added', ['type' => $clone->bill_number]);
|
||||
|
||||
$this->dispatch(new CreateBillHistory($clone, 0, $description));
|
||||
}
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$bills = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($bills as $bill) {
|
||||
try {
|
||||
$this->dispatch(new DeleteBill($bill));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.bills', 2) . '.xlsx');
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ namespace App\BulkActions\Expenses;
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Exports\Expenses\Payments as Export;
|
||||
use App\Models\Banking\Transaction;
|
||||
use App\Models\Setting\Category;
|
||||
|
||||
class Payments extends BulkAction
|
||||
{
|
||||
@ -16,60 +15,27 @@ class Payments extends BulkAction
|
||||
'name' => 'general.duplicate',
|
||||
'message' => 'bulk_actions.message.duplicate',
|
||||
'permission' => 'create-expenses-payments',
|
||||
'multiple' => true
|
||||
'multiple' => true,
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-expenses-payments'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-expenses-payments',
|
||||
],
|
||||
];
|
||||
|
||||
public function duplicate($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$transactions = $this->model::find($selected);
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
$clone = $transaction->duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$transactions = $this->model::find($selected);
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
if ($transaction->category->id != Category::transfer()) {
|
||||
$type = $transaction->type;
|
||||
|
||||
$transaction->recurring()->delete();
|
||||
$transaction->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => trans_choice('general.' . \Str::plural($type), 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$this->response->errorUnauthorized();
|
||||
}
|
||||
}
|
||||
$this->deleteTransactions($request);
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.payments', 2) . '.xlsx');
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ namespace App\BulkActions\Expenses;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Exports\Expenses\Vendors as Export;
|
||||
use App\Jobs\Common\UpdateContact;
|
||||
use App\Models\Common\Contact;
|
||||
|
||||
class Vendors extends BulkAction
|
||||
@ -14,12 +15,12 @@ class Vendors extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-expenses-vendors'
|
||||
'permission' => 'update-expenses-vendors',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-expenses-vendors'
|
||||
'permission' => 'update-expenses-vendors',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
@ -27,70 +28,31 @@ class Vendors extends BulkAction
|
||||
'permission' => 'create-expenses-vendors',
|
||||
'multiple' => true
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-expenses-vendors'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-expenses-vendors',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
];
|
||||
|
||||
public function duplicate($request)
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$contacts = $this->model::find($selected);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
$clone = $contact->duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
$this->disableContacts($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$contacts = $this->model::find($selected);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
if (!$relationships = $this->getRelationships($contact)) {
|
||||
$contact->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $contact->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $contact->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
}
|
||||
}
|
||||
$this->deleteContacts($request);
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.vendors', 2) . '.xlsx');
|
||||
}
|
||||
|
||||
protected function getRelationships($contact)
|
||||
{
|
||||
$rels = [
|
||||
'bills' => 'bills',
|
||||
'payments' => 'payments',
|
||||
];
|
||||
|
||||
$relationships = $this->countRelationships($contact, $rels);
|
||||
|
||||
return $relationships;
|
||||
}
|
||||
}
|
||||
|
@ -14,12 +14,12 @@ class Customers extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-incomes-customers'
|
||||
'permission' => 'update-incomes-customers',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-incomes-customers'
|
||||
'permission' => 'update-incomes-customers',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
@ -27,70 +27,31 @@ class Customers extends BulkAction
|
||||
'permission' => 'create-incomes-customers',
|
||||
'multiple' => true
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-incomes-customers',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-incomes-customers'
|
||||
]
|
||||
];
|
||||
|
||||
public function duplicate($request)
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$contacts = $this->model::find($selected);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
$clone = $contact->duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
$this->disableContacts($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$contacts = $this->model::find($selected);
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
if (!$relationships = $this->getRelationships($contact)) {
|
||||
$contact->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $contact->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $contact->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
}
|
||||
}
|
||||
$this->deleteContacts($request);
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.customers', 2) . '.xlsx');
|
||||
}
|
||||
|
||||
protected function getRelationships($contact)
|
||||
{
|
||||
$rels = [
|
||||
'invoices' => 'invoices',
|
||||
'income_transactions' => 'transactions',
|
||||
];
|
||||
|
||||
$relationships = $this->countRelationships($contact, $rels);
|
||||
|
||||
return $relationships;
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ use App\Events\Income\PaymentReceived;
|
||||
use App\Exports\Incomes\Invoices as Export;
|
||||
use App\Jobs\Income\DeleteInvoice;
|
||||
use App\Models\Income\Invoice;
|
||||
use Date;
|
||||
|
||||
class Invoices extends BulkAction
|
||||
{
|
||||
@ -17,37 +16,53 @@ class Invoices extends BulkAction
|
||||
|
||||
public $actions = [
|
||||
'paid' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-incomes-invoices'
|
||||
'name' => 'invoices.mark_paid',
|
||||
'message' => 'bulk_actions.message.paid',
|
||||
'permission' => 'update-incomes-invoices',
|
||||
],
|
||||
'sent' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-incomes-invoices'
|
||||
'name' => 'invoice.mark_sent',
|
||||
'message' => 'bulk_actions.message.sent',
|
||||
'permission' => 'update-incomes-invoices',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
'message' => 'bulk_actions.message.duplicate',
|
||||
'permission' => 'create-incomes-invoices',
|
||||
'multiple' => true
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'multiple' => true,
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-incomes-invoices'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-incomes-invoices',
|
||||
],
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
];
|
||||
|
||||
public function paid($request)
|
||||
{
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
event(new PaymentReceived($invoice, []));
|
||||
}
|
||||
}
|
||||
|
||||
public function sent($request)
|
||||
{
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
event(new InvoiceSent($invoice));
|
||||
}
|
||||
}
|
||||
|
||||
public function duplicate($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$invoices = $this->model::find($selected);
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
$clone = $invoice->duplicate();
|
||||
@ -63,43 +78,21 @@ class Invoices extends BulkAction
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$invoices = $this->model::find($selected);
|
||||
$invoices = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
$this->dispatch(new DeleteInvoice($invoice));
|
||||
try {
|
||||
$this->dispatch(new DeleteInvoice($invoice));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.invoices', 2) . '.xlsx');
|
||||
}
|
||||
|
||||
public function sent($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$invoices = $this->model::find($selected);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
event(new InvoiceSent($invoice));
|
||||
|
||||
$message = trans('invoices.messages.marked_sent');
|
||||
}
|
||||
}
|
||||
|
||||
public function paid($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$invoices = $this->model::find($selected);
|
||||
|
||||
foreach ($invoices as $invoice) {
|
||||
event(new PaymentReceived($invoice, []));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ namespace App\BulkActions\Incomes;
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Exports\Incomes\Revenues as Export;
|
||||
use App\Models\Banking\Transaction;
|
||||
use App\Models\Setting\Category;
|
||||
|
||||
class Revenues extends BulkAction
|
||||
{
|
||||
@ -14,62 +13,29 @@ class Revenues extends BulkAction
|
||||
public $actions = [
|
||||
'export' => [
|
||||
'name' => 'general.export',
|
||||
'message' => 'bulk_actions.message.exports',
|
||||
'message' => 'bulk_actions.message.export',
|
||||
],
|
||||
'duplicate' => [
|
||||
'name' => 'general.duplicate',
|
||||
'message' => 'bulk_actions.message.duplicate',
|
||||
'permission' => 'create-incomes-revenues',
|
||||
'multiple' => true
|
||||
'multiple' => true,
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-incomes-revenues'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-incomes-revenues',
|
||||
],
|
||||
];
|
||||
|
||||
public function duplicate($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$transactions = $this->model::find($selected);
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
$clone = $transaction->duplicate();
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$transactions = $this->model::find($selected);
|
||||
|
||||
foreach ($transactions as $transaction) {
|
||||
if ($transaction->category->id != Category::transfer()) {
|
||||
$type = $transaction->type;
|
||||
|
||||
$transaction->recurring()->delete();
|
||||
$transaction->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => trans_choice('general.' . \Str::plural($type), 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$this->response->errorUnauthorized();
|
||||
}
|
||||
}
|
||||
$this->deleteTransactions($request);
|
||||
}
|
||||
|
||||
public function export($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.revenues', 2) . '.xlsx');
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
namespace App\BulkActions\Settings;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Jobs\Setting\DeleteCategory;
|
||||
use App\Jobs\Setting\UpdateCategory;
|
||||
use App\Models\Setting\Category;
|
||||
|
||||
class Categories extends BulkAction
|
||||
@ -13,85 +15,43 @@ class Categories extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-settings-categories'
|
||||
'permission' => 'update-settings-categories',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-settings-categories'
|
||||
'permission' => 'update-settings-categories',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-settings-categories'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-settings-categories',
|
||||
],
|
||||
];
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$categories = $this->model::find($selected);
|
||||
$categories = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($categories as $category) {
|
||||
if ($relationships = $this->getRelationships($category)) {
|
||||
$category->enabled = 0;
|
||||
$category->save();
|
||||
|
||||
$message = trans('messages.success.disabled', ['type' => $category->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.disabled', ['name' => $category->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new UpdateCategory($category, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$categories = $this->model::find($selected);
|
||||
$categories = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($categories as $category) {
|
||||
// Can not delete the last category by type
|
||||
if (Category::where('type', $category->type)->count() == 1) {
|
||||
$message = trans('messages.error.last_category', ['type' => strtolower(trans_choice('general.' . $category->type . 's', 1))]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
}
|
||||
|
||||
if (!$relationships = $this->getRelationships($category)) {
|
||||
$category->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $category->name]);
|
||||
|
||||
return new Response($message);
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $category->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new DeleteCategory($category));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getRelationships($category)
|
||||
{
|
||||
$relationships = $this->countRelationships($category, [
|
||||
'items' => 'items',
|
||||
'invoices' => 'invoices',
|
||||
'income_transacions' => 'transactions',
|
||||
'bills' => 'bills',
|
||||
'expense_transactions' => 'transactions',
|
||||
]);
|
||||
|
||||
return $relationships;
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
namespace App\BulkActions\Settings;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Jobs\Setting\DeleteCurrency;
|
||||
use App\Jobs\Setting\UpdateCurrency;
|
||||
use App\Models\Setting\Currency;
|
||||
|
||||
class Currencies extends BulkAction
|
||||
@ -13,83 +15,43 @@ class Currencies extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-settings-currencies'
|
||||
'permission' => 'update-settings-currencies',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-settings-currencies'
|
||||
'permission' => 'update-settings-currencies',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-settings-currencies'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-settings-currencies',
|
||||
],
|
||||
];
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$currencies = $this->model::find($selected);
|
||||
$currencies = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($currencies as $currency) {
|
||||
if (!$relationships = $this->getRelationships($currency)) {
|
||||
$currency->enabled = 0;
|
||||
$currency->save();
|
||||
|
||||
$message = trans('messages.success.disabled', ['type' => $currency->name]);
|
||||
|
||||
return $this->itemResponse($currency->fresh(), new Transformer(), $message);
|
||||
} else {
|
||||
$message = trans('messages.warning.disabled', ['name' => $currency->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new UpdateCurrency($currency, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$currencies = $this->model::find($selected);
|
||||
$currencies = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($currencies as $currency) {
|
||||
if (!$relationships = $this->getRelationships($currency)) {
|
||||
$currency->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $currency->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $currency->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new DeleteCurrency($currency));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getRelationships($currency)
|
||||
{
|
||||
$relationships = $this->countRelationships($currency, [
|
||||
'accounts' => 'accounts',
|
||||
'customers' => 'customers',
|
||||
'invoices' => 'invoices',
|
||||
'income_transactions' => 'transactions',
|
||||
'bills' => 'bills',
|
||||
'expense_transactions' => 'transactions',
|
||||
]);
|
||||
|
||||
if ($currency->code == setting('default.currency')) {
|
||||
$relationships[] = strtolower(trans_choice('general.companies', 1));
|
||||
}
|
||||
|
||||
return $relationships;
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
namespace App\BulkActions\Settings;
|
||||
|
||||
use App\Abstracts\BulkAction;
|
||||
use App\Jobs\Setting\DeleteTax;
|
||||
use App\Jobs\Setting\UpdateTax;
|
||||
use App\Models\Setting\Tax;
|
||||
|
||||
class Taxes extends BulkAction
|
||||
@ -13,76 +15,43 @@ class Taxes extends BulkAction
|
||||
'enable' => [
|
||||
'name' => 'general.enable',
|
||||
'message' => 'bulk_actions.message.enable',
|
||||
'permission' => 'update-settings-taxes'
|
||||
'permission' => 'update-settings-taxes',
|
||||
],
|
||||
'disable' => [
|
||||
'name' => 'general.disable',
|
||||
'message' => 'bulk_actions.message.disable',
|
||||
'permission' => 'update-settings-taxes'
|
||||
'permission' => 'update-settings-taxes',
|
||||
],
|
||||
'delete' => [
|
||||
'name' => 'general.delete',
|
||||
'message' => 'bulk_actions.message.deletes',
|
||||
'permission' => 'delete-settings-taxes'
|
||||
]
|
||||
'message' => 'bulk_actions.message.delete',
|
||||
'permission' => 'delete-settings-taxes',
|
||||
],
|
||||
];
|
||||
|
||||
public function disable($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$taxes = $this->model::find($selected);
|
||||
$taxes = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($taxes as $tax) {
|
||||
if (!$relationships = $this->getRelationships($tax)) {
|
||||
$tax->enabled = 0;
|
||||
$tax->save();
|
||||
|
||||
$message = trans('messages.success.disabled', ['type' => $tax->name]);
|
||||
|
||||
return $this->itemResponse($tax->fresh(), new Transformer(), $message);
|
||||
} else {
|
||||
$message = trans('messages.warning.disabled', ['name' => $tax->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new UpdateTax($tax, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($request)
|
||||
{
|
||||
$this->destroy($request);
|
||||
}
|
||||
|
||||
public function destroy($request)
|
||||
{
|
||||
$selected = $request->get('selected', []);
|
||||
|
||||
$taxes = $this->model::find($selected);
|
||||
$taxes = $this->getSelectedRecords($request);
|
||||
|
||||
foreach ($taxes as $tax) {
|
||||
if (!$relationships = $this->getRelationships($tax)) {
|
||||
$tax->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => $tax->name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = trans('messages.warning.deleted', ['name' => $tax->name, 'text' => implode(', ', $relationships)]);
|
||||
|
||||
$this->response->errorUnauthorized($message);
|
||||
try {
|
||||
$this->dispatch(new DeleteTax($tax));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getRelationships($tax)
|
||||
{
|
||||
$relationships = $this->countRelationships($tax, [
|
||||
'items' => 'items',
|
||||
'invoice_items' => 'invoices',
|
||||
'bill_items' => 'bills',
|
||||
]);
|
||||
|
||||
return $relationships;
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Jobs\Common;
|
||||
|
||||
use App\Abstracts\Job;
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\Common\Contact;
|
||||
|
||||
class UpdateContact extends Job
|
||||
|
@ -2,9 +2,8 @@
|
||||
|
||||
return [
|
||||
|
||||
'select_to_action' => 'Select To Action',
|
||||
'selected' => 'selected',
|
||||
'bulk_actions' => 'Bulk Action|Bulk Actions',
|
||||
'selected' => 'selected',
|
||||
'delete' => 'Delete',
|
||||
'duplicate' => 'Duplicate',
|
||||
'export' => 'Export',
|
||||
@ -40,12 +39,15 @@ return [
|
||||
],
|
||||
|
||||
'message' => [
|
||||
'sure' => 'Are you sure?',
|
||||
'duplicate' => 'Do you really want to duplicate these record?',
|
||||
'deletes' => 'Do you really want to delete these record?|Do you really want to delete these records?',
|
||||
'exports' => 'Do you really want to export these record?|Do you really want to export these records?',
|
||||
'enable' => 'Do you really want to enable these record?|Do you really want to enable these records?',
|
||||
'disable' => 'Do your really want to disable these record?|Do your really want to disable these records?',
|
||||
]
|
||||
'sure' => 'Are you sure?',
|
||||
'duplicate' => 'Do you really want to duplicate these record?',
|
||||
'delete' => 'Do you really want to delete this record?|Do you really want to delete these records?',
|
||||
'export' => 'Do you really want to export this record?|Do you really want to export these records?',
|
||||
'enable' => 'Do you really want to enable this record?|Do you really want to enable these records?',
|
||||
'disable' => 'Do you really want to disable this record?|Do you really want to disable these records?',
|
||||
'paid' => 'Do you really want to mark this invoice as paid?|Do you really want to mark these invoices as paid?',
|
||||
'sent' => 'Do you really want to mark this invoice as sent?|Do you really want to mark these invoices as sent?',
|
||||
'received' => 'Do you really want to mark this bill as received?|Do you really want to mark these bills as received?',
|
||||
],
|
||||
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user