Merge remote-tracking branch 'AkauntingOrigin/master'
This commit is contained in:
commit
b029605da7
@ -28,7 +28,7 @@
|
||||
RewriteRule ^(app|bootstrap|config|database|overrides|resources|routes|storage|tests)/(.*) / [L,R=301]
|
||||
|
||||
# Prevent Direct Access To modules/vendor Folders Except Assets
|
||||
RewriteRule ^(modules|vendor)/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301]
|
||||
RewriteRule ^(modules|vendor)/(.*)\.((?!ico|gif|jpg|jpeg|png|js\b|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301]
|
||||
|
||||
# Redirect Trailing Slashes If Not A Folder...
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
|
@ -134,7 +134,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateContact($contact, request()->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -147,7 +147,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteContact($contact));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -160,7 +160,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTransaction($transaction));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -82,17 +82,29 @@ abstract class Controller extends BaseController
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function importExcel($class, $request, $url)
|
||||
public function importExcel($class, $request)
|
||||
{
|
||||
try {
|
||||
Excel::import($class, $request->file('import'));
|
||||
} catch (SheetNotFoundException | ErrorException | Exception | Throwable $e) {
|
||||
flash($e->getMessage())->error()->important();
|
||||
|
||||
return redirect()->route('import.create', explode('/', $url));
|
||||
$response = [
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'data' => null,
|
||||
'message' => '',
|
||||
];
|
||||
} catch (SheetNotFoundException | ErrorException | Exception | Throwable $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
$response = [
|
||||
'success' => false,
|
||||
'error' => true,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
}
|
||||
|
||||
return true;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,7 @@ abstract class PaymentController extends BaseController
|
||||
|
||||
$this->logger->info($this->module->getName() . ':: Invoice: ' . $invoice->id . ' - Cancel Message: ' . $message);
|
||||
|
||||
flash($message)->warning();
|
||||
flash($message)->warning()->important();
|
||||
|
||||
$invoice_url = $this->getInvoiceUrl($invoice);
|
||||
|
||||
|
@ -277,44 +277,28 @@ abstract class Report
|
||||
case 'yearly':
|
||||
$start->addYear();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
$j += 11;
|
||||
|
||||
break;
|
||||
case 'quarterly':
|
||||
$start->addQuarter();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
$j += 2;
|
||||
|
||||
break;
|
||||
default:
|
||||
$start->addMonth();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -387,16 +371,35 @@ abstract class Report
|
||||
{
|
||||
switch ($this->getSetting('period')) {
|
||||
case 'yearly':
|
||||
$i = $date->copy()->format($this->getYearlyDateFormat());
|
||||
$financial_year = $this->getFinancialYear($this->year);
|
||||
|
||||
if ($date->greaterThanOrEqualTo($financial_year->getStartDate()) && $date->lessThanOrEqualTo($financial_year->getEndDate())) {
|
||||
if (setting('localisation.financial_denote') == 'begins') {
|
||||
$i = $financial_year->getStartDate()->copy()->format($this->getYearlyDateFormat());
|
||||
} else {
|
||||
$i = $financial_year->getEndDate()->copy()->format($this->getYearlyDateFormat());
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case 'quarterly':
|
||||
$start = $date->copy()->startOfQuarter()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$end = $date->copy()->endOfQuarter()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$quarters = $this->getFinancialQuarters($this->year);
|
||||
|
||||
foreach ($quarters as $quarter) {
|
||||
if ($date->lessThan($quarter->getStartDate()) || $date->greaterThan($quarter->getEndDate())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$start = $quarter->getStartDate()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$end = $quarter->getEndDate()->format($this->getQuarterlyDateFormat($this->year));
|
||||
}
|
||||
|
||||
$i = $start . '-' . $end;
|
||||
|
||||
break;
|
||||
default:
|
||||
$i = $date->copy()->format($this->getMonthlyDateFormat($this->year));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -537,7 +537,7 @@ abstract class DocumentForm extends Base
|
||||
if (request()->has($issued_at)) {
|
||||
$issuedAt = request()->get($issued_at);
|
||||
} else {
|
||||
$issuedAt = request()->get('invoiced_at', Date::now()->toDateString());
|
||||
$issuedAt = request()->get('invoice_at', Date::now()->toDateString());
|
||||
}
|
||||
|
||||
return $issuedAt;
|
||||
@ -572,20 +572,19 @@ abstract class DocumentForm extends Base
|
||||
return $document->due_at;
|
||||
}
|
||||
|
||||
$addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : setting('invoice.payment_terms', 0);
|
||||
$issued_at = $type . '_at';
|
||||
|
||||
switch ($type) {
|
||||
case 'bill':
|
||||
case 'expense':
|
||||
case 'purchase':
|
||||
$due_at = request()->get('billed_at', Date::now()->toDateString());
|
||||
break;
|
||||
default:
|
||||
$due_at = Date::parse(request()->get('invoiced_at', Date::now()->toDateString()))->addDays($addDays)->toDateString();
|
||||
break;
|
||||
if (request()->has($issued_at)) {
|
||||
$issuedAt = request()->get($issued_at);
|
||||
} else {
|
||||
$issuedAt = Date::now()->toDateString();
|
||||
}
|
||||
|
||||
return $due_at;
|
||||
$addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : 0;
|
||||
|
||||
$dueAt = Date::parse($issuedAt)->addDays($addDays)->toDateString();
|
||||
|
||||
return $dueAt;
|
||||
}
|
||||
|
||||
protected function getOrderNumber($type, $document, $orderNumber)
|
||||
|
@ -37,7 +37,7 @@ class Users extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateUser($user, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Users extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteUser($user));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Accounts extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateAccount($account, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Accounts extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteAccount($account));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ class Transfers extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTransfer($transfer));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 1]), session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 0]), session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -63,7 +63,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCompany($company, session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 1])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -63,7 +63,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDashboard($dashboard));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ class Items extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteItem($item));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ class Bills extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDocument($bill));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ class Invoices extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDocument($invoice));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Categories extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCategory($category, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Categories extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCategory($category));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Currencies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCurrency($currency, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Currencies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCurrency($currency));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Taxes extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateTax($tax, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Taxes extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTax($tax));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class Handler extends ExceptionHandler
|
||||
return response()->json(['error' => 'Not Found'], 404);
|
||||
}
|
||||
|
||||
flash(trans('errors.body.page_not_found'))->error();
|
||||
flash(trans('errors.body.page_not_found'))->error()->important();
|
||||
|
||||
// normal 404 view page feedback
|
||||
return redirect()
|
||||
|
@ -55,7 +55,7 @@ class Permissions extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -96,7 +96,7 @@ class Permissions extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -122,7 +122,7 @@ class Permissions extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -63,7 +63,7 @@ class Roles extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -111,7 +111,7 @@ class Roles extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -137,7 +137,7 @@ class Roles extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -85,7 +85,7 @@ class Users extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -167,7 +167,7 @@ class Users extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -229,7 +229,7 @@ class Users extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -70,7 +70,7 @@ class Accounts extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -117,7 +117,7 @@ class Accounts extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -179,7 +179,7 @@ class Accounts extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -85,7 +85,7 @@ class Reconciliations extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -134,7 +134,7 @@ class Reconciliations extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -160,7 +160,7 @@ class Reconciliations extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -42,13 +42,23 @@ class Transactions extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
\Excel::import(new Import(), $request->file('import'));
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 2)]);
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transactions.index');
|
||||
|
||||
flash($message)->success();
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 1)]);
|
||||
|
||||
return redirect()->route('transactions.index');
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['banking', 'transactions']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -71,7 +81,7 @@ class Transactions extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -25,64 +25,11 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$items = Transfer::with(
|
||||
$transfers = Transfer::with(
|
||||
'expense_transaction', 'expense_transaction.account', 'income_transaction', 'income_transaction.account'
|
||||
)->collect(['expense_transaction.paid_at' => 'desc']);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$income_transaction = $item->income_transaction;
|
||||
$expense_transaction = $item->expense_transaction;
|
||||
|
||||
$name = trans('transfers.messages.delete', [
|
||||
'from' => $expense_transaction->account->name,
|
||||
'to' => $income_transaction->account->name,
|
||||
'amount' => money($expense_transaction->amount, $expense_transaction->currency_code, true)
|
||||
]);
|
||||
|
||||
$data[] = (object) [
|
||||
'id' => $item->id,
|
||||
'name' => $name,
|
||||
'from_account' => $expense_transaction->account->name,
|
||||
'to_account' => $income_transaction->account->name,
|
||||
'amount' => $expense_transaction->amount,
|
||||
'currency_code' => $expense_transaction->currency_code,
|
||||
'paid_at' => $expense_transaction->paid_at,
|
||||
];
|
||||
}
|
||||
|
||||
$special_key = [
|
||||
'expense_transaction.name' => 'from_account',
|
||||
'income_transaction.name' => 'to_account',
|
||||
];
|
||||
|
||||
$request = request();
|
||||
|
||||
if (isset($request['sort']) && array_key_exists($request['sort'], $special_key)) {
|
||||
$sort_order = [];
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$sort = $request['sort'];
|
||||
|
||||
if (array_key_exists($request['sort'], $special_key)) {
|
||||
$sort = $special_key[$request['sort']];
|
||||
}
|
||||
|
||||
$sort_order[$key] = $value->{$sort};
|
||||
}
|
||||
|
||||
$sort_type = (isset($request['order']) && $request['order'] == 'asc') ? SORT_ASC : SORT_DESC;
|
||||
|
||||
array_multisort($sort_order, $sort_type, $data);
|
||||
}
|
||||
|
||||
$transfers = $request->expectsJson() ? $data : $this->paginate($data);
|
||||
|
||||
$accounts = collect(Account::enabled()->orderBy('name')->pluck('name', 'id'))
|
||||
->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), '');
|
||||
|
||||
return $this->response('banking.transfers.index', compact('transfers', 'accounts'));
|
||||
return $this->response('banking.transfers.index', compact('transfers'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,7 +80,7 @@ class Transfers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -148,15 +95,23 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'banking/transfers')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transfers.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['banking', 'transfers']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('transfers.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -210,7 +165,7 @@ class Transfers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -236,7 +191,7 @@ class Transfers extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -42,7 +42,7 @@ class BulkActions extends Controller
|
||||
}
|
||||
|
||||
if (isset($bulk_actions->actions[$request->get('handle')]['permission']) && !user()->can($bulk_actions->actions[$request->get('handle')]['permission'])) {
|
||||
flash(trans('errors.message.403'))->error();
|
||||
flash(trans('errors.message.403'))->error()->important();
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
|
@ -75,7 +75,7 @@ class Companies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
session(['company_id' => $company_id]);
|
||||
@ -128,7 +128,7 @@ class Companies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
session(['company_id' => $company_id]);
|
||||
@ -194,7 +194,7 @@ class Companies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -110,7 +110,7 @@ class Dashboards extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -156,7 +156,7 @@ class Dashboards extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -220,7 +220,7 @@ class Dashboards extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -78,7 +78,7 @@ class Items extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -111,15 +111,23 @@ class Items extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'common/items')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('items.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['common', 'items']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('items.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -164,7 +172,7 @@ class Items extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -226,7 +234,7 @@ class Items extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -13,6 +13,17 @@ use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class Reports extends Controller
|
||||
{
|
||||
/**
|
||||
* Instantiate a new controller instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Add CRUD permission check
|
||||
$this->middleware('permission:create-common-reports')->only('create', 'store', 'duplicate', 'import');
|
||||
$this->middleware('permission:read-common-reports')->only('index', 'show', 'export');
|
||||
$this->middleware('permission:update-common-reports')->only('edit', 'update', 'enable', 'disable');
|
||||
$this->middleware('permission:delete-common-reports')->only('destroy');
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -101,7 +112,7 @@ class Reports extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -163,7 +174,7 @@ class Reports extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -189,7 +200,7 @@ class Reports extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -142,7 +142,7 @@ class Uploads extends Controller
|
||||
if (!$path = $this->getPath($media)) {
|
||||
$message = trans('messages.warning.deleted', ['name' => $media->basename, 'text' => $media->basename]);
|
||||
|
||||
flash($message)->warning();
|
||||
flash($message)->warning()->important();
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
@ -259,7 +259,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
$json = [
|
||||
'success' => false,
|
||||
@ -285,7 +285,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
@ -304,7 +304,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
@ -323,7 +323,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
|
@ -95,7 +95,7 @@ class Bills extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -128,15 +128,23 @@ class Bills extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/bills')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('bills.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'bills']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('bills.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -174,7 +182,7 @@ class Bills extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -200,7 +208,7 @@ class Bills extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -310,7 +318,7 @@ class Bills extends Controller
|
||||
} catch(\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
|
@ -66,7 +66,17 @@ class Payments extends Controller
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +101,7 @@ class Payments extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -124,15 +134,23 @@ class Payments extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/payments')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('payments.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'payments']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('payments.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,7 +184,17 @@ class Payments extends Controller
|
||||
|
||||
$date_format = $this->getCompanyDateFormat();
|
||||
|
||||
return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -192,7 +220,7 @@ class Payments extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -218,7 +246,7 @@ class Payments extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -128,7 +128,7 @@ class Vendors extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -161,15 +161,23 @@ class Vendors extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/vendors')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('vendors.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'vendors']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('vendors.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -209,7 +217,7 @@ class Vendors extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -271,7 +279,7 @@ class Vendors extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -126,7 +126,7 @@ class Customers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -159,15 +159,23 @@ class Customers extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/customers')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('customers.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'customers']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('customers.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +215,7 @@ class Customers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -269,7 +277,7 @@ class Customers extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -94,7 +94,7 @@ class Invoices extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -127,15 +127,23 @@ class Invoices extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/invoices')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('invoices.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'invoices']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('invoices.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -173,7 +181,7 @@ class Invoices extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -199,7 +207,7 @@ class Invoices extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -359,7 +367,7 @@ class Invoices extends Controller
|
||||
} catch(\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
|
@ -66,7 +66,17 @@ class Revenues extends Controller
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +101,7 @@ class Revenues extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -124,15 +134,23 @@ class Revenues extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/revenues')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('revenues.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'revenues']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('revenues.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,7 +184,17 @@ class Revenues extends Controller
|
||||
|
||||
$date_format = $this->getCompanyDateFormat();
|
||||
|
||||
return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -192,7 +220,7 @@ class Revenues extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -218,7 +246,7 @@ class Revenues extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -82,7 +82,7 @@ class Categories extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -132,7 +132,7 @@ class Categories extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -194,7 +194,7 @@ class Categories extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -90,7 +90,7 @@ class Currencies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -158,7 +158,7 @@ class Currencies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -220,7 +220,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -41,12 +41,18 @@ class Localisation extends Controller
|
||||
'both' => trans('settings.localisation.discount_location.both'),
|
||||
];
|
||||
|
||||
$financial_denote_options = [
|
||||
'begins' => trans('settings.localisation.financial_denote.begins'),
|
||||
'ends' => trans('settings.localisation.financial_denote.ends'),
|
||||
];
|
||||
|
||||
return view('settings.localisation.edit', compact(
|
||||
'timezones',
|
||||
'date_formats',
|
||||
'date_separators',
|
||||
'percent_positions',
|
||||
'discount_locations'
|
||||
'discount_locations',
|
||||
'financial_denote_options'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ class Taxes extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -143,7 +143,7 @@ class Taxes extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -205,7 +205,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -68,7 +68,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -95,7 +95,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -121,7 +121,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -55,7 +55,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -82,7 +82,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -108,7 +108,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -148,6 +148,7 @@ class Kernel extends HttpKernel
|
||||
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
||||
'company.settings' => \App\Http\Middleware\LoadSettings::class,
|
||||
'company.signed' => \App\Http\Middleware\SignedCompany::class,
|
||||
'dropzone' => \App\Http\Middleware\Dropzone::class,
|
||||
'header.x' => \App\Http\Middleware\AddXHeader::class,
|
||||
'menu.admin' => \App\Http\Middleware\AdminMenu::class,
|
||||
'menu.portal' => \App\Http\Middleware\PortalMenu::class,
|
||||
|
65
app/Http/Middleware/Dropzone.php
Normal file
65
app/Http/Middleware/Dropzone.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class Dropzone
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if (!in_array($request->method(), ['POST', 'PATCH'])) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$multiple = false;
|
||||
|
||||
foreach ($request->all() as $key => $value) {
|
||||
if (!is_array($value)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$files = [];
|
||||
$uploaded = [];
|
||||
|
||||
foreach ($value as $index => $parameter) {
|
||||
// single file uploaded..
|
||||
if (!is_array($parameter) && !$multiple) {
|
||||
if (!Arr::has($value, 'dropzone')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$request->request->set('uploaded_' . $key, $value);
|
||||
|
||||
unset($request[$key]);
|
||||
break;
|
||||
}
|
||||
|
||||
// multiple file uploaded..
|
||||
if (!Arr::has($parameter, 'dropzone')) {
|
||||
$files[] = $parameter;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$multiple = true;
|
||||
$uploaded[] = $parameter;
|
||||
}
|
||||
|
||||
if ($multiple && $uploaded) {
|
||||
$request->request->set('uploaded_' . $key, $uploaded);
|
||||
$request->request->set($key, $files);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@ -19,95 +19,65 @@ class Money
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if ($request->method() == 'POST' || $request->method() == 'PATCH') {
|
||||
$amount = $request->get('amount');
|
||||
$document_number = $request->get('document_number');
|
||||
$sale_price = $request->get('sale_price');
|
||||
$purchase_price = $request->get('purchase_price');
|
||||
$opening_balance = $request->get('opening_balance');
|
||||
$items = $request->get('items');
|
||||
if (($request->method() != 'POST') && ($request->method() != 'PATCH')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
if (!empty($amount)) {
|
||||
try {
|
||||
$amount = money($amount)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
$parameters = [
|
||||
'amount',
|
||||
'sale_price',
|
||||
'purchase_price',
|
||||
'opening_balance',
|
||||
];
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$request->request->set('amount', $amount);
|
||||
foreach ($parameters as $parameter) {
|
||||
if (!$request->has($parameter)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isset($document_number) || !empty($items)) {
|
||||
if (!empty($items)) {
|
||||
foreach ($items as $key => $item) {
|
||||
if (!isset($item['price'])) {
|
||||
continue;
|
||||
}
|
||||
$money_format = $request->get($parameter);
|
||||
|
||||
try {
|
||||
$amount = money($item['price'])->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
if ($parameter == 'sale_price' || $parameter == 'purchase_price') {
|
||||
$money_format = Str::replaceFirst(',', '.', $money_format);
|
||||
}
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
$amount = $this->getAmount($money_format);
|
||||
|
||||
$items[$key]['price'] = $amount;
|
||||
$request->request->set($parameter, $amount);
|
||||
}
|
||||
|
||||
$document_number = $request->get('document_number');
|
||||
$items = $request->get('items');
|
||||
|
||||
if (isset($document_number) || !empty($items)) {
|
||||
if (!empty($items)) {
|
||||
foreach ($items as $key => $item) {
|
||||
if (!isset($item['price'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$request->request->set('items', $items);
|
||||
}
|
||||
}
|
||||
$amount = $this->getAmount($item['price']);
|
||||
|
||||
if (isset($opening_balance)) {
|
||||
try {
|
||||
$amount = money($opening_balance)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
$items[$key]['price'] = $amount;
|
||||
}
|
||||
|
||||
$opening_balance = $amount;
|
||||
|
||||
$request->request->set('opening_balance', $opening_balance);
|
||||
}
|
||||
|
||||
if (isset($sale_price)) {
|
||||
$sale_price = Str::replaceFirst(',', '.', $sale_price);
|
||||
|
||||
try {
|
||||
$amount = money($sale_price)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$sale_price = $amount;
|
||||
|
||||
$request->request->set('sale_price', $sale_price);
|
||||
}
|
||||
|
||||
if (isset($purchase_price)) {
|
||||
$purchase_price = Str::replaceFirst(',', '.', $purchase_price);
|
||||
|
||||
try {
|
||||
$amount = money($purchase_price)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$purchase_price = $amount;
|
||||
|
||||
$request->request->set('purchase_price', $purchase_price);
|
||||
$request->request->set('items', $items);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
protected function getAmount($money_format)
|
||||
{
|
||||
try {
|
||||
$amount = money($money_format)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
return $amount;
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ class Transaction extends FormRequest
|
||||
'contact_id' => 'nullable|integer',
|
||||
'category_id' => 'required|integer',
|
||||
'payment_method' => 'required|string',
|
||||
'attachment' => $attachment,
|
||||
'attachment.*' => $attachment,
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,6 @@ use App\Models\Banking\Transfer as Model;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Traits\Currencies;
|
||||
use App\Utilities\Date;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\Date as ExcelDate;
|
||||
|
||||
class Transfers extends Import
|
||||
{
|
||||
@ -23,7 +22,7 @@ class Transfers extends Import
|
||||
{
|
||||
$row = parent::map($row);
|
||||
|
||||
$row['transferred_at'] = Date::parse(ExcelDate::excelToDateTimeObject($row['transferred_at']))->format('Y-m-d');
|
||||
$row['transferred_at'] = Date::parse($row['transferred_at'])->format('Y-m-d');
|
||||
$row['from_account_id'] = $this->getFromAccountId($row);
|
||||
$row['to_account_id'] = $this->getToAccountId($row);
|
||||
$row['expense_transaction_id'] = $this->getExpenseTransactionId($row);
|
||||
|
@ -37,9 +37,11 @@ class CreateTransaction extends Job
|
||||
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$media = $this->getMedia($this->request->file('attachment'), 'transactions');
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transactions');
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
}
|
||||
}
|
||||
|
||||
// Recurring
|
||||
|
@ -37,9 +37,15 @@ class UpdateTransaction extends Job
|
||||
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$media = $this->getMedia($this->request->file('attachment'), 'transactions');
|
||||
$this->deleteMediaModel($this->transaction, 'attachment', $this->request);
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transactions');
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
}
|
||||
} elseif (!$this->request->file('attachment') && $this->transaction->attachment) {
|
||||
$this->deleteMediaModel($this->transaction, 'attachment', $this->request);
|
||||
}
|
||||
|
||||
// Recurring
|
||||
|
@ -46,13 +46,15 @@ class UpdateDocument extends Job
|
||||
\DB::transaction(function () {
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$this->document->delete_attachment();
|
||||
$this->deleteMediaModel($this->document, 'attachment', $this->request);
|
||||
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, Str::plural($this->document->type));
|
||||
|
||||
$this->document->attachMedia($media, 'attachment');
|
||||
}
|
||||
} elseif (!$this->request->file('attachment') && $this->document->attachment) {
|
||||
$this->deleteMediaModel($this->document, 'attachment', $this->request);
|
||||
}
|
||||
|
||||
$this->deleteRelationships($this->document, ['items', 'item_taxes', 'totals']);
|
||||
|
@ -22,7 +22,7 @@ class Login
|
||||
if (!$company) {
|
||||
app('App\Http\Controllers\Auth\Login')->logout();
|
||||
|
||||
flash(trans('auth.error.no_company'))->error();
|
||||
flash(trans('auth.error.no_company'))->error()->important();
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -32,13 +32,13 @@ class CreateDocumentTransaction
|
||||
$type = Str::plural($event->document->type);
|
||||
|
||||
if (empty($user)) {
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
redirect()->route("signed.$type.show", $document->id)->send();
|
||||
}
|
||||
|
||||
if ($user->can('read-client-portal')) {
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
redirect()->route("portal.$type.show", $document->id)->send();
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Models\Banking;
|
||||
|
||||
use App\Abstracts\Model;
|
||||
use App\Models\Common\Media as MediaModel;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Scopes\Transaction as Scope;
|
||||
use App\Traits\Currencies;
|
||||
@ -320,7 +321,16 @@ class Transaction extends Model
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->getMedia('attachment')->last();
|
||||
return $this->getMedia('attachment')->all();
|
||||
}
|
||||
|
||||
public function delete_attachment()
|
||||
{
|
||||
if ($attachments = $this->attachment) {
|
||||
foreach ($attachments as $file) {
|
||||
MediaModel::where('id', $file->id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,10 +5,11 @@ namespace App\Models\Banking;
|
||||
use App\Abstracts\Model;
|
||||
use App\Traits\Currencies;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Znck\Eloquent\Traits\BelongsToThrough;
|
||||
|
||||
class Transfer extends Model
|
||||
{
|
||||
use HasFactory, Currencies;
|
||||
use BelongsToThrough, Currencies, HasFactory;
|
||||
|
||||
protected $table = 'transfers';
|
||||
|
||||
@ -33,7 +34,13 @@ class Transfer extends Model
|
||||
|
||||
public function expense_account()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Account', 'expense_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'expense_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
public function income_transaction()
|
||||
@ -43,7 +50,13 @@ class Transfer extends Model
|
||||
|
||||
public function income_account()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Account', 'income_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'income_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Traits;
|
||||
|
||||
use App\Traits\SearchString;
|
||||
use Carbon\CarbonPeriod;
|
||||
use Date;
|
||||
|
||||
trait DateTime
|
||||
@ -109,14 +110,32 @@ trait DateTime
|
||||
|
||||
$financial_start = Date::create($year, $month, $day);
|
||||
|
||||
// Check if FS is in last calendar year
|
||||
if ($now->diffInDays($financial_start, false) > 0) {
|
||||
if ((setting('localisation.financial_denote') == 'ends') && ($financial_start->dayOfYear != 1)) {
|
||||
$financial_start->subYear();
|
||||
}
|
||||
|
||||
return $financial_start;
|
||||
}
|
||||
|
||||
public function getFinancialYear($year = null)
|
||||
{
|
||||
$start = $this->getFinancialStart($year);
|
||||
|
||||
return CarbonPeriod::create($start, $start->copy()->addYear()->subDay());
|
||||
}
|
||||
|
||||
public function getFinancialQuarters($year = null)
|
||||
{
|
||||
$quarters = [];
|
||||
$start = $this->getFinancialStart($year);
|
||||
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay());
|
||||
}
|
||||
|
||||
return $quarters;
|
||||
}
|
||||
|
||||
public function getMonthlyDateFormat($year = null)
|
||||
{
|
||||
$format = 'M';
|
||||
|
@ -145,7 +145,7 @@ trait Omnipay
|
||||
|
||||
$invoice_url = $this->getInvoiceUrl($invoice);
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
if ($force_redirect) {
|
||||
return redirect($invoice_url);
|
||||
|
@ -3,10 +3,10 @@
|
||||
namespace App\Traits;
|
||||
|
||||
use MediaUploader;
|
||||
use App\Models\Common\Media as MediaModel;
|
||||
|
||||
trait Uploads
|
||||
{
|
||||
|
||||
public function getUploadedFilePath($file, $folder = 'settings', $company_id = null)
|
||||
{
|
||||
$path = '';
|
||||
@ -63,4 +63,35 @@ trait Uploads
|
||||
|
||||
return MediaUploader::importPath($disk, $path);
|
||||
}
|
||||
|
||||
public function deleteMediaModel($model, $parameter, $request = null)
|
||||
{
|
||||
$medias = $model->$parameter;
|
||||
|
||||
if (!$medias) {
|
||||
return;
|
||||
}
|
||||
|
||||
$already_uploaded = [];
|
||||
|
||||
if ($request && isset($request['uploaded_' . $parameter])) {
|
||||
$uploaded = $request['uploaded_' . $parameter];
|
||||
|
||||
if (count($medias) == count($uploaded)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($uploaded as $old_media) {
|
||||
$already_uploaded[] = $old_media['id'];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ((array)$medias as $media) {
|
||||
if (in_array($media->id, $already_uploaded)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
MediaModel::where('id', $media->id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\View\Components\Documents\Form;
|
||||
|
||||
use App\Abstracts\View\Components\DocumentForm as Component;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Models\Common\Company as Model;
|
||||
|
||||
class Company extends Component
|
||||
{
|
||||
@ -14,7 +14,7 @@ class Company extends Component
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$company = user()->companies()->first();
|
||||
$company = Model::find(session('company_id'));
|
||||
|
||||
$inputNameType = config('type.' . $this->type . '.route.parameter');
|
||||
|
||||
|
146
app/View/Components/EmptyPage.php
Normal file
146
app/View/Components/EmptyPage.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Illuminate\View\Component;
|
||||
use Illuminate\Support\Str;
|
||||
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
||||
|
||||
class EmptyPage extends Component
|
||||
{
|
||||
/** @var string */
|
||||
public $page;
|
||||
|
||||
/** @var string */
|
||||
public $group;
|
||||
|
||||
/** @var string */
|
||||
public $imageEmptyPage;
|
||||
|
||||
/** @var string */
|
||||
public $textEmptyPage;
|
||||
|
||||
/** @var string */
|
||||
public $textPage;
|
||||
|
||||
/** @var string */
|
||||
public $urlDocsPath;
|
||||
|
||||
/** @var bool */
|
||||
public $checkPermissionCreate;
|
||||
|
||||
/** @var string */
|
||||
public $permissionCreate;
|
||||
|
||||
/** @var string */
|
||||
public $routeCreate;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
string $page, string $group = '', string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '',
|
||||
string $urlDocsPath = '', bool $checkPermissionCreate = true, string $permissionCreate = '', string $routeCreate = ''
|
||||
) {
|
||||
$this->page = $page;
|
||||
$this->group = $group;
|
||||
$this->imageEmptyPage = $this->getImageEmptyPage($page, $imageEmptyPage);
|
||||
$this->textEmptyPage = $this->getTextEmptyPage($page, $textEmptyPage);
|
||||
$this->textPage = $this->getTextPage($page, $textPage);
|
||||
$this->urlDocsPath = $this->getUrlDocsPath($page, $group, $urlDocsPath);
|
||||
$this->checkPermissionCreate = $checkPermissionCreate;
|
||||
$this->permissionCreate = $this->getPermissionCreate($page, $group, $permissionCreate);
|
||||
$this->routeCreate = $this->getRouteCreate($page, $routeCreate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.empty-page');
|
||||
}
|
||||
|
||||
protected function getImageEmptyPage($page, $imageEmptyPage)
|
||||
{
|
||||
if ($imageEmptyPage) {
|
||||
return $imageEmptyPage;
|
||||
}
|
||||
|
||||
return 'public/img/empty_pages/' . $page . '.png';
|
||||
}
|
||||
|
||||
protected function getTextEmptyPage($page, $textEmptyPage)
|
||||
{
|
||||
if ($textEmptyPage) {
|
||||
return $textEmptyPage;
|
||||
}
|
||||
|
||||
return 'general.empty.' . $page;
|
||||
}
|
||||
|
||||
protected function getTextPage($page, $textPage)
|
||||
{
|
||||
if ($textPage) {
|
||||
return $textPage;
|
||||
}
|
||||
|
||||
return 'general.' . $page;
|
||||
}
|
||||
|
||||
protected function getUrlDocsPath($page, $group, $urlDocsPath)
|
||||
{
|
||||
if ($urlDocsPath) {
|
||||
return $urlDocsPath;
|
||||
}
|
||||
|
||||
$docs_path = $page;
|
||||
|
||||
if (!empty($group)) {
|
||||
$docs_path = $group . '/' . $page;
|
||||
}
|
||||
|
||||
return 'https://akaunting.com/docs/user-manual/' . $page;
|
||||
}
|
||||
|
||||
protected function getPermissionCreate($page, $group, $permissionCreate)
|
||||
{
|
||||
if ($permissionCreate) {
|
||||
return $permissionCreate;
|
||||
}
|
||||
|
||||
$pages = [
|
||||
'reconciliations' => 'create-banking-reconciliations',
|
||||
'transfers' => 'create-banking-transfers',
|
||||
'payments' => 'create-purchases-payments',
|
||||
'vendors' => 'create-purchases-vendors',
|
||||
'customers' => 'create-sales-customers',
|
||||
'revenues' => 'create-sales-revenues',
|
||||
'taxes' => 'create-settings-taxes',
|
||||
'items' => 'create-common-items',
|
||||
];
|
||||
|
||||
if (array_key_exists($page, $pages)) {
|
||||
$permissionCreate = $pages[$page];
|
||||
}
|
||||
|
||||
if (empty($permissionCreate) && !empty($group)) {
|
||||
$permissionCreate = 'create-' . $group . '-' . $page;
|
||||
}
|
||||
|
||||
return $permissionCreate;
|
||||
}
|
||||
|
||||
protected function getRouteCreate($page, $routeCreate)
|
||||
{
|
||||
if ($routeCreate) {
|
||||
return $routeCreate;
|
||||
}
|
||||
|
||||
return $page . '.create';
|
||||
}
|
||||
}
|
@ -33,26 +33,26 @@ class SearchString extends Component
|
||||
{
|
||||
if (empty($this->filters)) {
|
||||
$search_string = config('search-string');
|
||||
|
||||
|
||||
$this->filters = [];
|
||||
|
||||
|
||||
if (!empty($search_string[$this->model])) {
|
||||
$columns = $search_string[$this->model]['columns'];
|
||||
|
||||
|
||||
foreach ($columns as $column => $options) {
|
||||
// This column skip for filter
|
||||
if (!empty($options['searchable'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (!is_array($options)) {
|
||||
$column = $options;
|
||||
}
|
||||
|
||||
|
||||
if (!$this->isFilter($column, $options)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$this->filters[] = [
|
||||
'key' => $this->getFilterKey($column, $options),
|
||||
'value' => $this->getFilterName($column, $options),
|
||||
@ -80,6 +80,10 @@ class SearchString extends Component
|
||||
|
||||
protected function getFilterKey($column, $options)
|
||||
{
|
||||
if (isset($options['key'])) {
|
||||
$column = $options['key'];
|
||||
}
|
||||
|
||||
if (isset($options['relationship'])) {
|
||||
$column .= '.id';
|
||||
}
|
||||
@ -101,19 +105,29 @@ class SearchString extends Component
|
||||
|
||||
$plural = Str::plural($column, 2);
|
||||
|
||||
if (trans_choice('general.' . $plural, 1) !== 'general.' . $plural) {
|
||||
return trans_choice('general.' . $plural, 1);
|
||||
} elseif (trans_choice('search_string.columns.' . $plural, 1) !== 'search_string.columns.' . $plural) {
|
||||
return trans_choice('search_string.columns.' . $plural, 1);
|
||||
if (strpos($this->model, 'Modules') !== false) {
|
||||
$module_class = explode('\\', $this->model);
|
||||
|
||||
$prefix = Str::kebab($module_class[1]) . '::';
|
||||
|
||||
$translation_keys[] = $prefix . 'general.';
|
||||
$translation_keys[] = $prefix . 'search_string.columns.';
|
||||
}
|
||||
|
||||
$name = trans('general.' . $column);
|
||||
$translation_keys[] = 'general.';
|
||||
$translation_keys[] = 'search_string.columns.';
|
||||
|
||||
if ($name == 'general.' . $column) {
|
||||
$name = trans('search_string.columns.' . $column);
|
||||
foreach ($translation_keys as $translation_key) {
|
||||
if (trans_choice($translation_key . $plural, 1) !== $translation_key . $plural) {
|
||||
return trans_choice($translation_key . $plural, 1);
|
||||
}
|
||||
|
||||
if (trans($translation_key . $column) !== $translation_key . $column) {
|
||||
return trans($translation_key . $column);
|
||||
}
|
||||
}
|
||||
|
||||
return $name;
|
||||
return $column;
|
||||
}
|
||||
|
||||
protected function getFilterType($options)
|
||||
|
@ -36,7 +36,7 @@ class SelectItemButton extends Component
|
||||
public function render()
|
||||
{
|
||||
$items = Item::enabled()->orderBy('name')->take(setting('default.select_limit'))->get();
|
||||
$price_type= $this->getPriceType($this->type, $this->isSale, $this->isPurchase);
|
||||
$price_type = $this->getPriceType($this->type, $this->isSale, $this->isPurchase);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$price = $item->{$price_type . '_price'};
|
||||
@ -44,7 +44,7 @@ class SelectItemButton extends Component
|
||||
$item->price = $price;
|
||||
}
|
||||
|
||||
$price = ($this->isPurchase) ? 'purchase_price' : 'sale_price';
|
||||
$price = $price_type . '_price';
|
||||
|
||||
return view('components.select-item-button', compact('items', 'price'));
|
||||
}
|
||||
@ -55,7 +55,7 @@ class SelectItemButton extends Component
|
||||
return 'sale';
|
||||
}
|
||||
|
||||
if (!empty($is_sale)) {
|
||||
if (!empty($is_purchase)) {
|
||||
return 'purchase';
|
||||
}
|
||||
|
||||
|
202
composer.lock
generated
202
composer.lock
generated
@ -344,16 +344,16 @@
|
||||
},
|
||||
{
|
||||
"name": "akaunting/setting",
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/akaunting/setting.git",
|
||||
"reference": "5731c99819961f912092d14f2fcf312aa4c48d61"
|
||||
"reference": "1e7d9c9c35a6c8f86930b64c38f51db0fbde3111"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/akaunting/setting/zipball/5731c99819961f912092d14f2fcf312aa4c48d61",
|
||||
"reference": "5731c99819961f912092d14f2fcf312aa4c48d61",
|
||||
"url": "https://api.github.com/repos/akaunting/setting/zipball/1e7d9c9c35a6c8f86930b64c38f51db0fbde3111",
|
||||
"reference": "1e7d9c9c35a6c8f86930b64c38f51db0fbde3111",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -405,9 +405,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/akaunting/setting/issues",
|
||||
"source": "https://github.com/akaunting/setting/tree/1.2.2"
|
||||
"source": "https://github.com/akaunting/setting/tree/1.2.4"
|
||||
},
|
||||
"time": "2020-09-09T14:16:22+00:00"
|
||||
"time": "2021-02-12T22:44:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "akaunting/version",
|
||||
@ -4528,16 +4528,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v8.25.0",
|
||||
"version": "v8.27.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "05da44d6823c2923597519ac10151f5827a24f80"
|
||||
"reference": "a6680d98f9dadaa363aa7d5218517a08706cee64"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/05da44d6823c2923597519ac10151f5827a24f80",
|
||||
"reference": "05da44d6823c2923597519ac10151f5827a24f80",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/a6680d98f9dadaa363aa7d5218517a08706cee64",
|
||||
"reference": "a6680d98f9dadaa363aa7d5218517a08706cee64",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4692,7 +4692,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2021-01-26T14:40:21+00:00"
|
||||
"time": "2021-02-09T15:14:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/tinker",
|
||||
@ -5341,16 +5341,16 @@
|
||||
},
|
||||
{
|
||||
"name": "livewire/livewire",
|
||||
"version": "v2.3.8",
|
||||
"version": "v2.3.17",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/livewire/livewire.git",
|
||||
"reference": "c661e295428b2baaff04320d0a9424db5ca72be5"
|
||||
"reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/livewire/livewire/zipball/c661e295428b2baaff04320d0a9424db5ca72be5",
|
||||
"reference": "c661e295428b2baaff04320d0a9424db5ca72be5",
|
||||
"url": "https://api.github.com/repos/livewire/livewire/zipball/1a1d43ff365301ae99ed7f0ccf02c553d4eeba03",
|
||||
"reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5401,7 +5401,7 @@
|
||||
"description": "A front-end framework for Laravel.",
|
||||
"support": {
|
||||
"issues": "https://github.com/livewire/livewire/issues",
|
||||
"source": "https://github.com/livewire/livewire/tree/v2.3.8"
|
||||
"source": "https://github.com/livewire/livewire/tree/v2.3.17"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -5409,20 +5409,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-21T14:01:48+00:00"
|
||||
"time": "2021-02-09T15:15:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "lorisleiva/laravel-search-string",
|
||||
"version": "v1.1.0",
|
||||
"version": "v1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lorisleiva/laravel-search-string.git",
|
||||
"reference": "afed28a7c2f7a2921c43a31dd8896446844bad98"
|
||||
"reference": "8b0b82053c51266f2d062f542ab67eac82cefcf9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/afed28a7c2f7a2921c43a31dd8896446844bad98",
|
||||
"reference": "afed28a7c2f7a2921c43a31dd8896446844bad98",
|
||||
"url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/8b0b82053c51266f2d062f542ab67eac82cefcf9",
|
||||
"reference": "8b0b82053c51266f2d062f542ab67eac82cefcf9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5459,7 +5459,7 @@
|
||||
"description": "Generates database queries based on one unique string using a simple and customizable syntax.",
|
||||
"support": {
|
||||
"issues": "https://github.com/lorisleiva/laravel-search-string/issues",
|
||||
"source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.1.0"
|
||||
"source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.1.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -5467,7 +5467,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-29T10:07:03+00:00"
|
||||
"time": "2021-02-05T17:50:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "maatwebsite/excel",
|
||||
@ -6215,16 +6215,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "2.44.0",
|
||||
"version": "2.45.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd"
|
||||
"reference": "528783b188bdb853eb21239b1722831e0f000a8d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd",
|
||||
"reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/528783b188bdb853eb21239b1722831e0f000a8d",
|
||||
"reference": "528783b188bdb853eb21239b1722831e0f000a8d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6304,7 +6304,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-26T20:46:41+00:00"
|
||||
"time": "2021-02-11T18:30:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
@ -6843,16 +6843,16 @@
|
||||
},
|
||||
{
|
||||
"name": "php-http/message",
|
||||
"version": "1.10.0",
|
||||
"version": "1.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-http/message.git",
|
||||
"reference": "39db36d5972e9e6d00ea852b650953f928d8f10d"
|
||||
"reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-http/message/zipball/39db36d5972e9e6d00ea852b650953f928d8f10d",
|
||||
"reference": "39db36d5972e9e6d00ea852b650953f928d8f10d",
|
||||
"url": "https://api.github.com/repos/php-http/message/zipball/fb0dbce7355cad4f4f6a225f537c34d013571f29",
|
||||
"reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6868,15 +6868,15 @@
|
||||
"ergebnis/composer-normalize": "^2.6",
|
||||
"ext-zlib": "*",
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"laminas/laminas-diactoros": "^2.0",
|
||||
"phpspec/phpspec": "^5.1 || ^6.3",
|
||||
"slim/slim": "^3.0",
|
||||
"zendframework/zend-diactoros": "^1.0"
|
||||
"slim/slim": "^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-zlib": "Used with compressor/decompressor streams",
|
||||
"guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
|
||||
"slim/slim": "Used with Slim Framework PSR-7 implementation",
|
||||
"zendframework/zend-diactoros": "Used with Diactoros Factories"
|
||||
"laminas/laminas-diactoros": "Used with Diactoros Factories",
|
||||
"slim/slim": "Used with Slim Framework PSR-7 implementation"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -6911,9 +6911,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/php-http/message/issues",
|
||||
"source": "https://github.com/php-http/message/tree/1.10.0"
|
||||
"source": "https://github.com/php-http/message/tree/1.11.0"
|
||||
},
|
||||
"time": "2020-11-11T10:19:56+00:00"
|
||||
"time": "2021-02-01T08:54:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/message-factory",
|
||||
@ -8737,16 +8737,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "d62ec79478b55036f65e2602e282822b8eaaff0a"
|
||||
"reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/d62ec79478b55036f65e2602e282822b8eaaff0a",
|
||||
"reference": "d62ec79478b55036f65e2602e282822b8eaaff0a",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/89d4b176d12a2946a1ae4e34906a025b7b6b135a",
|
||||
"reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -8814,7 +8814,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/console/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -8830,11 +8830,11 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T10:15:41+00:00"
|
||||
"time": "2021-01-28T22:06:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
@ -8879,7 +8879,7 @@
|
||||
"description": "Converts CSS selectors to XPath expressions",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/css-selector/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/css-selector/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9035,16 +9035,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40"
|
||||
"reference": "48f18b3609e120ea66d59142c23dc53e9562c26d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40",
|
||||
"reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/48f18b3609e120ea66d59142c23dc53e9562c26d",
|
||||
"reference": "48f18b3609e120ea66d59142c23dc53e9562c26d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9084,7 +9084,7 @@
|
||||
"description": "Provides tools to manage errors and ease debugging PHP code",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/error-handler/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/error-handler/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9100,11 +9100,11 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T10:15:41+00:00"
|
||||
"time": "2021-01-28T22:06:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
@ -9169,7 +9169,7 @@
|
||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9268,7 +9268,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
@ -9310,7 +9310,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9330,16 +9330,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "196f45723b5e618bf0e23b97e96d11652696ea9e"
|
||||
"reference": "4adc8d172d602008c204c2e16956f99257248e03"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e",
|
||||
"reference": "196f45723b5e618bf0e23b97e96d11652696ea9e",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/4adc8d172d602008c204c2e16956f99257248e03",
|
||||
"reference": "4adc8d172d602008c204c2e16956f99257248e03",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9371,7 +9371,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/finder/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9387,7 +9387,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T10:01:46+00:00"
|
||||
"time": "2021-01-28T22:06:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client-contracts",
|
||||
@ -9470,16 +9470,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855"
|
||||
"reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855",
|
||||
"reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/20c554c0f03f7cde5ce230ed248470cccbc34c36",
|
||||
"reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9523,7 +9523,7 @@
|
||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/http-foundation/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9539,20 +9539,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T11:19:04+00:00"
|
||||
"time": "2021-02-03T04:42:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "831b51e9370ece0febd0950dd819c63f996721c7"
|
||||
"reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/831b51e9370ece0febd0950dd819c63f996721c7",
|
||||
"reference": "831b51e9370ece0febd0950dd819c63f996721c7",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05",
|
||||
"reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9635,7 +9635,7 @@
|
||||
"description": "Provides a structured process for converting a Request into a Response",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/http-kernel/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9651,20 +9651,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T14:45:46+00:00"
|
||||
"time": "2021-02-03T04:51:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "37bade585ea100d235c031b258eff93b5b6bb9a9"
|
||||
"reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9",
|
||||
"reference": "37bade585ea100d235c031b258eff93b5b6bb9a9",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
|
||||
"reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9717,7 +9717,7 @@
|
||||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/mime/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9733,7 +9733,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-25T14:08:25+00:00"
|
||||
"time": "2021-02-02T06:10:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -10466,7 +10466,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
@ -10508,7 +10508,7 @@
|
||||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/process/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -10528,7 +10528,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
@ -10598,7 +10598,7 @@
|
||||
"url"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/routing/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/routing/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -10697,7 +10697,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
@ -10760,7 +10760,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/string/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -10780,7 +10780,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
@ -10853,7 +10853,7 @@
|
||||
"description": "Provides tools to internationalize your application",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/translation/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/translation/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -10951,7 +10951,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v5.2.2",
|
||||
"version": "v5.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
@ -11019,7 +11019,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v5.2.2"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v5.2.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -11580,16 +11580,16 @@
|
||||
},
|
||||
{
|
||||
"name": "facade/ignition",
|
||||
"version": "2.5.9",
|
||||
"version": "2.5.11",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/facade/ignition.git",
|
||||
"reference": "66b3138ecce38024723fb3bfc66ef8852a779ea9"
|
||||
"reference": "e91d67353054bf827c64687fcac5ea44e4dcec54"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/facade/ignition/zipball/66b3138ecce38024723fb3bfc66ef8852a779ea9",
|
||||
"reference": "66b3138ecce38024723fb3bfc66ef8852a779ea9",
|
||||
"url": "https://api.github.com/repos/facade/ignition/zipball/e91d67353054bf827c64687fcac5ea44e4dcec54",
|
||||
"reference": "e91d67353054bf827c64687fcac5ea44e4dcec54",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -11653,7 +11653,7 @@
|
||||
"issues": "https://github.com/facade/ignition/issues",
|
||||
"source": "https://github.com/facade/ignition"
|
||||
},
|
||||
"time": "2021-01-26T14:45:19+00:00"
|
||||
"time": "2021-02-05T12:52:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "facade/ignition-contracts",
|
||||
@ -12598,16 +12598,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.5.1",
|
||||
"version": "9.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360"
|
||||
"reference": "f661659747f2f87f9e72095bb207bceb0f151cb4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360",
|
||||
"reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4",
|
||||
"reference": "f661659747f2f87f9e72095bb207bceb0f151cb4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -12685,7 +12685,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -12697,7 +12697,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-17T07:42:25+00:00"
|
||||
"time": "2021-02-02T14:45:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
|
@ -122,7 +122,7 @@ return [
|
||||
| This options indicates the allowed languages.
|
||||
|
|
||||
*/
|
||||
'allowed' => ['ar-SA', 'bg-BG', 'bn-BD', 'bs-BA', 'ca-ES', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-US', 'es-AR', 'es-ES', 'es-MX', 'fa-IR', 'fr-FR', 'he-IL', 'hi-IN', 'hr-HR', 'hu-HU', 'id-ID', 'is-IS', 'it-IT', 'ja-JP', 'ka-GE', 'ko-KR', 'lt-LT', 'lv-LV', 'mk-MK', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-NL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sr-RS', 'sq-AL', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'ur-PK', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-TW'],
|
||||
'allowed' => ['ar-SA', 'az-AZ', 'bg-BG', 'bn-BD', 'bs-BA', 'ca-ES', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-US', 'es-AR', 'es-ES', 'es-MX', 'fa-IR', 'fr-FR', 'he-IL', 'hi-IN', 'hr-HR', 'hu-HU', 'id-ID', 'is-IS', 'it-IT', 'ja-JP', 'ka-GE', 'ko-KR', 'lt-LT', 'lv-LV', 'mk-MK', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-NL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sr-RS', 'sq-AL', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'ur-PK', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-TW'],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -134,6 +134,7 @@ return [
|
||||
*/
|
||||
'all' => [
|
||||
['short' => 'ar', 'long' => 'ar-SA', 'english' => 'Arabic', 'native' => 'العربية'],
|
||||
['short' => 'az', 'long' => 'az-AZ', 'english' => 'Azerbaijani', 'native' => 'Azərbaycan'],
|
||||
['short' => 'bg', 'long' => 'bg-BG', 'english' => 'Bulgarian', 'native' => 'български'],
|
||||
['short' => 'bn', 'long' => 'bn-BD', 'english' => 'Bengali', 'native' => 'বাংলা'],
|
||||
['short' => 'bs', 'long' => 'bs-BA', 'english' => 'Bosnian', 'native' => 'Bosanski'],
|
||||
|
@ -111,9 +111,23 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
App\Models\Banking\Transfer::class => [
|
||||
'columns' => [
|
||||
'expense_account' => [
|
||||
'relationship' => true,
|
||||
'route' => 'accounts.index',
|
||||
],
|
||||
'income_account' => [
|
||||
'relationship' => true,
|
||||
'route' => 'accounts.index',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
App\Models\Common\Company::class => [
|
||||
'columns' => [
|
||||
'domain' => ['searchable' => true],
|
||||
'settings.value' => ['searchable' => true],
|
||||
'enabled' => ['boolean' => true],
|
||||
],
|
||||
],
|
||||
|
@ -98,6 +98,7 @@ return [
|
||||
'fallback' => [
|
||||
'localisation' => [
|
||||
'financial_start' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_START', '01-01'),
|
||||
'financial_denote' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_DENOTE', 'ends'),
|
||||
'timezone' => env('SETTING_FALLBACK_LOCALISATION_TIMEZONE', 'Europe/London'),
|
||||
'date_format' => env('SETTING_FALLBACK_LOCALISATION_DATE_FORMAT', 'd M Y'),
|
||||
'date_separator' => env('SETTING_FALLBACK_LOCALISATION_DATE_SEPARATOR', 'space'),
|
||||
|
@ -8,7 +8,7 @@ use App\Traits\Transactions;
|
||||
|
||||
class Transaction extends Factory
|
||||
{
|
||||
use Transactions;
|
||||
use Transactions;
|
||||
|
||||
/**
|
||||
* The name of the factory's corresponding model.
|
||||
@ -25,21 +25,23 @@ class Transaction extends Factory
|
||||
public function definition()
|
||||
{
|
||||
$types = array_merge($this->getIncomeTypes(), $this->getExpenseTypes());
|
||||
$type = $this->faker->randomElement($types);
|
||||
$type = $this->faker->randomElement($types);
|
||||
|
||||
return [
|
||||
'company_id' => $this->company->id,
|
||||
'type' => $type,
|
||||
'account_id' => setting('default.account'),
|
||||
'paid_at' => $this->faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d H:i:s'),
|
||||
'amount' => $this->faker->randomFloat(2, 1, 1000),
|
||||
'currency_code' => setting('default.currency'),
|
||||
'currency_rate' => '1.0',
|
||||
'description' => $this->faker->text(5),
|
||||
'category_id' => $this->company->categories()->type($type)->get()->random(1)->pluck('id')->first(),
|
||||
'reference' => $this->faker->text(5),
|
||||
'payment_method' => setting('default.payment_method'),
|
||||
];
|
||||
$category_type = in_array($type, $this->getIncomeTypes()) ? 'income' : 'expense';
|
||||
|
||||
return [
|
||||
'company_id' => $this->company->id,
|
||||
'type' => $type,
|
||||
'account_id' => setting('default.account'),
|
||||
'paid_at' => $this->faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d H:i:s'),
|
||||
'amount' => $this->faker->randomFloat(2, 1, 1000),
|
||||
'currency_code' => setting('default.currency'),
|
||||
'currency_rate' => '1.0',
|
||||
'description' => $this->faker->text(5),
|
||||
'category_id' => $this->company->categories()->$category_type()->get()->random(1)->pluck('id')->first(),
|
||||
'reference' => $this->faker->text(5),
|
||||
'payment_method' => setting('default.payment_method'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -122,7 +122,7 @@ class Settings extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
//flash($message)->error();
|
||||
//flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -32,7 +32,7 @@ server {
|
||||
}
|
||||
|
||||
# Prevent Direct Access To modules/vendor Folders Except Assets
|
||||
location ~ ^/(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ {
|
||||
location ~ ^/(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js\b|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ {
|
||||
deny all;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,11 @@
|
||||
<div v-if="preview == 'single'" class="dz-preview dz-preview-single" :class="previewClasses" ref="previewSingle">
|
||||
<div class="dz-preview-cover">
|
||||
<img class="dz-preview-img" data-dz-thumbnail>
|
||||
<i class="fas fa-file-image display-3 fa-2x mt-2 d-none" data-dz-thumbnail-image></i>
|
||||
<i class="far fa-file-pdf display-3 fa-2x mt-2 d-none" data-dz-thumbnail-pdf></i>
|
||||
<i class="far fa-file-word fa-2x mt-2 d-none" data-dz-thumbnail-word></i>
|
||||
<i class="far fa-file-excel fa-2x mt-2 d-none" data-dz-thumbnail-excel></i>
|
||||
<span class="mb-1 d-none" data-dz-name>...</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -20,6 +25,10 @@
|
||||
<div class="col-auto">
|
||||
<div class="avatar">
|
||||
<img class="avatar-img rounded" data-dz-thumbnail>
|
||||
<i class="fas fa-file-image display-3 d-none" data-dz-thumbnail-image></i>
|
||||
<i class="far fa-file-pdf display-3 d-none" data-dz-thumbnail-pdf></i>
|
||||
<i class="far fa-file-word d-none" data-dz-thumbnail-word></i>
|
||||
<i class="far fa-file-excel d-none" data-dz-thumbnail-excel></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -107,85 +116,114 @@ export default {
|
||||
let preview = this.preview == 'single' ? this.$refs.previewSingle : this.$refs.previewMultiple;
|
||||
|
||||
if (this.configurations.maxFiles === undefined && this.multiple == false) {
|
||||
this.configurations.maxFiles = 1
|
||||
this.configurations.maxFiles = 1;
|
||||
}
|
||||
|
||||
if (this.configurations.acceptedFiles === undefined) {
|
||||
this.configurations.acceptedFiles = 'image/*'
|
||||
this.configurations.acceptedFiles = 'image/*';
|
||||
}
|
||||
|
||||
let finalOptions = {
|
||||
...self.configurations,
|
||||
url: this.url,
|
||||
previewsContainer: preview,
|
||||
previewTemplate: preview.innerHTML,
|
||||
dictDefaultMessage: this.textDropFile,
|
||||
autoProcessQueue: false,
|
||||
...self.configurations,
|
||||
url: this.url,
|
||||
previewsContainer: preview,
|
||||
previewTemplate: preview.innerHTML,
|
||||
dictDefaultMessage: this.textDropFile,
|
||||
autoProcessQueue: false,
|
||||
|
||||
init: function () {
|
||||
let dropzone = this
|
||||
init: function () {
|
||||
let dropzone = this;
|
||||
|
||||
dropzone.on('addedfile', function (file) {
|
||||
self.files.push(file);
|
||||
dropzone.on('addedfile', function (file) {
|
||||
self.files.push(file);
|
||||
|
||||
if (self.configurations.maxFiles == 1) {
|
||||
self.$emit('change', file);
|
||||
} else {
|
||||
self.$emit('change', self.files);
|
||||
}
|
||||
}),
|
||||
if (self.configurations.maxFiles == 1) {
|
||||
self.$emit('change', file);
|
||||
} else {
|
||||
self.$emit('change', self.files);
|
||||
}
|
||||
|
||||
if (file.type.indexOf("image") == -1) {
|
||||
let ext = file.name.split('.').pop();
|
||||
|
||||
file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none");
|
||||
file.previewElement.querySelector("[data-dz-name]").classList.remove("d-none");
|
||||
|
||||
if (ext == "pdf") {
|
||||
file.previewElement.querySelector("[data-dz-thumbnail-pdf]").classList.remove("d-none");
|
||||
} else if ((ext.indexOf("doc") != -1) || (ext.indexOf("docx") != -1)) {
|
||||
file.previewElement.querySelector("[data-dz-thumbnail-word]").classList.remove("d-none");
|
||||
} else if ((ext.indexOf("xls") != -1) || (ext.indexOf("xlsx") != -1)) {
|
||||
file.previewElement.querySelector("[data-dz-thumbnail-excel]").classList.remove("d-none");
|
||||
} else {
|
||||
file.previewElement.querySelector("[data-dz-thumbnail-image]").classList.remove("d-none");
|
||||
}
|
||||
}
|
||||
}),
|
||||
|
||||
dropzone.on('removedfile', function (file) {
|
||||
let index = self.files.findIndex(f => f.name === file.name)
|
||||
dropzone.on('removedfile', function (file) {
|
||||
let index = self.files.findIndex(f => f.name === file.name)
|
||||
|
||||
if (index !== -1) {
|
||||
self.files.splice(index, 1);
|
||||
}
|
||||
if (index !== -1) {
|
||||
self.files.splice(index, 1);
|
||||
}
|
||||
|
||||
self.$emit('change', self.files);
|
||||
self.$emit('change', self.files);
|
||||
|
||||
if (self.multiple) {
|
||||
this.enable();
|
||||
}
|
||||
}),
|
||||
if (self.multiple) {
|
||||
this.enable();
|
||||
}
|
||||
}),
|
||||
|
||||
dropzone.on('maxfilesexceeded', function(file) {
|
||||
this.removeAllFiles('notCancel');
|
||||
this.addFile(file);
|
||||
}),
|
||||
dropzone.on('maxfilesexceeded', function(file) {
|
||||
this.removeAllFiles('notCancel');
|
||||
this.addFile(file);
|
||||
}),
|
||||
|
||||
dropzone.on('maxfilesreached', function(file) {
|
||||
if (self.multiple) {
|
||||
this.disable();
|
||||
}
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
self.attachments.forEach(async (attachment) => {
|
||||
let blob = await self.getAttachmentContent(attachment.path)
|
||||
let file = new File([blob], attachment.name, { type: blob.type })
|
||||
|
||||
dropzone.displayExistingFile(file, attachment.path, () => {
|
||||
file.previewElement.querySelector("[data-dz-download]").href = attachment.downloadPath
|
||||
file.previewElement.querySelector("[data-dz-download]").classList.remove("d-none")
|
||||
})
|
||||
dropzone.on('maxfilesreached', function(file) {
|
||||
if (self.multiple) {
|
||||
this.disable();
|
||||
}
|
||||
})
|
||||
|
||||
if (self.preview == 'single' && self.attachments.length == 1)
|
||||
document.querySelector("#dropzone").classList.add("dz-max-files-reached");
|
||||
}, 750)
|
||||
}
|
||||
if (self.attachments.length) {
|
||||
setTimeout(() => {
|
||||
self.attachments.forEach(async (attachment) => {
|
||||
var mockFile = {
|
||||
id: attachment.id,
|
||||
name: attachment.name,
|
||||
size: attachment.size,
|
||||
type: attachment.type,
|
||||
download: attachment.downloadPath,
|
||||
dropzone: 'edit',
|
||||
};
|
||||
|
||||
dropzone.emit("addedfile", mockFile);
|
||||
dropzone.options.thumbnail.call(dropzone, mockFile, attachment.path);
|
||||
|
||||
// Make sure that there is no progress bar, etc...
|
||||
dropzone.emit("complete", mockFile);
|
||||
});
|
||||
|
||||
self.files.forEach(async (attachment) => {
|
||||
if (attachment.download) {
|
||||
attachment.previewElement.querySelector("[data-dz-download]").href = attachment.download;
|
||||
attachment.previewElement.querySelector("[data-dz-download]").classList.remove("d-none");
|
||||
}
|
||||
});
|
||||
|
||||
if (self.preview == 'single' && self.attachments.length == 1) {
|
||||
document.querySelector("#dropzone").classList.add("dz-max-files-reached");
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.dropzone = new Dropzone(this.$el, finalOptions);
|
||||
|
||||
preview.innerHTML = '';
|
||||
},
|
||||
async getAttachmentContent(imageUrl) {
|
||||
return await axios.get(imageUrl, { responseType: 'blob' }).then(function (response) {
|
||||
return response.data
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
async mounted() {
|
||||
|
8
resources/assets/js/mixins/global.js
vendored
8
resources/assets/js/mixins/global.js
vendored
@ -27,7 +27,6 @@ import NProgressAxios from './../plugins/nprogress-axios';
|
||||
import { Select, Option, Steps, Step, Button, Link, Tooltip, ColorPicker } from 'element-ui';
|
||||
|
||||
import Form from './../plugins/form';
|
||||
import { concat } from 'lodash';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@ -95,10 +94,15 @@ export default {
|
||||
|
||||
flash_notification.forEach(notify => {
|
||||
let type = notify.level;
|
||||
let timeout = 5000;
|
||||
|
||||
if (notify.important) {
|
||||
timeout = 0;
|
||||
}
|
||||
|
||||
this.$notify({
|
||||
message: notify.message,
|
||||
timeout: 5000,
|
||||
timeout: timeout,
|
||||
icon: 'fas fa-bell',
|
||||
type
|
||||
});
|
||||
|
6
resources/assets/js/plugins/form.js
vendored
6
resources/assets/js/plugins/form.js
vendored
@ -347,7 +347,11 @@ export default class Form {
|
||||
|
||||
submit() {
|
||||
FormData.prototype.appendRecursive = function(data, wrapper = null) {
|
||||
for(var name in data) {
|
||||
for (var name in data) {
|
||||
if (name == "previewElement" || name == "previewTemplate") {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (wrapper) {
|
||||
if ((typeof data[name] == 'object' || Array.isArray(data[name])) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) {
|
||||
this.appendRecursive(data[name], wrapper + '[' + name + ']');
|
||||
|
31
resources/assets/js/views/common/imports.js
vendored
Normal file
31
resources/assets/js/views/common/imports.js
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
/**
|
||||
* First we will load all of this project's JavaScript dependencies which
|
||||
* includes Vue and other libraries. It is a great starting point when
|
||||
* building robust, powerful web applications using Vue and Laravel.
|
||||
*/
|
||||
|
||||
require('../../bootstrap');
|
||||
|
||||
import Vue from 'vue';
|
||||
|
||||
import DashboardPlugin from '../../plugins/dashboard-plugin';
|
||||
|
||||
import Global from '../../mixins/global';
|
||||
import Form from './../../plugins/form';
|
||||
|
||||
// plugin setup
|
||||
Vue.use(DashboardPlugin);
|
||||
|
||||
const app = new Vue({
|
||||
el: '#app',
|
||||
|
||||
mixins: [
|
||||
Global
|
||||
],
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
form: new Form('import'),
|
||||
}
|
||||
}
|
||||
});
|
14
resources/lang/az-AZ/accounts.php
Normal file
14
resources/lang/az-AZ/accounts.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'account_name' => 'Hesab Adı',
|
||||
'number' => 'Nömrə',
|
||||
'opening_balance' => 'Açılış Balansı',
|
||||
'current_balance' => 'Mövcud Balans',
|
||||
'bank_name' => 'Bank Adı',
|
||||
'bank_phone' => 'Bank Telefonu',
|
||||
'bank_address' => 'Bank Ünvanı',
|
||||
'default_account' => 'Varsayılan Hesab',
|
||||
|
||||
];
|
41
resources/lang/az-AZ/auth.php
Normal file
41
resources/lang/az-AZ/auth.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'profile' => 'Profil',
|
||||
'logout' => 'Çıxış',
|
||||
'login' => 'Giriş',
|
||||
'login_to' => 'Giriş üçün daxil olun',
|
||||
'remember_me' => 'Məni Xatırla',
|
||||
'forgot_password' => 'Şifrəmi unutdum',
|
||||
'reset_password' => 'Şifrəmi Yenilə',
|
||||
'enter_email' => 'E-poçt Ünvanınızı Daxil edin',
|
||||
'current_email' => 'Cari E-poçt',
|
||||
'reset' => 'Yenilə',
|
||||
'never' => 'heçbir zaman',
|
||||
'landing_page' => 'Açılış Səhifəsi',
|
||||
|
||||
'password' => [
|
||||
'current' => 'Şifrə',
|
||||
'current_confirm' => 'Şifrə Təsdiqi',
|
||||
'new' => 'Yeni Şifrə',
|
||||
'new_confirm' => 'Yeni Şifrə Təsdiqi',
|
||||
],
|
||||
|
||||
'error' => [
|
||||
'self_delete' => 'Xəta: Özünüzü silə bilməzsiniz!',
|
||||
'self_disable' => 'Xəta: Özünüzü deaktiv edə bilməzsiniz!',
|
||||
'no_company' => 'Xəta: Hesabınıza təyin edilmiş bir şirkət yoxdur. Zəhmət olmasa sistem inzibatçısı ilə əlaqə saxlayın.',
|
||||
],
|
||||
|
||||
'failed' => 'Bu istifadəçi bilgiləri bizim məlumatlarla uyğun gəlmir.',
|
||||
'disabled' => 'Bu hesab deaktiv edilib. Zəhmət olmasa sistem administratoru ilə əlaqə saxlayın.',
|
||||
'throttle' => 'Çox sayda giriş cəhdi. Zəhmət olmazsa: saniyələr içində yenidən cəhd edin.',
|
||||
|
||||
'notification' => [
|
||||
'message_1' => 'Bu e-poçtu şifrə Yeniləma tələbinizə uyğun olaraq alırsınız.',
|
||||
'message_2' => 'Bir şifrə Yeniləma tələb etmədiyiniz təqdirdə heç bir şey etməyin.',
|
||||
'button' => 'Şifrə Yeniləma',
|
||||
],
|
||||
|
||||
];
|
56
resources/lang/az-AZ/bills.php
Normal file
56
resources/lang/az-AZ/bills.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'bill_number' => 'Faktura Nömrəsi',
|
||||
'bill_date' => 'Faktura Tarixi',
|
||||
'total_price' => 'Cəmi Məbləğ',
|
||||
'due_date' => 'Son Ödəniş Tarixi',
|
||||
'order_number' => 'Sifariş Nömrəsi',
|
||||
'bill_from' => 'Fakturanı Göndərən',
|
||||
|
||||
'quantity' => 'Ədəd',
|
||||
'price' => 'Qiymət',
|
||||
'sub_total' => 'Ara Cəmi',
|
||||
'discount' => 'Endirim',
|
||||
'item_discount' => 'Məhsul Endirimi',
|
||||
'tax_total' => 'Vergi Cəmi',
|
||||
'total' => 'Cəmi',
|
||||
|
||||
'item_name' => 'Məhsul Adı | Məhsul Adları',
|
||||
|
||||
'show_discount' => '%:discount Endirim',
|
||||
'add_discount' => 'Endirim Əlavə et',
|
||||
'discount_desc' => 'ara cəm üzərinə',
|
||||
|
||||
'payment_due' => 'Son Ödəmə Tarixi',
|
||||
'amount_due' => 'Ödənəcək Məbləğ',
|
||||
'paid' => 'Ödənmiş',
|
||||
'histories' => 'Keşmiş',
|
||||
'payments' => 'Ödənişlər',
|
||||
'add_payment' => 'Ödəniş Əlavə Et',
|
||||
'mark_paid' => 'Ödənildi İşarələ',
|
||||
'mark_received' => 'Qəbul edildi İşarələ',
|
||||
'mark_cancelled' => 'Ləğv Edildi İşarələ',
|
||||
'download_pdf' => 'PDF Yükə',
|
||||
'send_mail' => 'E-poçt Göndər',
|
||||
'create_bill' => 'Faktura Yarat',
|
||||
'receive_bill' => 'Fakturanı Qəbul et',
|
||||
'make_payment' => 'Ödəniş et',
|
||||
|
||||
'messages' => [
|
||||
'draft' => 'Bu bir <b>QARALAMA</b> Fakturadır və qəbul edildikdən sonra qrafiklərdə əks olunacaq.',
|
||||
|
||||
'status' => [
|
||||
'created' => ':date Tarixində Yaradıldı',
|
||||
'receive' => [
|
||||
'draft' => 'Göndərilmədi',
|
||||
'received' => ':date Tarixində Qəbul edildi',
|
||||
],
|
||||
'paid' => [
|
||||
'await' => 'Gözləyən Ödəniş',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
];
|
23
resources/lang/az-AZ/bulk_actions.php
Normal file
23
resources/lang/az-AZ/bulk_actions.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'bulk_actions' => 'Toplu Hərəkət|Toplu Hərəkətlər',
|
||||
'selected' => 'seçili',
|
||||
'no_action' => 'Heç bir əməliyyat yoxdur',
|
||||
|
||||
'message' => [
|
||||
'duplicate' => 'Seşilmiş qeydi <b>dublikat etməl</b> istədiyinizdən əminsiniz?',
|
||||
'delete' => 'Seşilmiş qeydi <b>silmək</b> istədiyinizdən əminsiniz?|Seşilmiş qeydiləri <b>silmək</b> istədiyinizdən əminsiniz?',
|
||||
'export' => 'Seçilmiş qeydi <b>ixrac etmək</b> istədiyinizdən əminsiniz?|Seçilmiş qeydləri <b>ixrac etmək</b> istədiyinizdən əminsiniz?',
|
||||
'enable' => 'Seçilmiş qeydi <b>aktiv etmək</b> istədiyinizdən əminsiniz?|Seçilmiş qeydləri <b>aktiv etmək</b> istədiyinizdən əminsiniz?',
|
||||
'disable' => 'Seçilmiş qeydi <b>deaktiv etmək</b> istədiyinizdən əminsiniz?|Seçilmiş qeydləri <b>deaktiv etmək</b> istədiyinizdən əminsiniz?',
|
||||
'paid' => 'Seçilmiş fakturanı <b>ödənildi</b> olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları <b>ödənildi</b> olaraq işarələmək istədiyinizdən əminsiniz?',
|
||||
'sent' => 'Seçilmiş fakturanı <b>göndərildi</b> olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları <b>göndərildi</b> olaraq işarələmək istədiyinizdən əminsiniz?',
|
||||
'received' => 'Seçilmiş fakturanı <b>qəbul edildi</b> olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları <b>qəbul edildi</b> olaraq işarələmək istədiyinizdən əminsiniz?',
|
||||
'cancelled' => 'Seçilmiş fakturanı <b>ləğv etmək</b> istədiyinizdən əminsiniz?|Seçilmiş fakturaları <b>ləğv etmək</b> istədiyinizdən əminsiniz?',
|
||||
'reconcile' => 'Seçilmiş qeyd üçün <b>razılaşmaq</b> istədiyinizdən əminsiniz?|Seçilmiş qeydlər üçün <b>razılaşmaq</b> istədiyinizdən əminsiniz?',
|
||||
'unreconcile' => 'Seçilmiş qeyd üçün <b>razılaşmaq istəmədiyinizdən</b> əminsiniz?|Seçilmiş qeydlər üçün <b>razılaşmaq istəmədiyinizdən</b> əminsiniz?',
|
||||
],
|
||||
|
||||
];
|
14
resources/lang/az-AZ/companies.php
Normal file
14
resources/lang/az-AZ/companies.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'domain' => 'Domain Adı',
|
||||
'logo' => 'Logo',
|
||||
|
||||
'error' => [
|
||||
'not_user_company' => 'Xəta: Bu şirkəti dəyişdirmə icazəniz yoxdur!',
|
||||
'delete_active' => 'Xəta: Mövcud şirkəti silə bilməzsiniz. Zəhmət olmazsa, əvvəlcə başqa bir şirkətə keçin!',
|
||||
'disable_active' => 'Xəta: Mövcud şirkəti deaktiv edə bilməzsiniz. Zəhmət olmazsa, əvvəlcə başqa bir şirkətə keçin!',
|
||||
],
|
||||
|
||||
];
|
19
resources/lang/az-AZ/currencies.php
Normal file
19
resources/lang/az-AZ/currencies.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'code' => 'Kod',
|
||||
'rate' => 'Məzənnə',
|
||||
'default' => 'Varsayılan Valyuta',
|
||||
'decimal_mark' => 'Onluq Ayırıcı',
|
||||
'thousands_separator' => 'Minlik Aıyrıcı',
|
||||
'precision' => 'Dəqiqlik',
|
||||
'conversion' => 'Valyuta konversiyası',
|
||||
'symbol' => [
|
||||
'symbol' => 'İşarə',
|
||||
'position' => 'İşarənin Yeri',
|
||||
'before' => 'Məbləğdən Əvvəl',
|
||||
'after' => 'Məbləğdən Sonra',
|
||||
]
|
||||
|
||||
];
|
12
resources/lang/az-AZ/customers.php
Normal file
12
resources/lang/az-AZ/customers.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'can_login' => 'Giriş Edə Bilər',
|
||||
'user_created' => 'İstifadəçi yarat',
|
||||
|
||||
'error' => [
|
||||
'email' => 'E-poçt ünvanı istifadə edilir.',
|
||||
],
|
||||
|
||||
];
|
11
resources/lang/az-AZ/dashboards.php
Normal file
11
resources/lang/az-AZ/dashboards.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'error' => [
|
||||
'not_user_dashboard' => 'Xəta: Bu idarəetmə panelini dəyişdirmə icazəniz yoxdur!',
|
||||
'delete_last' => 'Xəta: Son idarəetmə panelini silə bilməzsiniz. Əvvəlcə yeni bir panel yaradın!',
|
||||
'disable_last' => 'Xəta: Son idarəetmə panelini deaktiv edə bilməzsiniz. Əvvəlcə yeni bir panel yaradın!',
|
||||
],
|
||||
|
||||
];
|
34
resources/lang/az-AZ/demo.php
Normal file
34
resources/lang/az-AZ/demo.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'accounts' => [
|
||||
'cash' => 'Nəğd',
|
||||
],
|
||||
|
||||
'categories' => [
|
||||
'deposit' => 'Depozit',
|
||||
'sales' => 'Satış',
|
||||
],
|
||||
|
||||
'currencies' => [
|
||||
'usd' => 'Amerika Dolları',
|
||||
'eur' => 'Avro',
|
||||
'gbp' => 'İngilis Sterlinqi',
|
||||
'try' => 'Türk Lirəsı',
|
||||
],
|
||||
|
||||
'offline_payments' => [
|
||||
'cash' => 'Nəğd',
|
||||
'bank' => 'Bank Köçürməsi',
|
||||
],
|
||||
|
||||
'reports' => [
|
||||
'income' => 'Kateqoriya əsaslı aylıq gəlir xülasəsi.',
|
||||
'expense' => 'Kateqoriya əsaslı aylıq xərc xülasəsi.',
|
||||
'income_expense' => 'Kateqoriya əsaslı aylıq gəlir-xərc balansı.',
|
||||
'tax' => 'Rüblük vergi xülasəsi.',
|
||||
'profit_loss' => 'Rüblük mənfəət və zərər hesabatı.',
|
||||
],
|
||||
|
||||
];
|
54
resources/lang/az-AZ/documents.php
Normal file
54
resources/lang/az-AZ/documents.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'edit_columns' => 'Sütünları Düzəlt',
|
||||
'empty_items' =>'Hər hansı bir məhsul/xidmət əlavə etmədiniz.',
|
||||
|
||||
'statuses' => [
|
||||
'draft' => 'Qaralama',
|
||||
'sent' => 'Göndərildi',
|
||||
'expired' => 'Vaxtı Bitdi',
|
||||
'viewed' => 'Baxıldı',
|
||||
'approved' => 'Təsdiqləndi',
|
||||
'received' => 'Qəbul Edildi',
|
||||
'refused' => 'Rədd Edildi',
|
||||
'restored' => 'Bərpa edildi',
|
||||
'reversed' => 'Geri Qaytarıldı',
|
||||
'partial' => 'Qismən Ödəmə',
|
||||
'paid' => 'Ödənildi',
|
||||
'pending' => 'Gözləyən',
|
||||
'invoiced' => 'Faturalandırıldı',
|
||||
'overdue' => 'Gecikmiş',
|
||||
'unpaid' => 'Ödənilməmiş',
|
||||
'cancelled' => 'Ləğv Edildi',
|
||||
'voided' => 'Ləğv Edildi',
|
||||
'completed' => 'Tamamlandı',
|
||||
'shipped' => 'Göndərildi',
|
||||
'refunded' => 'Geri Qaytarıldı',
|
||||
'failed' => 'Uğursuz Oldu',
|
||||
'denied' => 'Rəddedildi',
|
||||
'processed' => 'İşləndi',
|
||||
'open' => 'Açıq',
|
||||
'closed' => 'Bağlı',
|
||||
'billed' => 'Fakturalandı',
|
||||
'delivered' => 'Çatdırıldı',
|
||||
'returned' => 'Qaytarıldı',
|
||||
'drawn' => 'Geri Çəkildi',
|
||||
'not_billed' => 'Fakturalanmadı',
|
||||
'issued' => 'Yaradıldı',
|
||||
'not_invoiced' => 'Fakturalanmadı',
|
||||
'confirmed' => 'Təsdiqləndi',
|
||||
'not_confirmed' => 'Təsdiqlənmədi',
|
||||
],
|
||||
|
||||
'messages' => [
|
||||
'email_sent' => ':type e-poçtu göndərildi!',
|
||||
'marked_as' => ':type :status olaraq işarələndi!',
|
||||
'marked_sent' => ':type göndərildi olaraq işarələndi!',
|
||||
'marked_paid' => ':type ödənildi olaraq işarələndi!',
|
||||
'marked_viewed' => ':type baxıldı olaraq işarələndi!',
|
||||
'marked_cancelled' => ':type ləğv edildi olaraq işarələndi!',
|
||||
'marked_received' => ':type qəbul edildi olaraq işarələndi!',
|
||||
],
|
||||
];
|
50
resources/lang/az-AZ/email_templates.php
Normal file
50
resources/lang/az-AZ/email_templates.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'invoice_new_customer' => [
|
||||
'subject' => '{invoice_number} faktura yaradıldı',
|
||||
'body' => 'Hörmətli {customer_name},<br /><br /><strong>{invoice_number}</strong> nömrəli fakturanız hazırlandı.<br /><br />Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_remind_customer' => [
|
||||
'subject' => '{invoice_number} fakturası üçün gecikən ödəmə xatırlatması',
|
||||
'body' => 'Hörmətli {customer_name},<br /><br /><strong>{invoice_number}</strong> nömrəli fkatura üçün ödənişiniz gecikdi.<br /><br />Qeyd edilən faktura üçün {invoice_total} məbləğində vəsait ən son <strong>{invoice_due_date}</strong> tarixində ödənilməlidir.<br /><br />Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_remind_admin' => [
|
||||
'subject' => '{invoice_number} fakturanın ödənişi gecikib',
|
||||
'body' => 'Salam,<br /><br />{customer_name} müştərinizə <strong>{invoice_number}</strong> fakturası üçün gecikmiş ödəniş xəbərdarlığı göndərildi.<br /><br />Faktura məbləği {invoice_total} və son ödənişi <strong>{invoice_due_date}</strong> tarixində həyata keçirməli idi.<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_recur_customer' => [
|
||||
'subject' => '{invoice_number} təkrarlanan faktura yaradıldı',
|
||||
'body' => 'Hörmətli {customer_name},<br /><br />Ödəniş dövrünə uyğun olaraq <strong>{invoice_number}</strong> nömrəli fakturanız hazırlandı.<br /><br />Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_recur_admin' => [
|
||||
'subject' => '{invoice_number} təkrarlanan faktura yaradıldı',
|
||||
'body' => 'Salam,<br /><br />{customer_name} müştərinizə ödəmə dövrünə uyğun olaraq <strong>{invoice_number}</strong> nömrəli faktura avtomatik olaraq yaradıldı.<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_payment_customer' => [
|
||||
'subject' => '{invoice_number} faturasının ödemesi alındı',
|
||||
'body' => 'Hörmətli {customer_name},<br /><br />Ödənişiniz üçün təşəkkür edirik. Ödənişiniz haqqında ətraflı məlumat:<br /><br />-------------------------------------------------<br /><br />Məbləğ: <strong>{transaction_total}<br /></strong>Tarix: <strong>{transaction_paid_date}</strong><br />Faktura nömrəsi: <strong>{invoice_number}<br /><br /></strong>-------------------------------------------------<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{invoice_guest_link}">{invoice_number}</a>.<br /><br />Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'invoice_payment_admin' => [
|
||||
'subject' => '{invoice_number} faktura üçün ödəniş edildi',
|
||||
'body' => 'Salam,<br /><br />{customer_name} mütəriniz <strong>{invoice_number}</strong> nömrəli faktura üçün ödəniş etdi.<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{invoice_admin_link}">{invoice_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'bill_remind_admin' => [
|
||||
'subject' => '{bill_number} xərc fakturası üçün ödəniş satırlatması',
|
||||
'body' => 'Salam,<br /><br /><strong>{vendor_name}</strong> tədarükçünüzdən <strong>{bill_number}</strong> nömrəli xərc fakturası üçün ödəniş xatırlatmasıdır.<br /><br />Fakturanın məbləği {bill_total} və son ödəniş <strong>{bill_due_date}</strong> tarixində edilməlidir.<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
'bill_recur_admin' => [
|
||||
'subject' => '{bill_number} təkrarlanan xərc fakturası yaradıldı',
|
||||
'body' => 'Salam,<br /><br />{vendor_name} tədarükçünüzün ödəniş dövrünə uyğun olaraq <strong>{bill_number}</strong> nömrəli xərc fakturası avtomatik olaraq yaradıldı.<br /><br />Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />İşlərinizdə uğurlar,<br />{company_name}',
|
||||
],
|
||||
|
||||
];
|
23
resources/lang/az-AZ/errors.php
Normal file
23
resources/lang/az-AZ/errors.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'title' => [
|
||||
'403' => 'Təəsüf ki, giriş qadağandır',
|
||||
'404' => 'Təəsüf ki, səhifə tapılmadı',
|
||||
'500' => 'Təəsüf ki, bir xəta baş verdi',
|
||||
],
|
||||
|
||||
'header' => [
|
||||
'403' => '403 Qadağandır',
|
||||
'404' => '404 Tapılmadı',
|
||||
'500' => '500 Server xətası',
|
||||
],
|
||||
|
||||
'message' => [
|
||||
'403' => 'Bu səhifəyə giriş qadağandır.',
|
||||
'404' => 'Girməyə çalışdığınız səhifəni tapa bilmədik.',
|
||||
'500' => 'Bu nasazlığı aradan qaldırmaq üçün dərhal işə başlayırıq.',
|
||||
],
|
||||
|
||||
];
|
10
resources/lang/az-AZ/footer.php
Normal file
10
resources/lang/az-AZ/footer.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'version' => 'Versiya',
|
||||
'powered' => 'Akaunting tərəfindən',
|
||||
'link' => 'https://akaunting.com/tr',
|
||||
'software' => 'Pulsuz Ön Muhasibat Proqramı',
|
||||
|
||||
];
|
231
resources/lang/az-AZ/general.php
Normal file
231
resources/lang/az-AZ/general.php
Normal file
@ -0,0 +1,231 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'dashboards' => 'İdarəetmə Paneli|İdarəetmə Panelləri',
|
||||
'items' => 'Məhsul / Xidmət|Məhsullar / Xidmətlər',
|
||||
'incomes' => 'Gəlir|Gəlirlər',
|
||||
'invoices' => 'Faktura|Fakturalar',
|
||||
'revenues' => 'Gəlir|Gəlirlər',
|
||||
'customers' => 'Müştəri|Müştərilər',
|
||||
'expenses' => 'Xərc|Xərclər',
|
||||
'bills' => 'Faktura|Fakturalar',
|
||||
'payments' => 'Ödəniş|Ödənişlər',
|
||||
'vendors' => 'Tədarükçü|Tədarükçülər',
|
||||
'accounts' => 'Hesab|Hesablar',
|
||||
'transfers' => 'Köçürmə|Köçürmələr',
|
||||
'transactions' => 'Əməliyyat|Əməliyyatlar',
|
||||
'reports' => 'Hesabat|Hesabatlar',
|
||||
'settings' => 'Tənzimləmə|Tənzimləmələr',
|
||||
'categories' => 'Kateqoriya|Kateqoriyalar',
|
||||
'currencies' => 'Valyuta|Valyutalar',
|
||||
'tax_rates' => 'Vergi Dərəcəsi|Vergi Dərəcələri',
|
||||
'users' => 'İstifadəçi|İstifadəçilər',
|
||||
'roles' => 'Tapşırıq|Tapşırıqlar',
|
||||
'permissions' => 'İcazə|İcazələr',
|
||||
'modules' => 'Tətbiq|Tətbiqlər',
|
||||
'companies' => 'Şirkət|Şirkətlər',
|
||||
'profits' => 'Qazanc|Qazanc',
|
||||
'taxes' => 'Vergi Dərəcəsi|Vergi Dərəcələri',
|
||||
'logos' => 'Logo|Logolar',
|
||||
'pictures' => 'Şəkil|Şəkillər',
|
||||
'types' => 'Növ|Növlər',
|
||||
'payment_methods' => 'Ödəniş Metodu|Ödəniş Metodları',
|
||||
'compares' => 'Gəlir və Xərc | Gəlirlər və Xərclər',
|
||||
'notes' => 'Açıqlama|Açıqlamalar',
|
||||
'totals' => 'Ümumi|Ümumilər',
|
||||
'languages' => 'Dil|Dillər',
|
||||
'updates' => 'Yeniləmə|Yeniləmələr',
|
||||
'numbers' => 'Nömrə|Nömrələr',
|
||||
'statuses' => 'Status|Status',
|
||||
'others' => 'Digər|Digərləri',
|
||||
'contacts' => 'Şəxs|Şəxslər',
|
||||
'reconciliations' => 'Razılaşma|Razılaşmalar',
|
||||
'developers' => 'Geliştirici|Geliştiriciler',
|
||||
'schedules' => 'Planlama|Planlamalar',
|
||||
'groups' => 'Grup|Gruplar',
|
||||
'charts' => 'Grafik|Grafikler',
|
||||
'localisations' => 'Lokallaşdırma|Lokallaşdırmalar',
|
||||
'defaults' => 'Varsayılan|Varsayılanlar',
|
||||
'widgets' => 'Komponent|Komponentlər',
|
||||
'templates' => 'Şablon|Şablonlar',
|
||||
'sales' => 'Satış|Satışlar',
|
||||
'purchases' => 'Alış|Alışlar',
|
||||
|
||||
'welcome' => 'Xoş Gəldiniz',
|
||||
'banking' => 'Bank',
|
||||
'general' => 'Ümumi',
|
||||
'no_records' => 'Qeyd yoxdur.',
|
||||
'date' => 'Tarix',
|
||||
'amount' => 'Məbləğ',
|
||||
'enabled' => 'Aktiv',
|
||||
'disabled' => 'Deaktiv',
|
||||
'yes' => 'Bəli',
|
||||
'no' => 'Xeyir',
|
||||
'na' => '- Yox -',
|
||||
'daily' => 'Gündəlik',
|
||||
'weekly' => 'Həftəlik',
|
||||
'monthly' => 'Aylıq',
|
||||
'quarterly' => 'Rüblük',
|
||||
'yearly' => 'İllik',
|
||||
'add' => 'Əlavə et',
|
||||
'add_new' => 'Yeni Əlavə et',
|
||||
'add_income' => 'Gəlir Əlavə et',
|
||||
'add_expense' => 'Xərc Əlavə et',
|
||||
'show' => 'Göstər',
|
||||
'edit' => 'Düəliş et',
|
||||
'delete' => 'Sil',
|
||||
'send' => 'Göndər',
|
||||
'share' => 'Paylaş',
|
||||
'download' => 'Yüklə',
|
||||
'delete_confirm' => ':name :type silmək istədiyinizdən əminsiniz?',
|
||||
'name' => 'Ad',
|
||||
'email' => 'E-poçt',
|
||||
'tax_number' => 'Vergi Nömrəsi',
|
||||
'phone' => 'Telefon',
|
||||
'address' => 'Ünvan',
|
||||
'website' => 'Veb Səhifə',
|
||||
'actions' => 'Əməliyyat',
|
||||
'description' => 'Açıqlama',
|
||||
'manage' => 'İdarəEt',
|
||||
'code' => 'Kod',
|
||||
'alias' => 'Ləqəb',
|
||||
'balance' => 'Balans',
|
||||
'reference' => 'İstinad',
|
||||
'attachment' => 'Fayl',
|
||||
'change' => 'Dəyişdir',
|
||||
'change_type' => ':type Dəyişdir',
|
||||
'switch' => 'Dəyişdir',
|
||||
'color' => 'Rəng',
|
||||
'save' => 'Yadda Saxla',
|
||||
'confirm' => 'Təsdiq',
|
||||
'cancel' => 'Ləğv',
|
||||
'loading' => 'Yüklənir...',
|
||||
'from' => 'Tərəfindən',
|
||||
'to' => 'Tərəfinə',
|
||||
'print' => 'Çap et',
|
||||
'download_pdf' => 'PDF Yükə',
|
||||
'customize' => 'Özəlləşdir',
|
||||
'search' => 'Axtar',
|
||||
'search_text' => 'Bu mətni axtar',
|
||||
'search_placeholder' => 'Axtarılacaq söz..',
|
||||
'filter' => 'Filtrlə',
|
||||
'help' => 'Kömək',
|
||||
'all' => 'Hamısı',
|
||||
'all_type' => 'Bütün :type',
|
||||
'upcoming' => 'Gələcək',
|
||||
'created' => 'Yaradıldı',
|
||||
'id' => 'ID',
|
||||
'more_actions' => 'Başqa Əməliyyat',
|
||||
'duplicate' => 'Dublikat',
|
||||
'unpaid' => 'Ödənməmiş',
|
||||
'paid' => 'Ödənmiş',
|
||||
'overdue' => 'Gecikmiş',
|
||||
'partially' => 'Qismən',
|
||||
'partially_paid' => 'Qismən Ödenmiş',
|
||||
'export' => 'İxrac et',
|
||||
'finish' => 'Bitdi',
|
||||
'wizard' => 'Sehirbaz',
|
||||
'skip' => 'Keç',
|
||||
'enable' => 'Aktiv et',
|
||||
'disable' => 'Deaktiv et',
|
||||
'select_all' => 'Hamısını seç',
|
||||
'unselect_all' => 'Seçilmişləri təmizlə',
|
||||
'created_date' => 'Yaranma Tarixi',
|
||||
'period' => 'Dövr',
|
||||
'frequency' => 'Tezlik',
|
||||
'start' => 'Başlat',
|
||||
'end' => 'Bitir',
|
||||
'clear' => 'Təmizlə',
|
||||
'difference' => 'Fərq',
|
||||
'footer' => 'Alt məlumat',
|
||||
'start_date' => 'Başlanğıc Tarixi',
|
||||
'end_date' => 'Bitiş Tarixi',
|
||||
'basis' => 'Əsas',
|
||||
'accrual' => 'Hesablama',
|
||||
'cash' => 'Nəğd',
|
||||
'group_by' => 'Qruplandır',
|
||||
'accounting' => 'Mühasibat',
|
||||
'sort' => 'Sıralama',
|
||||
'width' => 'Eni',
|
||||
'month' => 'Ay',
|
||||
'year' => 'İl',
|
||||
'type_item_name' => 'Məhsul/Xidmət adını yazın',
|
||||
'no_data' => 'Məlumat yoxdur',
|
||||
'no_matching_data' => 'Uyğun gələn məlumat yoxdur',
|
||||
'clear_cache' => 'Keşi təmizləmək',
|
||||
'go_to_dashboard' => 'İdarəetmə Panelinə Get',
|
||||
'is' => 'bərabər',
|
||||
'isnot' => 'deyil',
|
||||
'recurring_and_more' => 'Təkrarlanan və daha çox...',
|
||||
'due_on' => 'Son Tarix',
|
||||
'amount_due' => 'Qalıq Məbləğ',
|
||||
|
||||
'card' => [
|
||||
'cards' => 'Kart|Kartlar',
|
||||
'name' => 'Kart Sahibi',
|
||||
'number' => 'Kart Nömrəsi',
|
||||
'expiration_date' => 'Qüvvədə olma tarixi',
|
||||
'cvv' => 'CVV Nömrəsi',
|
||||
'save' => 'Kartı Yadda Saxla',
|
||||
],
|
||||
|
||||
'title' => [
|
||||
'new' => 'Yeni :type',
|
||||
'edit' => ':type Düzəliş et',
|
||||
'delete' => ':type Sil',
|
||||
'create' => ':type Yarat',
|
||||
'send' => ':type Göndər',
|
||||
'get' => ':type Gətir',
|
||||
'add' => ':type Əlavə et',
|
||||
'manage' => ':type İdarə et',
|
||||
],
|
||||
|
||||
'form' => [
|
||||
'enter' => ':field Daxil edin',
|
||||
'select' => [
|
||||
'field' => '- :field Seçin -',
|
||||
'file' => 'Fayl Seçin',
|
||||
],
|
||||
'add' => ':field Əlavə et',
|
||||
'add_an' => ':field Əlavə et',
|
||||
'add_new' => ':field Yenisini əlavə et',
|
||||
'edit' => ':field Düzəliş et',
|
||||
'contact_edit' => ':contact_name :field əlavə et',
|
||||
'drop_file' => 'Yükləmək üçün faylları buraya sürükləyin',
|
||||
'choose' => ':field Seç',
|
||||
'choose_different' => 'Başqa bir :field seç',
|
||||
'choose_file' => 'Fayl Seçin',
|
||||
'no_file_selected' => 'Fayl seçilməyib...',
|
||||
],
|
||||
|
||||
'placeholder' => [
|
||||
'search' => 'Axtarılacaq söz...',
|
||||
'search_and_filter' => 'Qeydləri axtar və ya filtrlə',
|
||||
'contact_search' => ':type adı yazın',
|
||||
'item_search' => 'Məhsul/Xidmət adı yazın',
|
||||
],
|
||||
|
||||
'date_range' => [
|
||||
'today' => 'Bugün',
|
||||
'yesterday' => 'Dünən',
|
||||
'last_days' => 'Son :day Gün',
|
||||
'this_month' => 'Bu Ay',
|
||||
'last_month' => 'Son Ay',
|
||||
],
|
||||
|
||||
'empty' => [
|
||||
'documentation' => 'Daha çox məlumat üçün <a href=":url" target="_blank">səndləşmə</a> səhifəsini yoxlaya bilərsiniz.',
|
||||
'items' => 'Maddələr məhsullar və ya xidmətlər ola bilər. Gəlir/xərc fakturası yaradarkən qiymət, vergi kimi sahələri avtomatik doldurmaq üçün maddələrdən istifadə edə bilərsiniz..',
|
||||
'invoices' => 'Faturalar birdəfəlik və ya təkrar ola bilər. Müştərilərinizə faktura göndərərək, onlayn ödəniş etmələrini təmin edə bilərsiniz.',
|
||||
'revenues' => 'Gəlir reallaşdırılan qazanc əməliyyatıdır. Tamamilə müstəqil (depozit kimi) ola bilər və ya gəlir fakturasına bağlana bilər.',
|
||||
'customers' => 'Gəlir fakturası yaratmaq üşün müştəri olması məcburidir. Giriş icazəsi verdiyiniz müştərilər panelə girib balanslarına baxa bilərlər.',
|
||||
'bills' => 'Faturalar birdəfəlik və ya təkrar ola bilər. Tədarükçülərdən aldığınız məhsul və xidmətləri asanlıqla izləyə bilərsiniz.',
|
||||
'payments' => 'Ödəniş, həyata keçirilmiş bir xərc əməliyyatıdır. Tamamilə müstəqil (yemək bileti) ola bilər və ya xərc fakturasına bağlana bilər.',
|
||||
'vendors' => 'Xərc fakturası yaratmaq üşün tədarükçü olması məcburidir. Onalra olan borc balansınıza baxa vəya filtirləyə bilərsiniz.',
|
||||
'transfers' => 'Köçürmələr, hesablar arası pul köçürməsi üçün istifadə olunur. Hesabların valyutaları eyni vəya fərqli ola bilər.',
|
||||
'taxes' => 'Vergilər, gəlir və ya xərc fakturalarına əlavə xərclər əlavə etmək üçün istifadə olunur. Maliyyə hesabatlarınız da müvafiq olaraq təsir göstərir.',
|
||||
'reconciliations' => 'Bank hesabları və mühasibat qeydlərinin düzgün olub olmadığını yoxlamaq üçün bank uzlaşması aparılır.',
|
||||
],
|
||||
|
||||
];
|
16
resources/lang/az-AZ/header.php
Normal file
16
resources/lang/az-AZ/header.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'change_language' => 'Dil Dəyişdir',
|
||||
'last_login' => 'Son giriş :time',
|
||||
'notifications' => [
|
||||
'counter' => '{0} Bildiriş yox|{1} :count bildirişiniz var|[2,*] :count bildirişiniz var',
|
||||
'overdue_invoices' => '{1} :count Gecikmiş Faktura Mövcuddur |[2,*] :count Gecikmiş Faktura Mövcuddur',
|
||||
'upcoming_bills' => '{1} :count Yaxınlaşan Faktura Mövcuddur|[2,*] :count Yaxınlaşan Faktura Mövcuddur',
|
||||
'view_all' => 'Hamısını göstər'
|
||||
],
|
||||
'docs_link' => 'https://akaunting.com/docs',
|
||||
'support_link' => 'https://akaunting.com/support',
|
||||
|
||||
];
|
9
resources/lang/az-AZ/import.php
Normal file
9
resources/lang/az-AZ/import.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'import' => 'İdxal et',
|
||||
'title' => ':type İdxal et',
|
||||
'message' => 'İcazə veriəln fayl tipləri: XLS, XLSX. Lütfen, örnek dosyayı <a target="_blank" href=":link"><strong>indirin</strong></a>.',
|
||||
|
||||
];
|
46
resources/lang/az-AZ/install.php
Normal file
46
resources/lang/az-AZ/install.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'next' => 'İləri',
|
||||
'refresh' => 'Yenilə',
|
||||
|
||||
'steps' => [
|
||||
'requirements' => 'Problemləri aradan qaldırmaq üçün hosting firması ilə əlaqə saxlayın!',
|
||||
'language' => 'Adım 1/3 : Dil Seçimi',
|
||||
'database' => 'Adım 2/3 : Verilənlər bazası parametrləri',
|
||||
'settings' => 'Adım 3/3 : Şirkət və Menecer məlumatları',
|
||||
],
|
||||
|
||||
'language' => [
|
||||
'select' => 'Dil Seçin',
|
||||
],
|
||||
|
||||
'requirements' => [
|
||||
'enabled' => ':feature aktiv olmalıdır!',
|
||||
'disabled' => ':feature deaktiv edilməlidir!',
|
||||
'extension' => ':extension əlavəsi quraşdırılmaslıdır!',
|
||||
'directory' => ':directory qovluq yazılabilir olmalıdır!',
|
||||
'executable' => 'PHP CLI çalıştırıcısı tapılması vəya işlək deyil vəya versiyası :php_version və üstü deyil. Zəhmət olmazsa, hosting firmanızdan PHP_BINARY vəya PHP_PATH mühit dəyərlərinin düzgün tənzimləməsini istəyin.',
|
||||
],
|
||||
|
||||
'database' => [
|
||||
'hostname' => 'Server',
|
||||
'username' => 'İstifadçi adı',
|
||||
'password' => 'Şifrə',
|
||||
'name' => 'Verilənlər bazası',
|
||||
],
|
||||
|
||||
'settings' => [
|
||||
'company_name' => 'Şirkət Adı',
|
||||
'company_email' => 'Şirkət e-Poçtu',
|
||||
'admin_email' => 'İnzibatçı e-Poçtu',
|
||||
'admin_password' => 'İnzibatçı Şifresi',
|
||||
],
|
||||
|
||||
'error' => [
|
||||
'php_version' => 'Xəta: HTTP ve CLI üçün PHP versiyası :php_version və üstü olmalı olduğunu hosting firmanıza bildirin.',
|
||||
'connection' => 'Xəta: Verilənlər bazasına bağlana bilmədik! Zəhmət olmazsa verilənlər bazası məlumatlarını yoxlayın.',
|
||||
],
|
||||
|
||||
];
|
60
resources/lang/az-AZ/invoices.php
Normal file
60
resources/lang/az-AZ/invoices.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'invoice_number' => 'Faktura Nömrəsi',
|
||||
'invoice_date' => 'Faktura Tarixi',
|
||||
'total_price' => 'Cəmi Məbləğ',
|
||||
'due_date' => 'Son Tarixi',
|
||||
'order_number' => 'Sifariş Nömrəsi',
|
||||
'bill_to' => 'Fakturalanacak Şəxs/Qurum',
|
||||
|
||||
'quantity' => 'Ədəd',
|
||||
'price' => 'Qiymət',
|
||||
'sub_total' => 'Ara Cəmi',
|
||||
'discount' => 'Endirim',
|
||||
'item_discount' => 'Məhsul Endirimi',
|
||||
'tax_total' => 'Vergi Cəmi',
|
||||
'total' => 'Cəmi',
|
||||
|
||||
'item_name' => 'Məhsul Adı | Məhsul Adları',
|
||||
|
||||
'show_discount' => '%:discount Endirim',
|
||||
'add_discount' => 'Endirim əlavə et',
|
||||
'discount_desc' => 'ara cəm üzərindən',
|
||||
|
||||
'payment_due' => 'Son Ödəniş Tarixi',
|
||||
'paid' => 'Ödənmiş',
|
||||
'histories' => 'Keçmiş',
|
||||
'payments' => 'Ödənişlər',
|
||||
'add_payment' => 'Ödəniş Əlavə et',
|
||||
'mark_paid' => 'Ödəndi İşarələ',
|
||||
'mark_sent' => 'Göndərildi İşarələ',
|
||||
'mark_viewed' => 'Baxıldı İşarələ',
|
||||
'mark_cancelled' => 'Ləğv edildi işarələ',
|
||||
'download_pdf' => 'PDF Yüklə',
|
||||
'send_mail' => 'Email Göndər',
|
||||
'all_invoices' => ' Bütün Fakturalara baxmaq üçün giriş edin',
|
||||
'create_invoice' => 'Faktura Yarat',
|
||||
'send_invoice' => 'Fakturanı Göndər',
|
||||
'get_paid' => 'Ödəniş qəbul et',
|
||||
'accept_payments' => 'Online Ödəniş qəbul et',
|
||||
|
||||
'messages' => [
|
||||
'email_required' => 'Bu müştəri üçün e-poçt ünvanı yoxdur!',
|
||||
'draft' => 'Bu bir <b>QARALAMA</b> Fakturadır və göndərildikdən sonra grafiklərdə əks olunacaq.',
|
||||
|
||||
'status' => [
|
||||
'created' => ':date tarixində yaradıldı',
|
||||
'viewed' => 'Baxıldı',
|
||||
'send' => [
|
||||
'draft' => 'Göndərilmədi',
|
||||
'sent' => ':date Tarixində Göndərildi',
|
||||
],
|
||||
'paid' => [
|
||||
'await' => 'Ödəniş Gözlənilir',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
];
|
8
resources/lang/az-AZ/items.php
Normal file
8
resources/lang/az-AZ/items.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'sales_price' => 'Satış Qiyməti',
|
||||
'purchase_price' => 'Alış Qiyməti',
|
||||
|
||||
];
|
9
resources/lang/az-AZ/maintenance.php
Normal file
9
resources/lang/az-AZ/maintenance.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'title' => 'Texniki işlər gedir',
|
||||
|
||||
'message' => 'Üzr istəyirik, texniki işlərlə əlaqədar bağlanmışıq. Zəhmət olmasa daha sonra yenə cəhd edin!',
|
||||
|
||||
];
|
37
resources/lang/az-AZ/messages.php
Normal file
37
resources/lang/az-AZ/messages.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'success' => [
|
||||
'added' => ':type əlavə edildi!',
|
||||
'updated' => ':type yeniləndi!',
|
||||
'deleted' => ':type silindi!',
|
||||
'duplicated' => ':type dublikat edildi!',
|
||||
'imported' => ':type idxal edildi!',
|
||||
'exported' => ':type ixrac edildi!',
|
||||
'enabled' => ':type aktiv edildi!',
|
||||
'disabled' => ':type deaktiv edildi!',
|
||||
],
|
||||
|
||||
'error' => [
|
||||
'over_payment' => 'Xəta: Ödəniş əlavə edilmədi! Daxil etdiyiniz :amount cəmi keçir.',
|
||||
'not_user_company' => 'Xəta: Bu şirkəti idarə etmə icazəniz yoxdur!',
|
||||
'customer' => 'Xəta: İstifadəçi yaradılmadı. :name bu e-poçt ünvanı istifadə edilir.',
|
||||
'no_file' => 'Xəta: Fayl seçilmədi!',
|
||||
'last_category' => 'Xəta: Son :type kateqoriyasını silə bilməzsiniz!',
|
||||
'change_type' => 'Xəta: Növ dəyişdirilə bilməz çünki :text əlaqə mövcuddur!',
|
||||
'invalid_apikey' => 'Xəta: Daxil etdiyiniz API açar qüvvədə deyil!',
|
||||
'import_column' => 'Xəta: :message Səhifə adı: :sheet. Sətir nömrəsi: :line.',
|
||||
'import_sheet' => 'Xəta: Səyfə adı qüvvədə deyil. Zəhmət olmazsa, nümunə sənədinə baxın.',
|
||||
],
|
||||
|
||||
'warning' => [
|
||||
'deleted' => 'Xəbərdarlıq: <b>:name</b> silinə bilməz çünki :text ile əlaqəlidir.',
|
||||
'disabled' => 'Xəbərdarlıq: <b>:name</b> deaktiv edilə bilməz çünki :text ilə əlaqəlidir.',
|
||||
'reconciled_tran' => 'Xəbərdarlıq: Əməliyyat razılaşdırılmış olunduğu üçün dəyişdirilə / silinə bilməz.',
|
||||
'reconciled_doc' => 'Xəbərdarlıq: :type razılaşdırılmış əməliyyatlar apardığı üçün dəyişdirilə / silinə bilməz.',
|
||||
'disable_code' => 'Xəbərdarlıq: <b>:name</b> deaktiv edilə vəya valyuta dəyişdirilə bilməz çünki :text ilə əlaqəlidir.',
|
||||
'payment_cancel' => 'Xəbərdarlıq: :method ödənişini ləğv etdiniz!',
|
||||
],
|
||||
|
||||
];
|
83
resources/lang/az-AZ/modules.php
Normal file
83
resources/lang/az-AZ/modules.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'api_key' => 'API Açarı',
|
||||
'my_apps' => 'Tətbiqlərim',
|
||||
'pre_sale' => 'Ön-Satış',
|
||||
'top_paid' => 'Populyar pullu',
|
||||
'new' => 'Yeni',
|
||||
'top_free' => 'Populyar Pulsuz',
|
||||
'free' => 'Pulsuz',
|
||||
'install' => 'Yüklə',
|
||||
'buy_now' => 'İndi satın al',
|
||||
'get_api_key' => 'API Açar almaq üçün <a href=":url" target="_blank">buraya vurun</a>.',
|
||||
'no_apps' => 'Bu kateqoriyada hələ heç bir tətbiq yoxdur.',
|
||||
'become_developer' => 'Bir geliştiricisiniz? <a href=":url" target="_blank">Buraya</a> Akaunting üçün tətbiqetmələr inkişaf etdirməyi öyrənib və dərhal pul qazanmağa başlayacağınızı bilərsiniz!',
|
||||
'recommended_apps' => 'Məsləhət Görülən tətbiqlər',
|
||||
|
||||
'about' => 'Haqqında',
|
||||
|
||||
'added' => 'Əlavə Etmə Tarixi',
|
||||
'updated' => 'Yeniləmə Tarixi',
|
||||
'compatibility' => 'Uyğunluq',
|
||||
'documentation' => 'Sənədlər',
|
||||
'view' => 'Bax',
|
||||
'back' => 'Geri',
|
||||
|
||||
'installed' => ':module yükləndi',
|
||||
'uninstalled' => ':module silindi',
|
||||
//'updated' => ':module updated',
|
||||
'enabled' => ':module aktiv et',
|
||||
'disabled' => ':module deaktiv edildi',
|
||||
|
||||
'tab' => [
|
||||
'installation' => 'Yükləmə',
|
||||
'faq' => 'SSS',
|
||||
'changelog' => 'Dəyişikliklər',
|
||||
'reviews' => 'Rəylər',
|
||||
],
|
||||
|
||||
'installation' => [
|
||||
'header' => 'Tətbiq Yükəmə',
|
||||
'download' => ':module yüklənir',
|
||||
'unzip' => ':module zipdən çıxardılır',
|
||||
'file_copy' => ':module fayllar kopyalanır',
|
||||
'finish' => ':module qurulma tamamlanır',
|
||||
'redirect' => ':module quruldu, yeniləmə səhifəsinə yönləndirilirsiniz',
|
||||
'install' => ':module qurulur',
|
||||
],
|
||||
|
||||
'errors' => [
|
||||
'download' => ':module yüklənə bilmədi',
|
||||
'zip' => ':module üçün zip faylı yaradıldı',
|
||||
'unzip' => ':module zipdən çıxarılması',
|
||||
'file_copy' => ':module faylları kopyalana bilmədi',
|
||||
'finish' => ':module qurulum tamamlana bilmədi',
|
||||
],
|
||||
|
||||
'badge' => [
|
||||
'installed' => 'Qurulmuş',
|
||||
'pre_sale' => 'Ön-Satış',
|
||||
],
|
||||
|
||||
'button' => [
|
||||
'uninstall' => 'Sil',
|
||||
'disable' => 'Deaktiv et',
|
||||
'enable' => 'Aktiv',
|
||||
],
|
||||
|
||||
'my' => [
|
||||
'purchased' => 'Satın Alınmış',
|
||||
'installed' => 'Qurulu',
|
||||
],
|
||||
|
||||
'reviews' => [
|
||||
'button' => [
|
||||
'add' => 'Rəy əlavə et'
|
||||
],
|
||||
|
||||
'na' => 'Hər hansı bir rəy yoxdur.'
|
||||
],
|
||||
|
||||
];
|
10
resources/lang/az-AZ/notifications.php
Normal file
10
resources/lang/az-AZ/notifications.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'whoops' => 'Ayyy səni!',
|
||||
'hello' => 'Salam!',
|
||||
'salutation' => 'Hörmətlə,<br> :company_name',
|
||||
'subcopy' => '":text" düyməyə vura bilmirsinizsə, aşaöıdakı linki kopyalayib browserə köçürün: [:url](:url)',
|
||||
|
||||
];
|
10
resources/lang/az-AZ/pagination.php
Normal file
10
resources/lang/az-AZ/pagination.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'previous' => 'Geri',
|
||||
'next' => 'İləri',
|
||||
'showing' => ':total qeyddən :first-:last arası.',
|
||||
'page' => 'səhifə başına.',
|
||||
|
||||
];
|
23
resources/lang/az-AZ/passwords.php
Normal file
23
resources/lang/az-AZ/passwords.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Parollar ən azı altı simvoldan ibarət olmalı və təsdiqlə uyğun olmalıdır.',
|
||||
'reset' => 'Şifrəniz sıfırlandı!',
|
||||
'sent' => 'Şifrə sıfırlama linkinizi elektron poçtla göndərdik!',
|
||||
'token' => 'Şifrə sıfırlama ünvanı/kodu etibarsızdır.',
|
||||
'user' => "Bu e-poçt ünvanı ilə qeydiyyatdan keçmiş bir üzv yoxdur.",
|
||||
'throttle' => 'Zəhmət olmazsa, yenidən cəhd etmədən əvvəl gözləyin.',
|
||||
|
||||
];
|
18
resources/lang/az-AZ/reconciliations.php
Normal file
18
resources/lang/az-AZ/reconciliations.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'reconcile' => 'Razılaşma',
|
||||
'unreconcile' => 'Razılaşmanı ləğv et',
|
||||
'reconciled' => 'Razılaşdırıldı',
|
||||
'opening_balance' => 'Açılış Balansı',
|
||||
'closing_balance' => 'Bağlanma Balansı',
|
||||
'unreconciled' => 'Razılaşma baş tutmadı',
|
||||
'transactions' => 'Əməliyyatlar',
|
||||
'start_date' => 'Başlanğıc Tarixi',
|
||||
'end_date' => 'Bitiş Tarixi',
|
||||
'cleared_amount' => 'Təmizlənmiş Məbləğ',
|
||||
'deposit' => 'Əmanət edildi',
|
||||
'withdrawal' => 'Çıxarılan',
|
||||
|
||||
];
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user