Merge branch 'master' of https://github.com/brkcvn/akaunting into code-clean

This commit is contained in:
Burak Civan
2022-09-07 09:56:41 +03:00
76 changed files with 1024 additions and 705 deletions

View File

@@ -282,7 +282,7 @@ abstract class Index extends Component
foreach ($totals as $key => $total) {
$items[] = [
'title' => ($key == 'overdue') ? trans('general.overdue') : trans('documents.statuses.' . $key),
'href' => route($route, ['search' => 'status:' . $key]),
//'href' => route($route, ['search' => 'status:' . $key]),
'amount' => money($total, setting('default.currency'), true)->formatForHumans(),
'tooltip' => money($total, setting('default.currency'), true)->format(),
];

View File

@@ -397,7 +397,7 @@ abstract class Index extends Component
$items[] = [
'title' => $title,
'href' => $href,
//'href' => $href,
'amount' => $amount,
'tooltip' => $tooltip,
];

View File

@@ -6,6 +6,8 @@ use App\Abstracts\Http\ApiController;
use App\Http\Requests\Setting\Setting as Request;
use App\Http\Resources\Setting\Setting as Resource;
use App\Models\Setting\Setting;
use Laratrust\Middleware\LaratrustMiddleware;
class Settings extends ApiController
{
@@ -15,9 +17,10 @@ class Settings extends ApiController
public function __construct()
{
// Add CRUD permission check
$this->middleware('permission:create-settings-settings')->only('create', 'store', 'duplicate', 'import');
$this->middleware('permission:read-settings-settings')->only('index', 'show', 'edit', 'export');
$this->middleware('permission:update-settings-settings')->only('update', 'enable', 'disable', 'destroy');
// We've added base 3 permission then get all setting thsi permissions
$this->middleware('permission:create-settings-company|create-settings-defaults|create-settings-localisation')->only('create', 'store', 'duplicate', 'import');
$this->middleware('permission:read-settings-company|read-settings-defaults|read-settings-localisation')->only('index', 'show', 'edit', 'export');
$this->middleware('permission:update-settings-company|update-settings-defaults|update-settings-localisation')->only('update', 'enable', 'disable', 'destroy');
}
/**

View File

@@ -113,13 +113,7 @@ class DocumentTransactions extends Controller
$response = $this->ajaxDispatch(new CreateBankingDocumentTransaction($document, $request));
if ($response['success']) {
$route = config('type.document.' . $document->type . '.route.prefix');
if ($alias = config('type.document.' . $document->type . '.alias')) {
$route = $alias . '.' . $route;
}
$response['redirect'] = route($route . '.show', $document->id);
$response['redirect'] = url()->previous();
$message = trans('messages.success.added', ['type' => trans_choice('general.payments', 1)]);

View File

@@ -91,6 +91,8 @@ class Currencies extends Controller
{
$response = $this->ajaxDispatch(new UpdateCurrency($currency, $request));
$currency->default = setting('default.currency') == $currency->code;
if ($response['success']) {
$message = trans('messages.success.updated', ['type' => $currency->name]);
} else {

View File

@@ -13,7 +13,7 @@ class Pin extends Component
public $pinned = false;
public $reportId = null;
public $report;
public function render(): View
{
@@ -38,7 +38,7 @@ class Pin extends Component
continue;
}
if (in_array($this->reportId, $pins)) {
if (in_array($this->report->id, $pins)) {
$this->pinned = true;
break;

View File

@@ -15,19 +15,22 @@ class UpdateReconciliation extends Job implements ShouldUpdate
$reconcile = (int) $this->request->get('reconcile');
$transactions = $this->request->get('transactions');
$this->model->transactions = $transactions;
$this->model->reconciled = $reconcile;
$this->model->save();
if ($transactions) {
foreach ($transactions as $key => $value) {
if (empty($value)) {
continue;
$transaction_reconcile = $reconcile;
if (empty($value) || $value === 'false') {
$transaction_reconcile = 0;
}
$t = explode('_', $key);
$transaction = Transaction::find($t[1]);
$transaction->reconciled = $reconcile;
$transaction->reconciled = $transaction_reconcile;
$transaction->save();
}
}

View File

@@ -43,6 +43,9 @@ class Role extends LaratrustRole
'icon' => 'edit',
'url' => route('roles.roles.edit', $this->id),
'permission' => 'update-roles-roles',
'attributes' => [
'id' => 'index-line-actions-edit-role-' . $this->id,
],
];
$actions[] = [
@@ -50,6 +53,9 @@ class Role extends LaratrustRole
'icon' => 'file_copy',
'url' => route('roles.roles.duplicate', $this->id),
'permission' => 'create-roles-roles',
'attributes' => [
'id' => 'index-line-actions-duplicate-role-' . $this->id,
],
];
$actions[] = [
@@ -57,6 +63,9 @@ class Role extends LaratrustRole
'icon' => 'delete',
'route' => 'roles.roles.destroy',
'permission' => 'delete-roles-roles',
'attributes' => [
'id' => 'index-line-actions-delete-role-' . $this->id,
],
'model' => $this,
];

View File

@@ -326,6 +326,9 @@ class User extends Authenticatable implements HasLocalePreference
'icon' => 'edit',
'url' => route('users.edit', $this->id),
'permission' => 'update-auth-users',
'attributes' => [
'id' => 'index-line-actions-show-user-' . $this->id,
],
];
if ($this->hasPendingInvitation()) {
@@ -334,6 +337,9 @@ class User extends Authenticatable implements HasLocalePreference
'icon' => 'replay',
'url' => route('users.invite', $this->id),
'permission' => 'update-auth-users',
'attributes' => [
'id' => 'index-line-actions-resend-user-' . $this->id,
],
];
}
@@ -342,6 +348,9 @@ class User extends Authenticatable implements HasLocalePreference
'icon' => 'delete',
'route' => 'users.destroy',
'permission' => 'delete-auth-users',
'attributes' => [
'id' => 'index-line-actions-delete-user-' . $this->id,
],
'model' => $this,
];

View File

@@ -170,6 +170,9 @@ class Account extends Model
'icon' => 'visibility',
'url' => route('accounts.show', $this->id),
'permission' => 'read-banking-accounts',
'attributes' => [
'id' => 'index-line-actions-show-account-' . $this->id,
],
];
$actions[] = [
@@ -177,6 +180,9 @@ class Account extends Model
'icon' => 'edit',
'url' => route('accounts.edit', $this->id),
'permission' => 'update-banking-accounts',
'attributes' => [
'id' => 'index-line-actions-edit-account-' . $this->id,
],
];
$actions[] = [
@@ -185,6 +191,9 @@ class Account extends Model
'route' => 'accounts.destroy',
'permission' => 'delete-banking-accounts',
'model' => $this,
'attributes' => [
'id' => 'index-line-actions-delete-account-' . $this->id,
],
];
return $actions;

View File

@@ -28,6 +28,7 @@ class Reconciliation extends Model
protected $casts = [
'closing_balance' => 'double',
'reconciled' => 'boolean',
'transactions' => 'array',
];
/**
@@ -56,6 +57,9 @@ class Reconciliation extends Model
'icon' => 'edit',
'url' => route('reconciliations.edit', $this->id),
'permission' => 'update-banking-reconciliations',
'attributes' => [
'id' => 'index-line-actions-edit-reconciliation-' . $this->id,
],
];
$actions[] = [
@@ -63,6 +67,9 @@ class Reconciliation extends Model
'icon' => 'delete',
'route' => 'reconciliations.destroy',
'permission' => 'delete-banking-reconciliations',
'attributes' => [
'id' => 'index-line-actions-delete-reconciliation-' . $this->id,
],
'model' => $this,
];

View File

@@ -455,7 +455,7 @@ class Transaction extends Model
'url' => route($prefix. '.show', $this->id),
'permission' => 'read-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-show-' . $this->id,
'id' => 'index-line-actions-show-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
@@ -468,7 +468,7 @@ class Transaction extends Model
'url' => route($prefix. '.edit', $this->id),
'permission' => 'update-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-edit-' . $this->id,
'id' => 'index-line-actions-edit-' . $this->type . '-' . $this->id,
],
];
}
@@ -482,7 +482,7 @@ class Transaction extends Model
'url' => route($prefix. '.duplicate', $this->id),
'permission' => 'create-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-duplicate-' . $this->id,
'id' => 'index-line-actions-duplicate-' . $this->type . '-' . $this->id,
],
];
}
@@ -496,7 +496,7 @@ class Transaction extends Model
'icon' => 'sensors',
'permission' => 'create-banking-transactions',
'attributes' => [
'id' => 'index-transactions-more-actions-connect-' . $this->id,
'id' => 'index-line-actions-connect-' . $this->type . '-' . $this->id,
'@click' => 'onConnectTransactions(\'' . route('transactions.dial', $this->id) . '\')',
],
];
@@ -516,7 +516,7 @@ class Transaction extends Model
'url' => route($prefix. '.print', $this->id),
'permission' => 'read-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-print-' . $this->id,
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
'target' => '_blank',
],
];
@@ -529,7 +529,7 @@ class Transaction extends Model
'url' => route($prefix. '.pdf', $this->id),
'permission' => 'read-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-pdf-' . $this->id,
'id' => 'index-line-actions-pdf-' . $this->type . '-' . $this->id,
'target' => '_blank',
],
];
@@ -549,7 +549,7 @@ class Transaction extends Model
'url' => route('modals.transactions.share.create', $this->id),
'permission' => 'read-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-share-' . $this->id,
'id' => 'index-line-actions-share-' . $this->type . '-' . $this->id,
'@click' => 'onShareLink("' . route('modals.transactions.share.create', $this->id) . '")',
],
];
@@ -564,7 +564,7 @@ class Transaction extends Model
'url' => route('modals.transactions.emails.create', $this->id),
'permission' => 'read-banking-transactions',
'attributes' => [
'id' => 'index-more-actions-send-email-' . $this->id,
'id' => 'index-line-actions-send-email-' . $this->type . '-' . $this->id,
'@click' => 'onEmail("' . route('modals.transactions.emails.create', $this->id) . '")',
],
];
@@ -583,6 +583,9 @@ class Transaction extends Model
'text' => ! empty($this->recurring) ? 'transactions' : 'recurring_template',
'route' => $prefix. '.destroy',
'permission' => 'delete-banking-transactions',
'attributes' => [
'id' => 'index-line-actions-delete-' . $this->type . '-' . $this->id,
],
'model' => $this,
];
}
@@ -595,6 +598,9 @@ class Transaction extends Model
'icon' => 'block',
'url' => route($prefix. '.end', $this->id),
'permission' => 'update-banking-transactions',
'attributes' => [
'id' => 'index-line-actions-end-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
}

View File

@@ -246,6 +246,9 @@ class Transfer extends Model
'icon' => 'visibility',
'url' => route('transfers.show', $this->id),
'permission' => 'read-banking-transfers',
'attributes' => [
'id' => 'index-line-actions-show-transfer-' . $this->id,
],
];
$actions[] = [
@@ -253,6 +256,9 @@ class Transfer extends Model
'icon' => 'edit',
'url' => route('transfers.edit', $this->id),
'permission' => 'update-banking-transfers',
'attributes' => [
'id' => 'index-line-actions-edit-transfer-' . $this->id,
],
];
$actions[] = [
@@ -260,6 +266,9 @@ class Transfer extends Model
'icon' => 'file_copy',
'url' => route('transfers.duplicate', $this->id),
'permission' => 'update-banking-transfers',
'attributes' => [
'id' => 'index-line-actions-duplicate-transfer-' . $this->id,
],
];
$actions[] = [
@@ -267,6 +276,9 @@ class Transfer extends Model
'icon' => 'delete',
'route' => 'transfers.destroy',
'permission' => 'delete-banking-transfers',
'attributes' => [
'id' => 'index-line-actions-delete-transfer-' . $this->id,
],
'model' => $this,
];

View File

@@ -70,7 +70,7 @@ class Company extends Eloquent implements Ownable
{
parent::boot();
try {
try {
// TODO will optimize..
static::retrieved(function($model) {
$model->setCommonSettingsAsAttributes();
@@ -550,6 +550,9 @@ class Company extends Eloquent implements Ownable
'icon' => 'settings_ethernet',
'url' => route('companies.switch', $this->id),
'permission' => 'read-common-companies',
'attributes' => [
'id' => 'index-line-actions-switch-company-' . $this->id,
],
];
}
@@ -558,6 +561,9 @@ class Company extends Eloquent implements Ownable
'icon' => 'edit',
'url' => route('companies.edit', $this->id),
'permission' => 'update-common-companies',
'attributes' => [
'id' => 'index-line-actions-edit-company-' . $this->id,
],
];
$actions[] = [
@@ -565,6 +571,9 @@ class Company extends Eloquent implements Ownable
'icon' => 'delete',
'route' => 'companies.destroy',
'permission' => 'delete-common-companies',
'attributes' => [
'id' => 'index-line-actions-delete-company-' . $this->id,
],
'model' => $this,
];

View File

@@ -291,6 +291,9 @@ class Contact extends Model
'icon' => 'visibility',
'url' => route($prefix . '.show', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-show-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
@@ -300,6 +303,9 @@ class Contact extends Model
'icon' => 'edit',
'url' => route($prefix . '.edit', $this->id),
'permission' => 'update-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-edit-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
@@ -309,6 +315,9 @@ class Contact extends Model
'icon' => 'file_copy',
'url' => route($prefix . '.duplicate', $this->id),
'permission' => 'create-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-duplicate-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
@@ -319,6 +328,9 @@ class Contact extends Model
'title' => $translation_prefix,
'route' => $prefix . '.destroy',
'permission' => 'delete-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-delete-' . $this->type . '-' . $this->id,
],
'model' => $this,
];
} catch (\Exception $e) {}

View File

@@ -129,6 +129,9 @@ class Dashboard extends Model
'icon' => 'settings_ethernet',
'url' => route('dashboards.switch', $this->id),
'permission' => 'read-common-dashboards',
'attributes' => [
'id' => 'index-line-actions-switch-dashboard-' . $this->id,
],
];
}
@@ -137,6 +140,9 @@ class Dashboard extends Model
'icon' => 'edit',
'url' => route('dashboards.edit', $this->id),
'permission' => 'update-common-dashboards',
'attributes' => [
'id' => 'index-line-actions-edit-dashboard-' . $this->id,
],
];
$actions[] = [
@@ -144,6 +150,9 @@ class Dashboard extends Model
'icon' => 'delete',
'route' => 'dashboards.destroy',
'permission' => 'delete-common-dashboards',
'attributes' => [
'id' => 'index-line-actions-delete-dashboard-' . $this->id,
],
'model' => $this,
];

View File

@@ -174,6 +174,9 @@ class Item extends Model
'icon' => 'edit',
'url' => route('items.edit', $this->id),
'permission' => 'update-common-items',
'attributes' => [
'id' => 'index-line-actions-edit-item-' . $this->id,
],
];
$actions[] = [
@@ -181,6 +184,9 @@ class Item extends Model
'icon' => 'file_copy',
'url' => route('items.duplicate', $this->id),
'permission' => 'create-common-items',
'attributes' => [
'id' => 'index-line-actions-duplicate-item-' . $this->id,
],
];
$actions[] = [
@@ -188,6 +194,9 @@ class Item extends Model
'icon' => 'delete',
'route' => 'items.destroy',
'permission' => 'delete-common-items',
'attributes' => [
'id' => 'index-line-actions-delete-item-' . $this->id,
],
'model' => $this,
];

View File

@@ -488,18 +488,6 @@ class Document extends Model
return $actions;
}
try {
$actions[] = [
'title' => trans('general.show'),
'icon' => 'visibility',
'url' => route($prefix . '.show', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-show-' . $this->id,
],
];
} catch (\Exception $e) {}
try {
if (! $this->reconciled) {
$actions[] = [
@@ -508,7 +496,7 @@ class Document extends Model
'url' => route($prefix . '.edit', $this->id),
'permission' => 'update-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-edit-' . $this->id,
'id' => 'index-line-actions-edit-' . $this->type . '-' . $this->id,
],
];
}
@@ -521,12 +509,26 @@ class Document extends Model
'url' => route($prefix . '.duplicate', $this->id),
'permission' => 'create-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-duplicate-' . $this->id,
'id' => 'index-line-actions-duplicate-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
if ($this->status != 'cancelled') {
if ((empty($this->transactions->count()) || (! empty($this->transactions->count()) && $this->paid != $this->amount))) {
try {
$actions[] = [
'type' => 'button',
'title' => trans('invoices.add_payment'),
'icon' => 'paid',
'url' => route('modals.documents.document.transactions.create', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-payment-' . $this->type . '-' . $this->id,
'@click' => 'onPayment("' . $this->id . '")',
],
];
} catch (\Exception $e) {}
} else {
try {
$actions[] = [
'title' => trans('general.print'),
@@ -534,7 +536,22 @@ class Document extends Model
'url' => route($prefix . '.print', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-print-' . $this->id,
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
'target' => '_blank',
],
];
} catch (\Exception $e) {}
}
if (($actions[1]['icon'] != 'print') && ($actions[2]['icon'] != 'print')) {
try {
$actions[] = [
'title' => trans('general.print'),
'icon' => 'print',
'url' => route($prefix . '.print', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-print-' . $this->type . '-' . $this->id,
'target' => '_blank',
],
];
@@ -548,7 +565,7 @@ class Document extends Model
'url' => route($prefix . '.pdf', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-pdf-' . $this->id,
'id' => 'index-line-actions-pdf-' . $this->type . '-' . $this->id,
'target' => '_blank',
],
];
@@ -568,14 +585,14 @@ class Document extends Model
'url' => route('modals.'. $prefix . '.share.create', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-share-link-' . $this->id,
'id' => 'index-line-actions-share-link-' . $this->type . '-' . $this->id,
'@click' => 'onShareLink("' . route('modals.'. $prefix . '.share.create', $this->id) . '")',
],
];
} catch (\Exception $e) {}
try {
if (! empty($this->contact) && $this->contact->email && $this->type == 'invoice') {
if (! empty($this->contact) && $this->contact->email && ($this->type == 'invoice')) {
$actions[] = [
'type' => 'button',
'title' => trans('invoices.send_mail'),
@@ -583,8 +600,8 @@ class Document extends Model
'url' => route('modals.'. $prefix . '.emails.create', $this->id),
'permission' => 'read-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-send-email-' . $this->id,
'@click' => 'onEmail("' . route('modals.'. $prefix . '.emails.create', $this->id) . '")',
'id' => 'index-line-actions-send-email-' . $this->type . '-' . $this->id,
'@click' => 'onEmail("' . route('modals.'. $prefix . '.emails.create', $this->id) . '")',
],
];
}
@@ -603,7 +620,7 @@ class Document extends Model
'url' => route($prefix . '.cancelled', $this->id),
'permission' => 'update-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-more-actions-cancel-' . $this->id,
'id' => 'index-line-actions-cancel-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
@@ -620,6 +637,9 @@ class Document extends Model
'title' => $translation_prefix,
'route' => $prefix . '.destroy',
'permission' => 'delete-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-delete-' . $this->type . '-' . $this->id,
],
'model' => $this,
];
} catch (\Exception $e) {}
@@ -630,6 +650,9 @@ class Document extends Model
'icon' => 'block',
'url' => route($prefix. '.end', $this->id),
'permission' => 'update-' . $group . '-' . $permission_prefix,
'attributes' => [
'id' => 'index-line-actions-end-' . $this->type . '-' . $this->id,
],
];
} catch (\Exception $e) {}
}

View File

@@ -240,6 +240,9 @@ class Category extends Model
'icon' => 'create',
'url' => route('categories.edit', $this->id),
'permission' => 'update-settings-categories',
'attributes' => [
'id' => 'index-line-actions-edit-category-' . $this->id,
],
];
if ($this->isTransferCategory()) {
@@ -251,6 +254,9 @@ class Category extends Model
'icon' => 'delete',
'route' => 'categories.destroy',
'permission' => 'delete-settings-categories',
'attributes' => [
'id' => 'index-line-actions-delete-category-' . $this->id,
],
'model' => $this,
];

View File

@@ -197,6 +197,9 @@ class Currency extends Model
'icon' => 'edit',
'url' => route('currencies.edit', $this->id),
'permission' => 'update-settings-currencies',
'attributes' => [
'id' => 'index-line-actions-edit-currency-' . $this->id,
],
];
$actions[] = [
@@ -204,6 +207,9 @@ class Currency extends Model
'icon' => 'delete',
'route' => 'currencies.destroy',
'permission' => 'delete-settings-currencies',
'attributes' => [
'id' => 'index-line-actions-delete-currency-' . $this->id,
],
'model' => $this,
];

View File

@@ -150,6 +150,9 @@ class Tax extends Model
'icon' => 'edit',
'url' => route('taxes.edit', $this->id),
'permission' => 'update-settings-taxes',
'attributes' => [
'id' => 'index-line-actions-edit-tax-' . $this->id,
],
];
$actions[] = [
@@ -157,6 +160,9 @@ class Tax extends Model
'icon' => 'delete',
'route' => 'taxes.destroy',
'permission' => 'delete-settings-taxes',
'attributes' => [
'id' => 'index-line-actions-delete-tax-' . $this->id,
],
'model' => $this,
];

View File

@@ -51,6 +51,18 @@ trait Transactions
return Str::endsWith($type, '-transfer');
}
public function isDocumentTransaction(): bool
{
$document_id = $this->document_id ?? $this->transaction->document_id ?? $this->model->document_id ?? null;
return ! empty($document_id);
}
public function isNotDocumentTransaction(): bool
{
return ! $this->isDocumentTransaction();
}
public function isNotTransferTransaction(): bool
{
return ! $this->isTransferTransaction();

View File

@@ -103,6 +103,7 @@ class Scripts extends Component
'name' => trans('general.name'),
'code' => trans('currencies.code'),
'rate' => trans('currencies.rate'),
'default' => trans('currencies.default'),
'enabled' => trans('general.enabled'),
'actions' => trans('general.actions') ,
'yes' => trans('general.yes'),
@@ -162,7 +163,15 @@ class Scripts extends Component
protected function getCurrencies()
{
return Currency::all();
$currencies = collect();
Currency::all()->each(function ($currency) use (&$currencies) {
$currency->default = setting('default.currency') == $currency->code;
$currencies->push($currency);
});
return $currencies;
}
protected function getCurrencyCodes()