Merge branch 'akaunting:master' into invoice-form-enhancements
This commit is contained in:
commit
af8b75487f
@ -101,6 +101,12 @@ abstract class TransferShow extends Component
|
|||||||
/** @var string */
|
/** @var string */
|
||||||
public $routeButtonDelete;
|
public $routeButtonDelete;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
public $routeFromAccountShow;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
public $routeToAccountShow;
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
public $textDeleteModal;
|
public $textDeleteModal;
|
||||||
|
|
||||||
@ -267,7 +273,7 @@ abstract class TransferShow extends Component
|
|||||||
bool $hideButtonGroupDivider1 = false, bool $hideButtonGroupDivider2 = false, bool $hideButtonGroupDivider3 = false,
|
bool $hideButtonGroupDivider1 = false, bool $hideButtonGroupDivider2 = false, bool $hideButtonGroupDivider3 = false,
|
||||||
string $permissionCreate = '', string $permissionUpdate = '', string $permissionDelete = '',
|
string $permissionCreate = '', string $permissionUpdate = '', string $permissionDelete = '',
|
||||||
string $routeButtonAddNew = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonPrint = '', string $signedUrl = '',
|
string $routeButtonAddNew = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonPrint = '', string $signedUrl = '',
|
||||||
string $routeButtonEmail = '', string $routeButtonPdf = '', string $routeButtonDelete = '',
|
string $routeButtonEmail = '', string $routeButtonPdf = '', string $routeButtonDelete = '', string $routeFromAccountShow = '', string $routeToAccountShow = '',
|
||||||
string $textDeleteModal = '',
|
string $textDeleteModal = '',
|
||||||
bool $hideHeader = false, bool $hideHeaderFromAccount = false, bool $hideHeaderToAccount = false, bool $hideHeaderAmount = false, bool $hideHeaderPaidAt = false,
|
bool $hideHeader = false, bool $hideHeaderFromAccount = false, bool $hideHeaderToAccount = false, bool $hideHeaderAmount = false, bool $hideHeaderPaidAt = false,
|
||||||
string $textHeaderFromAccount = '', string $textHeaderToAccount = '', string $textHeaderAmount = '', string $textHeaderPaidAt = '',
|
string $textHeaderFromAccount = '', string $textHeaderToAccount = '', string $textHeaderAmount = '', string $textHeaderPaidAt = '',
|
||||||
@ -324,6 +330,8 @@ abstract class TransferShow extends Component
|
|||||||
$this->routeButtonEmail = $this->getRouteButtonEmail($routeButtonEmail);
|
$this->routeButtonEmail = $this->getRouteButtonEmail($routeButtonEmail);
|
||||||
$this->routeButtonPdf = $this->getRouteButtonPdf($routeButtonPdf);
|
$this->routeButtonPdf = $this->getRouteButtonPdf($routeButtonPdf);
|
||||||
$this->routeButtonDelete = $this->getRouteButtonDelete($routeButtonDelete);
|
$this->routeButtonDelete = $this->getRouteButtonDelete($routeButtonDelete);
|
||||||
|
$this->routeFromAccountShow = $this->getRouteFromAccountShow($routeFromAccountShow);
|
||||||
|
$this->routeToAccountShow = $this->getRouteToAccountShow($routeToAccountShow);
|
||||||
|
|
||||||
// Navbar Text
|
// Navbar Text
|
||||||
$this->textDeleteModal = $textDeleteModal;
|
$this->textDeleteModal = $textDeleteModal;
|
||||||
@ -501,6 +509,24 @@ abstract class TransferShow extends Component
|
|||||||
return 'transfers.destroy';
|
return 'transfers.destroy';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getRouteFromAccountShow($routeFromAccountShow)
|
||||||
|
{
|
||||||
|
if (!empty($routeFromAccountShow)) {
|
||||||
|
return $routeFromAccountShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'accounts.show';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getRouteToAccountShow($routeToAccountShow)
|
||||||
|
{
|
||||||
|
if (!empty($routeToAccountShow)) {
|
||||||
|
return $routeToAccountShow;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'accounts.show';
|
||||||
|
}
|
||||||
|
|
||||||
protected function getPermissionCreate($permissionCreate)
|
protected function getPermissionCreate($permissionCreate)
|
||||||
{
|
{
|
||||||
if (!empty($permissionCreate)) {
|
if (!empty($permissionCreate)) {
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
namespace $NAMESPACE$;
|
namespace $NAMESPACE$;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
|
||||||
|
|
||||||
class $CLASS$ extends Command
|
class $CLASS$ extends Command
|
||||||
{
|
{
|
||||||
@ -22,16 +20,6 @@ class $CLASS$ extends Command
|
|||||||
*/
|
*/
|
||||||
protected $description = 'Command description.';
|
protected $description = 'Command description.';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
@ -41,28 +29,4 @@ class $CLASS$ extends Command
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the console command arguments.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getArguments()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
['example', InputArgument::REQUIRED, 'An example argument.'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the console command options.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function getOptions()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
['example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
24
app/Events/Auth/UserCreated.php
Normal file
24
app/Events/Auth/UserCreated.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Events\Auth;
|
||||||
|
|
||||||
|
use App\Abstracts\Event;
|
||||||
|
|
||||||
|
class UserCreated extends Event
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new event instance.
|
||||||
|
*
|
||||||
|
* @param $user
|
||||||
|
* @param $request
|
||||||
|
*/
|
||||||
|
public function __construct($user, $request)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
}
|
22
app/Events/Auth/UserCreating.php
Normal file
22
app/Events/Auth/UserCreating.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Events\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
class UserCreating
|
||||||
|
{
|
||||||
|
use SerializesModels;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new event instance.
|
||||||
|
*
|
||||||
|
* @param $request
|
||||||
|
*/
|
||||||
|
public function __construct($request)
|
||||||
|
{
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
}
|
24
app/Events/Auth/UserUpdated.php
Normal file
24
app/Events/Auth/UserUpdated.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Events\Auth;
|
||||||
|
|
||||||
|
use App\Abstracts\Event;
|
||||||
|
|
||||||
|
class UserUpdated extends Event
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new event instance.
|
||||||
|
*
|
||||||
|
* @param $user
|
||||||
|
* @param $request
|
||||||
|
*/
|
||||||
|
public function __construct($user, $request)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
}
|
24
app/Events/Auth/UserUpdating.php
Normal file
24
app/Events/Auth/UserUpdating.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Events\Auth;
|
||||||
|
|
||||||
|
use App\Abstracts\Event;
|
||||||
|
|
||||||
|
class UserUpdating extends Event
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new event instance.
|
||||||
|
*
|
||||||
|
* @param $user
|
||||||
|
* @param $request
|
||||||
|
*/
|
||||||
|
public function __construct($user, $request)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,9 @@ use App\Jobs\Banking\CreateAccount;
|
|||||||
use App\Jobs\Banking\DeleteAccount;
|
use App\Jobs\Banking\DeleteAccount;
|
||||||
use App\Jobs\Banking\UpdateAccount;
|
use App\Jobs\Banking\UpdateAccount;
|
||||||
use App\Models\Banking\Account;
|
use App\Models\Banking\Account;
|
||||||
|
use App\Models\Banking\Transaction;
|
||||||
|
use App\Models\Banking\Transfer;
|
||||||
|
use App\Utilities\Reports as Utility;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
|
|
||||||
class Accounts extends Controller
|
class Accounts extends Controller
|
||||||
@ -29,11 +32,26 @@ class Accounts extends Controller
|
|||||||
*
|
*
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function show()
|
public function show(Account $account)
|
||||||
{
|
{
|
||||||
return redirect()->route('accounts.index');
|
// Handle transactions
|
||||||
}
|
$transactions = Transaction::with('account', 'category')->where('account_id', $account->id)->collect('paid_at');
|
||||||
|
|
||||||
|
$transfers = Transfer::with('transaction')->all()->filter(function ($transfer) use($account) {
|
||||||
|
if ($transfer->expense_account->id == $account->id || $transfer->income_account->id == $account->id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
})->sortByDesc(function ($transfer) {
|
||||||
|
return $transfer->expense_transaction->paid_at;
|
||||||
|
});
|
||||||
|
|
||||||
|
$limit = (int) request('limit', setting('default.list_limit', '25'));
|
||||||
|
$transfers = $this->paginate($transfers, $limit);
|
||||||
|
|
||||||
|
return view('banking.accounts.show', compact('account', 'transactions', 'transfers'));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Show the form for creating a new resource.
|
* Show the form for creating a new resource.
|
||||||
*
|
*
|
||||||
@ -60,7 +78,7 @@ class Accounts extends Controller
|
|||||||
$response = $this->ajaxDispatch(new CreateAccount($request));
|
$response = $this->ajaxDispatch(new CreateAccount($request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
$response['redirect'] = route('accounts.index');
|
$response['redirect'] = route('accounts.show', $response['data']->id);
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.accounts', 1)]);
|
$message = trans('messages.success.added', ['type' => trans_choice('general.accounts', 1)]);
|
||||||
|
|
||||||
@ -76,6 +94,24 @@ class Accounts extends Controller
|
|||||||
return response()->json($response);
|
return response()->json($response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate the specified resource.
|
||||||
|
*
|
||||||
|
* @param Account $account
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function duplicate(Account $account)
|
||||||
|
{
|
||||||
|
$clone = $account->duplicate();
|
||||||
|
|
||||||
|
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.accounts', 1)]);
|
||||||
|
|
||||||
|
flash($message)->success();
|
||||||
|
|
||||||
|
return redirect()->route('accounts.edit', $clone->id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*
|
*
|
||||||
@ -107,7 +143,7 @@ class Accounts extends Controller
|
|||||||
$response = $this->ajaxDispatch(new UpdateAccount($account, $request));
|
$response = $this->ajaxDispatch(new UpdateAccount($account, $request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
$response['redirect'] = route('accounts.index');
|
$response['redirect'] = route('accounts.show', $account->id);
|
||||||
|
|
||||||
$message = trans('messages.success.updated', ['type' => $account->name]);
|
$message = trans('messages.success.updated', ['type' => $account->name]);
|
||||||
|
|
||||||
@ -185,6 +221,44 @@ class Accounts extends Controller
|
|||||||
return response()->json($response);
|
return response()->json($response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function createRevenue(Account $account)
|
||||||
|
{
|
||||||
|
$data['account_id'] = $account->id;
|
||||||
|
|
||||||
|
return redirect()->route('revenues.create')->withInput($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createPayment(Account $account)
|
||||||
|
{
|
||||||
|
$data['account_id'] = $account->id;
|
||||||
|
|
||||||
|
return redirect()->route('payments.create')->withInput($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createTransfer(Account $account)
|
||||||
|
{
|
||||||
|
$data['from_account_id'] = $account->id;
|
||||||
|
|
||||||
|
return redirect()->route('transfers.create')->withInput($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function seePerformance(Account $account)
|
||||||
|
{
|
||||||
|
$data['account_id'] = $account->id;
|
||||||
|
|
||||||
|
$report = Utility::getClassInstance('App\Reports\IncomeExpenseSummary');
|
||||||
|
|
||||||
|
if (empty($report) || empty($report->model)) {
|
||||||
|
$message = trans('accounts.create_report');
|
||||||
|
|
||||||
|
flash($message)->warning()->important();
|
||||||
|
|
||||||
|
return redirect()->route('reports.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('reports.show', $report->model->id)->withInput($data);
|
||||||
|
}
|
||||||
|
|
||||||
public function currency()
|
public function currency()
|
||||||
{
|
{
|
||||||
$account_id = (int) request('account_id');
|
$account_id = (int) request('account_id');
|
||||||
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Common;
|
|||||||
|
|
||||||
use App\Abstracts\Http\Controller;
|
use App\Abstracts\Http\Controller;
|
||||||
use App\Http\Requests\Common\BulkAction as Request;
|
use App\Http\Requests\Common\BulkAction as Request;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class BulkActions extends Controller
|
class BulkActions extends Controller
|
||||||
@ -57,6 +58,14 @@ class BulkActions extends Controller
|
|||||||
|
|
||||||
if (!empty($result) && ($result instanceof \Symfony\Component\HttpFoundation\BinaryFileResponse)) {
|
if (!empty($result) && ($result instanceof \Symfony\Component\HttpFoundation\BinaryFileResponse)) {
|
||||||
return $result;
|
return $result;
|
||||||
|
} elseif (!empty($result) && ($result instanceof RedirectResponse)) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'redirect' => $result->getTargetUrl(),
|
||||||
|
'error' => false,
|
||||||
|
'data' => [],
|
||||||
|
'message' => ''
|
||||||
|
]);
|
||||||
} else {
|
} else {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Common;
|
namespace App\Http\Controllers\Common;
|
||||||
|
|
||||||
use Date;
|
|
||||||
use App\Abstracts\Http\Controller;
|
use App\Abstracts\Http\Controller;
|
||||||
use App\Traits\Modules as RemoteModules;
|
|
||||||
use App\Http\Requests\Common\Notification as Request;
|
use App\Http\Requests\Common\Notification as Request;
|
||||||
|
use App\Traits\Modules;
|
||||||
|
use App\Utilities\Date;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class Notifications extends Controller
|
class Notifications extends Controller
|
||||||
{
|
{
|
||||||
use RemoteModules;
|
use Modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
@ -36,13 +36,17 @@ class Notifications extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Hide New Apps Notifications
|
// Hide New Apps Notifications
|
||||||
$module_notifications = $this->getNotifications('new-apps' );
|
$module_notifications = $this->getNotifications('new-apps');
|
||||||
|
|
||||||
foreach ($module_notifications as $module_notification) {
|
foreach ($module_notifications as $module_notification) {
|
||||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.name', $module_notification->name);
|
$prefix = 'notifications.' . user()->id . '.' . $module_notification->alias;
|
||||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.message', $module_notification->alias);
|
|
||||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.date', Date::now());
|
setting()->set([
|
||||||
setting()->set('notifications.'. user()->id . '.' . $module_notification->alias . '.status', '0');
|
$prefix . '.name' => $module_notification->name,
|
||||||
|
$prefix . '.message' => $module_notification->alias,
|
||||||
|
$prefix . '.date' => Date::now(),
|
||||||
|
$prefix . '.status' => '0',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
setting()->save();
|
setting()->save();
|
||||||
@ -68,17 +72,20 @@ class Notifications extends Controller
|
|||||||
|
|
||||||
$notifications = $this->getNotifications($path);
|
$notifications = $this->getNotifications($path);
|
||||||
|
|
||||||
if ($notifications) {
|
foreach ($notifications as $notification) {
|
||||||
foreach ($notifications as $notification) {
|
if ($notification->id == $id) {
|
||||||
if ($notification->id == $id) {
|
$prefix = 'notifications.' . $path . '.' . $id;
|
||||||
setting()->set('notifications.'. $path . '.' . $id . '.name', $notification->name);
|
|
||||||
setting()->set('notifications.'. $path . '.' . $id . '.message', $notification->message);
|
|
||||||
setting()->set('notifications.'. $path . '.' . $id . '.date', Date::now());
|
|
||||||
setting()->set('notifications.'. $path . '.' . $id . '.status', '0');
|
|
||||||
|
|
||||||
setting()->save();
|
setting()->set([
|
||||||
break;
|
$prefix . '.name' => $notification->name,
|
||||||
}
|
$prefix . '.message' => $notification->message,
|
||||||
|
$prefix . '.date' => Date::now(),
|
||||||
|
$prefix . '.status' => '0',
|
||||||
|
]);
|
||||||
|
|
||||||
|
setting()->save();
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class TransferTemplates extends Controller
|
|||||||
'error' => false,
|
'error' => false,
|
||||||
'message' => $message,
|
'message' => $message,
|
||||||
'data' => null,
|
'data' => null,
|
||||||
'redirect' => route('settings.invoice.edit'),
|
'redirect' => url()->previous(),
|
||||||
];
|
];
|
||||||
|
|
||||||
flash($message)->success();
|
flash($message)->success();
|
||||||
|
@ -59,7 +59,7 @@ class Vendors extends Controller
|
|||||||
|
|
||||||
foreach ($bills as $item) {
|
foreach ($bills as $item) {
|
||||||
// Already in transactions
|
// Already in transactions
|
||||||
if ($item->status == 'paid') {
|
if ($item->status == 'paid' || $item->status == 'cancelled') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ class Vendors extends Controller
|
|||||||
$response = $this->ajaxDispatch(new CreateContact($request));
|
$response = $this->ajaxDispatch(new CreateContact($request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
$response['redirect'] = route('vendors.index');
|
$response['redirect'] = route('vendors.show', $response['data']->id);
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.vendors', 1)]);
|
$message = trans('messages.success.added', ['type' => trans_choice('general.vendors', 1)]);
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class Customers extends Controller
|
|||||||
|
|
||||||
foreach ($invoices as $item) {
|
foreach ($invoices as $item) {
|
||||||
// Already in transactions
|
// Already in transactions
|
||||||
if ($item->status == 'paid') {
|
if ($item->status == 'paid' || $item->status == 'cancelled') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ class Customers extends Controller
|
|||||||
$response = $this->ajaxDispatch(new CreateContact($request));
|
$response = $this->ajaxDispatch(new CreateContact($request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
$response['redirect'] = route('customers.index');
|
$response['redirect'] = route('customers.show', $response['data']->id);
|
||||||
|
|
||||||
$message = trans('messages.success.added', ['type' => trans_choice('general.customers', 1)]);
|
$message = trans('messages.success.added', ['type' => trans_choice('general.customers', 1)]);
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Livewire\Common\Notifications;
|
namespace App\Http\Livewire\Common\Notifications;
|
||||||
|
|
||||||
use Date;
|
|
||||||
use App\Traits\Modules;
|
use App\Traits\Modules;
|
||||||
|
use App\Utilities\Date;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
|
|
||||||
class NewApps extends Component
|
class NewApps extends Component
|
||||||
@ -12,39 +12,46 @@ class NewApps extends Component
|
|||||||
|
|
||||||
public function markRead($alias)
|
public function markRead($alias)
|
||||||
{
|
{
|
||||||
$notifications = $this->getNotifications('new-apps' );
|
$notifications = $this->getNotifications('new-apps');
|
||||||
|
|
||||||
foreach ($notifications as $notification) {
|
foreach ($notifications as $notification) {
|
||||||
if ($notification->alias != $alias) {
|
if ($notification->alias != $alias) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$readed = $notification;
|
$read = $notification;
|
||||||
}
|
}
|
||||||
|
|
||||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.name', $readed->name);
|
$prefix = 'notifications.' . user()->id . '.' . $alias;
|
||||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.message', $readed->alias);
|
|
||||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.date', Date::now());
|
setting()->set([
|
||||||
setting()->set('notifications.'. user()->id . '.' . $alias . '.status', '0');
|
$prefix . '.name' => $read->name,
|
||||||
|
$prefix . '.message' => $read->alias,
|
||||||
|
$prefix . '.date' => Date::now(),
|
||||||
|
$prefix . '.status' => '0',
|
||||||
|
]);
|
||||||
|
|
||||||
setting()->save();
|
setting()->save();
|
||||||
|
|
||||||
$this->dispatchBrowserEvent('mark-read', [
|
$this->dispatchBrowserEvent('mark-read', [
|
||||||
'type' => 'new-apps',
|
'type' => 'new-apps',
|
||||||
'message' => trans('notifications.messages.mark_read', ['type' => $notification->name]),
|
'message' => trans('notifications.messages.mark_read', ['type' => $read->name]),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function markReadAll()
|
public function markReadAll()
|
||||||
{
|
{
|
||||||
$notifications = $this->getNotifications('new-apps' );
|
$notifications = $this->getNotifications('new-apps');
|
||||||
|
|
||||||
foreach ($notifications as $notification) {
|
foreach ($notifications as $notification) {
|
||||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.name', $notification->name);
|
$prefix = 'notifications.' . user()->id . '.' . $notification->alias;
|
||||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.message', $notification->alias);
|
|
||||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.date', Date::now());
|
|
||||||
setting()->set('notifications.'. user()->id . '.' . $notification->alias . '.status', '0');
|
|
||||||
|
|
||||||
|
setting()->set([
|
||||||
|
$prefix . '.name' => $notification->name,
|
||||||
|
$prefix . '.message' => $notification->alias,
|
||||||
|
$prefix . '.date' => Date::now(),
|
||||||
|
$prefix . '.status' => '0',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
setting()->save();
|
setting()->save();
|
||||||
|
@ -109,7 +109,7 @@ class Search extends Component
|
|||||||
'name' => $account->name,
|
'name' => $account->name,
|
||||||
'type' => trans_choice('general.accounts', 1),
|
'type' => trans_choice('general.accounts', 1),
|
||||||
'color' => '#55588b',
|
'color' => '#55588b',
|
||||||
'href' => route('accounts.edit', $account->id),
|
'href' => route('accounts.show', $account->id),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,8 @@ class Money
|
|||||||
$money_format = Str::replaceFirst('.', '', $money_format);
|
$money_format = Str::replaceFirst('.', '', $money_format);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$money_format = (double) $money_format;
|
||||||
}
|
}
|
||||||
|
|
||||||
$amount = $this->getAmount($money_format, $currency_code);
|
$amount = $this->getAmount($money_format, $currency_code);
|
||||||
|
@ -43,6 +43,12 @@ class Document extends FormRequest
|
|||||||
// Get company id
|
// Get company id
|
||||||
$company_id = (int) $this->request->get('company_id');
|
$company_id = (int) $this->request->get('company_id');
|
||||||
|
|
||||||
|
$quantity_size = 5;
|
||||||
|
|
||||||
|
if ((Str::substrCount($this->request->get('quantity'), '.') > 1) || (Str::substrCount($this->request->get('quantity'), ',') > 1)) {
|
||||||
|
$quantity_size = 7;
|
||||||
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'type' => 'required|string',
|
'type' => 'required|string',
|
||||||
'document_number' => 'required|string|unique:documents,NULL,' . $id . ',id,type,' . $type . ',company_id,' . $company_id . ',deleted_at,NULL',
|
'document_number' => 'required|string|unique:documents,NULL,' . $id . ',id,type,' . $type . ',company_id,' . $company_id . ',deleted_at,NULL',
|
||||||
@ -51,7 +57,7 @@ class Document extends FormRequest
|
|||||||
'due_at' => 'required|date_format:Y-m-d H:i:s|after_or_equal:issued_at',
|
'due_at' => 'required|date_format:Y-m-d H:i:s|after_or_equal:issued_at',
|
||||||
'amount' => 'required',
|
'amount' => 'required',
|
||||||
'items.*.name' => 'required|string',
|
'items.*.name' => 'required|string',
|
||||||
'items.*.quantity' => 'required',
|
'items.*.quantity' => 'required|max:' . $quantity_size,
|
||||||
'items.*.price' => 'required|amount',
|
'items.*.price' => 'required|amount',
|
||||||
'currency_code' => 'required|string|currency',
|
'currency_code' => 'required|string|currency',
|
||||||
'currency_rate' => 'required|gt:0',
|
'currency_rate' => 'required|gt:0',
|
||||||
@ -80,6 +86,7 @@ class Document extends FormRequest
|
|||||||
return [
|
return [
|
||||||
'items.*.name.required' => trans('validation.required', ['attribute' => Str::lower(trans('general.name'))]),
|
'items.*.name.required' => trans('validation.required', ['attribute' => Str::lower(trans('general.name'))]),
|
||||||
'items.*.quantity.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.quantity'))]),
|
'items.*.quantity.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.quantity'))]),
|
||||||
|
'items.*.quantity.size' => trans('validation.size', ['attribute' => Str::lower(trans('invoices.quantity'))]),
|
||||||
'items.*.price.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.price'))]),
|
'items.*.price.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.price'))]),
|
||||||
'items.*.currency.required' => trans('validation.custom.invalid_currency'),
|
'items.*.currency.required' => trans('validation.custom.invalid_currency'),
|
||||||
'items.*.currency.string' => trans('validation.custom.invalid_currency'),
|
'items.*.currency.string' => trans('validation.custom.invalid_currency'),
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Requests\Document;
|
namespace App\Http\Requests\Document;
|
||||||
|
|
||||||
use App\Abstracts\Http\FormRequest;
|
use App\Abstracts\Http\FormRequest;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class DocumentItem extends FormRequest
|
class DocumentItem extends FormRequest
|
||||||
{
|
{
|
||||||
@ -13,11 +14,17 @@ class DocumentItem extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
|
$quantity_size = 5;
|
||||||
|
|
||||||
|
if ((Str::substrCount($this->request->get('quantity'), '.') > 1) || (Str::substrCount($this->request->get('quantity'), ',') > 1)) {
|
||||||
|
$quantity_size = 7;
|
||||||
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'type' => 'required|string',
|
'type' => 'required|string',
|
||||||
'document_id' => 'required|integer',
|
'document_id' => 'required|integer',
|
||||||
'name' => 'required|string',
|
'name' => 'required|string',
|
||||||
'quantity' => 'required',
|
'quantity' => 'required|max:' . $quantity_size,
|
||||||
'price' => 'required|amount',
|
'price' => 'required|amount',
|
||||||
'total' => 'required',
|
'total' => 'required',
|
||||||
'tax' => 'required',
|
'tax' => 'required',
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\ViewComposers;
|
namespace App\Http\ViewComposers;
|
||||||
|
|
||||||
use App\Utilities\Versions;
|
|
||||||
use App\Traits\Modules;
|
use App\Traits\Modules;
|
||||||
|
use App\Utilities\Versions;
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
|
|
||||||
class Header
|
class Header
|
||||||
@ -71,16 +71,14 @@ class Header
|
|||||||
|
|
||||||
$new_apps = $this->getNotifications('new-apps');
|
$new_apps = $this->getNotifications('new-apps');
|
||||||
|
|
||||||
if ($new_apps) {
|
foreach ($new_apps as $key => $new_app) {
|
||||||
foreach ($new_apps as $key => $new_app) {
|
if (setting('notifications.' . user()->id . '.' . $new_app->alias)) {
|
||||||
if (setting('notifications.' . user()->id . '.' . $new_app->alias)) {
|
unset($new_apps[$key]);
|
||||||
unset($new_apps[$key]);
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$notifications++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$notifications++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
namespace App\Http\ViewComposers;
|
namespace App\Http\ViewComposers;
|
||||||
|
|
||||||
use App\Traits\Modules;
|
use App\Traits\Modules;
|
||||||
use Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
|
|
||||||
class Notifications
|
class Notifications
|
||||||
@ -29,9 +29,7 @@ class Notifications
|
|||||||
|
|
||||||
$path = str_replace('{company_id}/', '', $path);
|
$path = str_replace('{company_id}/', '', $path);
|
||||||
|
|
||||||
if (!$notifications = $this->getNotifications($path)) {
|
$notifications = $this->getNotifications($path);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Push to a stack
|
// Push to a stack
|
||||||
foreach ($notifications as $notification) {
|
foreach ($notifications as $notification) {
|
||||||
|
@ -37,6 +37,7 @@ class Bills extends Import
|
|||||||
|
|
||||||
$rules['bill_number'] = Str::replaceFirst('unique:documents,NULL', 'unique:documents,document_number', $rules['document_number']);
|
$rules['bill_number'] = Str::replaceFirst('unique:documents,NULL', 'unique:documents,document_number', $rules['document_number']);
|
||||||
$rules['billed_at'] = $rules['issued_at'];
|
$rules['billed_at'] = $rules['issued_at'];
|
||||||
|
$rules['currency_rate'] = 'required';
|
||||||
|
|
||||||
unset($rules['document_number'], $rules['issued_at'], $rules['type']);
|
unset($rules['document_number'], $rules['issued_at'], $rules['type']);
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ class Invoices extends Import
|
|||||||
|
|
||||||
$rules['invoice_number'] = Str::replaceFirst('unique:documents,NULL', 'unique:documents,document_number', $rules['document_number']);
|
$rules['invoice_number'] = Str::replaceFirst('unique:documents,NULL', 'unique:documents,document_number', $rules['document_number']);
|
||||||
$rules['invoiced_at'] = $rules['issued_at'];
|
$rules['invoiced_at'] = $rules['issued_at'];
|
||||||
|
$rules['currency_rate'] = 'required';
|
||||||
|
|
||||||
unset($rules['document_number'], $rules['issued_at'], $rules['type']);
|
unset($rules['document_number'], $rules['issued_at'], $rules['type']);
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
namespace App\Jobs\Auth;
|
namespace App\Jobs\Auth;
|
||||||
|
|
||||||
use App\Abstracts\Job;
|
use App\Abstracts\Job;
|
||||||
|
use App\Events\Auth\UserCreated;
|
||||||
|
use App\Events\Auth\UserCreating;
|
||||||
use App\Models\Auth\User;
|
use App\Models\Auth\User;
|
||||||
use Artisan;
|
use Artisan;
|
||||||
|
|
||||||
@ -29,6 +31,8 @@ class CreateUser extends Job
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
|
event(new UserCreating($this->request));
|
||||||
|
|
||||||
\DB::transaction(function () {
|
\DB::transaction(function () {
|
||||||
$this->user = User::create($this->request->input());
|
$this->user = User::create($this->request->input());
|
||||||
|
|
||||||
@ -79,6 +83,8 @@ class CreateUser extends Job
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
event(new UserCreated($this->user, $this->request));
|
||||||
|
|
||||||
return $this->user;
|
return $this->user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
namespace App\Jobs\Auth;
|
namespace App\Jobs\Auth;
|
||||||
|
|
||||||
use App\Abstracts\Job;
|
use App\Abstracts\Job;
|
||||||
|
use App\Events\Auth\UserUpdated;
|
||||||
|
use App\Events\Auth\UserUpdating;
|
||||||
use App\Models\Auth\User;
|
use App\Models\Auth\User;
|
||||||
|
|
||||||
class UpdateUser extends Job
|
class UpdateUser extends Job
|
||||||
@ -38,6 +40,8 @@ class UpdateUser extends Job
|
|||||||
unset($this->request['password_confirmation']);
|
unset($this->request['password_confirmation']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event(new UserUpdating($this->user, $this->request));
|
||||||
|
|
||||||
\DB::transaction(function () {
|
\DB::transaction(function () {
|
||||||
$this->user->update($this->request->input());
|
$this->user->update($this->request->input());
|
||||||
|
|
||||||
@ -73,6 +77,8 @@ class UpdateUser extends Job
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
event(new UserUpdated($this->user, $this->request));
|
||||||
|
|
||||||
return $this->user;
|
return $this->user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ class CreateTransfer extends Job
|
|||||||
'category_id' => Category::transfer(), // Transfer Category ID
|
'category_id' => Category::transfer(), // Transfer Category ID
|
||||||
'payment_method' => $this->request->get('payment_method'),
|
'payment_method' => $this->request->get('payment_method'),
|
||||||
'reference' => $this->request->get('reference'),
|
'reference' => $this->request->get('reference'),
|
||||||
|
'created_by' => $this->request->get('created_by'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$amount = $this->request->get('amount');
|
$amount = $this->request->get('amount');
|
||||||
@ -77,12 +78,14 @@ class CreateTransfer extends Job
|
|||||||
'category_id' => Category::transfer(), // Transfer Category ID
|
'category_id' => Category::transfer(), // Transfer Category ID
|
||||||
'payment_method' => $this->request->get('payment_method'),
|
'payment_method' => $this->request->get('payment_method'),
|
||||||
'reference' => $this->request->get('reference'),
|
'reference' => $this->request->get('reference'),
|
||||||
|
'created_by' => $this->request->get('created_by'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->transfer = Transfer::create([
|
$this->transfer = Transfer::create([
|
||||||
'company_id' => $this->request['company_id'],
|
'company_id' => $this->request['company_id'],
|
||||||
'expense_transaction_id' => $expense_transaction->id,
|
'expense_transaction_id' => $expense_transaction->id,
|
||||||
'income_transaction_id' => $income_transaction->id,
|
'income_transaction_id' => $income_transaction->id,
|
||||||
|
'created_by' => $this->request->get('created_by'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Upload attachment
|
// Upload attachment
|
||||||
|
@ -43,16 +43,13 @@ class CreateDocumentItem extends Job
|
|||||||
|
|
||||||
// Apply line discount to amount
|
// Apply line discount to amount
|
||||||
if (!empty($this->request['discount'])) {
|
if (!empty($this->request['discount'])) {
|
||||||
$discount += $this->request['discount'];
|
$discount = $this->request['discount'];
|
||||||
|
|
||||||
$item_discounted_amount = $item_amount -= ($item_amount * ($this->request['discount'] / 100));
|
if ($this->request['discount_type'] === 'percentage') {
|
||||||
}
|
$item_discounted_amount = $item_amount -= ($item_amount * ($this->request['discount'] / 100));
|
||||||
|
} else {
|
||||||
// Apply global discount to amount
|
$item_discounted_amount = $item_amount -= $this->request['discount'];
|
||||||
if (!empty($this->request['global_discount'])) {
|
}
|
||||||
$discount += $this->request['global_discount'];
|
|
||||||
|
|
||||||
$item_discounted_amount = $item_amount - ($item_amount * ($this->request['global_discount'] / 100));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$tax_amount = 0;
|
$tax_amount = 0;
|
||||||
@ -153,7 +150,11 @@ class CreateDocumentItem extends Job
|
|||||||
$item_tax_total += $tax_amount;
|
$item_tax_total += $tax_amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
$item_amount = ($item_amount - $item_tax_total) / (1 - $discount / 100);
|
if (!empty($this->request['discount_type']) && $this->request['discount_type'] === 'fixed') {
|
||||||
|
$item_amount = ($item_amount - $item_tax_total) - $discount;
|
||||||
|
} else {
|
||||||
|
$item_amount = ($item_amount - $item_tax_total) / (1 - $discount / 100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($compounds) {
|
if ($compounds) {
|
||||||
@ -185,6 +186,7 @@ class CreateDocumentItem extends Job
|
|||||||
$this->request['quantity'] = (double) $this->request['quantity'];
|
$this->request['quantity'] = (double) $this->request['quantity'];
|
||||||
$this->request['price'] = round($this->request['price'], $precision);
|
$this->request['price'] = round($this->request['price'], $precision);
|
||||||
$this->request['tax'] = round($item_tax_total, $precision);
|
$this->request['tax'] = round($item_tax_total, $precision);
|
||||||
|
$this->request['discount_type'] = !empty($this->request['discount_type']) ? $this->request['discount_type'] : 'percentage';
|
||||||
$this->request['discount_rate'] = !empty($this->request['discount']) ? $this->request['discount'] : 0;
|
$this->request['discount_rate'] = !empty($this->request['discount']) ? $this->request['discount'] : 0;
|
||||||
$this->request['total'] = round($item_amount, $precision);
|
$this->request['total'] = round($item_amount, $precision);
|
||||||
|
|
||||||
|
@ -67,15 +67,17 @@ class CreateDocumentItemsAndTotals extends Job
|
|||||||
'sort_order' => $sort_order,
|
'sort_order' => $sort_order,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->request['amount'] -= $discount_amount_total;
|
|
||||||
|
|
||||||
$sort_order++;
|
$sort_order++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->request['discount'])) {
|
if (!empty($this->request['discount'])) {
|
||||||
$discount_total = ($sub_total - $discount_amount_total) * ($this->request['discount'] / 100);
|
if ($this->request['discount_type'] === 'percentage') {
|
||||||
|
$discount_total = $sub_total * ($this->request['discount'] / 100);
|
||||||
|
} else {
|
||||||
|
$discount_total = $this->request['discount'];
|
||||||
|
}
|
||||||
|
|
||||||
DocumentTotal::create([
|
DocumentTotal::create([
|
||||||
'company_id' => $this->document->company_id,
|
'company_id' => $this->document->company_id,
|
||||||
'type' => $this->document->type,
|
'type' => $this->document->type,
|
||||||
'document_id' => $this->document->id,
|
'document_id' => $this->document->id,
|
||||||
@ -193,11 +195,15 @@ class CreateDocumentItemsAndTotals extends Job
|
|||||||
$discount_amount = 0;
|
$discount_amount = 0;
|
||||||
|
|
||||||
if (!empty($item['discount'])) {
|
if (!empty($item['discount'])) {
|
||||||
$discount_amount = ($item_amount * ($item['discount'] / 100));
|
if ($item['discount_type'] === 'percentage') {
|
||||||
|
$discount_amount = ($item_amount * ($item['discount'] / 100));
|
||||||
|
} else {
|
||||||
|
$discount_amount = $item['discount'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate totals
|
// Calculate totals
|
||||||
$sub_total += $document_item->total + $discount_amount;
|
$sub_total += $document_item->total;
|
||||||
|
|
||||||
$discount_amount_total += $discount_amount;
|
$discount_amount_total += $discount_amount;
|
||||||
|
|
||||||
|
@ -36,16 +36,30 @@ class CreateDocumentTransaction
|
|||||||
if (empty($user) || $signed) {
|
if (empty($user) || $signed) {
|
||||||
flash($message)->error()->important();
|
flash($message)->error()->important();
|
||||||
|
|
||||||
redirect()->route("signed.$type.show", $document->id)->send();
|
return $this->getResponse('signed.' . $type . '.show', $document, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->can('read-client-portal')) {
|
if ($user->can('read-client-portal')) {
|
||||||
flash($message)->error()->important();
|
flash($message)->error()->important();
|
||||||
|
|
||||||
redirect()->route("portal.$type.show", $document->id)->send();
|
return $this->getResponse('portal.' . $type . '.show', $document, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new \Exception($message);
|
throw new \Exception($message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getResponse($path, $document, $message)
|
||||||
|
{
|
||||||
|
if (request()->expectsJson()) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'errors' => true,
|
||||||
|
'message' => $message,
|
||||||
|
'redirect' => route($path, $document->id)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route($path, $document->id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,35 @@ class AddSearchString extends Listener
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$old = old();
|
||||||
|
$request = request()->all();
|
||||||
|
|
||||||
|
if ($old || $request) {
|
||||||
|
$input = request('search');
|
||||||
|
|
||||||
|
$filters = [];
|
||||||
|
|
||||||
|
if ($input) {
|
||||||
|
$filters = explode(' ', $input);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($old as $key => $value) {
|
||||||
|
$filters[] = $key . ':' . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($request as $key => $value) {
|
||||||
|
if ($key == 'search') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$filters[] = $key . ':' . $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
request()->merge([
|
||||||
|
'search' => implode(' ', $filters)
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
// Apply search string
|
// Apply search string
|
||||||
$this->applySearchStringFilter($event);
|
$this->applySearchStringFilter($event);
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,11 @@ namespace App\Models\Banking;
|
|||||||
use App\Abstracts\Model;
|
use App\Abstracts\Model;
|
||||||
use App\Traits\Transactions;
|
use App\Traits\Transactions;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Bkwld\Cloner\Cloneable;
|
||||||
|
|
||||||
class Account extends Model
|
class Account extends Model
|
||||||
{
|
{
|
||||||
use HasFactory, Transactions;
|
use Cloneable, HasFactory, Transactions;
|
||||||
|
|
||||||
protected $table = 'accounts';
|
protected $table = 'accounts';
|
||||||
|
|
||||||
@ -92,6 +93,41 @@ class Account extends Model
|
|||||||
return $total;
|
return $total;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current balance.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getIncomeBalanceAttribute()
|
||||||
|
{
|
||||||
|
// Opening Balance
|
||||||
|
//$total = $this->opening_balance;
|
||||||
|
$total = 0;
|
||||||
|
|
||||||
|
// Sum Incomes
|
||||||
|
$total += $this->income_transactions->sum('amount');
|
||||||
|
|
||||||
|
return $total;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current balance.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getExpenseBalanceAttribute()
|
||||||
|
{
|
||||||
|
// Opening Balance
|
||||||
|
//$total = $this->opening_balance;
|
||||||
|
$total = 0;
|
||||||
|
|
||||||
|
// Subtract Expenses
|
||||||
|
$total += $this->expense_transactions->sum('amount');
|
||||||
|
|
||||||
|
return $total;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new factory instance for the model.
|
* Create a new factory instance for the model.
|
||||||
*
|
*
|
||||||
|
@ -349,6 +349,16 @@ class Transaction extends Model
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the record is attached to a transfer.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function getHasTransferRelationAttribute()
|
||||||
|
{
|
||||||
|
return (bool) (optional($this->category)->id == optional($this->category)->transfer());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the title of type.
|
* Get the title of type.
|
||||||
*
|
*
|
||||||
|
@ -443,7 +443,7 @@ class Company extends Eloquent implements Ownable
|
|||||||
*/
|
*/
|
||||||
public function getCompanyLogoAttribute()
|
public function getCompanyLogoAttribute()
|
||||||
{
|
{
|
||||||
return $this->getMedia('company_logo')->last();
|
return $this->getMedia('company.logo')->last();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function makeCurrent($force = false)
|
public function makeCurrent($force = false)
|
||||||
|
@ -37,7 +37,7 @@ class App extends Provider
|
|||||||
|
|
||||||
Paginator::useBootstrap();
|
Paginator::useBootstrap();
|
||||||
|
|
||||||
Model::preventLazyLoading();
|
Model::preventLazyLoading(config('app.eager_load'));
|
||||||
|
|
||||||
Model::handleLazyLoadingViolationUsing(function ($model, $relation) {
|
Model::handleLazyLoadingViolationUsing(function ($model, $relation) {
|
||||||
$class = get_class($model);
|
$class = get_class($model);
|
||||||
|
@ -136,7 +136,7 @@ class Form extends Provider
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
Facade::component('bulkActionAllGroup', 'partials.form.bulk_action_all_group', [
|
Facade::component('bulkActionAllGroup', 'partials.form.bulk_action_all_group', [
|
||||||
|
'attributes' => []
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Facade::component('bulkActionGroup', 'partials.form.bulk_action_group', [
|
Facade::component('bulkActionGroup', 'partials.form.bulk_action_group', [
|
||||||
|
@ -396,7 +396,7 @@ trait Modules
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getNotifications($path)
|
public function getNotifications($path): array
|
||||||
{
|
{
|
||||||
$key = 'apps.notifications';
|
$key = 'apps.notifications';
|
||||||
|
|
||||||
@ -407,10 +407,10 @@ trait Modules
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($data) && array_key_exists($path, $data)) {
|
if (!empty($data) && array_key_exists($path, $data)) {
|
||||||
return $data[$path];
|
return (array) $data[$path];
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPageNumberOfModules($data = [])
|
public function getPageNumberOfModules($data = [])
|
||||||
|
659
composer.lock
generated
659
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -18,6 +18,8 @@ return [
|
|||||||
|
|
||||||
'schedule_time' => env('APP_SCHEDULE_TIME', '09:00'),
|
'schedule_time' => env('APP_SCHEDULE_TIME', '09:00'),
|
||||||
|
|
||||||
|
'eager_load' => (bool) env('APP_EAGER_LOAD', true),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Application Environment
|
| Application Environment
|
||||||
|
@ -10,15 +10,15 @@ return [
|
|||||||
|
|
||||||
'minor' => '1',
|
'minor' => '1',
|
||||||
|
|
||||||
'patch' => '20',
|
'patch' => '22',
|
||||||
|
|
||||||
'build' => '',
|
'build' => '',
|
||||||
|
|
||||||
'status' => 'Stable',
|
'status' => 'Stable',
|
||||||
|
|
||||||
'date' => '16-July-2021',
|
'date' => '08-August-2021',
|
||||||
|
|
||||||
'time' => '16:00',
|
'time' => '23:00',
|
||||||
|
|
||||||
'zone' => 'GMT +3',
|
'zone' => 'GMT +3',
|
||||||
|
|
||||||
|
2
public/vendor/livewire/livewire.js
vendored
2
public/vendor/livewire/livewire.js
vendored
File diff suppressed because one or more lines are too long
2
public/vendor/livewire/livewire.js.map
vendored
2
public/vendor/livewire/livewire.js.map
vendored
File diff suppressed because one or more lines are too long
2
public/vendor/livewire/manifest.json
vendored
2
public/vendor/livewire/manifest.json
vendored
@ -1 +1 @@
|
|||||||
{"/livewire.js":"/livewire.js?id=936e5d0fb0b76b631ba7"}
|
{"/livewire.js":"/livewire.js?id=d9e06c155e467adb5de2"}
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
<el-select v-model="selected" :placeholder="placeholder" filterable
|
<el-select v-model="selected" :placeholder="placeholder" filterable
|
||||||
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
||||||
|
:clearable="clearable"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
@ -247,6 +248,12 @@ export default {
|
|||||||
description: "Selectbox disabled status"
|
description: "Selectbox disabled status"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
clearable: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
description: "Selectbox clearable status"
|
||||||
|
},
|
||||||
|
|
||||||
disabled: {
|
disabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
@ -384,13 +391,13 @@ export default {
|
|||||||
|
|
||||||
for (const [key, value] of Object.entries(options)) {
|
for (const [key, value] of Object.entries(options)) {
|
||||||
values.push({
|
values.push({
|
||||||
key: key,
|
key: key.toString(),
|
||||||
value: value
|
value: value
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sorted_options.push({
|
this.sorted_options.push({
|
||||||
key: index,
|
key: index.toString(),
|
||||||
value: values
|
value: values
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -405,7 +412,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.sorted_options.push({
|
this.sorted_options.push({
|
||||||
index: index,
|
index: index,
|
||||||
key: option.id,
|
key: option.id.toString(),
|
||||||
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name
|
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -416,7 +423,7 @@ export default {
|
|||||||
if (!Array.isArray(created_options)) {
|
if (!Array.isArray(created_options)) {
|
||||||
for (const [key, value] of Object.entries(created_options)) {
|
for (const [key, value] of Object.entries(created_options)) {
|
||||||
this.sorted_options.push({
|
this.sorted_options.push({
|
||||||
key: key,
|
key: key.toString(),
|
||||||
value: value
|
value: value
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -431,7 +438,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.sorted_options.push({
|
this.sorted_options.push({
|
||||||
index: index,
|
index: index,
|
||||||
key: option.id,
|
key: option.id.toString(),
|
||||||
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name
|
value: (option.title) ? option.title : (option.display_name) ? option.display_name : option.name
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -654,6 +661,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
this.loading = false;
|
||||||
this.form.loading = false;
|
this.form.loading = false;
|
||||||
|
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
@ -675,10 +683,14 @@ export default {
|
|||||||
this.add_new.html = '';
|
this.add_new.html = '';
|
||||||
this.add_new_html = null;
|
this.add_new_html = null;
|
||||||
|
|
||||||
|
response.data.data.mark_new = true;
|
||||||
|
|
||||||
this.$emit('new', response.data.data);
|
this.$emit('new', response.data.data);
|
||||||
|
|
||||||
this.change();
|
this.change();
|
||||||
|
|
||||||
|
this.$emit('visible-change', event);
|
||||||
|
|
||||||
let documentClasses = document.body.classList;
|
let documentClasses = document.body.classList;
|
||||||
|
|
||||||
documentClasses.remove("modal-open");
|
documentClasses.remove("modal-open");
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
<el-select v-model="selected" :placeholder="placeholder" filterable remote reserve-keyword
|
<el-select v-model="selected" :placeholder="placeholder" filterable remote reserve-keyword
|
||||||
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
||||||
|
:clearable="clearable"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
@ -110,6 +111,7 @@
|
|||||||
<span v-else>
|
<span v-else>
|
||||||
<el-select v-model="selected" :placeholder="placeholder" filterable remote reserve-keyword
|
<el-select v-model="selected" :placeholder="placeholder" filterable remote reserve-keyword
|
||||||
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
@change="change" @visible-change="visibleChange" @remove-tag="removeTag" @clear="clear" @blur="blur" @focus="focus"
|
||||||
|
:clearable="clearable"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
:readonly="readonly"
|
:readonly="readonly"
|
||||||
@ -338,6 +340,12 @@ export default {
|
|||||||
description: "Selectbox disabled status"
|
description: "Selectbox disabled status"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
clearable: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
description: "Selectbox clearable status"
|
||||||
|
},
|
||||||
|
|
||||||
disabled: {
|
disabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
|
4
resources/assets/js/plugins/bulk-action.js
vendored
4
resources/assets/js/plugins/bulk-action.js
vendored
@ -152,8 +152,10 @@ export default class BulkAction {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
type_promise.then(response => {
|
type_promise.then(response => {
|
||||||
if (response.data.redirect) {
|
if (response.data.redirect === true) {
|
||||||
window.location.reload(false);
|
window.location.reload(false);
|
||||||
|
} else if (typeof response.data.redirect === 'string') {
|
||||||
|
window.location.href = response.data.redirect;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
@ -19,7 +19,7 @@ import BulkAction from './../../plugins/bulk-action';
|
|||||||
Vue.use(DashboardPlugin);
|
Vue.use(DashboardPlugin);
|
||||||
|
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||
el: '#app',
|
el: '#main-body',
|
||||||
|
|
||||||
mixins: [
|
mixins: [
|
||||||
Global
|
Global
|
||||||
@ -28,8 +28,7 @@ const app = new Vue({
|
|||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
form: new Form('account'),
|
form: new Form('account'),
|
||||||
bulk_action: new BulkAction('accounts')
|
bulk_action: new BulkAction('accounts'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -19,7 +19,7 @@ import BulkAction from './../../plugins/bulk-action';
|
|||||||
Vue.use(DashboardPlugin);
|
Vue.use(DashboardPlugin);
|
||||||
|
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||
el: '#app',
|
el: '#main-body',
|
||||||
|
|
||||||
mixins: [
|
mixins: [
|
||||||
Global
|
Global
|
||||||
|
189
resources/assets/js/views/common/documents.js
vendored
189
resources/assets/js/views/common/documents.js
vendored
@ -27,70 +27,74 @@ const app = new Vue({
|
|||||||
],
|
],
|
||||||
|
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
form: new Form('document'),
|
form: new Form('document'),
|
||||||
bulk_action: new BulkAction('documents'),
|
bulk_action: new BulkAction('documents'),
|
||||||
totals: {
|
totals: {
|
||||||
sub: 0,
|
sub: 0,
|
||||||
item_discount: '',
|
item_discount: '',
|
||||||
discount: '',
|
discount: '',
|
||||||
discount_text: false,
|
discount_text: false,
|
||||||
taxes: [],
|
taxes: [],
|
||||||
total: 0
|
total: 0
|
||||||
},
|
},
|
||||||
transaction: [],
|
transaction: [],
|
||||||
edit: {
|
edit: {
|
||||||
status: false,
|
status: false,
|
||||||
currency: false,
|
currency: false,
|
||||||
items: 0,
|
items: 0,
|
||||||
},
|
},
|
||||||
colspan: 6,
|
colspan: 6,
|
||||||
discount: false,
|
discount: false,
|
||||||
tax: false,
|
tax: false,
|
||||||
discounts: [],
|
discounts: [],
|
||||||
tax_id: [],
|
tax_id: [],
|
||||||
|
|
||||||
items: [],
|
items: [],
|
||||||
taxes: [],
|
taxes: [],
|
||||||
page_loaded: false,
|
page_loaded: false,
|
||||||
currencies: [],
|
currencies: [],
|
||||||
min_due_date: false,
|
min_due_date: false,
|
||||||
currency_symbol: {
|
currency_symbol: {
|
||||||
"name":"US Dollar",
|
"name":"US Dollar",
|
||||||
"code":"USD",
|
"code":"USD",
|
||||||
"rate":1,
|
"rate":1,
|
||||||
"precision":2,
|
"precision":2,
|
||||||
"symbol":"$",
|
"symbol":"$",
|
||||||
"symbol_first":1,
|
"symbol_first":1,
|
||||||
"decimal_mark":".",
|
"decimal_mark":".",
|
||||||
"thousands_separator":","
|
"thousands_separator":","
|
||||||
},
|
},
|
||||||
dropdown_visible: true
|
dropdown_visible: true,
|
||||||
}
|
dynamic_taxes: [],
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
|
this.form.discount_type = 'percentage';
|
||||||
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.edit.status) {
|
|
||||||
this.dropdown_visible = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.currency_symbol.rate = this.form.currency_rate;
|
|
||||||
|
|
||||||
if (company_currency_code) {
|
if ((document.getElementById('items') != null) && (document.getElementById('items').rows)) {
|
||||||
let default_currency_symbol = null;
|
this.colspan = document.getElementById("items").rows[0].cells.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.edit.status) {
|
||||||
|
this.dropdown_visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currency_symbol.rate = this.form.currency_rate;
|
||||||
|
|
||||||
|
if (company_currency_code) {
|
||||||
|
let default_currency_symbol = null;
|
||||||
|
|
||||||
|
for (let symbol of this.currencies) {
|
||||||
|
if(symbol.code == company_currency_code) {
|
||||||
|
default_currency_symbol = symbol.symbol;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currency_symbol.symbol = default_currency_symbol;
|
||||||
|
}
|
||||||
|
|
||||||
for (let symbol of this.currencies) {
|
|
||||||
if(symbol.code == company_currency_code) {
|
|
||||||
default_currency_symbol = symbol.symbol;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.currency_symbol.symbol = default_currency_symbol;
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
@ -98,7 +102,7 @@ const app = new Vue({
|
|||||||
let global_discount = parseFloat(this.form.discount);
|
let global_discount = parseFloat(this.form.discount);
|
||||||
let discount_total = 0;
|
let discount_total = 0;
|
||||||
let line_item_discount_total = 0;
|
let line_item_discount_total = 0;
|
||||||
let taxes = document_taxes;
|
let taxes = this.dynamic_taxes;
|
||||||
let sub_total = 0;
|
let sub_total = 0;
|
||||||
let totals_taxes = [];
|
let totals_taxes = [];
|
||||||
let grand_total = 0;
|
let grand_total = 0;
|
||||||
@ -115,7 +119,19 @@ const app = new Vue({
|
|||||||
let line_discount_amount = 0;
|
let line_discount_amount = 0;
|
||||||
|
|
||||||
if (item.discount) {
|
if (item.discount) {
|
||||||
line_discount_amount = item.total * (item.discount / 100);
|
if (item.discount_type === 'percentage') {
|
||||||
|
if (item.discount > 100) {
|
||||||
|
item.discount = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
line_discount_amount = item.total * (item.discount / 100);
|
||||||
|
} else {
|
||||||
|
if (parseInt(item.discount) > item.price) {
|
||||||
|
item.discount = item.price;
|
||||||
|
}
|
||||||
|
line_discount_amount = parseFloat(item.discount);
|
||||||
|
}
|
||||||
|
|
||||||
item.discount_amount = line_discount_amount
|
item.discount_amount = line_discount_amount
|
||||||
|
|
||||||
item_discounted_total = item.total -= line_discount_amount;
|
item_discounted_total = item.total -= line_discount_amount;
|
||||||
@ -124,12 +140,6 @@ const app = new Vue({
|
|||||||
|
|
||||||
let item_discounted_total = item.total;
|
let item_discounted_total = item.total;
|
||||||
|
|
||||||
if (global_discount) {
|
|
||||||
item_discounted_total = item.total - (item.total * (global_discount / 100));
|
|
||||||
|
|
||||||
item_discount = global_discount;
|
|
||||||
}
|
|
||||||
|
|
||||||
// item tax calculate.
|
// item tax calculate.
|
||||||
if (item.tax_ids) {
|
if (item.tax_ids) {
|
||||||
let inclusives = [];
|
let inclusives = [];
|
||||||
@ -240,7 +250,11 @@ const app = new Vue({
|
|||||||
|
|
||||||
// Apply discount to total
|
// Apply discount to total
|
||||||
if (global_discount) {
|
if (global_discount) {
|
||||||
discount_total = parseFloat(sub_total + inclusive_tax_total) * (global_discount / 100);
|
if (this.form.discount_type === 'percentage') {
|
||||||
|
discount_total = parseFloat(sub_total + inclusive_tax_total) * (global_discount / 100);
|
||||||
|
} else {
|
||||||
|
discount_total = global_discount;
|
||||||
|
}
|
||||||
|
|
||||||
this.totals.discount = discount_total;
|
this.totals.discount = discount_total;
|
||||||
|
|
||||||
@ -254,7 +268,7 @@ const app = new Vue({
|
|||||||
|
|
||||||
this.form.items.forEach(function(form_item, form_index) {
|
this.form.items.forEach(function(form_item, form_index) {
|
||||||
let item = this.items[form_index];
|
let item = this.items[form_index];
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(item)) {
|
for (const [key, value] of Object.entries(item)) {
|
||||||
if (key == 'add_tax' || key == 'tax_ids' || key == 'add_discount') {
|
if (key == 'add_tax' || key == 'tax_ids' || key == 'add_discount') {
|
||||||
continue
|
continue
|
||||||
@ -352,7 +366,7 @@ const app = new Vue({
|
|||||||
|
|
||||||
let selected_tax;
|
let selected_tax;
|
||||||
|
|
||||||
document_taxes.forEach(function(tax) {
|
this.dynamic_taxes.forEach(function(tax) {
|
||||||
if (tax.id == this.tax_id) {
|
if (tax.id == this.tax_id) {
|
||||||
selected_tax = tax;
|
selected_tax = tax;
|
||||||
}
|
}
|
||||||
@ -387,16 +401,35 @@ const app = new Vue({
|
|||||||
},
|
},
|
||||||
|
|
||||||
onAddLineDiscount(item_index) {
|
onAddLineDiscount(item_index) {
|
||||||
|
this.items[item_index].discount_type = 'percentage';
|
||||||
this.items[item_index].add_discount = true;
|
this.items[item_index].add_discount = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onChangeDiscountType(type) {
|
||||||
|
this.form.discount_type = type;
|
||||||
|
this.onCalculateTotal();
|
||||||
|
},
|
||||||
|
|
||||||
|
onChangeLineDiscountType(item_index, type) {
|
||||||
|
this.items[item_index].discount_type = type;
|
||||||
|
this.onCalculateTotal();
|
||||||
|
},
|
||||||
|
|
||||||
onAddTotalDiscount() {
|
onAddTotalDiscount() {
|
||||||
let discount = document.getElementById('pre-discount').value;
|
let discount = document.getElementById('pre-discount').value;
|
||||||
|
|
||||||
if (discount < 0) {
|
if (this.form.discount_type === 'percentage') {
|
||||||
discount = 0;
|
if (discount < 0) {
|
||||||
} else if (discount > 100) {
|
discount = 0;
|
||||||
discount = 100;
|
} else if (discount > 100) {
|
||||||
|
discount = 100;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (discount < 0) {
|
||||||
|
discount = 0;
|
||||||
|
} else if (discount > this.totals.sub) {
|
||||||
|
discount = this.totals.sub;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('pre-discount').value = discount;
|
document.getElementById('pre-discount').value = discount;
|
||||||
@ -620,6 +653,7 @@ const app = new Vue({
|
|||||||
price: (item.price).toFixed(2),
|
price: (item.price).toFixed(2),
|
||||||
tax_ids: item.tax_ids,
|
tax_ids: item.tax_ids,
|
||||||
discount: item.discount_rate,
|
discount: item.discount_rate,
|
||||||
|
discount_type: item.discount_type,
|
||||||
total: (item.total).toFixed(2)
|
total: (item.total).toFixed(2)
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -657,6 +691,7 @@ const app = new Vue({
|
|||||||
tax_ids: item_taxes,
|
tax_ids: item_taxes,
|
||||||
add_discount: (item.discount_rate) ? true : false,
|
add_discount: (item.discount_rate) ? true : false,
|
||||||
discount: item.discount_rate,
|
discount: item.discount_rate,
|
||||||
|
discount_type: item.discount_type,
|
||||||
total: (item.total).toFixed(2),
|
total: (item.total).toFixed(2),
|
||||||
// @todo
|
// @todo
|
||||||
// invoice_item_checkbox_sample: [],
|
// invoice_item_checkbox_sample: [],
|
||||||
@ -686,7 +721,7 @@ const app = new Vue({
|
|||||||
|
|
||||||
this.page_loaded = true;
|
this.page_loaded = true;
|
||||||
|
|
||||||
if (document_currencies) {
|
if (typeof document_currencies !== 'undefined' && document_currencies) {
|
||||||
this.currencies = document_currencies;
|
this.currencies = document_currencies;
|
||||||
|
|
||||||
this.currencies.forEach(function (currency, index) {
|
this.currencies.forEach(function (currency, index) {
|
||||||
@ -697,5 +732,9 @@ const app = new Vue({
|
|||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof document_taxes !== 'undefined' && document_taxes) {
|
||||||
|
this.dynamic_taxes = document_taxes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
34
resources/assets/js/views/purchases/payments.js
vendored
34
resources/assets/js/views/purchases/payments.js
vendored
@ -1,34 +0,0 @@
|
|||||||
/**
|
|
||||||
* 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';
|
|
||||||
import BulkAction from './../../plugins/bulk-action';
|
|
||||||
|
|
||||||
// plugin setup
|
|
||||||
Vue.use(DashboardPlugin);
|
|
||||||
|
|
||||||
const app = new Vue({
|
|
||||||
el: '#app',
|
|
||||||
|
|
||||||
mixins: [
|
|
||||||
Global
|
|
||||||
],
|
|
||||||
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
form: new Form('payment'),
|
|
||||||
bulk_action: new BulkAction('payments'),
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
34
resources/assets/js/views/sales/revenues.js
vendored
34
resources/assets/js/views/sales/revenues.js
vendored
@ -1,34 +0,0 @@
|
|||||||
/**
|
|
||||||
* 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';
|
|
||||||
import BulkAction from './../../plugins/bulk-action';
|
|
||||||
|
|
||||||
// plugin setup
|
|
||||||
Vue.use(DashboardPlugin);
|
|
||||||
|
|
||||||
const app = new Vue({
|
|
||||||
el: '#app',
|
|
||||||
|
|
||||||
mixins: [
|
|
||||||
Global
|
|
||||||
],
|
|
||||||
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
form: new Form('revenue'),
|
|
||||||
bulk_action: new BulkAction('revenues')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
@ -4,6 +4,7 @@ return [
|
|||||||
|
|
||||||
'bill_number' => 'رقم فاتورة الشراء',
|
'bill_number' => 'رقم فاتورة الشراء',
|
||||||
'bill_date' => 'تاريخ الفاتورة',
|
'bill_date' => 'تاريخ الفاتورة',
|
||||||
|
'bill_amount' => 'مبلغ الفاتورة',
|
||||||
'total_price' => 'السعر الإجمالي',
|
'total_price' => 'السعر الإجمالي',
|
||||||
'due_date' => 'تاريخ الاستحقاق',
|
'due_date' => 'تاريخ الاستحقاق',
|
||||||
'order_number' => 'رقم الطلب',
|
'order_number' => 'رقم الطلب',
|
||||||
@ -13,7 +14,7 @@ return [
|
|||||||
'price' => 'السعر',
|
'price' => 'السعر',
|
||||||
'sub_total' => 'المبلغ الإجمالي',
|
'sub_total' => 'المبلغ الإجمالي',
|
||||||
'discount' => 'خصم',
|
'discount' => 'خصم',
|
||||||
'item_discount' => 'خصم على المبيعات',
|
'item_discount' => 'خصم على هذه المنتجات',
|
||||||
'tax_total' => 'إجمالي الضريبة',
|
'tax_total' => 'إجمالي الضريبة',
|
||||||
'total' => 'المجموع',
|
'total' => 'المجموع',
|
||||||
|
|
||||||
|
@ -3,18 +3,24 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'company' => [
|
'company' => [
|
||||||
'description' => 'تغيير اسم الشركه، البريد اﻹلكتروني، العنوان، الرقم الضريبي الخ',
|
'description' => 'تغيير اسم الشركه، البريد اﻹلكتروني، العنوان، الرقم الضريبي الخ',
|
||||||
'name' => 'الاسم',
|
'name' => 'الاسم',
|
||||||
'email' => 'البريد الإلكتروني',
|
'email' => 'البريد الإلكتروني',
|
||||||
'phone' => 'رقم الهاتف',
|
'phone' => 'رقم الهاتف',
|
||||||
'address' => 'العنوان',
|
'address' => 'العنوان',
|
||||||
'logo' => 'الشعار',
|
'edit_your_business_address' => 'أدخل عنوان العمل',
|
||||||
|
'logo' => 'الشعار',
|
||||||
],
|
],
|
||||||
|
|
||||||
'localisation' => [
|
'localisation' => [
|
||||||
'description' => 'قم بتحديد السنة المالية والمنطقة الزمنية وصيغة التاريخ والمزيد من الاعدادات',
|
'description' => 'قم بتحديد السنة المالية والمنطقة الزمنية وصيغة التاريخ والمزيد من الاعدادات',
|
||||||
'financial_start' => 'بدء السنة المالية',
|
'financial_start' => 'بدء السنة المالية',
|
||||||
'timezone' => 'التوقيت',
|
'timezone' => 'التوقيت',
|
||||||
|
'financial_denote' => [
|
||||||
|
'title' => 'السنة المالية',
|
||||||
|
'begins' => 'خلال السنة التي تبدأ في',
|
||||||
|
'ends' => 'خلال السنة التي تنتهي في',
|
||||||
|
],
|
||||||
'date' => [
|
'date' => [
|
||||||
'format' => 'صيغة التاريخ',
|
'format' => 'صيغة التاريخ',
|
||||||
'separator' => 'فاصل التاريخ',
|
'separator' => 'فاصل التاريخ',
|
||||||
@ -62,12 +68,27 @@ return [
|
|||||||
'default' => 'الافتراضي',
|
'default' => 'الافتراضي',
|
||||||
'classic' => 'كلاسيكي',
|
'classic' => 'كلاسيكي',
|
||||||
'modern' => 'عصري',
|
'modern' => 'عصري',
|
||||||
|
'hide' => [
|
||||||
|
'item_name' => 'إخفاء أسم الصنف',
|
||||||
|
'item_description' => 'إخفاء وصف الصنف',
|
||||||
|
'quantity' => 'إخفاء كمية',
|
||||||
|
'price' => 'إخفاء سعر',
|
||||||
|
'amount' => 'إخفاء عدد',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'transfer' => [
|
||||||
|
'choose_template' => 'أختر لنقل القالب',
|
||||||
|
'second' => 'الثاني',
|
||||||
|
'third' => 'الثالث',
|
||||||
],
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'description' => 'الحساب اﻹفتراضي، العملة، لغة الشركة',
|
'description' => 'الحساب اﻹفتراضي، العملة، لغة الشركة',
|
||||||
'list_limit' => 'عدد السجلات في كل صفحة',
|
'list_limit' => 'عدد السجلات في كل صفحة',
|
||||||
'use_gravatar' => 'إستخدم Gravatar',
|
'use_gravatar' => 'إستخدم Gravatar',
|
||||||
|
'income_category' => 'فئة الدخل',
|
||||||
|
'expense_category' => 'فئة المصروف',
|
||||||
],
|
],
|
||||||
|
|
||||||
'email' => [
|
'email' => [
|
||||||
@ -100,6 +121,7 @@ return [
|
|||||||
'invoice_payment_admin' => 'قالب استلام المدفوعات (يُرسل الى المدير)',
|
'invoice_payment_admin' => 'قالب استلام المدفوعات (يُرسل الى المدير)',
|
||||||
'bill_remind_admin' => 'قالب تذكير لفاتورة (أُرسل الى المدير)',
|
'bill_remind_admin' => 'قالب تذكير لفاتورة (أُرسل الى المدير)',
|
||||||
'bill_recur_admin' => 'قالب تكرار الفاتورة (أُرسل إلى المدير)',
|
'bill_recur_admin' => 'قالب تكرار الفاتورة (أُرسل إلى المدير)',
|
||||||
|
'revenue_new_customer' => 'قالب استلام الإيراد (مرسل للعميل)',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'from_account' => 'من حساب',
|
'from_account' => 'من حساب',
|
||||||
|
'from_account_rate' => 'من تسعيرة حساب',
|
||||||
'to_account' => 'إلى حساب',
|
'to_account' => 'إلى حساب',
|
||||||
|
'to_account_rate' => 'إلى تسعيرة حساب',
|
||||||
|
'details' => 'تفاصيل|تفاصيل',
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
'delete' => ':from إلى :to (:amount)',
|
'delete' => ':from إلى :to (:amount)',
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'account_name' => 'Hesab Adı',
|
'account_name' => 'Hesab adı',
|
||||||
'number' => 'Nömrə',
|
'number' => 'Nömrə',
|
||||||
'opening_balance' => 'Açılış Balansı',
|
'opening_balance' => 'Açılış balansı',
|
||||||
'current_balance' => 'Mövcud Balans',
|
'current_balance' => 'Mövcud balans',
|
||||||
'bank_name' => 'Bank Adı',
|
'bank_name' => 'Bank adı',
|
||||||
'bank_phone' => 'Bank Telefonu',
|
'bank_phone' => 'Bank telefonu',
|
||||||
'bank_address' => 'Bank Ünvanı',
|
'bank_address' => 'Bank ünvanı',
|
||||||
'default_account' => 'Varsayılan Hesab',
|
'default_account' => 'İlkin hesab',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -5,37 +5,37 @@ return [
|
|||||||
'profile' => 'Profil',
|
'profile' => 'Profil',
|
||||||
'logout' => 'Çıxış',
|
'logout' => 'Çıxış',
|
||||||
'login' => 'Giriş',
|
'login' => 'Giriş',
|
||||||
'login_to' => 'Giriş üçün daxil olun',
|
'login_to' => 'Seans başlatmaq üçün giriş edin',
|
||||||
'remember_me' => 'Məni Xatırla',
|
'remember_me' => 'Məni xatırla',
|
||||||
'forgot_password' => 'Şifrəmi unutdum',
|
'forgot_password' => 'Şifrəmi unutdum',
|
||||||
'reset_password' => 'Şifrəmi Yenilə',
|
'reset_password' => 'Şifrəni sıfırla',
|
||||||
'enter_email' => 'E-poçt Ünvanınızı Daxil edin',
|
'enter_email' => 'E-poçt ünvanınızı daxil edin',
|
||||||
'current_email' => 'Cari E-poçt',
|
'current_email' => 'Hazırkı e-poçt',
|
||||||
'reset' => 'Yenilə',
|
'reset' => 'Sıfırla',
|
||||||
'never' => 'heçbir zaman',
|
'never' => 'heç vaxt',
|
||||||
'landing_page' => 'Açılış Səhifəsi',
|
'landing_page' => 'Açılış səhifəsi',
|
||||||
|
|
||||||
'password' => [
|
'password' => [
|
||||||
'current' => 'Şifrə',
|
'current' => 'Şifrə',
|
||||||
'current_confirm' => 'Şifrə Təsdiqi',
|
'current_confirm' => 'Şifrə təsdiqi',
|
||||||
'new' => 'Yeni Şifrə',
|
'new' => 'Yeni şifrə',
|
||||||
'new_confirm' => 'Yeni Şifrə Təsdiqi',
|
'new_confirm' => 'Yeni şifrə təsdiqi',
|
||||||
],
|
],
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'self_delete' => 'Xəta: Özünüzü silə bilməzsiniz!',
|
'self_delete' => 'Xəta: Özünüzü silə bilməzsiniz!',
|
||||||
'self_disable' => 'Xəta: Özünüzü deaktiv edə bilməzsiniz!',
|
'self_disable' => 'Xəta: Özünüzü sıradan çıxarda 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.',
|
'no_company' => 'Xəta: Hesabınıza heç bir şirkət təyin edilməyib. Zəhmət olmasa sistem administratoru ilə əlaqə saxlayın.',
|
||||||
],
|
],
|
||||||
|
|
||||||
'failed' => 'Bu istifadəçi bilgiləri bizim məlumatlarla uyğun gəlmir.',
|
'failed' => 'Kimlik məlumatları, qeydlərimizlə uyğunlaşmır.',
|
||||||
'throttle' => 'Çox sayda giriş cəhdi. Zəhmət olmazsa: saniyələr içində yenidən cəhd edin.',
|
'throttle' => 'Çox sayda giriş cəhdi. Zəhmət olmasa :seconds saniyə ərzindən yenidən sınayın.',
|
||||||
'disabled' => 'Bu hesab deaktiv edilib. Zəhmət olmasa sistem administratoru ilə əlaqə saxlayın.',
|
'disabled' => 'Bu hesab sıradan çıxarılıb. Zəhmət olmasa sistem administratoru ilə əlaqə saxlayın.',
|
||||||
|
|
||||||
'notification' => [
|
'notification' => [
|
||||||
'message_1' => 'Bu e-poçtu şifrə Yeniləma tələbinizə uyğun olaraq alırsınız.',
|
'message_1' => 'Hesabınız üçün şifrə sıfırlama tələbini aldığımız üçün bu e-poçtu alırsınız.',
|
||||||
'message_2' => 'Bir şifrə Yeniləma tələb etmədiyiniz təqdirdə heç bir şey etməyin.',
|
'message_2' => 'Şifrə sıfırlama tələbi göndərməmisinizsə, heç bir şey etməyin.',
|
||||||
'button' => 'Şifrə Yeniləma',
|
'button' => 'Şifrə sıfırlama',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -2,53 +2,54 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'bill_number' => 'Faktura Nömrəsi',
|
'bill_number' => 'Faktura nömrəsi',
|
||||||
'bill_date' => 'Faktura Tarixi',
|
'bill_date' => 'Faktura tarixi',
|
||||||
'total_price' => 'Cəmi Məbləğ',
|
'bill_amount' => 'Faktura məbləği',
|
||||||
'due_date' => 'Son Ödəniş Tarixi',
|
'total_price' => 'Cəmi qiymət',
|
||||||
'order_number' => 'Sifariş Nömrəsi',
|
'due_date' => 'Bitmə tarixi',
|
||||||
'bill_from' => 'Fakturanı Göndərən',
|
'order_number' => 'Sifariş nömrəsi',
|
||||||
|
'bill_from' => 'Fakturanı göndərən',
|
||||||
|
|
||||||
'quantity' => 'Ədəd',
|
'quantity' => 'Ədəd',
|
||||||
'price' => 'Qiymət',
|
'price' => 'Qiymət',
|
||||||
'sub_total' => 'Ara Cəmi',
|
'sub_total' => 'Alt cəm',
|
||||||
'discount' => 'Endirim',
|
'discount' => 'Endirim',
|
||||||
'item_discount' => 'Məhsul Endirimi',
|
'item_discount' => 'Sətir endirimi',
|
||||||
'tax_total' => 'Vergi Cəmi',
|
'tax_total' => 'Vergi cəmi',
|
||||||
'total' => 'Cəmi',
|
'total' => 'Cəmi',
|
||||||
|
|
||||||
'item_name' => 'Məhsul Adı | Məhsul Adları',
|
'item_name' => 'Element adı|Element adları',
|
||||||
|
|
||||||
'show_discount' => '%:discount Endirim',
|
'show_discount' => '%:discount Endirim',
|
||||||
'add_discount' => 'Endirim Əlavə et',
|
'add_discount' => 'Endirim əlavə et',
|
||||||
'discount_desc' => 'ara cəm üzərinə',
|
'discount_desc' => 'alt cəm üzərindən',
|
||||||
|
|
||||||
'payment_due' => 'Son Ödəmə Tarixi',
|
'payment_due' => 'Son ödəniş tarixi',
|
||||||
'amount_due' => 'Ödənəcək Məbləğ',
|
'amount_due' => 'Ödəniləcək məbləğ',
|
||||||
'paid' => 'Ödənmiş',
|
'paid' => 'Ödənilib',
|
||||||
'histories' => 'Keşmiş',
|
'histories' => 'Tarixçə',
|
||||||
'payments' => 'Ödənişlər',
|
'payments' => 'Ödənişlər',
|
||||||
'add_payment' => 'Ödəniş Əlavə Et',
|
'add_payment' => 'Ödəniş əlavə et',
|
||||||
'mark_paid' => 'Ödənildi İşarələ',
|
'mark_paid' => 'Ödənilmiş kimi işarələ',
|
||||||
'mark_received' => 'Qəbul edildi İşarələ',
|
'mark_received' => 'Alınmış kimi işarələ',
|
||||||
'mark_cancelled' => 'Ləğv Edildi İşarələ',
|
'mark_cancelled' => 'İmtina edilmiş kimi işarələ',
|
||||||
'download_pdf' => 'PDF Yükə',
|
'download_pdf' => 'PDF endir',
|
||||||
'send_mail' => 'E-poçt Göndər',
|
'send_mail' => 'E-poçt göndər',
|
||||||
'create_bill' => 'Faktura Yarat',
|
'create_bill' => 'Faktura yarat',
|
||||||
'receive_bill' => 'Fakturanı Qəbul et',
|
'receive_bill' => 'Faktura al',
|
||||||
'make_payment' => 'Ödəniş et',
|
'make_payment' => 'Ödəniş et',
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
'draft' => 'Bu bir <b>QARALAMA</b> Fakturadır və qəbul edildikdən sonra qrafiklərdə əks olunacaq.',
|
'draft' => 'Bu bir <b>QARALAMA</b> fakturadır və qəbul edildikdən sonra qrafiklərdə əks olunacaq.',
|
||||||
|
|
||||||
'status' => [
|
'status' => [
|
||||||
'created' => ':date Tarixində Yaradıldı',
|
'created' => ':date tarixində yaradıldı',
|
||||||
'receive' => [
|
'receive' => [
|
||||||
'draft' => 'Göndərilmədi',
|
'draft' => 'Alınmadı',
|
||||||
'received' => ':date Tarixində Qəbul edildi',
|
'received' => ':date tarixində alındı',
|
||||||
],
|
],
|
||||||
'paid' => [
|
'paid' => [
|
||||||
'await' => 'Gözləyən Ödəniş',
|
'await' => 'Gözləyən ödəniş',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
@ -2,20 +2,20 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'bulk_actions' => 'Toplu Hərəkət|Toplu Hərəkətlər',
|
'bulk_actions' => 'Toplu əməliyyat|Toplu əməliyyatlar',
|
||||||
'selected' => 'seçili',
|
'selected' => 'seçildi',
|
||||||
'no_action' => 'Heç bir əməliyyat yoxdur',
|
'no_action' => 'Heç bir əməliyyat yoxdur',
|
||||||
|
|
||||||
'message' => [
|
'message' => [
|
||||||
'duplicate' => 'Seşilmiş qeydi <b>dublikat etməl</b> istədiyinizdən əminsiniz?',
|
'duplicate' => 'Seçilmiş qeydi <b>çoxaltmaq</b> istədiyinizə ə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?',
|
'delete' => 'Seçilmiş qeydi <b>silmək</b> istədiyinizə əminsiniz?|Seçilmiş qeydləri <b>silmək</b> istədiyinizə ə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?',
|
'export' => 'Seçilmiş qeydi <b>ixrac etmək</b> istədiyinizə əminsiniz?|Seçilmiş qeydləri <b>ixrac etmək</b> istədiyinizə ə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?',
|
'enable' => 'Seçilmiş qeydi <b>fəallaşdırmaq</b> istədiyinizə əminsiniz?|Seçilmiş qeydləri <b>fəallaşdırmaq</b> istədiyinizə ə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?',
|
'disable' => 'Seçilmiş qeydi <b>sıradan çıxartmaq</b> istədiyinizə əminsiniz?|Seçilmiş qeydləri <b>sıradan çıxartmaq</b> istədiyinizə ə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?',
|
'paid' => 'Seçilmiş fakturanı <b>ödənildi</b> olaraq işarələmək istədiyinizə əminsiniz?|Seçilmiş fakturaları <b>ödənildi</b> olaraq istədiyinizə 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?',
|
'sent' => 'Seçilmiş fakturanı <b>göndərildi</b> olaraq işarələmək istədiyinizə əminsiniz?|Seçilmiş fakturaları <b>göndərildi</b> olaraq işarələmək istədiyinizə ə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?',
|
'received' => 'Seçilmiş fakturanı <b>qəbul edildi</b> olaraq işarələmək istədiyinizə əminsiniz?|Seçilmiş fakturaları <b>qəbul edildi</b> olaraq işarələmək istədiyinizə ə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?',
|
'cancelled' => 'Seçilmiş fakturanı <b>ləğv etmək</b> istədiyinizə əminsiniz?|Seçilmiş fakturaları <b>ləğv etmək</b> istədiyinizə ə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?',
|
'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?',
|
'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?',
|
||||||
],
|
],
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'domain' => 'Domain Adı',
|
'domain' => 'Domen',
|
||||||
'logo' => 'Logo',
|
'logo' => 'Loqo',
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'Xəta: Bu şirkəti dəyişdirmə icazəniz yoxdur!',
|
'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!',
|
'delete_active' => 'Xəta: Aktiv şirkəti silə bilməzsiniz. Zəhmət olmasa ə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!',
|
'disable_active' => 'Xəta: Aktiv şirkəti sıradan çıxarda bilməzsiniz. Zəhmət olmasa əvvəlcə başqa bir şirkətə keçin!',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -4,16 +4,16 @@ return [
|
|||||||
|
|
||||||
'code' => 'Kod',
|
'code' => 'Kod',
|
||||||
'rate' => 'Məzənnə',
|
'rate' => 'Məzənnə',
|
||||||
'default' => 'Varsayılan Valyuta',
|
'default' => 'İlkin pul vahidi',
|
||||||
'decimal_mark' => 'Onluq Ayırıcı',
|
'decimal_mark' => 'Onluq ayırıcı',
|
||||||
'thousands_separator' => 'Minlik Aıyrıcı',
|
'thousands_separator' => 'Minlik ayırıcı',
|
||||||
'precision' => 'Dəqiqlik',
|
'precision' => 'Dəqiqlik',
|
||||||
'conversion' => 'Valyuta konversiyası',
|
'conversion' => 'İlkin konversiya: :currency_rate əmsalı ilə :price (:currency_code)',
|
||||||
'symbol' => [
|
'symbol' => [
|
||||||
'symbol' => 'İşarə',
|
'symbol' => 'Simvol',
|
||||||
'position' => 'İşarənin Yeri',
|
'position' => 'Simvol mövqeyi',
|
||||||
'before' => 'Məbləğdən Əvvəl',
|
'before' => 'Məbləğdən əvvəl',
|
||||||
'after' => 'Məbləğdən Sonra',
|
'after' => 'Məbləğdən sonra',
|
||||||
]
|
]
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'can_login' => 'Giriş Edə Bilər',
|
'can_login' => 'Giriş edilə bilər?',
|
||||||
'user_created' => 'İstifadəçi yarat',
|
'user_created' => 'İstifadəçi yaradıldı',
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'email' => 'E-poçt ünvanı istifadə edilir.',
|
'email' => 'E-poçt ünvanı artıq istifadədədir.',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -5,7 +5,7 @@ return [
|
|||||||
'error' => [
|
'error' => [
|
||||||
'not_user_dashboard' => 'Xəta: Bu idarəetmə panelini dəyişdirmə icazəniz yoxdur!',
|
'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!',
|
'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!',
|
'disable_last' => 'Xəta: Son idarəetmə panelini sıradan çıxarda bilməzsiniz. Əvvəlcə yeni bir panel yaradın!',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'accounts' => [
|
'accounts' => [
|
||||||
'cash' => 'Nəğd',
|
'cash' => 'Nağd',
|
||||||
],
|
],
|
||||||
|
|
||||||
'categories' => [
|
'categories' => [
|
||||||
@ -12,22 +12,22 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'currencies' => [
|
'currencies' => [
|
||||||
'usd' => 'Amerika Dolları',
|
'usd' => 'Amerikan dolları',
|
||||||
'eur' => 'Avro',
|
'eur' => 'Avro',
|
||||||
'gbp' => 'İngilis Sterlinqi',
|
'gbp' => 'İngilis sterlinqi',
|
||||||
'try' => 'Türk Lirəsı',
|
'try' => 'Türk lirəsi',
|
||||||
],
|
],
|
||||||
|
|
||||||
'offline_payments' => [
|
'offline_payments' => [
|
||||||
'cash' => 'Nəğd',
|
'cash' => 'Nağd',
|
||||||
'bank' => 'Bank Köçürməsi',
|
'bank' => 'Bank köçürməsi',
|
||||||
],
|
],
|
||||||
|
|
||||||
'reports' => [
|
'reports' => [
|
||||||
'income' => 'Kateqoriya əsaslı aylıq gəlir xülasəsi.',
|
'income' => 'Kateqoriyaya görə aylıq gəlir icmalı.',
|
||||||
'expense' => 'Kateqoriya əsaslı aylıq xərc xülasəsi.',
|
'expense' => 'Katqoriyaya görə aylıq xərc icmalı.',
|
||||||
'income_expense' => 'Kateqoriya əsaslı aylıq gəlir-xərc balansı.',
|
'income_expense' => 'Kateqoriyaya görə aylıq gəlir - xərc icmalı.',
|
||||||
'tax' => 'Rüblük vergi xülasəsi.',
|
'tax' => 'Rüblük vergi icmalı.',
|
||||||
'profit_loss' => 'Rüblük mənfəət və zərər hesabatı.',
|
'profit_loss' => 'Rüblük mənfəət və zərər hesabatı.',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -2,26 +2,26 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'edit_columns' => 'Sütünları Düzəlt',
|
'edit_columns' => 'Sütunlara düzəliş et',
|
||||||
'empty_items' => 'Hər hansı bir məhsul/xidmət əlavə etmədiniz.',
|
'empty_items' => 'Heç bir element əlavə edilmədi.',
|
||||||
|
|
||||||
'statuses' => [
|
'statuses' => [
|
||||||
'draft' => 'Qaralama',
|
'draft' => 'Qaralama',
|
||||||
'sent' => 'Göndərildi',
|
'sent' => 'Göndərildi',
|
||||||
'expired' => 'Vaxtı Bitdi',
|
'expired' => 'Vaxtı bitib',
|
||||||
'viewed' => 'Baxıldı',
|
'viewed' => 'Baxıldı',
|
||||||
'approved' => 'Təsdiqləndi',
|
'approved' => 'Təsdiqləndi',
|
||||||
'received' => 'Qəbul Edildi',
|
'received' => 'Alındı',
|
||||||
'refused' => 'Rədd Edildi',
|
'refused' => 'Rədd edildi',
|
||||||
'restored' => 'Bərpa edildi',
|
'restored' => 'Bərpa edildi',
|
||||||
'reversed' => 'Geri Qaytarıldı',
|
'reversed' => 'Çevrildi',
|
||||||
'partial' => 'Qismən Ödəmə',
|
'partial' => 'Hissəli',
|
||||||
'paid' => 'Ödənildi',
|
'paid' => 'Ödənildi',
|
||||||
'pending' => 'Gözləyən',
|
'pending' => 'Gözləyən',
|
||||||
'invoiced' => 'Faturalandırıldı',
|
'invoiced' => 'Fakturalı',
|
||||||
'overdue' => 'Gecikmiş',
|
'overdue' => 'Gecikmiş',
|
||||||
'unpaid' => 'Ödənilməmiş',
|
'unpaid' => 'Ödənilməmiş',
|
||||||
'cancelled' => 'Ləğv Edildi',
|
'cancelled' => 'İmtina edilmiş',
|
||||||
'voided' => 'Ləğv Edildi',
|
'voided' => 'Ləğv Edildi',
|
||||||
'completed' => 'Tamamlandı',
|
'completed' => 'Tamamlandı',
|
||||||
'shipped' => 'Göndərildi',
|
'shipped' => 'Göndərildi',
|
||||||
|
@ -16,8 +16,8 @@ return [
|
|||||||
'password' => 'Parollar ən azı altı simvoldan ibarət olmalı və təsdiqlə uyğun olmalıdır.',
|
'password' => 'Parollar ən azı altı simvoldan ibarət olmalı və təsdiqlə uyğun olmalıdır.',
|
||||||
'reset' => 'Şifrəniz sıfırlandı!',
|
'reset' => 'Şifrəniz sıfırlandı!',
|
||||||
'sent' => 'Şifrə sıfırlama linkinizi elektron poçtla göndərdik!',
|
'sent' => 'Şifrə sıfırlama linkinizi elektron poçtla göndərdik!',
|
||||||
|
'throttled' => 'Yenidən sınamazdan əvvəl gözləyin.',
|
||||||
'token' => 'Şifrə sıfırlama ünvanı/kodu etibarsızdır.',
|
'token' => 'Şifrə sıfırlama ünvanı/kodu etibarsızdır.',
|
||||||
'user' => "Bu e-poçt ünvanı ilə qeydiyyatdan keçmiş bir üzv yoxdur.",
|
'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.',
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
10
resources/lang/az-AZ/payments.php
Normal file
10
resources/lang/az-AZ/payments.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'payment_made' => 'Ödəniş edildi',
|
||||||
|
'paid_to' => 'Ödəniş göndərildi',
|
||||||
|
'related_bill' => 'Əlaqəli faktura',
|
||||||
|
'create_payment' => 'Ödəniş yarat',
|
||||||
|
|
||||||
|
];
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'installed_version' => 'Yüklü Versiya',
|
'installed_version' => 'Quraşdırılmış versiya',
|
||||||
'latest_version' => 'Ən Son Versiya',
|
'latest_version' => 'Son versiya',
|
||||||
'update' => ':version versiyasına yenilə',
|
'update' => ':version versiyasına yenilə',
|
||||||
'changelog' => 'Dəyişiklik Qeydi',
|
'changelog' => 'Dəyişiklik Qeydi',
|
||||||
'check' => 'Yenilə',
|
'check' => 'Yenilə',
|
||||||
|
@ -2,22 +2,23 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'total_income' => 'Cəmi Gəlir',
|
'currencies' => 'Pul vahidləri',
|
||||||
'receivables' => 'Alacaq',
|
'total_income' => 'Cəmi gəlir',
|
||||||
'open_invoices' => 'Açıq Fakturalar',
|
'receivables' => 'Alınacaqlar',
|
||||||
'overdue_invoices' => 'Gecikmiş Fakturalar',
|
'open_invoices' => 'Açıq fakturalar',
|
||||||
'total_expenses' => 'Cəmi Xərc',
|
'overdue_invoices' => 'Gecikmiş fakturalar',
|
||||||
'payables' => 'Verəcək',
|
'total_expenses' => 'Cəmi xərclər',
|
||||||
'open_bills' => 'Açıq Fakturalar',
|
'payables' => 'Veriləcəklər',
|
||||||
'overdue_bills' => 'Gecikmiş Fakturalar',
|
'open_bills' => 'Açıq fakturalar',
|
||||||
'total_profit' => 'Cəmi Gəlir',
|
'overdue_bills' => 'Gecikmiş fakturalar',
|
||||||
'open_profit' => 'Açıq Gəlir',
|
'total_profit' => 'Cəmi mənfəət',
|
||||||
'overdue_profit' => 'Gecikmiş Gəlir',
|
'open_profit' => 'Açıq mənfəət',
|
||||||
'cash_flow' => 'Maliyyə axını',
|
'overdue_profit' => 'Gecikmiş mənfəət',
|
||||||
'no_profit_loss' => 'Gəlir-Zərər Yox',
|
'cash_flow' => 'Nağd axın',
|
||||||
'income_by_category' => 'Gəlir Kateqoriyaları',
|
'no_profit_loss' => 'Mənfəət itkisi yoxdur',
|
||||||
'expenses_by_category' => 'Xərc Kateqoriyaları',
|
'income_by_category' => 'Kateqriyaya görə gəlir',
|
||||||
'account_balance' => 'Hesap Balansı',
|
'expenses_by_category' => 'Kateqoriyaya görə xərclər',
|
||||||
'latest_income' => 'Son Gəlirlər',
|
'account_balance' => 'Hesab balansı',
|
||||||
'latest_expenses' => 'Son Xərclər',
|
'latest_income' => 'Son gəlir',
|
||||||
|
'latest_expenses' => 'Son xərclər',
|
||||||
];
|
];
|
||||||
|
@ -10,5 +10,9 @@ return [
|
|||||||
'bank_phone' => 'Telefon banke',
|
'bank_phone' => 'Telefon banke',
|
||||||
'bank_address' => 'Adresa banke',
|
'bank_address' => 'Adresa banke',
|
||||||
'default_account' => 'Zadani račun',
|
'default_account' => 'Zadani račun',
|
||||||
|
'incoming' => 'Dolazni',
|
||||||
|
'outgoing' => 'Odlazni',
|
||||||
|
'see_performance' => 'Pogledaj performanse',
|
||||||
|
'create_report' => 'Ako želite vidjeti performanse računa. Možete kreirati instancu izvještaja o prihodima i troškovima.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -73,6 +73,7 @@ return [
|
|||||||
'add_new' => 'Dodaj novo',
|
'add_new' => 'Dodaj novo',
|
||||||
'add_income' => 'Dodajte prihod',
|
'add_income' => 'Dodajte prihod',
|
||||||
'add_expense' => 'Dodajte trošak',
|
'add_expense' => 'Dodajte trošak',
|
||||||
|
'add_transfer' => 'Dodaj transfer',
|
||||||
'show' => 'Prikaži',
|
'show' => 'Prikaži',
|
||||||
'edit' => 'Uredi',
|
'edit' => 'Uredi',
|
||||||
'delete' => 'Izbriši',
|
'delete' => 'Izbriši',
|
||||||
|
@ -10,5 +10,9 @@ return [
|
|||||||
'bank_phone' => 'Telefon bank',
|
'bank_phone' => 'Telefon bank',
|
||||||
'bank_address' => 'Bank adresse',
|
'bank_address' => 'Bank adresse',
|
||||||
'default_account' => 'Standardkonto',
|
'default_account' => 'Standardkonto',
|
||||||
|
'incoming' => 'Indgående',
|
||||||
|
'outgoing' => 'Udgående',
|
||||||
|
'see_performance' => 'Se præstation',
|
||||||
|
'create_report' => 'Hvis du vil se præstationen for den enkelte konto, kan du oprette en indtægt vs. udgiftsrapport.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -49,4 +49,14 @@ return [
|
|||||||
'body' => 'Hej,<br /><br /> Baseret på {vendor_name}\'s tilbagevendende betaling, er faktura nummer <strong>{bill_number}</strong> automatisk genereret.<br /><br />Du kan se fakturadetaljerne på dette link: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />Med venlig hilsen,<br />{company_name}',
|
'body' => 'Hej,<br /><br /> Baseret på {vendor_name}\'s tilbagevendende betaling, er faktura nummer <strong>{bill_number}</strong> automatisk genereret.<br /><br />Du kan se fakturadetaljerne på dette link: <a href="{bill_admin_link}">{bill_number}</a>.<br /><br />Med venlig hilsen,<br />{company_name}',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'revenue_new_customer' => [
|
||||||
|
'subject' => '{revenue_date} betaling oprettet',
|
||||||
|
'body' => 'Kære {customer_name},<br /><br />Vi har forberedt følgende betaling. <br /><br />Du kan se betalingsdetaljerne på følgende link: <a href="{revenue_guest_link}">{revenue_date}</a>.<br /><br />Du er velkommen til at kontakte os, hvis du har spørgsmål til betalingen.<br /><br />Venlig hilsen,<br />{company_name}',
|
||||||
|
],
|
||||||
|
|
||||||
|
'payment_new_vendor' => [
|
||||||
|
'subject' => '{revenue_date} betaling oprettet',
|
||||||
|
'body' => 'Kære {vendor_name},<br /><br />Vi har forberedt følgende betaling. <br /><br />Du kan se betalingsdetaljerne på følgende link: <a href="{payment_admin_link}">{payment_date}</a>.<br /><br />Du er velkommen til at kontakte os, hvis du har spørgsmål.<br /><br />Venlig hilsen,<br />{company_name}
|
||||||
|
',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@ -73,6 +73,7 @@ return [
|
|||||||
'add_new' => 'Tilføj ny',
|
'add_new' => 'Tilføj ny',
|
||||||
'add_income' => 'Tilføj Indkomst',
|
'add_income' => 'Tilføj Indkomst',
|
||||||
'add_expense' => 'Tilføj Udgift',
|
'add_expense' => 'Tilføj Udgift',
|
||||||
|
'add_transfer' => 'Tilføj overførsel',
|
||||||
'show' => 'Vis',
|
'show' => 'Vis',
|
||||||
'edit' => 'Rediger',
|
'edit' => 'Rediger',
|
||||||
'delete' => 'Slet',
|
'delete' => 'Slet',
|
||||||
|
@ -4,12 +4,24 @@ return [
|
|||||||
|
|
||||||
'change_language' => 'Skift sprog',
|
'change_language' => 'Skift sprog',
|
||||||
'last_login' => 'Sidste login :time',
|
'last_login' => 'Sidste login :time',
|
||||||
|
|
||||||
'notifications' => [
|
'notifications' => [
|
||||||
'counter' => '{0} Du har ingen notifikationer|{1} Du har :count notifikation|[2, *] Du har :count notifikationer',
|
'counter' => '{0} Du har ingen notifikationer|{1} Du har :count notifikation|[2, *] Du har :count notifikationer',
|
||||||
|
'new_apps' => '{1} :count ny app er publiceret|[2,*] :count nye apps publiceret',
|
||||||
'overdue_invoices' => '{1} :count forfalden regning|[2,*] :count forfaldne regninger',
|
'overdue_invoices' => '{1} :count forfalden regning|[2,*] :count forfaldne regninger',
|
||||||
'upcoming_bills' => '{1} :count kommende regning|[2,*] :count kommende regninger',
|
'upcoming_bills' => '{1} :count kommende regning|[2,*] :count kommende regninger',
|
||||||
'view_all' => 'Vis alle'
|
'view_all' => 'Vis alle',
|
||||||
|
|
||||||
|
'exports' => [
|
||||||
|
'completed' => '{1} :count færdig eksport|[2,*] :count færdige eksporter',
|
||||||
|
'failed' => '{1} :count eksport med fejl|[2,*] :count eksporter med fejl',
|
||||||
|
],
|
||||||
|
'imports' => [
|
||||||
|
'completed' => '{1} :count færdig import|[2,*] :count færdige importer',
|
||||||
|
'failed' => '{1} :count import med fejl|[2,*] :count importer med fejl',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'docs_link' => 'https://akaunting.com/docs',
|
'docs_link' => 'https://akaunting.com/docs',
|
||||||
'support_link' => 'https://akaunting.com/support',
|
'support_link' => 'https://akaunting.com/support',
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@ return [
|
|||||||
'export_queued' => ':type eksport er planlagt! Du vil modtage en e-mail, når den er klar til download.',
|
'export_queued' => ':type eksport er planlagt! Du vil modtage en e-mail, når den er klar til download.',
|
||||||
'enabled' => ':type aktiveret!',
|
'enabled' => ':type aktiveret!',
|
||||||
'disabled' => ':type deaktiveret!',
|
'disabled' => ':type deaktiveret!',
|
||||||
|
|
||||||
|
'clear_all' => 'Fantastisk! Du har ryddet alle dine :type.',
|
||||||
],
|
],
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
|
10
resources/lang/da-DK/payments.php
Normal file
10
resources/lang/da-DK/payments.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'payment_made' => 'Betaling fortaget',
|
||||||
|
'paid_to' => 'Betalt til',
|
||||||
|
'related_bill' => 'Relateret regning',
|
||||||
|
'create_payment' => 'Opret betaling',
|
||||||
|
|
||||||
|
];
|
@ -6,6 +6,7 @@ return [
|
|||||||
'from_account_rate' => 'Fra kontosats',
|
'from_account_rate' => 'Fra kontosats',
|
||||||
'to_account' => 'Til konto',
|
'to_account' => 'Til konto',
|
||||||
'to_account_rate' => 'Til kontosats',
|
'to_account_rate' => 'Til kontosats',
|
||||||
|
'details' => 'Detalje|Detaljer',
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
'delete' => ':from til :to (:amount)',
|
'delete' => ':from til :to (:amount)',
|
||||||
|
@ -13,79 +13,121 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'accepted' => ':attribute skal være accepteret.',
|
'accepted' => ':attribute skal være accepteret.',
|
||||||
'active_url' => ':attribute er ikke en gyldig URL.',
|
'active_url' => ':attribute er ikke en gyldig URL.',
|
||||||
'after' => ':attribute skal være en dato efter :date.',
|
'after' => ':attribute skal være en dato efter :date.',
|
||||||
'after_or_equal' => ':attribute skal være en dato før eller lig med :date.',
|
'after_or_equal' => ':attribute skal være en dato før eller lig med :date.',
|
||||||
'alpha' => ':attribute må kun indeholde bogstaver.',
|
'alpha' => ':attribute må kun indeholde bogstaver.',
|
||||||
'alpha_dash' => ':attribute må kun indeholde bogstaver, tal eller bindestreger.',
|
'alpha_dash' => ':attribute må kun indeholde bogstaver, tal eller bindestreger.',
|
||||||
'alpha_num' => ':attribute må kun indeholde bogstaver eller tal.',
|
'alpha_num' => ':attribute må kun indeholde bogstaver eller tal.',
|
||||||
'array' => ':attribute skal være en matrix.',
|
'array' => ':attribute skal være en matrix.',
|
||||||
'before' => ':attribute skal være en dato før :date.',
|
'before' => ':attribute skal være en dato før :date.',
|
||||||
'before_or_equal' => ':attribute skal være en dato før eller lig med :date.',
|
'before_or_equal' => ':attribute skal være en dato før eller lig med :date.',
|
||||||
'between' => [
|
'between' => [
|
||||||
'numeric' => ':attribute skal være imellem :min og :max.',
|
'numeric' => ':attribute skal være imellem :min og :max.',
|
||||||
'file' => ':attribute skal være imellem :min - :max kilobytes.',
|
'file' => ':attribute skal være imellem :min - :max kilobytes.',
|
||||||
'string' => ':attribute skal være imellem :min - :max tegn.',
|
'string' => ':attribute skal være imellem :min - :max tegn.',
|
||||||
'array' => ':attribute skal have mellem: min og: maks. Emner.',
|
'array' => ':attribute skal have mellem: min og: maks. Emner.',
|
||||||
],
|
],
|
||||||
'boolean' => ':attribute skal være enabled eller disabled.',
|
'boolean' => ':attribute skal være enabled eller disabled.',
|
||||||
'confirmed' => ':attribute valget stemmer ikke overens.',
|
'confirmed' => ':attribute valget stemmer ikke overens.',
|
||||||
'date' => ':attribute er ikke en gyldig dato.',
|
'current_password' => 'Adgangskoden er forkert.',
|
||||||
'date_format' => ':attribute svarer ikke til formatet :format.',
|
'date' => ':attribute er ikke en gyldig dato.',
|
||||||
'different' => ':attribute og :other skal være <strong>forskellige</strong>.',
|
'date_equals' => ':attribute skal være en dato lig med :date.',
|
||||||
'digits' => ':attribute skal være :digits cifre.',
|
'date_format' => ':attribute svarer ikke til formatet :format.',
|
||||||
'digits_between' => ':attribute skal være imellem :min og :max cifre.',
|
'different' => ':attribute og :other skal være <strong>forskellige</strong>.',
|
||||||
'dimensions' => ':attribute har ugyldige billeddimensioner.',
|
'digits' => ':attribute skal være :digits cifre.',
|
||||||
'distinct' => ':attribute har en duplikatværdi.',
|
'digits_between' => ':attribute skal være imellem :min og :max cifre.',
|
||||||
'email' => ':attribute skal være en gyldig <strong>email adresse</strong>.',
|
'dimensions' => ':attribute har ugyldige billeddimensioner.',
|
||||||
'ends_with' => ':attribute skal ende med en af følgende: :values',
|
'distinct' => ':attribute har en duplikatværdi.',
|
||||||
'exists' => 'Det valgte :attribute er ugyldigt.',
|
'email' => ':attribute skal være en gyldig <strong>email adresse</strong>.',
|
||||||
'file' => ':attribute skal være en <strong>fil</strong>.',
|
'ends_with' => ':attribute skal ende med en af følgende: :values',
|
||||||
'filled' => ':attribute feltet skal have en <strong>værdi</strong>.',
|
'exists' => 'Det valgte :attribute er ugyldigt.',
|
||||||
'image' => ':attribute skal være et <strong>billede</strong>.',
|
'file' => ':attribute skal være en <strong>fil</strong>.',
|
||||||
'in' => 'Det valgte :attribute er ugyldigt.',
|
'filled' => ':attribute feltet skal have en <strong>værdi</strong>.',
|
||||||
'in_array' => ':attribute findes ikke i :other.',
|
'gt' => [
|
||||||
'integer' => ':attribute skal være et <strong>heltal</strong>.',
|
'numeric' => ':attribute skal være større end :value.
|
||||||
'ip' => ':attribute skal være en gyldig IP adresse.',
|
',
|
||||||
'json' => ':attribute skal være en gyldig JSON-streng.',
|
'file' => ':attribute skal være større end :value kilobytes.',
|
||||||
'max' => [
|
'string' => ':attribute skal være flere end :value tegn.
|
||||||
|
',
|
||||||
|
'array' => ':attribute skal indeholde mere end :value varer.',
|
||||||
|
],
|
||||||
|
'gte' => [
|
||||||
|
'numeric' => ':attribute skal være større end eller lig med :value.',
|
||||||
|
'file' => ':attribute skal være større end eller lig :value kilobytes.
|
||||||
|
',
|
||||||
|
'string' => ':attribute skal være større end eller lig :value karakterer.',
|
||||||
|
'array' => ':attribute skal have :value varer eller mere.',
|
||||||
|
],
|
||||||
|
'image' => ':attribute skal være et <strong>billede</strong>.',
|
||||||
|
'in' => 'Det valgte :attribute er ugyldigt.',
|
||||||
|
'in_array' => ':attribute findes ikke i :other.',
|
||||||
|
'integer' => ':attribute skal være et <strong>heltal</strong>.',
|
||||||
|
'ip' => ':attribute skal være en gyldig IP adresse.',
|
||||||
|
'ipv4' => ':attribute skal være en valid IPv4 adresse',
|
||||||
|
'ipv6' => ':attribute skal være en valid IPv6 adresse',
|
||||||
|
'json' => ':attribute skal være en gyldig JSON-streng.',
|
||||||
|
'lt' => [
|
||||||
|
'numeric' => ':attribute skal være mindre end :value.
|
||||||
|
',
|
||||||
|
'file' => ':attribute skal være mindre end :value kilobytes.',
|
||||||
|
'string' => ':attribute skal være færre end :value tegn.
|
||||||
|
',
|
||||||
|
'array' => ':attribute skal indeholde mindre end :value varer.',
|
||||||
|
],
|
||||||
|
'lte' => [
|
||||||
|
'numeric' => ':attribute skal være mindre end eller lig med :value.',
|
||||||
|
'file' => ':attribute skal være mindre end eller lig :value kilobytes.
|
||||||
|
',
|
||||||
|
'string' => ':attribute skal være færre end eller lig :value karakterer.',
|
||||||
|
'array' => ':attribute skal indeholde færre end :value varer.',
|
||||||
|
],
|
||||||
|
'max' => [
|
||||||
'numeric' => ':attribute må ikke overstige :max.',
|
'numeric' => ':attribute må ikke overstige :max.',
|
||||||
'file' => ':attribute må ikke overstige :max. kilobytes.',
|
'file' => ':attribute må ikke overstige :max. kilobytes.',
|
||||||
'string' => ':attribute må ikke overstige :max. tegn.',
|
'string' => ':attribute må ikke overstige :max. tegn.',
|
||||||
'array' => ':attribute må ikke overstige :max. antal.',
|
'array' => ':attribute må ikke overstige :max. antal.',
|
||||||
],
|
],
|
||||||
'mimes' => ':attribute skal være en fil af typen: :values.',
|
'mimes' => ':attribute skal være en fil af typen: :values.',
|
||||||
'mimetypes' => ':attribute skal være en fil af typen: :values.',
|
'mimetypes' => ':attribute skal være en fil af typen: :values.',
|
||||||
'min' => [
|
'min' => [
|
||||||
'numeric' => ':attribute skal mindst være :min.',
|
'numeric' => ':attribute skal mindst være :min.',
|
||||||
'file' => ':attribute skal mindst være :min kilobytes.',
|
'file' => ':attribute skal mindst være :min kilobytes.',
|
||||||
'string' => ':attribute skal mindst være :min tegn.',
|
'string' => ':attribute skal mindst være :min tegn.',
|
||||||
'array' => ':attribute skal have mindst :min styk.',
|
'array' => ':attribute skal have mindst :min styk.',
|
||||||
],
|
],
|
||||||
'not_in' => 'Det valgte :attribute er ugyldigt.',
|
'multiple_of' => ':attribute skal være en multipel af :values.',
|
||||||
'numeric' => ':attribute skal være et tal.',
|
'not_in' => 'Det valgte :attribute er ugyldigt.',
|
||||||
'present' => ':attribute feltet skal være <strong>til stede</strong>.',
|
'not_regex' => ':attribute formatet er forkert.',
|
||||||
'regex' => ':attribute formatet er <strong>forkert</strong>.',
|
'numeric' => ':attribute skal være et tal.',
|
||||||
'required' => ':attribute feltet er <strong>påkrævet</strong>.',
|
'password' => 'Adgangskoden er forkert.',
|
||||||
'required_if' => ':attribute feltet er krævet når :other er :value.',
|
'present' => ':attribute feltet skal være <strong>til stede</strong>.',
|
||||||
'required_unless' => ':attribute feltet er påkrævet, med mindre :other er :value.',
|
'regex' => ':attribute formatet er <strong>forkert</strong>.',
|
||||||
'required_with' => ':attribute er påkrævet, når :values er til stede.',
|
'required' => ':attribute feltet er <strong>påkrævet</strong>.',
|
||||||
'required_with_all' => ':attribute er påkrævet, når :values er til stede.',
|
'required_if' => ':attribute feltet er krævet når :other er :value.',
|
||||||
'required_without' => ':attribute er påkrævet, når :values ikke er tilstede.',
|
'required_unless' => ':attribute feltet er påkrævet, med mindre :other er :value.',
|
||||||
|
'required_with' => ':attribute er påkrævet, når :values er til stede.',
|
||||||
|
'required_with_all' => ':attribute er påkrævet, når :values er til stede.',
|
||||||
|
'required_without' => ':attribute er påkrævet, når :values ikke er tilstede.',
|
||||||
'required_without_all' => ':attribute er påkrævet, når ingen af :values er tilstede.',
|
'required_without_all' => ':attribute er påkrævet, når ingen af :values er tilstede.',
|
||||||
'same' => ':attribute og :other skal være ens.',
|
'prohibited' => ':attribute feltet er ikke tilladt.',
|
||||||
'size' => [
|
'prohibited_if' => ':attribute feltet er ikke tilladt når :other er :value.',
|
||||||
|
'prohibited_unless' => ':attribute feltet er ikke tilladt, med mindre :other er :value.',
|
||||||
|
'same' => ':attribute og :other skal være ens.',
|
||||||
|
'size' => [
|
||||||
'numeric' => ':attribute skal være :size.',
|
'numeric' => ':attribute skal være :size.',
|
||||||
'file' => ':attribute skal være :size kilobytes.',
|
'file' => ':attribute skal være :size kilobytes.',
|
||||||
'string' => ':attribute skal være <strong>:size karakterer</strong>.',
|
'string' => ':attribute skal være <strong>:size karakterer</strong>.',
|
||||||
'array' => ':attribute skal indeholde :size antal.',
|
'array' => ':attribute skal indeholde :size antal.',
|
||||||
],
|
],
|
||||||
'string' => ':attribute skal være en <strong>tekst</strong>.',
|
'starts_with' => ':attribute skal starte med en af følgende: :values',
|
||||||
'timezone' => ':attribute skal være en gyldig zone.',
|
'string' => ':attribute skal være en <strong>tekst</strong>.',
|
||||||
'unique' => ':attribute er allerede <strong>taget</strong>.',
|
'timezone' => ':attribute skal være en gyldig zone.',
|
||||||
'uploaded' => ':attribute <strong>kunne ikke</strong> uploades.',
|
'unique' => ':attribute er allerede <strong>taget</strong>.',
|
||||||
'url' => ':attribute formatet er <strong>ugyldigt</strong>.',
|
'uploaded' => ':attribute <strong>kunne ikke</strong> uploades.',
|
||||||
|
'url' => ':attribute formatet er <strong>ugyldigt</strong>.',
|
||||||
|
'uuid' => ':attribute skal være en gyldig UUID.',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -100,7 +142,7 @@ return [
|
|||||||
|
|
||||||
'custom' => [
|
'custom' => [
|
||||||
'attribute-name' => [
|
'attribute-name' => [
|
||||||
'rule-name' => 'brugerdefineret besked',
|
'rule-name' => 'brugerdefineret besked',
|
||||||
],
|
],
|
||||||
'invalid_currency' => 'Koden :attribute er ugyldig.',
|
'invalid_currency' => 'Koden :attribute er ugyldig.',
|
||||||
'invalid_amount' => 'Det valgte :attribute er ugyldigt.',
|
'invalid_amount' => 'Det valgte :attribute er ugyldigt.',
|
||||||
@ -112,9 +154,9 @@ return [
|
|||||||
| Custom Validation Attributes
|
| Custom Validation Attributes
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
|
||||||
| The following language lines are used to swap attribute place-holders
|
| The following language lines are used to swap our attribute placeholder
|
||||||
| with something more reader friendly such as E-Mail Address instead
|
| with something more reader friendly such as "E-Mail Address" instead
|
||||||
| of "email". This simply helps us make messages a little cleaner.
|
| of "email". This simply helps us make our message more expressive.
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ return [
|
|||||||
'color' => 'Farbe',
|
'color' => 'Farbe',
|
||||||
'save' => 'Speichern',
|
'save' => 'Speichern',
|
||||||
'confirm' => 'Bestätigen',
|
'confirm' => 'Bestätigen',
|
||||||
'cancel' => 'Abbrechen',
|
'cancel' => 'Stornieren',
|
||||||
'loading' => 'Wird geladen...',
|
'loading' => 'Wird geladen...',
|
||||||
'from' => 'Von',
|
'from' => 'Von',
|
||||||
'to' => 'An',
|
'to' => 'An',
|
||||||
|
@ -10,5 +10,9 @@ return [
|
|||||||
'bank_phone' => 'Bank Phone',
|
'bank_phone' => 'Bank Phone',
|
||||||
'bank_address' => 'Bank Address',
|
'bank_address' => 'Bank Address',
|
||||||
'default_account' => 'Default Account',
|
'default_account' => 'Default Account',
|
||||||
|
'incoming' => 'Incoming',
|
||||||
|
'outgoing' => 'Outgoing',
|
||||||
|
'see_performance' => 'See Performance',
|
||||||
|
'create_report' => 'If you want to see account performance. You can create Income vs Expense report instance.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -73,6 +73,7 @@ return [
|
|||||||
'add_new' => 'Add New',
|
'add_new' => 'Add New',
|
||||||
'add_income' => 'Add Income',
|
'add_income' => 'Add Income',
|
||||||
'add_expense' => 'Add Expense',
|
'add_expense' => 'Add Expense',
|
||||||
|
'add_transfer' => 'Add Transfer',
|
||||||
'show' => 'Show',
|
'show' => 'Show',
|
||||||
'edit' => 'Edit',
|
'edit' => 'Edit',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
|
@ -10,5 +10,9 @@ return [
|
|||||||
'bank_phone' => 'Bank Phone',
|
'bank_phone' => 'Bank Phone',
|
||||||
'bank_address' => 'Bank Address',
|
'bank_address' => 'Bank Address',
|
||||||
'default_account' => 'Default Account',
|
'default_account' => 'Default Account',
|
||||||
|
'incoming' => 'Incoming',
|
||||||
|
'outgoing' => 'Outgoing',
|
||||||
|
'see_performance' => 'See Performance',
|
||||||
|
'create_report' => 'If you want to see account performance. You can create Income vs Expense report instance.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -73,6 +73,7 @@ return [
|
|||||||
'add_new' => 'Add New',
|
'add_new' => 'Add New',
|
||||||
'add_income' => 'Add Income',
|
'add_income' => 'Add Income',
|
||||||
'add_expense' => 'Add Expense',
|
'add_expense' => 'Add Expense',
|
||||||
|
'add_transfer' => 'Add Transfer',
|
||||||
'show' => 'Show',
|
'show' => 'Show',
|
||||||
'edit' => 'Edit',
|
'edit' => 'Edit',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
|
@ -77,6 +77,12 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'transfer' => [
|
||||||
|
'choose_template' => 'स्थानांतरण टेम्पलेट चुनें',
|
||||||
|
'second' => 'दूसरा',
|
||||||
|
'third' => 'तीसरा',
|
||||||
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'description' => 'मूल खाता, मुद्रा, आपकी कंपनी की भाषा',
|
'description' => 'मूल खाता, मुद्रा, आपकी कंपनी की भाषा',
|
||||||
'list_limit' => 'प्रति पृष्ठ रेकार्ड',
|
'list_limit' => 'प्रति पृष्ठ रेकार्ड',
|
||||||
@ -115,6 +121,7 @@ return [
|
|||||||
'invoice_payment_admin' => 'भुगतान प्राप्त टेम्प्लेट (व्यवस्थापक को भेजा गया)',
|
'invoice_payment_admin' => 'भुगतान प्राप्त टेम्प्लेट (व्यवस्थापक को भेजा गया)',
|
||||||
'bill_remind_admin' => 'बिल स्मरणपत्र टेम्पलेट (व्यवस्थापक को भेजा गया)',
|
'bill_remind_admin' => 'बिल स्मरणपत्र टेम्पलेट (व्यवस्थापक को भेजा गया)',
|
||||||
'bill_recur_admin' => 'बिल आवर्ती टेम्पलेट (व्यवस्थापक को भेजा गया)',
|
'bill_recur_admin' => 'बिल आवर्ती टेम्पलेट (व्यवस्थापक को भेजा गया)',
|
||||||
|
'revenue_new_customer' => 'आय प्राप्त टेम्प्लेट (ग्राहक को भेजा गया)',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ return [
|
|||||||
'from_account_rate' => 'खाता दर से',
|
'from_account_rate' => 'खाता दर से',
|
||||||
'to_account' => 'खाते में',
|
'to_account' => 'खाते में',
|
||||||
'to_account_rate' => 'खाता दर के लिए',
|
'to_account_rate' => 'खाता दर के लिए',
|
||||||
|
'details' => 'विवरण|विवरण',
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
'delete' => ':from से :to (:amount)',
|
'delete' => ':from से :to (:amount)',
|
||||||
|
@ -3,12 +3,16 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'account_name' => 'Nama Akun',
|
'account_name' => 'Nama Akun',
|
||||||
'number' => 'Nomor',
|
'number' => 'Nomor Rekening',
|
||||||
'opening_balance' => 'Saldo Awal',
|
'opening_balance' => 'Saldo Awal',
|
||||||
'current_balance' => 'Saldo Saat Ini',
|
'current_balance' => 'Saldo Saat Ini',
|
||||||
'bank_name' => 'Nama Bank',
|
'bank_name' => 'Nama Bank',
|
||||||
'bank_phone' => 'Telepon Bank',
|
'bank_phone' => 'Telepon Bank',
|
||||||
'bank_address' => 'Alamat Bank',
|
'bank_address' => 'Alamat Bank',
|
||||||
'default_account' => 'Akun Default',
|
'default_account' => 'Akun Bawaan',
|
||||||
|
'incoming' => 'Masuk',
|
||||||
|
'outgoing' => 'Keluar',
|
||||||
|
'see_performance' => 'Lihat Kinerja',
|
||||||
|
'create_report' => 'Jika anda ingin melihat kinerja akun. Anda dapa membuat dalam bentuk wujud laporan Pemdapatan dan Pengeluaran.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -6,7 +6,7 @@ return [
|
|||||||
'logout' => 'Keluar',
|
'logout' => 'Keluar',
|
||||||
'login' => 'Masuk',
|
'login' => 'Masuk',
|
||||||
'login_to' => 'Masuk untuk memulai sesi Anda',
|
'login_to' => 'Masuk untuk memulai sesi Anda',
|
||||||
'remember_me' => 'Ingatkan Saya',
|
'remember_me' => 'Ingat Saya',
|
||||||
'forgot_password' => 'Lupa kata sandi',
|
'forgot_password' => 'Lupa kata sandi',
|
||||||
'reset_password' => 'Atur Ulang Kata Sandi',
|
'reset_password' => 'Atur Ulang Kata Sandi',
|
||||||
'enter_email' => 'Masukan Alamat Email Anda',
|
'enter_email' => 'Masukan Alamat Email Anda',
|
||||||
@ -23,9 +23,9 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'self_delete' => 'Error: Tidak dapat menghapus akun sendiri!',
|
'self_delete' => 'Kesalahan: Tidak dapat menghapus akun sendiri!',
|
||||||
'self_disable' => 'Error: Anda tidak dapat mengaktifkan akun Anda sendiri!',
|
'self_disable' => 'Kesalahan: Tidak dapat menonaktifkan akun sendiri!',
|
||||||
'no_company' => 'Error: Tidak ada perusahaan yang ditunjuk ke akun Anda. Silakan hubungi administrator sistem.',
|
'no_company' => 'Kesalahan: Tidak ada perusahaan yang ditunjuk ke akun Anda. Silakan hubungi administrator sistem.',
|
||||||
],
|
],
|
||||||
|
|
||||||
'failed' => 'Identitas ini tidak cocok dengan data kami.',
|
'failed' => 'Identitas ini tidak cocok dengan data kami.',
|
||||||
|
@ -7,7 +7,7 @@ return [
|
|||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_company' => 'Error: Anda tidak diperbolehkan merubah perusahaan ini!',
|
'not_user_company' => 'Error: Anda tidak diperbolehkan merubah perusahaan ini!',
|
||||||
'delete_active' => 'Kesalahan: kamu tidak dapat menghapus Perusahaan aktif, silahkan berpindah perusahaan terlebih dahulu!',
|
'delete_active' => 'Kesalahan: kamu tidak dapat menghapus Perusahaan aktif, Silakan, beralih ke yang lain dulu!',
|
||||||
'disable_active' => 'Kesalahan: Tidak dapat menonaktifkan perusahaan yang aktif. Silakan, beralih ke yang lain dulu!',
|
'disable_active' => 'Kesalahan: Tidak dapat menonaktifkan perusahaan yang aktif. Silakan, beralih ke yang lain dulu!',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'error' => [
|
'error' => [
|
||||||
'not_user_dashboard' => 'Error: Anda tidak diperbolehkan merubah perusahaan ini!',
|
'not_user_dashboard' => 'Error: Anda tidak diperbolehkan merubah dasbor ini!',
|
||||||
'delete_last' => 'Kesalahan: Tidak dapat menghapus dasbor terakhir. Tolong, buat yang baru dulu!',
|
'delete_last' => 'Kesalahan: Tidak dapat menghapus dasbor terakhir. Silahkan, buat yang baru dulu!',
|
||||||
'disable_last' => 'Kesalahan: Tidak dapat menghapus dasbor terakhir. Tolong, buat yang baru dulu!',
|
'disable_last' => 'Kesalahan: Tidak dapat menonaktifkan dasbor terakhir. Silahkan, buat yang baru dulu!',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -73,6 +73,7 @@ return [
|
|||||||
'add_new' => 'Tambah Baru',
|
'add_new' => 'Tambah Baru',
|
||||||
'add_income' => 'Tambahkan pendapatan',
|
'add_income' => 'Tambahkan pendapatan',
|
||||||
'add_expense' => 'Tambahkan Biaya',
|
'add_expense' => 'Tambahkan Biaya',
|
||||||
|
'add_transfer' => 'Tambahkan Transfer',
|
||||||
'show' => 'Tampilkan',
|
'show' => 'Tampilkan',
|
||||||
'edit' => 'Sunting',
|
'edit' => 'Sunting',
|
||||||
'delete' => 'Hapus',
|
'delete' => 'Hapus',
|
||||||
|
@ -24,7 +24,7 @@ return [
|
|||||||
'no_file' => 'Kesalahan: Tidak ada file dipilih!',
|
'no_file' => 'Kesalahan: Tidak ada file dipilih!',
|
||||||
'last_category' => 'Error: Tidak dapat menghapus kategori :type terakhir!',
|
'last_category' => 'Error: Tidak dapat menghapus kategori :type terakhir!',
|
||||||
'change_type' => 'Kesalahan: Tidak dapat mengubah jenis karena memiliki: teks terkait!',
|
'change_type' => 'Kesalahan: Tidak dapat mengubah jenis karena memiliki: teks terkait!',
|
||||||
'invalid_apikey' => 'Galat: Token yang dimasukkan tidak sah!',
|
'invalid_apikey' => 'Galat: Token API yang dimasukkan tidak sah!',
|
||||||
'import_column' => 'Kesalahan: :message Nama kolom: :column. Nomor baris: :line.',
|
'import_column' => 'Kesalahan: :message Nama kolom: :column. Nomor baris: :line.',
|
||||||
'import_sheet' => 'Error: Nama sheet tidak valid. Mohon untuk memeriksa contoh file yang tersedia.',
|
'import_sheet' => 'Error: Nama sheet tidak valid. Mohon untuk memeriksa contoh file yang tersedia.',
|
||||||
],
|
],
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'api_key' => 'Kunci API',
|
'api_key' => 'Token API',
|
||||||
'my_apps' => 'Aplikasi saya',
|
'my_apps' => 'Aplikasi saya',
|
||||||
'pre_sale' => 'Pra Penjualan',
|
'pre_sale' => 'Pra Penjualan',
|
||||||
'top_paid' => 'Dibayar atas',
|
'top_paid' => 'Dibayar atas',
|
||||||
@ -11,7 +11,7 @@ return [
|
|||||||
'free' => 'GRATIS',
|
'free' => 'GRATIS',
|
||||||
'install' => 'Pasang',
|
'install' => 'Pasang',
|
||||||
'buy_now' => 'Beli Sekarang',
|
'buy_now' => 'Beli Sekarang',
|
||||||
'get_api_key' => '<a href=":url" target="_blank">Klik disini</a> untuk mendapatkan Kunci API.',
|
'get_api_key' => '<a href=":url" target="_blank">Klik disini</a> untuk mendapatkan Token API.',
|
||||||
'no_apps' => 'Belum ada aplikasi dalam kategori ini.',
|
'no_apps' => 'Belum ada aplikasi dalam kategori ini.',
|
||||||
'become_developer' => 'Apakah Anda seorang pengembang? <a href=":url" target="_blank"> Di Sini </a> Anda dapat belajar cara membuat aplikasi dan mulai menjual hari ini!',
|
'become_developer' => 'Apakah Anda seorang pengembang? <a href=":url" target="_blank"> Di Sini </a> Anda dapat belajar cara membuat aplikasi dan mulai menjual hari ini!',
|
||||||
'recommended_apps' => 'Aplikasi yang direkomendasikan',
|
'recommended_apps' => 'Aplikasi yang direkomendasikan',
|
||||||
@ -33,7 +33,7 @@ return [
|
|||||||
|
|
||||||
'tab' => [
|
'tab' => [
|
||||||
'installation' => 'Instalasi',
|
'installation' => 'Instalasi',
|
||||||
'faq' => 'FAQ',
|
'faq' => 'Tanya jawab',
|
||||||
'changelog' => 'Perubahan Catatan',
|
'changelog' => 'Perubahan Catatan',
|
||||||
'reviews' => 'Ulasan',
|
'reviews' => 'Ulasan',
|
||||||
],
|
],
|
||||||
|
10
resources/lang/id-ID/revenues.php
Normal file
10
resources/lang/id-ID/revenues.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'revenue_received' => 'Pendapatan Diterima',
|
||||||
|
'paid_by' => 'Dibayar Oleh',
|
||||||
|
'related_invoice' => 'Faktur Terkait',
|
||||||
|
'create_revenue' => 'Membuat Pendapatan',
|
||||||
|
|
||||||
|
];
|
@ -77,6 +77,12 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'transfer' => [
|
||||||
|
'choose_template' => 'Pilih contoh transfer',
|
||||||
|
'second' => 'Kedua',
|
||||||
|
'third' => 'Ketiga',
|
||||||
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'description' => 'Akun default, mata uang, bahasa perusahaan Anda',
|
'description' => 'Akun default, mata uang, bahasa perusahaan Anda',
|
||||||
'list_limit' => 'Data Per Laman',
|
'list_limit' => 'Data Per Laman',
|
||||||
|
@ -6,6 +6,7 @@ return [
|
|||||||
'from_account_rate' => 'Dari Tarif Akun',
|
'from_account_rate' => 'Dari Tarif Akun',
|
||||||
'to_account' => 'Ke Akun',
|
'to_account' => 'Ke Akun',
|
||||||
'to_account_rate' => 'Ke Tarif Akun',
|
'to_account_rate' => 'Ke Tarif Akun',
|
||||||
|
'details' => 'Detil|Detil',
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
'delete' => ':from sampai :to (:amount)',
|
'delete' => ':from sampai :to (:amount)',
|
||||||
|
@ -4,6 +4,7 @@ return [
|
|||||||
|
|
||||||
'bill_number' => 'Број на сметка',
|
'bill_number' => 'Број на сметка',
|
||||||
'bill_date' => 'Датум на сметка',
|
'bill_date' => 'Датум на сметка',
|
||||||
|
'bill_amount' => 'Сума на Сметката',
|
||||||
'total_price' => 'Вкупна цена',
|
'total_price' => 'Вкупна цена',
|
||||||
'due_date' => 'Доспева на',
|
'due_date' => 'Доспева на',
|
||||||
'order_number' => 'Број на нарачка',
|
'order_number' => 'Број на нарачка',
|
||||||
|
11
resources/lang/mk-MK/dashboards.php
Normal file
11
resources/lang/mk-MK/dashboards.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'error' => [
|
||||||
|
'not_user_dashboard' => 'Error: Немате дозвола да ја измените оваа контролна табла!',
|
||||||
|
'delete_last' => 'Error: Неможе да се избрише последната контролна табла. Ве молиме, прво креирајте една нова.',
|
||||||
|
'disable_last' => 'Error: Неможе да се оневозможи последната контролна табла. Ве молиме, прво креирајте една нова.',
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
@ -8,27 +8,27 @@ return [
|
|||||||
|
|
||||||
'categories' => [
|
'categories' => [
|
||||||
'deposit' => 'Депозит',
|
'deposit' => 'Депозит',
|
||||||
'sales' => 'Продажба',
|
'sales' => 'Продажби',
|
||||||
],
|
],
|
||||||
|
|
||||||
'currencies' => [
|
'currencies' => [
|
||||||
'usd' => 'Американски Долар',
|
'usd' => 'Американски Долар',
|
||||||
'eur' => 'Евро',
|
'eur' => 'Евро',
|
||||||
'gbp' => 'Ангклиска Фунта',
|
'gbp' => 'Англиска Фунта',
|
||||||
'try' => 'Турска лира',
|
'try' => 'Турска лира',
|
||||||
],
|
],
|
||||||
|
|
||||||
'offline_payments' => [
|
'offline_payments' => [
|
||||||
'cash' => 'Готовина',
|
'cash' => 'Готовина',
|
||||||
'bank' => 'Банкарска уплата',
|
'bank' => 'Банкарски трансфер',
|
||||||
],
|
],
|
||||||
|
|
||||||
'reports' => [
|
'reports' => [
|
||||||
'income' => 'Месечен вкупен приход по категорија.',
|
'income' => 'Преглед на Месечен приход по категорија.',
|
||||||
'expense' => 'Месечен вкупен раход по категорија.',
|
'expense' => 'Преглед на Месечен расход по категорија.',
|
||||||
'income_expense' => 'Месечен приход спроти расход по категорија.',
|
'income_expense' => 'Месечен приход спрема расход по категорија.',
|
||||||
'tax' => 'Квартален извештај на данок.',
|
'tax' => 'Квартален извештај на данок.',
|
||||||
'profit_loss' => 'Квартален профит & загуба по категорија.',
|
'profit_loss' => 'Квартална добивка & загуба по категорија.',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'sales_price' => 'Продажна Цена',
|
'sales_price' => 'Продажна Цена',
|
||||||
'purchase_price' => 'Набавна цена',
|
'purchase_price' => 'Набавна цена',
|
||||||
|
'enter_item_description' => 'Внеси Опис на ставката',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
10
resources/lang/mk-MK/payments.php
Normal file
10
resources/lang/mk-MK/payments.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'payment_made' => 'Направено Плаќање',
|
||||||
|
'paid_to' => 'Платено На',
|
||||||
|
'related_bill' => 'Поврзана Сметка',
|
||||||
|
'create_payment' => 'Направи плаќање',
|
||||||
|
|
||||||
|
];
|
10
resources/lang/mk-MK/revenues.php
Normal file
10
resources/lang/mk-MK/revenues.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'revenue_received' => 'Примен Приход',
|
||||||
|
'paid_by' => 'Платено од',
|
||||||
|
'related_invoice' => 'Поврзана Фактура',
|
||||||
|
'create_revenue' => 'Креирај Приход',
|
||||||
|
|
||||||
|
];
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
|
'currencies' => 'Валути',
|
||||||
'total_income' => 'Вкупно приходи',
|
'total_income' => 'Вкупно приходи',
|
||||||
'receivables' => 'Побарувања',
|
'receivables' => 'Побарувања',
|
||||||
'open_invoices' => 'Отворени фактури',
|
'open_invoices' => 'Отворени фактури',
|
||||||
|
@ -3,18 +3,24 @@
|
|||||||
return [
|
return [
|
||||||
|
|
||||||
'company' => [
|
'company' => [
|
||||||
'description' => 'Endre bedriftsnavn, e-post, adresse, momsavgifter mm',
|
'description' => 'Endre bedriftsnavn, e-post, adresse, momsavgifter mm',
|
||||||
'name' => 'Navn',
|
'name' => 'Navn',
|
||||||
'email' => 'E-post',
|
'email' => 'E-post',
|
||||||
'phone' => 'Telefon',
|
'phone' => 'Telefon',
|
||||||
'address' => 'Adresse',
|
'address' => 'Adresse',
|
||||||
'logo' => 'Logo',
|
'edit_your_business_address' => 'Rediger forretningsadressen din',
|
||||||
|
'logo' => 'Logo',
|
||||||
],
|
],
|
||||||
|
|
||||||
'localisation' => [
|
'localisation' => [
|
||||||
'description' => 'Sett regnskapsår, tidssone, datoformat og mer',
|
'description' => 'Sett regnskapsår, tidssone, datoformat og mer',
|
||||||
'financial_start' => 'Start på regnskapsår',
|
'financial_start' => 'Start på regnskapsår',
|
||||||
'timezone' => 'Tidssone',
|
'timezone' => 'Tidssone',
|
||||||
|
'financial_denote' => [
|
||||||
|
'title' => 'Betegnelse regnskapsår',
|
||||||
|
'begins' => 'Til starten av året',
|
||||||
|
'ends' => 'Til slutten av året',
|
||||||
|
],
|
||||||
'date' => [
|
'date' => [
|
||||||
'format' => 'Datoformat',
|
'format' => 'Datoformat',
|
||||||
'separator' => 'Datoseparator',
|
'separator' => 'Datoseparator',
|
||||||
@ -71,12 +77,18 @@ return [
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'transfer' => [
|
||||||
|
'choose_template' => 'Velg overføringsmal',
|
||||||
|
'second' => 'Sekund',
|
||||||
|
'third' => 'Tredje',
|
||||||
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
'description' => 'Standard konto, valuta, språk for ditt foretak',
|
'description' => 'Standard konto, valuta, språk for ditt foretak',
|
||||||
'list_limit' => 'Oppføringer per side',
|
'list_limit' => 'Oppføringer per side',
|
||||||
'use_gravatar' => 'Bruk Gravatar',
|
'use_gravatar' => 'Bruk Gravatar',
|
||||||
'income_category' => 'Inntekter etter kategori',
|
'income_category' => 'Inntektskategori',
|
||||||
'expense_category' => 'Utgifter etter kategori',
|
'expense_category' => 'Utgiftskategori',
|
||||||
],
|
],
|
||||||
|
|
||||||
'email' => [
|
'email' => [
|
||||||
@ -109,6 +121,7 @@ return [
|
|||||||
'invoice_payment_admin' => 'Mottatt betalingsmal (sendt til admin)',
|
'invoice_payment_admin' => 'Mottatt betalingsmal (sendt til admin)',
|
||||||
'bill_remind_admin' => 'Fakturapåminnelsesmal (sendt til admin)',
|
'bill_remind_admin' => 'Fakturapåminnelsesmal (sendt til admin)',
|
||||||
'bill_recur_admin' => 'Gjentagende fakturamal (sendt til admin)',
|
'bill_recur_admin' => 'Gjentagende fakturamal (sendt til admin)',
|
||||||
|
'revenue_new_customer' => 'Mal mottatte inntekter (sendt til kunde)',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
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