mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 12:11:08 -04:00
Compare commits
65 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b7370ed85c | |||
| 818f2fbaf7 | |||
| 91a1dbf91c | |||
| a4d556f41e | |||
| 83de1c47ee | |||
| 678ace744a | |||
| 9e26fee1b0 | |||
| e455c3de50 | |||
| c4db50d3f0 | |||
| 411ee57946 | |||
| 9c5e9e56f5 | |||
| 8eeafd3fed | |||
| ed978d0174 | |||
| 607b1795bb | |||
| ead0ebb012 | |||
| d4550e62f8 | |||
| ff3846137e | |||
| b55f8e5391 | |||
| 0f1d7627ea | |||
| 1be462ef82 | |||
| 8b04e94446 | |||
| fa512629d9 | |||
| 0f99be6cf1 | |||
| fae3af2592 | |||
| d1e70c8989 | |||
| 63094e8112 | |||
| 1b46bddf56 | |||
| 422bf74600 | |||
| d003e61d41 | |||
| 09f74eb37c | |||
| 9227973a7a | |||
| 5011543198 | |||
| d07b63c365 | |||
| c12e27dbfe | |||
| 4ea32b94ed | |||
| fe93d5236c | |||
| 5992394bca | |||
| 6c9f5800e5 | |||
| 227cebcb0b | |||
| 6fd4cc6b3f | |||
| 594c8965c1 | |||
| 2241145a17 | |||
| 34f252b1c9 | |||
| 89e1d7bc84 | |||
| f0368deda2 | |||
| 4028551fd8 | |||
| 06f385a28e | |||
| 44aeff425b | |||
| 35a38d719c | |||
| f6ba81e8b7 | |||
| 64cb55fd5d | |||
| 13fe38517c | |||
| 3bdb501d1d | |||
| b8adbf4b07 | |||
| aa85a9950c | |||
| 8e63efee1b | |||
| ea98f03aeb | |||
| 90cd6226be | |||
| 9d2df64b2e | |||
| bade86a24f | |||
| c3b57b4888 | |||
| fcfedc5414 | |||
| 8dee0da434 | |||
| e4ab024422 | |||
| 2bd01c4014 |
21
.eslintrc
21
.eslintrc
@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"root": true,
|
|
||||||
"extends": [
|
|
||||||
"plugin:vue/recommended",
|
|
||||||
"eslint:recommended",
|
|
||||||
"prettier/vue",
|
|
||||||
"plugin:prettier/recommended"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"vue/max-attributes-per-line": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"singleline": 20,
|
|
||||||
"multiline": {
|
|
||||||
"max": 1,
|
|
||||||
"allowFirstLine": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
20
.eslintrc.js
Normal file
20
.eslintrc.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
env: {
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
'plugin:vue/recommended',
|
||||||
|
'eslint:recommended',
|
||||||
|
'prettier/vue',
|
||||||
|
'plugin:prettier/recommended',
|
||||||
|
],
|
||||||
|
parserOptions: {
|
||||||
|
parser: 'babel-eslint',
|
||||||
|
},
|
||||||
|
plugins: ['prettier'],
|
||||||
|
rules: {
|
||||||
|
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||||
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||||
|
},
|
||||||
|
}
|
||||||
@ -3,17 +3,20 @@
|
|||||||
namespace Crater\Console\Commands;
|
namespace Crater\Console\Commands;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Console\ConfirmableTrait;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
use Illuminate\Support\Facades\Artisan;
|
||||||
use Illuminate\Filesystem\Filesystem;
|
use Illuminate\Filesystem\Filesystem;
|
||||||
|
|
||||||
class ResetApp extends Command
|
class ResetApp extends Command
|
||||||
{
|
{
|
||||||
|
use ConfirmableTrait;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name and signature of the console command.
|
* The name and signature of the console command.
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $signature = 'reset:app';
|
protected $signature = 'reset:app {--force}';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The console command description.
|
* The console command description.
|
||||||
@ -39,13 +42,28 @@ class ResetApp extends Command
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
if ($this->confirm('Do you wish to continue? This will delete your tables')) {
|
if (!$this->confirmToProceed()) {
|
||||||
Artisan::call('migrate:reset --force');
|
return;
|
||||||
|
|
||||||
\Storage::disk('local')->delete('database_created');
|
|
||||||
|
|
||||||
// $file = new Filesystem;
|
|
||||||
// $file->cleanDirectory('public/storage');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->info('Running migrate:fresh');
|
||||||
|
|
||||||
|
Artisan::call('migrate:fresh --seed --force');
|
||||||
|
|
||||||
|
$this->info('Seeding database');
|
||||||
|
|
||||||
|
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
|
||||||
|
|
||||||
|
$path = base_path('.env');
|
||||||
|
|
||||||
|
if (file_exists($path)) {
|
||||||
|
file_put_contents($path, str_replace(
|
||||||
|
'APP_DEBUG=true',
|
||||||
|
'APP_DEBUG=false',
|
||||||
|
file_get_contents($path)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->info('App has been reset successfully');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,10 +22,17 @@ class Company extends Model implements HasMedia
|
|||||||
public function getLogoAttribute()
|
public function getLogoAttribute()
|
||||||
{
|
{
|
||||||
$logo = $this->getMedia('logo')->first();
|
$logo = $this->getMedia('logo')->first();
|
||||||
|
|
||||||
|
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
||||||
|
|
||||||
if ($logo) {
|
if ($logo) {
|
||||||
return asset($logo->getUrl());
|
if ($isSystem) {
|
||||||
|
return $logo->getPath();
|
||||||
|
} else {
|
||||||
|
return $logo->getFullUrl();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function user()
|
public function user()
|
||||||
|
|||||||
@ -33,9 +33,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
protected $dates = [
|
protected $dates = [
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'deleted_at',
|
'deleted_at'
|
||||||
'estimate_date',
|
|
||||||
'expiry_date'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $appends = [
|
protected $appends = [
|
||||||
@ -77,7 +75,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
{
|
{
|
||||||
// Get the last created order
|
// Get the last created order
|
||||||
$lastOrder = Estimate::where('estimate_number', 'LIKE', $value . '-%')
|
$lastOrder = Estimate::where('estimate_number', 'LIKE', $value . '-%')
|
||||||
->orderBy('created_at', 'desc')
|
->orderBy('estimate_number', 'desc')
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
if (!$lastOrder) {
|
if (!$lastOrder) {
|
||||||
@ -428,16 +426,7 @@ class Estimate extends Model implements HasMedia
|
|||||||
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
|
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
|
||||||
|
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'estimate' => $this,
|
'estimate' => $this,
|
||||||
|
|||||||
@ -39,9 +39,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
protected $dates = [
|
protected $dates = [
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'deleted_at',
|
'deleted_at'
|
||||||
'invoice_date',
|
|
||||||
'due_date'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
@ -81,7 +79,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
{
|
{
|
||||||
// Get the last created order
|
// Get the last created order
|
||||||
$lastOrder = Invoice::where('invoice_number', 'LIKE', $value . '-%')
|
$lastOrder = Invoice::where('invoice_number', 'LIKE', $value . '-%')
|
||||||
->orderBy('created_at', 'desc')
|
->orderBy('invoice_number', 'desc')
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
|
|
||||||
@ -363,11 +361,11 @@ class Invoice extends Model implements HasMedia
|
|||||||
}
|
}
|
||||||
|
|
||||||
$invoice = Invoice::with([
|
$invoice = Invoice::with([
|
||||||
'items',
|
'items',
|
||||||
'user',
|
'user',
|
||||||
'invoiceTemplate',
|
'invoiceTemplate',
|
||||||
'taxes'
|
'taxes'
|
||||||
])
|
])
|
||||||
->find($invoice->id);
|
->find($invoice->id);
|
||||||
|
|
||||||
return $invoice;
|
return $invoice;
|
||||||
@ -512,16 +510,7 @@ class Invoice extends Model implements HasMedia
|
|||||||
|
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
|
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'invoice' => $this,
|
'invoice' => $this,
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class Payment extends Model implements HasMedia
|
|||||||
const PAYMENT_MODE_CREDIT_CARD = 'CREDIT_CARD';
|
const PAYMENT_MODE_CREDIT_CARD = 'CREDIT_CARD';
|
||||||
const PAYMENT_MODE_BANK_TRANSFER = 'BANK_TRANSFER';
|
const PAYMENT_MODE_BANK_TRANSFER = 'BANK_TRANSFER';
|
||||||
|
|
||||||
protected $dates = ['created_at', 'updated_at', 'payment_date'];
|
protected $dates = ['created_at', 'updated_at'];
|
||||||
|
|
||||||
protected $guarded = ['id'];
|
protected $guarded = ['id'];
|
||||||
|
|
||||||
@ -373,16 +373,7 @@ class Payment extends Model implements HasMedia
|
|||||||
{
|
{
|
||||||
$company = Company::find($this->company_id);
|
$company = Company::find($this->company_id);
|
||||||
|
|
||||||
$logo = $company->getMedia('logo')->first();
|
$logo = $company->logo;
|
||||||
|
|
||||||
$isSystem = FileDisk::whereSetAsDefault(true)->first()->isSystem();
|
|
||||||
$isLocalhost = config('session.domain') === 'localhost';
|
|
||||||
|
|
||||||
if ($logo && $isLocalhost && $isSystem) {
|
|
||||||
$logo = $logo->getPath();
|
|
||||||
} else if($logo) {
|
|
||||||
$logo = $logo->getFullUrl();
|
|
||||||
}
|
|
||||||
|
|
||||||
view()->share([
|
view()->share([
|
||||||
'payment' => $this,
|
'payment' => $this,
|
||||||
|
|||||||
@ -17,10 +17,11 @@ return [
|
|||||||
["code"=>"fr", "name" => "French"],
|
["code"=>"fr", "name" => "French"],
|
||||||
["code"=>"de", "name" => "German"],
|
["code"=>"de", "name" => "German"],
|
||||||
["code"=>"it", "name" => "Italian"],
|
["code"=>"it", "name" => "Italian"],
|
||||||
["code"=>"pt_BR", "name" => "Portuguese (Brazilian)"],
|
|
||||||
["code"=>"es", "name" => "Spanish"],
|
|
||||||
["code"=>"lv", "name" => "Latvian"],
|
["code"=>"lv", "name" => "Latvian"],
|
||||||
["code"=>"sr_LA", "name" => "Serbian Latin"],
|
["code"=>"pt_BR", "name" => "Portuguese (Brazilian)"],
|
||||||
|
["code"=>"sr", "name" => "Serbian Latin"],
|
||||||
|
["code"=>"es", "name" => "Spanish"],
|
||||||
|
["code"=>"sv", "name"=> "Svenska"]
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Crater\Models\Setting;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class UpdateCraterVersion402 extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Setting::setSetting('version', '4.0.2');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Crater\Models\Setting;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class UpdateCraterVersion403 extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Setting::setSetting('version', '4.0.3');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Crater\Models\Setting;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class UpdateCraterVersion404 extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Setting::setSetting('version', '4.0.4');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
13060
package-lock.json
generated
13060
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
95
package.json
95
package.json
@ -1,49 +1,50 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"dev": "mix",
|
||||||
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"watch": "mix watch",
|
||||||
"watch-poll": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"watch-poll": "mix watch -- --watch-options-poll=1000",
|
||||||
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
|
"hot": "mix watch --hot",
|
||||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
"production": "mix --production"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^8.2.6",
|
"babel-eslint": "^8.2.6",
|
||||||
"cross-env": "^5.1",
|
"cross-env": "^5.1",
|
||||||
"eslint": "^4.19.1",
|
"eslint": "^4.19.1",
|
||||||
"eslint-config-prettier": "^6.10.1",
|
"eslint-config-prettier": "^6.15.0",
|
||||||
"eslint-loader": "^3.0.3",
|
"eslint-loader": "^3.0.4",
|
||||||
"eslint-plugin-prettier": "^3.1.2",
|
"eslint-plugin-prettier": "^3.3.0",
|
||||||
"eslint-plugin-vue": "^4.7.1",
|
"eslint-plugin-vue": "^4.7.1",
|
||||||
"laravel-mix": "^5.0.7",
|
"laravel-mix": "^6.0.6",
|
||||||
"prettier": "^2.0.2",
|
"postcss": "^8.1",
|
||||||
"resolve-url-loader": "3.1.0",
|
"prettier": "^2.2.1",
|
||||||
"sass": "^1.29.0",
|
"resolve-url-loader": "3.1.0",
|
||||||
"sass-loader": "^8.0.2",
|
"sass": "^1.29.0",
|
||||||
"tailwindcss-plugins": "^0.3.0",
|
"sass-loader": "^8.0.2",
|
||||||
"vue-template-compiler": "^2.6.10"
|
"tailwindcss-plugins": "^0.3.0",
|
||||||
},
|
"vue-template-compiler": "^2.6.10"
|
||||||
"dependencies": {
|
},
|
||||||
"@bytefury/spacewind": "^0.3.3",
|
"dependencies": {
|
||||||
"@vue-hero-icons/outline": "^1.6.3",
|
"@bytefury/spacewind": "^0.5.0",
|
||||||
"@vue-hero-icons/solid": "^1.6.3",
|
"@vue-hero-icons/outline": "^1.6.3",
|
||||||
"axios": "^0.19",
|
"@vue-hero-icons/solid": "^1.6.3",
|
||||||
"chart.js": "^2.7.3",
|
"axios": "^0.19",
|
||||||
"guid": "0.0.12",
|
"chart.js": "^2.7.3",
|
||||||
"lodash": "^4.17.13",
|
"guid": "0.0.12",
|
||||||
"moment": "^2.29.1",
|
"lodash": "^4.17.13",
|
||||||
"sweet-modal-vue": "^2.0.0",
|
"moment": "^2.29.1",
|
||||||
"sweetalert": "^2.1.2",
|
"sweet-modal-vue": "^2.0.0",
|
||||||
"tailwindcss": "^1.9.1",
|
"sweetalert": "^2.1.2",
|
||||||
"toastr": "^2.1.4",
|
"tailwindcss": "^2.0.1",
|
||||||
"v-tooltip": "^2.0.2",
|
"toastr": "^2.1.4",
|
||||||
"vue": "^2.6.10",
|
"v-tooltip": "^2.0.2",
|
||||||
"vue-i18n": "^8.22.0",
|
"vue": "^2.6.10",
|
||||||
"vue-loader": "^15.9.3",
|
"vue-i18n": "^8.22.0",
|
||||||
"vue-router": "2.7.0",
|
"vue-loader": "^15.9.3",
|
||||||
"vue2-transitions": "^0.3.0",
|
"vue-router": "2.7.0",
|
||||||
"vuedraggable": "^2.24.2",
|
"vue2-transitions": "^0.3.0",
|
||||||
"vuelidate": "^0.6.2",
|
"vuedraggable": "^2.24.2",
|
||||||
"vuex": "^3.0.1"
|
"vuelidate": "^0.6.2",
|
||||||
}
|
"vuex": "^3.0.1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
public/assets/css/crater.css
vendored
2
public/assets/css/crater.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,26 +1,24 @@
|
|||||||
/* flatpickr v4.6.6, @license MIT */
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* tiptap v1.29.6
|
* tiptap v1.30.0
|
||||||
* (c) 2020 überdosis GbR (limited liability)
|
* (c) 2021 überdosis GbR (limited liability)
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* tiptap-commands v1.14.6
|
* tiptap-commands v1.15.0
|
||||||
* (c) 2020 überdosis GbR (limited liability)
|
* (c) 2021 überdosis GbR (limited liability)
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* tiptap-extensions v1.33.1
|
* tiptap-extensions v1.33.2
|
||||||
* (c) 2020 überdosis GbR (limited liability)
|
* (c) 2021 überdosis GbR (limited liability)
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* tiptap-utils v1.10.4
|
* tiptap-utils v1.11.0
|
||||||
* (c) 2020 überdosis GbR (limited liability)
|
* (c) 2021 überdosis GbR (limited liability)
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -69,13 +67,6 @@
|
|||||||
* Date: 2020-03-14
|
* Date: 2020-03-14
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
* The buffer module from node.js, for the browser.
|
|
||||||
*
|
|
||||||
* @author Feross Aboukhadijeh <http://feross.org>
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Vue.js v2.6.12
|
* Vue.js v2.6.12
|
||||||
* (c) 2014-2020 Evan You
|
* (c) 2014-2020 Evan You
|
||||||
@ -96,6 +87,12 @@
|
|||||||
* Date: 2020-05-04T22:49Z
|
* Date: 2020-05-04T22:49Z
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* vue-i18n v8.22.2
|
||||||
|
* (c) 2020 kazuya kawaguchi
|
||||||
|
* Released under the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* vue2-transitions v0.3.0
|
* vue2-transitions v0.3.0
|
||||||
* (c) 2019-present cristij <joracristi@gmail.com>
|
* (c) 2019-present cristij <joracristi@gmail.com>
|
||||||
@ -103,40 +100,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* vuex v3.5.1
|
* vuex v3.6.0
|
||||||
* (c) 2020 Evan You
|
* (c) 2020 Evan You
|
||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! *****************************************************************************
|
|
||||||
Copyright (c) Microsoft Corporation.
|
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
purpose with or without fee is hereby granted.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
***************************************************************************** */
|
|
||||||
|
|
||||||
/*! For license information please see index.js.LICENSE.txt */
|
/*! For license information please see index.js.LICENSE.txt */
|
||||||
|
|
||||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
|
||||||
|
|
||||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
|
|
||||||
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* vue-router v2.7.0
|
|
||||||
* (c) 2017 Evan You
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @license
|
* @license
|
||||||
* Lodash <https://lodash.com/>
|
* Lodash <https://lodash.com/>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"/assets/js/app.js": "/assets/js/app.js?id=bb2c4150e0caffb9f475",
|
"/assets/js/app.js": "/assets/js/app.js?id=2fe48b55fc5693cab09f",
|
||||||
"/assets/css/crater.css": "/assets/css/crater.css?id=180193a313e33aed1712"
|
"/assets/css/crater.css": "/assets/css/crater.css?id=7a822f915d7e413148f6"
|
||||||
}
|
}
|
||||||
|
|||||||
14
readme.md
14
readme.md
@ -68,14 +68,24 @@ Crater is a product of [Bytefury](https://bytefury.com)
|
|||||||
**Special thanks to:**
|
**Special thanks to:**
|
||||||
|
|
||||||
- [Birkhoff Lee](https://github.com/BirkhoffLee)
|
- [Birkhoff Lee](https://github.com/BirkhoffLee)
|
||||||
- [Hassan A. Ba Abdullah](https://github.com/hsnapps)
|
|
||||||
- [Akaunting](https://github.com/akaunting/akaunting)
|
- [Akaunting](https://github.com/akaunting/akaunting)
|
||||||
|
- [MakerLab](https://github.com/MakerLab-Dev)
|
||||||
|
|
||||||
## Translate
|
## Translate
|
||||||
|
|
||||||
Help us translate on https://crowdin.com/project/crater-invoice
|
Help us translate on https://crowdin.com/project/crater-invoice
|
||||||
|
|
||||||
|
**Thanks to Translation Contributors:**
|
||||||
|
|
||||||
|
- [Hassan A. Ba Abdullah (Arabic)](https://github.com/hsnapps)
|
||||||
|
- [Clément de Louvencourt (French)](https://github.com/PHClement)
|
||||||
|
- [Robin Delattre (French)](https://github.com/RobinDev)
|
||||||
|
- [René Loos (Dutch)](https://github.com/Loosie94)
|
||||||
|
- [Stefan Azarić (Serbian)](https://github.com/azaricstefan)
|
||||||
|
- [Emmanuel Lampe (German)](https://github.com/rexlManu)
|
||||||
|
- [edevrob (Latvian)](https://github.com/edevrob)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Crater is released under the Attribution Assurance License.
|
Crater is released under the Attribution Assurance License.
|
||||||
See [LICENSE](LICENSE) for details.
|
See [LICENSE](https://craterapp.com/license) for full details & use-cases.
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* include Vue and Vue Resource. This gives a great starting point for
|
* include Vue and Vue Resource. This gives a great starting point for
|
||||||
* building robust, powerful web applications using Vue and Laravel.
|
* building robust, powerful web applications using Vue and Laravel.
|
||||||
*/
|
*/
|
||||||
|
import Vue from 'vue'
|
||||||
import router from './router.js'
|
import router from './router.js'
|
||||||
import store from './store/index'
|
import store from './store/index'
|
||||||
import utils from './helpers/utilities'
|
import utils from './helpers/utilities'
|
||||||
@ -11,7 +12,7 @@ import swal from 'sweetalert'
|
|||||||
|
|
||||||
require('./bootstrap')
|
require('./bootstrap')
|
||||||
|
|
||||||
window.Vue.prototype.$utils = utils
|
Vue.prototype.$utils = utils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Next, we will create a fresh Vue application instance and attach it to
|
* Next, we will create a fresh Vue application instance and attach it to
|
||||||
|
|||||||
13
resources/assets/js/bootstrap.js
vendored
13
resources/assets/js/bootstrap.js
vendored
@ -25,13 +25,6 @@ Vue.use(Vuelidate)
|
|||||||
Vue.use(Transitions)
|
Vue.use(Transitions)
|
||||||
|
|
||||||
window._ = require('lodash')
|
window._ = require('lodash')
|
||||||
/**
|
|
||||||
* Vue is a modern JavaScript library for building interactive web interfaces
|
|
||||||
* using reactive data binding and reusable components. Vue's API is clean
|
|
||||||
* and simple, leaving you to focus on building your next great project.
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.Vue = require('vue')
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom Directives
|
* Custom Directives
|
||||||
@ -97,7 +90,8 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
|||||||
}
|
}
|
||||||
if (!err.response) {
|
if (!err.response) {
|
||||||
window.toastr['error'](
|
window.toastr['error'](
|
||||||
'Please check your internet connection or wait until servers are back online', 'Network Error'
|
'Please check your internet connection or wait until servers are back online',
|
||||||
|
'Network Error'
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
@ -121,7 +115,8 @@ global.axios.interceptors.response.use(undefined, function (err) {
|
|||||||
window.toastr['error'](
|
window.toastr['error'](
|
||||||
err.response.data.message
|
err.response.data.message
|
||||||
? err.response.data.message
|
? err.response.data.message
|
||||||
: err.response.data || 'Unknown error occurred', 'Error'
|
: err.response.data || 'Unknown error occurred',
|
||||||
|
'Error'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,8 +18,6 @@
|
|||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import SwDatePicker from '@bytefury/spacewind/src/components/SwDatePicker'
|
import SwDatePicker from '@bytefury/spacewind/src/components/SwDatePicker'
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
const fromMomentDate = (date, format = 'YYYY-MM-DD') =>
|
|
||||||
moment(new Date(date), format)
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -76,13 +74,17 @@ export default {
|
|||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value(val) {
|
// value(val) {
|
||||||
if (val && !this.enableTime) {
|
// console.log(val)
|
||||||
this.date = fromMomentDate(val, 'YYYY-MM-DD').format('YYYY-MM-DD')
|
|
||||||
} else {
|
// if (val && !this.enableTime) {
|
||||||
this.date = fromMomentDate(val, 'YYYY-MM-DD').format('YYYY-MM-DD H:m:s')
|
// this.date = moment(new Date(val), 'YYYY-MM-DD').format('YYYY-MM-DD')
|
||||||
}
|
// } else {
|
||||||
},
|
// this.date = moment(new Date(val), 'YYYY-MM-DD').format(
|
||||||
|
// 'YYYY-MM-DD H:m:s'
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
// },
|
||||||
enableTime(val) {
|
enableTime(val) {
|
||||||
this.$set(this.config, 'enableTime', this.enableTime)
|
this.$set(this.config, 'enableTime', this.enableTime)
|
||||||
},
|
},
|
||||||
@ -104,6 +106,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$set(this.config, 'enableTime', this.enableTime)
|
this.$set(this.config, 'enableTime', this.enableTime)
|
||||||
|
|
||||||
if (!this.enableTime) {
|
if (!this.enableTime) {
|
||||||
this.$set(
|
this.$set(
|
||||||
this.config,
|
this.config,
|
||||||
@ -117,12 +120,16 @@ export default {
|
|||||||
this.carbonFormat ? `${this.carbonFormat} H:i ` : 'd M Y H:i'
|
this.carbonFormat ? `${this.carbonFormat} H:i ` : 'd M Y H:i'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.value && !this.enableTime) {
|
if (this.value && !this.enableTime) {
|
||||||
this.date = fromMomentDate(this.value, 'YYYY-MM-DD').format('YYYY-MM-DD')
|
this.date = moment(new Date(this.value), 'YYYY-MM-DD').format(
|
||||||
|
'YYYY-MM-DD'
|
||||||
|
)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.value) {
|
if (this.value) {
|
||||||
this.date = fromMomentDate(this.value, 'YYYY-MM-DD').format(
|
this.date = moment(new Date(this.value), 'YYYY-MM-DD').format(
|
||||||
'YYYY-MM-DD HH:mm:SS'
|
'YYYY-MM-DD HH:mm:SS'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -130,7 +137,6 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
onDateChange(date) {
|
onDateChange(date) {
|
||||||
this.$emit('input', date)
|
this.$emit('input', date)
|
||||||
this.$emit('change', date)
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
import BaseModal from './modal/BaseModal.vue'
|
import BaseModal from './modal/BaseModal.vue'
|
||||||
import BaseLoader from './BaseLoader.vue'
|
import BaseLoader from './BaseLoader.vue'
|
||||||
import BaseCustomerSelect from './BaseCustomerSelect.vue'
|
import BaseCustomerSelect from './BaseCustomerSelect.vue'
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
</sw-modal>
|
</sw-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { XIcon } from '@vue-hero-icons/solid'
|
import { XIcon } from '@vue-hero-icons/solid'
|
||||||
import { mapActions, mapGetters } from 'vuex'
|
import { mapActions, mapGetters } from 'vuex'
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="template-modal">
|
<div class="template-modal">
|
||||||
<div class="px-8 py-8 sm:p-6">
|
<div class="px-8 py-8 sm:p-6">
|
||||||
<div class="flex flex-wrap justify-start p-1 overflow-x-auto sw-scroll">
|
<div class="grid grid-cols-3 gap-2 p-1 overflow-x-auto sw-scroll">
|
||||||
<div
|
<div
|
||||||
v-for="(template, index) in modalData"
|
v-for="(template, index) in modalData"
|
||||||
:key="index"
|
:key="index"
|
||||||
@ -9,21 +9,28 @@
|
|||||||
'border border-solid border-primary-500':
|
'border border-solid border-primary-500':
|
||||||
selectedTemplate === template.id,
|
selectedTemplate === template.id,
|
||||||
}"
|
}"
|
||||||
class="relative m-2 border border-gray-200 border-solid"
|
class="relative flex flex-col m-2 border border-gray-200 border-solid cursor-pointer hover:border-primary-300"
|
||||||
|
@click="selectedTemplate = template.id"
|
||||||
>
|
>
|
||||||
<img
|
<img :src="template.path" alt="template-image" />
|
||||||
:src="template.path"
|
|
||||||
alt="template-image"
|
|
||||||
height="200"
|
|
||||||
width="140"
|
|
||||||
@click="selectedTemplate = template.id"
|
|
||||||
/>
|
|
||||||
<img
|
<img
|
||||||
v-if="selectedTemplate === template.id"
|
v-if="selectedTemplate === template.id"
|
||||||
class="absolute z-10 w-5 h-5 text-primary-500"
|
class="absolute z-10 w-5 h-5 text-primary-500"
|
||||||
style="top: -6px; right: -5px"
|
style="top: -6px; right: -5px"
|
||||||
src="/assets/img/tick.png"
|
src="/assets/img/tick.png"
|
||||||
/>
|
/>
|
||||||
|
<span
|
||||||
|
:class="[
|
||||||
|
'w-full p-1 bg-gray-200 text-sm text-center absolute bottom-0 left-0',
|
||||||
|
{
|
||||||
|
'text-primary-500 bg-primary-100':
|
||||||
|
selectedTemplate === template.id,
|
||||||
|
'text-gray-600': selectedTemplate != template.id,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
{{ template.name }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="template-modal">
|
<div class="template-modal">
|
||||||
<div class="px-8 py-8 sm:p-6">
|
<div class="px-8 py-8 sm:p-6">
|
||||||
<div class="flex flex-wrap justify-start p-1 overflow-x-auto sw-scroll">
|
<div class="grid grid-cols-3 gap-2 p-1 overflow-x-auto sw-scroll">
|
||||||
<div
|
<div
|
||||||
v-for="(template, index) in modalData"
|
v-for="(template, index) in modalData"
|
||||||
:key="index"
|
:key="index"
|
||||||
@ -9,21 +9,28 @@
|
|||||||
'border border-solid border-primary-500':
|
'border border-solid border-primary-500':
|
||||||
selectedTemplate === template.id,
|
selectedTemplate === template.id,
|
||||||
}"
|
}"
|
||||||
class="relative m-2 border border-gray-200 border-solid"
|
class="relative flex flex-col m-2 border border-gray-200 border-solid cursor-pointer hover:border-primary-300"
|
||||||
|
@click="selectedTemplate = template.id"
|
||||||
>
|
>
|
||||||
<img
|
<img :src="template.path" alt="template-image" />
|
||||||
:src="template.path"
|
|
||||||
alt="template-image"
|
|
||||||
height="200"
|
|
||||||
width="140"
|
|
||||||
@click="selectedTemplate = template.id"
|
|
||||||
/>
|
|
||||||
<img
|
<img
|
||||||
v-if="selectedTemplate === template.id"
|
v-if="selectedTemplate === template.id"
|
||||||
class="absolute z-10 w-5 h-5 text-primary-500"
|
class="absolute z-10 w-5 h-5 text-primary-500"
|
||||||
style="top: -6px; right: -5px"
|
style="top: -6px; right: -5px"
|
||||||
src="/assets/img/tick.png"
|
src="/assets/img/tick.png"
|
||||||
/>
|
/>
|
||||||
|
<span
|
||||||
|
:class="[
|
||||||
|
'w-full p-1 bg-gray-200 text-sm text-center absolute bottom-0 left-0',
|
||||||
|
{
|
||||||
|
'text-primary-500 bg-primary-100':
|
||||||
|
selectedTemplate === template.id,
|
||||||
|
'text-gray-600': selectedTemplate != template.id,
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
{{ template.name }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
:options="itemUnits"
|
:options="itemUnits"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:maxHeight="200"
|
:max-height="200"
|
||||||
label="name"
|
label="name"
|
||||||
>
|
>
|
||||||
</sw-select>
|
</sw-select>
|
||||||
@ -160,7 +160,7 @@ export default {
|
|||||||
return this.formData.price / 100
|
return this.formData.price / 100
|
||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
this.formData.price = newValue * 100
|
this.formData.price = Math.round(newValue * 100)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -36,12 +36,12 @@
|
|||||||
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none"
|
class="flex items-center justify-center w-full px-2 py-3 bg-gray-200 border-none outline-none hover:bg-gray-300"
|
||||||
@click="openNoteModal"
|
@click="openNoteModal"
|
||||||
>
|
>
|
||||||
<check-circle-icon class="h-5" />
|
<check-circle-icon class="h-5" />
|
||||||
<label
|
<label
|
||||||
class="m-0 ml-3 text-sm leading-none cursor-pointer font-base text-primary-400"
|
class="m-0 ml-1 text-sm leading-none cursor-pointer font-base text-primary-400"
|
||||||
>
|
>
|
||||||
{{ $t('settings.customization.notes.add_new_note') }}
|
{{ $t('settings.customization.notes.add_new_note') }}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@ -12,7 +12,7 @@ export default {
|
|||||||
disabledMultiSelectTags: 'bg-gray-200 text-gray-400',
|
disabledMultiSelectTags: 'bg-gray-200 text-gray-400',
|
||||||
multiselectTagsWrap: 'multiselect__tags-wrap inline',
|
multiselectTagsWrap: 'multiselect__tags-wrap inline',
|
||||||
multiselectTag:
|
multiselectTag:
|
||||||
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-no-wrap overflow-hidden max-w-full',
|
'multiselect__tag relative inline-block pt-1 pr-6 pb-1 pl-2 rounded mr-2 text-white leading-none mb-1 whitespace-nowrap overflow-hidden max-w-full',
|
||||||
multiselectTagIcon:
|
multiselectTagIcon:
|
||||||
'multiselect__tag-icon cursor-pointer ml-2 absolute right-0 top-0 bottom-0 font-bold w-5 text-center leading-5 delay-200 transition-all ease-linear rounded',
|
'multiselect__tag-icon cursor-pointer ml-2 absolute right-0 top-0 bottom-0 font-bold w-5 text-center leading-5 delay-200 transition-all ease-linear rounded',
|
||||||
multiselectStrong: 'mb-2 leading-5 inline-block align-top',
|
multiselectStrong: 'mb-2 leading-5 inline-block align-top',
|
||||||
@ -26,6 +26,6 @@ export default {
|
|||||||
multiselectContent:
|
multiselectContent:
|
||||||
'multiselect__content list-none inline-block p-0 m-0 min-w-full align-top',
|
'multiselect__content list-none inline-block p-0 m-0 min-w-full align-top',
|
||||||
multiselectOption:
|
multiselectOption:
|
||||||
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-no-wrap text-sm',
|
'multiselect__option block p-3 no-underline leading-4 normal-case align-middle relative cursor-pointer whitespace-nowrap text-sm',
|
||||||
multiselectElement: 'multiselect__element block',
|
multiselectElement: 'multiselect__element block',
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,7 +73,7 @@ export default {
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
label: function (tooltipItem, data) {
|
label: function (tooltipItem, data) {
|
||||||
return self.FormatGraphMoney(
|
return self.FormatGraphMoney(
|
||||||
tooltipItem.value * 100,
|
Math.round(tooltipItem.value * 100),
|
||||||
self.defaultCurrency
|
self.defaultCurrency
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@ -13,4 +13,10 @@ export default {
|
|||||||
'inline-flex items-center justify-center text-black transition px-2 duration-150 ease-in-out border border-gray-300 border-solid focus:outline-none bg-white',
|
'inline-flex items-center justify-center text-black transition px-2 duration-150 ease-in-out border border-gray-300 border-solid focus:outline-none bg-white',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
sizes: {
|
||||||
|
discount: {
|
||||||
|
button: 'py-2 px-2 text-sm leading-5 rounded',
|
||||||
|
loadingIcon: 'w-4 h-4 -ml-2',
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ export default {
|
|||||||
itemContainer:
|
itemContainer:
|
||||||
'z-10 p-2 max-h-60 text-base text-left list-none rounded border-0 shadow bg-white text-black overflow-auto sw-scroll',
|
'z-10 p-2 max-h-60 text-base text-left list-none rounded border-0 shadow bg-white text-black overflow-auto sw-scroll',
|
||||||
item:
|
item:
|
||||||
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
'flex p-2 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||||
},
|
},
|
||||||
variants: {
|
variants: {
|
||||||
@ -16,7 +16,7 @@ export default {
|
|||||||
divider:
|
divider:
|
||||||
'border-t border-solid border-gray-200 my-2 mx-0 overflow-hidden',
|
'border-t border-solid border-gray-200 my-2 mx-0 overflow-hidden',
|
||||||
item:
|
item:
|
||||||
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-no-wrap',
|
'flex p-0 text-sm font-light text-left text-black bg-transparent rounded cursor-pointer none hover:bg-gray-200 whitespace-nowrap',
|
||||||
itemContainer:
|
itemContainer:
|
||||||
'z-10 p-2 text-base text-left list-none rounded border-0 shadow bg-white text-black',
|
'z-10 p-2 text-base text-left list-none rounded border-0 shadow bg-white text-black',
|
||||||
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
itemIcon: 'w-5 h-5 mr-3 text-secondary',
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
Vue.directive('click-outside', {
|
Vue.directive('click-outside', {
|
||||||
bind: function (el, binding, vnode) {
|
bind: function (el, binding, vnode) {
|
||||||
el.event = function (event) {
|
el.event = function (event) {
|
||||||
@ -17,7 +19,9 @@ Vue.directive('click-outside', {
|
|||||||
Vue.directive('autoresize', {
|
Vue.directive('autoresize', {
|
||||||
inserted: function (el) {
|
inserted: function (el) {
|
||||||
el.style.height = el.scrollHeight + 'px'
|
el.style.height = el.scrollHeight + 'px'
|
||||||
el.style.overflow.y = 'hidden'
|
if (el.style.overflow && el.style.overflow.y) {
|
||||||
|
el.style.overflow.y = 'hidden'
|
||||||
|
}
|
||||||
el.style.resize = 'none'
|
el.style.resize = 'none'
|
||||||
function OnInput() {
|
function OnInput() {
|
||||||
this.style.height = 'auto'
|
this.style.height = 'auto'
|
||||||
|
|||||||
@ -10,18 +10,18 @@
|
|||||||
"reports": "Berichte",
|
"reports": "Berichte",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
"logout": "Abmelden",
|
"logout": "Abmelden",
|
||||||
"users": "Users"
|
"users": "Benutzer"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"add_company": "Add Company",
|
"add_company": "Unternehmen hinzufügen",
|
||||||
"view_pdf": "PDF anzeigen",
|
"view_pdf": "PDF anzeigen",
|
||||||
"copy_pdf_url": "Copy PDF Url",
|
"copy_pdf_url": "PDF-Link kopieren",
|
||||||
"download_pdf": "PDF herunterladen",
|
"download_pdf": "PDF herunterladen",
|
||||||
"save": "Speichern",
|
"save": "Speichern",
|
||||||
"create": "Create",
|
"create": "Erstellen",
|
||||||
"cancel": "Abrechen",
|
"cancel": "Abbrechen",
|
||||||
"update": "Aktualisieren",
|
"update": "Aktualisieren",
|
||||||
"deselect": "Entfernen",
|
"deselect": "Abwählen",
|
||||||
"download": "Herunterladen",
|
"download": "Herunterladen",
|
||||||
"from_date": "Von Datum",
|
"from_date": "Von Datum",
|
||||||
"to_date": "bis Datum",
|
"to_date": "bis Datum",
|
||||||
@ -31,15 +31,15 @@
|
|||||||
"ascending": "Aufsteigend",
|
"ascending": "Aufsteigend",
|
||||||
"descending": "Absteigend",
|
"descending": "Absteigend",
|
||||||
"subject": "Betreff",
|
"subject": "Betreff",
|
||||||
"body": "Körper",
|
"body": "Inhalt",
|
||||||
"message": "Nachricht",
|
"message": "Nachricht",
|
||||||
"send": "Send",
|
"send": "Absenden",
|
||||||
"go_back": "zurück",
|
"go_back": "zurück",
|
||||||
"back_to_login": "Zurück zum Login?",
|
"back_to_login": "Zurück zum Login?",
|
||||||
"home": "Startseite",
|
"home": "Startseite",
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"edit": "Ändern",
|
"edit": "Bearbeiten",
|
||||||
"view": "Anzeigen",
|
"view": "Anzeigen",
|
||||||
"add_new_item": "Artikel hinzufügen",
|
"add_new_item": "Artikel hinzufügen",
|
||||||
"clear_all": "Alle entfernen",
|
"clear_all": "Alle entfernen",
|
||||||
@ -48,7 +48,7 @@
|
|||||||
"actions": "Aktionen",
|
"actions": "Aktionen",
|
||||||
"subtotal": "ZWISCHENSUMME",
|
"subtotal": "ZWISCHENSUMME",
|
||||||
"discount": "RABATT",
|
"discount": "RABATT",
|
||||||
"fixed": "Behoben",
|
"fixed": "Festsatz",
|
||||||
"percentage": "Prozentsatz",
|
"percentage": "Prozentsatz",
|
||||||
"tax": "Steuer",
|
"tax": "Steuer",
|
||||||
"total_amount": "GESAMTSUMME",
|
"total_amount": "GESAMTSUMME",
|
||||||
@ -63,7 +63,7 @@
|
|||||||
"choose_template": "Wählen Sie eine Vorlage",
|
"choose_template": "Wählen Sie eine Vorlage",
|
||||||
"choose": "Wählen",
|
"choose": "Wählen",
|
||||||
"remove": "Entfernen",
|
"remove": "Entfernen",
|
||||||
"powered_by": "Powered by",
|
"powered_by": "Betrieben durch",
|
||||||
"bytefury": "Bytefury",
|
"bytefury": "Bytefury",
|
||||||
"select_a_status": "Status wählen",
|
"select_a_status": "Status wählen",
|
||||||
"select_a_tax": "Steuersatz wählen",
|
"select_a_tax": "Steuersatz wählen",
|
||||||
@ -84,9 +84,9 @@
|
|||||||
"street_2": "Zusatz Strasse",
|
"street_2": "Zusatz Strasse",
|
||||||
"action_failed": "Aktion fehlgeschlagen",
|
"action_failed": "Aktion fehlgeschlagen",
|
||||||
"retry": "Wiederholen",
|
"retry": "Wiederholen",
|
||||||
"choose_note": "Choose Note",
|
"choose_note": "Notiz auswählen",
|
||||||
"no_note_found": "No Note Found",
|
"no_note_found": "Keine Notizen gefunden",
|
||||||
"insert_note": "Insert Note"
|
"insert_note": "Notiz einfügen"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"select_year": "Jahr wählen",
|
"select_year": "Jahr wählen",
|
||||||
@ -97,9 +97,9 @@
|
|||||||
"estimates": "Kostenvoranschläge"
|
"estimates": "Kostenvoranschläge"
|
||||||
},
|
},
|
||||||
"chart_info": {
|
"chart_info": {
|
||||||
"total_sales": "Verkäufe gesamt",
|
"total_sales": "Aufträge gesamt",
|
||||||
"total_receipts": "Eingänge gesamt",
|
"total_receipts": "Zahlungen gesamt",
|
||||||
"total_expense": "Gesamtausgaben",
|
"total_expense": "Kosten gesamt",
|
||||||
"net_income": "Einnahmen Netto",
|
"net_income": "Einnahmen Netto",
|
||||||
"year": "Jahr"
|
"year": "Jahr"
|
||||||
},
|
},
|
||||||
@ -133,18 +133,18 @@
|
|||||||
"compound_tax": "zusammengesetzte Steuer"
|
"compound_tax": "zusammengesetzte Steuer"
|
||||||
},
|
},
|
||||||
"global_search": {
|
"global_search": {
|
||||||
"search": "Search...",
|
"search": "Suchen...",
|
||||||
"customers": "Kunden",
|
"customers": "Kunden",
|
||||||
"users": "Users",
|
"users": "Benutzer",
|
||||||
"no_results_found": "No Results Found"
|
"no_results_found": "Keine Ergebnisse gefunden"
|
||||||
},
|
},
|
||||||
"customers": {
|
"customers": {
|
||||||
"title": "Kunden",
|
"title": "Kunden",
|
||||||
"add_customer": "Kunde hinzufügen",
|
"add_customer": "Kunde hinzufügen",
|
||||||
"contacts_list": "Kunden-Liste",
|
"contacts_list": "Kunden-Liste",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"mail": "Mail | Mails",
|
"mail": "E-Mail| E-Mails",
|
||||||
"statement": "Statement",
|
"statement": "Stellungnahme",
|
||||||
"display_name": "Anzeige Name",
|
"display_name": "Anzeige Name",
|
||||||
"primary_contact_name": "Ansprechpartner",
|
"primary_contact_name": "Ansprechpartner",
|
||||||
"contact_name": "Kontakt Name",
|
"contact_name": "Kontakt Name",
|
||||||
@ -153,8 +153,8 @@
|
|||||||
"address": "Adresse",
|
"address": "Adresse",
|
||||||
"phone": "Telefon",
|
"phone": "Telefon",
|
||||||
"website": "Webseite",
|
"website": "Webseite",
|
||||||
"overview": "Overview",
|
"overview": "Übersicht",
|
||||||
"enable_portal": "Enable Portal",
|
"enable_portal": "Kunden-Portal aktivieren",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
"state": "Bundesland",
|
"state": "Bundesland",
|
||||||
"city": "Stadt",
|
"city": "Stadt",
|
||||||
@ -187,7 +187,7 @@
|
|||||||
"phone_number": "Telefonnummer",
|
"phone_number": "Telefonnummer",
|
||||||
"create_date": "Erstellungsdatum",
|
"create_date": "Erstellungsdatum",
|
||||||
"confirm_delete": "Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen. | Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen.",
|
"confirm_delete": "Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen. | Sie können diesen Kunden und alle zugehörigen Rechnungen, Schätzungen und Zahlungen nicht wiederherstellen.",
|
||||||
"created_message": "Customer created successfully",
|
"created_message": "Benutzer erfolgreich erstellt",
|
||||||
"updated_message": "Kunde erfolgreich aktualisiert",
|
"updated_message": "Kunde erfolgreich aktualisiert",
|
||||||
"deleted_message": "Kunden erfolgreich gelöscht | Kunden erfolgreich gelöscht"
|
"deleted_message": "Kunden erfolgreich gelöscht | Kunden erfolgreich gelöscht"
|
||||||
},
|
},
|
||||||
@ -253,7 +253,7 @@
|
|||||||
"convert_to_invoice": "Konvertieren in Rechnung",
|
"convert_to_invoice": "Konvertieren in Rechnung",
|
||||||
"mark_as_sent": "Als gesendet markieren",
|
"mark_as_sent": "Als gesendet markieren",
|
||||||
"send_estimate": "Kostenvoranschlag senden",
|
"send_estimate": "Kostenvoranschlag senden",
|
||||||
"resend_estimate": "Resend Estimate",
|
"resend_estimate": "Kostenvoranschlag erneut senden",
|
||||||
"record_payment": "Zahlung erfassen",
|
"record_payment": "Zahlung erfassen",
|
||||||
"add_estimate": "Kostenvoranschlag hinzufügen",
|
"add_estimate": "Kostenvoranschlag hinzufügen",
|
||||||
"save_estimate": "Kostenvoranschlag speichern",
|
"save_estimate": "Kostenvoranschlag speichern",
|
||||||
@ -339,7 +339,7 @@
|
|||||||
"notes": "Hinweise",
|
"notes": "Hinweise",
|
||||||
"view": "Anzeigen",
|
"view": "Anzeigen",
|
||||||
"send_invoice": "Rechnung senden",
|
"send_invoice": "Rechnung senden",
|
||||||
"resend_invoice": "Resend Invoice",
|
"resend_invoice": "Rechnung erneut senden",
|
||||||
"invoice_template": "Rechnungs-Vorlage",
|
"invoice_template": "Rechnungs-Vorlage",
|
||||||
"template": "Vorlage",
|
"template": "Vorlage",
|
||||||
"mark_as_sent": "Als gesendet markieren",
|
"mark_as_sent": "Als gesendet markieren",
|
||||||
@ -428,7 +428,7 @@
|
|||||||
"edit_payment": "Zahlung bearbeiten",
|
"edit_payment": "Zahlung bearbeiten",
|
||||||
"view_payment": "Zahlung anzeigen",
|
"view_payment": "Zahlung anzeigen",
|
||||||
"add_new_payment": "Neue Zahlung hinzufügen",
|
"add_new_payment": "Neue Zahlung hinzufügen",
|
||||||
"send_payment_receipt": "Send Payment Receipt",
|
"send_payment_receipt": "Zahlungsbeleg senden",
|
||||||
"send_payment": "Senden Sie die Zahlung",
|
"send_payment": "Senden Sie die Zahlung",
|
||||||
"save_payment": "Zahlung speichern",
|
"save_payment": "Zahlung speichern",
|
||||||
"update_payment": "Zahlung ändern",
|
"update_payment": "Zahlung ändern",
|
||||||
@ -438,8 +438,8 @@
|
|||||||
"list_of_payments": "Dieser Abschnitt enthält die Liste der Zahlungen.",
|
"list_of_payments": "Dieser Abschnitt enthält die Liste der Zahlungen.",
|
||||||
"select_payment_mode": "Wählen Sie den Zahlungsmodus",
|
"select_payment_mode": "Wählen Sie den Zahlungsmodus",
|
||||||
"confirm_mark_as_sent": "Dieser Kostenvoranschlag wird als gesendet markiert",
|
"confirm_mark_as_sent": "Dieser Kostenvoranschlag wird als gesendet markiert",
|
||||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
"confirm_send_payment": "Diese Zahlung wird per E-Mail an den Kunden gesendet",
|
||||||
"send_payment_successfully": "Payment sent successfully",
|
"send_payment_successfully": "Zahlung erfolgreich gesendet",
|
||||||
"user_email_does_not_exist": "Benutzer-E-Mail existiert nicht",
|
"user_email_does_not_exist": "Benutzer-E-Mail existiert nicht",
|
||||||
"something_went_wrong": "Da ist etwas schief gelaufen",
|
"something_went_wrong": "Da ist etwas schief gelaufen",
|
||||||
"confirm_delete": "Sie können diese Zahlung nicht wiederherstellen. | Sie können diese Zahlungen nicht wiederherstellen.",
|
"confirm_delete": "Sie können diese Zahlung nicht wiederherstellen. | Sie können diese Zahlungen nicht wiederherstellen.",
|
||||||
@ -508,30 +508,30 @@
|
|||||||
"login_placeholder": "mail@beispiel.de"
|
"login_placeholder": "mail@beispiel.de"
|
||||||
},
|
},
|
||||||
"users": {
|
"users": {
|
||||||
"title": "Users",
|
"title": "Benutzer",
|
||||||
"users_list": "Users List",
|
"users_list": "Benutzerliste",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"description": "Beschreibung",
|
"description": "Beschreibung",
|
||||||
"added_on": "Hinzugefügt am",
|
"added_on": "Hinzugefügt am",
|
||||||
"date_of_creation": "Erstellt am",
|
"date_of_creation": "Erstellt am",
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"add_user": "Add User",
|
"add_user": "Benutzer hinzufügen",
|
||||||
"save_user": "Save User",
|
"save_user": "Benutzer speichern",
|
||||||
"update_user": "Update User",
|
"update_user": "Benutzer aktualisieren",
|
||||||
"user": "User | Users",
|
"user": "Benutzer",
|
||||||
"add_new_user": "Add New User",
|
"add_new_user": "Neuen Benutzer hinzufügen",
|
||||||
"new_user": "New User",
|
"new_user": "Neuer Benutzer",
|
||||||
"edit_user": "Edit User",
|
"edit_user": "Benutzer bearbeiten",
|
||||||
"no_users": "No users yet!",
|
"no_users": "Noch keine Benutzer!",
|
||||||
"list_of_users": "This section will contain the list of users.",
|
"list_of_users": "Dieser Abschnitt enthält die Liste der Benutzer.",
|
||||||
"email": "E-Mail",
|
"email": "E-Mail",
|
||||||
"phone": "Telefon",
|
"phone": "Telefon",
|
||||||
"password": "Passwort",
|
"password": "Passwort",
|
||||||
"user_attached_message": "Ein Artikel der bereits verwendet wird kann nicht gelöscht werden",
|
"user_attached_message": "Ein Artikel der bereits verwendet wird kann nicht gelöscht werden",
|
||||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
"confirm_delete": "Sie werden diesen Benutzer nicht wiederherstellen können | Sie werden nicht in der Lage sein, diese Benutzer wiederherzustellen",
|
||||||
"created_message": "User created successfully",
|
"created_message": "Benutzer erfolgreich erstellt",
|
||||||
"updated_message": "User updated successfully",
|
"updated_message": "Benutzer wurde erfolgreich aktualisiert",
|
||||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
"deleted_message": "Benutzer erfolgreich gelöscht | Benutzer erfolgreich gelöscht"
|
||||||
},
|
},
|
||||||
"reports": {
|
"reports": {
|
||||||
"title": "Bericht",
|
"title": "Bericht",
|
||||||
@ -551,7 +551,7 @@
|
|||||||
"date_range": "Datumsbereich auswählen"
|
"date_range": "Datumsbereich auswählen"
|
||||||
},
|
},
|
||||||
"sales": {
|
"sales": {
|
||||||
"sales": "Vertrieb",
|
"sales": "Umsatz",
|
||||||
"date_range": "Datumsbereich auswählen",
|
"date_range": "Datumsbereich auswählen",
|
||||||
"to_date": "bis Datum",
|
"to_date": "bis Datum",
|
||||||
"from_date": "Ab Datum",
|
"from_date": "Ab Datum",
|
||||||
@ -604,10 +604,10 @@
|
|||||||
"tax_types": "Steuersätze",
|
"tax_types": "Steuersätze",
|
||||||
"expense_category": "Ausgabenkategorien",
|
"expense_category": "Ausgabenkategorien",
|
||||||
"update_app": "Applikation aktualisieren",
|
"update_app": "Applikation aktualisieren",
|
||||||
"backup": "Backup",
|
"backup": "Sicherung",
|
||||||
"file_disk": "File Disk",
|
"file_disk": "Dateispeicher",
|
||||||
"custom_fields": "Benutzerdefinierte Felder",
|
"custom_fields": "Benutzerdefinierte Felder",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Zahlungsarten",
|
||||||
"notes": "Hinweise"
|
"notes": "Hinweise"
|
||||||
},
|
},
|
||||||
"title": "Einstellungen",
|
"title": "Einstellungen",
|
||||||
@ -641,7 +641,7 @@
|
|||||||
"driver": "E-Mail Treiber",
|
"driver": "E-Mail Treiber",
|
||||||
"secret": "Verschlüsselung",
|
"secret": "Verschlüsselung",
|
||||||
"mailgun_secret": "Mailgun Verschlüsselung",
|
"mailgun_secret": "Mailgun Verschlüsselung",
|
||||||
"mailgun_domain": "Domain",
|
"mailgun_domain": "Mailgun Adresse",
|
||||||
"mailgun_endpoint": "Mailgun-Endpunkt",
|
"mailgun_endpoint": "Mailgun-Endpunkt",
|
||||||
"ses_secret": "SES Verschlüsselung",
|
"ses_secret": "SES Verschlüsselung",
|
||||||
"ses_key": "SES-Taste",
|
"ses_key": "SES-Taste",
|
||||||
@ -674,7 +674,7 @@
|
|||||||
},
|
},
|
||||||
"custom_fields": {
|
"custom_fields": {
|
||||||
"title": "Benutzerdefinierte Felder",
|
"title": "Benutzerdefinierte Felder",
|
||||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
"section_description": "Passen Sie Ihre Rechnungen, Kostenvoranschläge und Zahlungseinnahmen mit Ihren eigenen Feldern an. Benutzen Sie die unten aufgeführten Felder in den Adressformaten auf der Seite Anpassungseinstellungen.",
|
||||||
"add_custom_field": "Benutzerdefiniertes Feld hinzufügen",
|
"add_custom_field": "Benutzerdefiniertes Feld hinzufügen",
|
||||||
"edit_custom_field": "Benutzerdefiniertes Feld bearbeiten",
|
"edit_custom_field": "Benutzerdefiniertes Feld bearbeiten",
|
||||||
"field_name": "Feldname",
|
"field_name": "Feldname",
|
||||||
@ -689,7 +689,7 @@
|
|||||||
"starting_number": "Startnummer",
|
"starting_number": "Startnummer",
|
||||||
"model": "Modell",
|
"model": "Modell",
|
||||||
"help_text_description": "Geben Sie einen Text ein, damit Benutzer den Zweck dieses benutzerdefinierten Felds verstehen.",
|
"help_text_description": "Geben Sie einen Text ein, damit Benutzer den Zweck dieses benutzerdefinierten Felds verstehen.",
|
||||||
"suffix": "Suffix",
|
"suffix": "Vorzeichen",
|
||||||
"yes": "Ja",
|
"yes": "Ja",
|
||||||
"no": "Nein",
|
"no": "Nein",
|
||||||
"order": "Auftrag",
|
"order": "Auftrag",
|
||||||
@ -740,41 +740,41 @@
|
|||||||
"title": "Rechnungen",
|
"title": "Rechnungen",
|
||||||
"notes": "Hinweise",
|
"notes": "Hinweise",
|
||||||
"invoice_prefix": "Rechnung Präfix",
|
"invoice_prefix": "Rechnung Präfix",
|
||||||
"default_invoice_email_body": "Default Invoice Email Body",
|
"default_invoice_email_body": "Standard Rechnung E-Mail Inhalt",
|
||||||
"invoice_settings": "Rechnungseinstellungen",
|
"invoice_settings": "Rechnungseinstellungen",
|
||||||
"autogenerate_invoice_number": "Rechnungsnummer automatisch generieren",
|
"autogenerate_invoice_number": "Rechnungsnummer automatisch generieren",
|
||||||
"invoice_setting_description": "Deaktivieren Sie diese Option, wenn Sie Rechnungsnummern nicht jedes Mal automatisch generieren möchten, wenn Sie eine neue Rechnung erstellen.",
|
"invoice_setting_description": "Deaktivieren Sie diese Option, wenn Sie Rechnungsnummern nicht jedes Mal automatisch generieren möchten, wenn Sie eine neue Rechnung erstellen.",
|
||||||
"enter_invoice_prefix": "Rechnungspräfix eingeben",
|
"enter_invoice_prefix": "Rechnungspräfix eingeben",
|
||||||
"terms_and_conditions": "Allgemeine Geschäftsbedingungen",
|
"terms_and_conditions": "Allgemeine Geschäftsbedingungen",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Firmenadressformat",
|
||||||
"shipping_address_format": "Shipping Address Format",
|
"shipping_address_format": "Versandadressen Format",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Rechnungsadressen Format",
|
||||||
"invoice_setting_updated": "Rechnungseinstellung erfolgreich aktualisiert"
|
"invoice_setting_updated": "Rechnungseinstellung erfolgreich aktualisiert"
|
||||||
},
|
},
|
||||||
"estimates": {
|
"estimates": {
|
||||||
"title": "Kostenvoranschläge",
|
"title": "Kostenvoranschläge",
|
||||||
"estimate_prefix": "Kostenvoranschlag Präfix",
|
"estimate_prefix": "Kostenvoranschlag Präfix",
|
||||||
"default_estimate_email_body": "Default Estimate Email Body",
|
"default_estimate_email_body": "Rechnung - E-Mail Text",
|
||||||
"estimate_settings": "Einstellungen Kostenvoranschlag",
|
"estimate_settings": "Einstellungen Kostenvoranschlag",
|
||||||
"autogenerate_estimate_number": "Kostenvoranschlagsnummer automatisch generieren",
|
"autogenerate_estimate_number": "Kostenvoranschlagsnummer automatisch generieren",
|
||||||
"estimate_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie einen neue Kostenvoranschlag erstellen, automatisch eine Schätzung generieren möchten.",
|
"estimate_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie einen neue Kostenvoranschlag erstellen, automatisch eine Schätzung generieren möchten.",
|
||||||
"enter_estimate_prefix": "Geben Sie das Kostenvoranschlag Präfix ein",
|
"enter_estimate_prefix": "Geben Sie das Kostenvoranschlag Präfix ein",
|
||||||
"estimate_setting_updated": "Einstellungen Kostenvoranschläge erfolgreich aktualisiert",
|
"estimate_setting_updated": "Einstellungen Kostenvoranschläge erfolgreich aktualisiert",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Firmenadresse Format",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Rechnungsadressen Format",
|
||||||
"shipping_address_format": "Shipping Address Format"
|
"shipping_address_format": "Versandadressen Format"
|
||||||
},
|
},
|
||||||
"payments": {
|
"payments": {
|
||||||
"title": "Zahlungen",
|
"title": "Zahlungen",
|
||||||
"description": "Modes of transaction for payments",
|
"description": "Transaktionsmodi für Zahlungen",
|
||||||
"payment_prefix": "Zahlung Präfix",
|
"payment_prefix": "Zahlung Präfix",
|
||||||
"default_payment_email_body": "Default Payment Email Body",
|
"default_payment_email_body": "Zahlung - E-Mail Text",
|
||||||
"payment_settings": "Zahlung Einstellungen",
|
"payment_settings": "Zahlung Einstellungen",
|
||||||
"autogenerate_payment_number": "Zahlungsnummer automatisch generieren",
|
"autogenerate_payment_number": "Zahlungsnummer automatisch generieren",
|
||||||
"payment_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie eine neue Zahlung erstellen, automatisch Zahlungsnummern generieren möchten.",
|
"payment_setting_description": "Deaktivieren Sie diese Option, wenn Sie nicht jedes Mal, wenn Sie eine neue Zahlung erstellen, automatisch Zahlungsnummern generieren möchten.",
|
||||||
"enter_payment_prefix": "Zahlungspräfix eingeben",
|
"enter_payment_prefix": "Zahlungspräfix eingeben",
|
||||||
"payment_setting_updated": "Zahlungseinstellung erfolgreich aktualisiert",
|
"payment_setting_updated": "Zahlungseinstellung erfolgreich aktualisiert",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Zahlungsarten",
|
||||||
"add_payment_mode": "Zahlungsmethode hinzufügen",
|
"add_payment_mode": "Zahlungsmethode hinzufügen",
|
||||||
"edit_payment_mode": "Zahlungsmodus bearbeiten",
|
"edit_payment_mode": "Zahlungsmodus bearbeiten",
|
||||||
"mode_name": "Methodenname",
|
"mode_name": "Methodenname",
|
||||||
@ -783,8 +783,8 @@
|
|||||||
"payment_mode_confirm_delete": "Du kannst diese Zahlungsmethode nicht wiederherstellen",
|
"payment_mode_confirm_delete": "Du kannst diese Zahlungsmethode nicht wiederherstellen",
|
||||||
"already_in_use": "Zahlungsmethode bereits in Verwendung",
|
"already_in_use": "Zahlungsmethode bereits in Verwendung",
|
||||||
"deleted_message": "Zahlungsmethode erfolgreich",
|
"deleted_message": "Zahlungsmethode erfolgreich",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Firmenadressformat",
|
||||||
"from_customer_address_format": "From Customer Address Format"
|
"from_customer_address_format": "Rechnungsadressen Format"
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"title": "Artikel",
|
"title": "Artikel",
|
||||||
@ -800,18 +800,18 @@
|
|||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"title": "Hinweise",
|
"title": "Hinweise",
|
||||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
"description": "Sparen Sie Zeit, indem Sie Notizen erstellen und diese auf Ihren Rechnungen, Kostenvoranschlägen und Zahlungen wiederverwenden.",
|
||||||
"notes": "Hinweise",
|
"notes": "Hinweise",
|
||||||
"type": "Art",
|
"type": "Art",
|
||||||
"add_note": "Add Note",
|
"add_note": "Notiz hinzufügen",
|
||||||
"add_new_note": "Add New Note",
|
"add_new_note": "Neue Notiz hinzufügen",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"edit_note": "Edit Note",
|
"edit_note": "Notiz bearbeiten",
|
||||||
"note_added": "Note added successfully",
|
"note_added": "Notiz erfolgreich hinzugefügt",
|
||||||
"note_updated": "Note Updated successfully",
|
"note_updated": "Notiz erfolgreich aktualisiert",
|
||||||
"note_confirm_delete": "You will not be able to recover this Note",
|
"note_confirm_delete": "Dieser Hinweis wird unwiderruflich gelöscht",
|
||||||
"already_in_use": "Note is already in use",
|
"already_in_use": "Hinweis bereits in verwendet",
|
||||||
"deleted_message": "Note deleted successfully"
|
"deleted_message": "Notiz erfolgreich gelöscht"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"account_settings": {
|
"account_settings": {
|
||||||
@ -879,7 +879,7 @@
|
|||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"currency": "Währung",
|
"currency": "Währung",
|
||||||
"default_language": "Default Language",
|
"default_language": "Standardsprache",
|
||||||
"time_zone": "Zeitzone",
|
"time_zone": "Zeitzone",
|
||||||
"fiscal_year": "Geschäftsjahr",
|
"fiscal_year": "Geschäftsjahr",
|
||||||
"date_format": "Datum-Format",
|
"date_format": "Datum-Format",
|
||||||
@ -892,7 +892,7 @@
|
|||||||
"updated_message": "Einstellungen erfolgreich aktualisiert",
|
"updated_message": "Einstellungen erfolgreich aktualisiert",
|
||||||
"select_language": "Sprache auswählen",
|
"select_language": "Sprache auswählen",
|
||||||
"select_time_zone": "Zeitzone auswählen",
|
"select_time_zone": "Zeitzone auswählen",
|
||||||
"select_date_format": "Select Date Format",
|
"select_date_format": "Wähle das Datumsformat",
|
||||||
"select_financial_year": "Geschäftsjahr auswählen"
|
"select_financial_year": "Geschäftsjahr auswählen"
|
||||||
},
|
},
|
||||||
"update_app": {
|
"update_app": {
|
||||||
@ -901,7 +901,7 @@
|
|||||||
"check_update": "Nach Updates suchen",
|
"check_update": "Nach Updates suchen",
|
||||||
"avail_update": "Neues Update verfügbar",
|
"avail_update": "Neues Update verfügbar",
|
||||||
"next_version": "Nächste Version",
|
"next_version": "Nächste Version",
|
||||||
"requirements": "Requirements",
|
"requirements": "Voraussetzungen",
|
||||||
"update": "Jetzt aktualisieren",
|
"update": "Jetzt aktualisieren",
|
||||||
"update_progress": "Update läuft ...",
|
"update_progress": "Update läuft ...",
|
||||||
"progress_text": "Es dauert nur ein paar Minuten. Bitte aktualisieren Sie den Bildschirm nicht und schließen Sie das Fenster nicht, bevor das Update abgeschlossen ist.",
|
"progress_text": "Es dauert nur ein paar Minuten. Bitte aktualisieren Sie den Bildschirm nicht und schließen Sie das Fenster nicht, bevor das Update abgeschlossen ist.",
|
||||||
@ -917,56 +917,56 @@
|
|||||||
"update_failed_text": "Es tut uns leid! Ihr Update ist am folgenden Schritt fehlgeschlagen: {step}"
|
"update_failed_text": "Es tut uns leid! Ihr Update ist am folgenden Schritt fehlgeschlagen: {step}"
|
||||||
},
|
},
|
||||||
"backup": {
|
"backup": {
|
||||||
"title": "Backup | Backups",
|
"title": "Sicherung | Sicherungen",
|
||||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
"description": "Die Sicherung ist eine ZIP-Datei, die alle Dateien der ausgewählten Pfade und eine Kopie der Datenbank enthält",
|
||||||
"new_backup": "Add New Backup",
|
"new_backup": "Neues Backup",
|
||||||
"create_backup": "Create Backup",
|
"create_backup": "Datensicherung erstellen",
|
||||||
"select_backup_type": "Select Backup Type",
|
"select_backup_type": "Wählen Sie den Sicherungs-Typ",
|
||||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
"backup_confirm_delete": "Dieses Backup wird unwiderruflich gelöscht",
|
||||||
"path": "path",
|
"path": "Pfad",
|
||||||
"new_disk": "New Disk",
|
"new_disk": "Speicher hinzufügen",
|
||||||
"created_at": "created at",
|
"created_at": "erstellt am",
|
||||||
"size": "size",
|
"size": "Größe",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "Dropbox",
|
||||||
"local": "local",
|
"local": "Lokal",
|
||||||
"healthy": "healthy",
|
"healthy": "intakt",
|
||||||
"amount_of_backups": "amount of backups",
|
"amount_of_backups": "Menge an Sicherungen",
|
||||||
"newest_backups": "newest backups",
|
"newest_backups": "Neuste Sicherung",
|
||||||
"used_storage": "used storage",
|
"used_storage": "Verwendeter Speicher",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Speicher auswählen",
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"deleted_message": "Backup deleted successfully",
|
"deleted_message": "Sicherung erfolgreich gelöscht",
|
||||||
"created_message": "Backup created successfully",
|
"created_message": "Backup erfolgreich erstellt",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Ungültige Anmeldeinformationen für ausgewählten Speicher"
|
||||||
},
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"title": "File Disk | File Disks",
|
"title": "Dateispeicher | Dateispeicher",
|
||||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
"description": "Standardmäßig verwendet Crater Ihre lokale Festplatte zum Speichern von Sicherungen, Avatar und anderen Bilddateien. Sie können mehr als einen Speicherort wie DigitalOcean, S3 und Dropbox nach Ihren Wünschen konfigurieren.",
|
||||||
"created_at": "created at",
|
"created_at": "erstellt am",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "Dropbox",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"driver": "Driver",
|
"driver": "Treiber",
|
||||||
"disk_type": "Art",
|
"disk_type": "Art",
|
||||||
"disk_name": "Disk Name",
|
"disk_name": "Speicher Bezeichnung",
|
||||||
"new_disk": "Add New Disk",
|
"new_disk": "Speicher hinzufügen",
|
||||||
"filesystem_driver": "Filesystem Driver",
|
"filesystem_driver": "Dateisystem-Treiber",
|
||||||
"local_driver": "local Driver",
|
"local_driver": "Lokaler Treiber",
|
||||||
"local_root": "local Root",
|
"local_root": "lokaler Pfad",
|
||||||
"public_driver": "Public Driver",
|
"public_driver": "Öffentlicher Treiber",
|
||||||
"public_root": "Public Root",
|
"public_root": "Öffentlicher Pfad",
|
||||||
"public_url": "Public URL",
|
"public_url": "Öffentliche URL",
|
||||||
"public_visibility": "Public Visibility",
|
"public_visibility": "Öffentliche Sichtbarkeit",
|
||||||
"media_driver": "Media Driver",
|
"media_driver": "Medientreiber",
|
||||||
"media_root": "Media Root",
|
"media_root": "Medienpfad",
|
||||||
"aws_driver": "AWS Driver",
|
"aws_driver": "AWS-Treiber",
|
||||||
"aws_key": "AWS Key",
|
"aws_key": "AWS-Schlüssel",
|
||||||
"aws_secret": "AWS Secret",
|
"aws_secret": "AWS-Geheimnis",
|
||||||
"aws_region": "AWS Region",
|
"aws_region": "AWS-Region",
|
||||||
"aws_bucket": "AWS Bucket",
|
"aws_bucket": "AWS Bucket",
|
||||||
"aws_root": "AWS Root",
|
"aws_root": "AWS-Pfad",
|
||||||
"do_spaces_type": "Do Spaces type",
|
"do_spaces_type": "Do Spaces-Typ",
|
||||||
"do_spaces_key": "Do Spaces key",
|
"do_spaces_key": "Do Spaces-Schlüssel",
|
||||||
"do_spaces_secret": "Do Spaces Secret",
|
"do_spaces_secret": "Do Spaces-Geheimnis",
|
||||||
"do_spaces_region": "Do Spaces Region",
|
"do_spaces_region": "Do Spaces Region",
|
||||||
"do_spaces_bucket": "Do Spaces Bucket",
|
"do_spaces_bucket": "Do Spaces Bucket",
|
||||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||||
@ -977,24 +977,24 @@
|
|||||||
"dropbox_secret": "Dropbox Secret",
|
"dropbox_secret": "Dropbox Secret",
|
||||||
"dropbox_app": "Dropbox App",
|
"dropbox_app": "Dropbox App",
|
||||||
"dropbox_root": "Dropbox Root",
|
"dropbox_root": "Dropbox Root",
|
||||||
"default_driver": "Default Driver",
|
"default_driver": "Standard-Treiber",
|
||||||
"is_default": "IS DEFAULT",
|
"is_default": "Standard",
|
||||||
"set_default_disk": "Set Default Disk",
|
"set_default_disk": "Als Standard festlegen",
|
||||||
"success_set_default_disk": "Disk set as default successfully",
|
"success_set_default_disk": "Speicher wurde als Standard festgelegt",
|
||||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
"save_pdf_to_disk": "PDFs auf Festplatte speichern",
|
||||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
"disk_setting_description": " Aktivieren Sie dies, um eine Kopie von jeder Rechnung, jedem Kostenvoranschlag & jedem Zahlungsbelegung als PDF automatisch auf ihrem Standard-Speicher abzulegen. Wenn Sie diese Option aktivieren, verringert sich die Ladezeit beim Betrachten der PDFs.",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Speicherort auswählen",
|
||||||
"disk_settings": "Disk Settings",
|
"disk_settings": "Speichermedienkonfiguration",
|
||||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
"confirm_delete": "Ihre existierenden Dateien und Ordner auf der angegebenen Festplatte werden nicht beeinflusst, aber Dieser Speicherort wird aus Crater gelöscht",
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"edit_file_disk": "Edit File Disk",
|
"edit_file_disk": "Edit File Disk",
|
||||||
"success_create": "Disk added successfully",
|
"success_create": "Speicher erfolgreich hinzugefügt",
|
||||||
"success_update": "Disk updated successfully",
|
"success_update": "Speicher erfolgreich bearbeitet",
|
||||||
"error": "Disk addition failed",
|
"error": "Hinzufügen des Speichers gescheitert",
|
||||||
"deleted_message": "File Disk deleted successfully",
|
"deleted_message": "Speicher erfolgreich gelöscht",
|
||||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
"disk_variables_save_successfully": "Speicher erfolgreich konfiguriert",
|
||||||
"disk_variables_save_error": "Disk configuration failed.",
|
"disk_variables_save_error": "Konfiguration des Speicher gescheitert",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Ungültige Anmeldeinformationen für ausgewählten Speicher"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wizard": {
|
"wizard": {
|
||||||
@ -1025,9 +1025,9 @@
|
|||||||
"time_zone": "Zeitzone",
|
"time_zone": "Zeitzone",
|
||||||
"fiscal_year": "Geschäftsjahr",
|
"fiscal_year": "Geschäftsjahr",
|
||||||
"date_format": "Datumsformat",
|
"date_format": "Datumsformat",
|
||||||
"from_address": "From Address",
|
"from_address": "Absender",
|
||||||
"username": "Benutzername",
|
"username": "Benutzername",
|
||||||
"next": "Next",
|
"next": "Weiter",
|
||||||
"continue": "Weiter",
|
"continue": "Weiter",
|
||||||
"skip": "Überspringen",
|
"skip": "Überspringen",
|
||||||
"database": {
|
"database": {
|
||||||
@ -1037,10 +1037,10 @@
|
|||||||
"port": "Datenbank Port",
|
"port": "Datenbank Port",
|
||||||
"password": "Datenbank Passwort",
|
"password": "Datenbank Passwort",
|
||||||
"app_url": "App-URL",
|
"app_url": "App-URL",
|
||||||
"app_domain": "App Domain",
|
"app_domain": "Domain der App",
|
||||||
"username": "Datenbank Benutzername",
|
"username": "Datenbank Benutzername",
|
||||||
"db_name": "Datenbank Name",
|
"db_name": "Datenbank Name",
|
||||||
"db_path": "Database Path",
|
"db_path": "Datenbankpfad",
|
||||||
"desc": "Erstellen Sie eine Datenbank auf Ihrem Server und legen Sie die Anmeldeinformationen mithilfe des folgenden Formulars fest."
|
"desc": "Erstellen Sie eine Datenbank auf Ihrem Server und legen Sie die Anmeldeinformationen mithilfe des folgenden Formulars fest."
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@ -1134,37 +1134,37 @@
|
|||||||
"pdf_estimate_label": "Kostenvoranschlag",
|
"pdf_estimate_label": "Kostenvoranschlag",
|
||||||
"pdf_estimate_number": "Kostenvoran. Nummer",
|
"pdf_estimate_number": "Kostenvoran. Nummer",
|
||||||
"pdf_estimate_date": "Datum Kostenvoranschlag",
|
"pdf_estimate_date": "Datum Kostenvoranschlag",
|
||||||
"pdf_estimate_expire_date": "Expiry date",
|
"pdf_estimate_expire_date": "Ablaufdatum",
|
||||||
"pdf_invoice_label": "Rechnung",
|
"pdf_invoice_label": "Rechnung",
|
||||||
"pdf_invoice_number": "Rechnungsnummer",
|
"pdf_invoice_number": "Rechnungsnummer",
|
||||||
"pdf_invoice_date": "Rechnungsdatum",
|
"pdf_invoice_date": "Rechnungsdatum",
|
||||||
"pdf_invoice_due_date": "Due date",
|
"pdf_invoice_due_date": "Fälligkeitsdatum",
|
||||||
"pdf_notes": "Hinweise",
|
"pdf_notes": "Hinweise",
|
||||||
"pdf_items_label": "Artikel",
|
"pdf_items_label": "Artikel",
|
||||||
"pdf_quantity_label": "Menge",
|
"pdf_quantity_label": "Menge",
|
||||||
"pdf_price_label": "Preis",
|
"pdf_price_label": "Preis",
|
||||||
"pdf_discount_label": "Rabatt",
|
"pdf_discount_label": "Rabatt",
|
||||||
"pdf_amount_label": "Summe",
|
"pdf_amount_label": "Summe",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Zwischensumme",
|
||||||
"pdf_total": "Gesamt",
|
"pdf_total": "Gesamt",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "Zahlungsbeleg",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Zahlungsdatum",
|
||||||
"pdf_payment_number": "Zahlungsnummer",
|
"pdf_payment_number": "Zahlungsnummer",
|
||||||
"pdf_payment_mode": "Zahlungsart",
|
"pdf_payment_mode": "Zahlungsart",
|
||||||
"pdf_payment_amount_received_label": "Amount Received",
|
"pdf_payment_amount_received_label": "Betrag erhalten",
|
||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "Ausgaben Bericht",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "Gesamtausgaben",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "Gewinn & Verlust Bericht",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "Einkommen",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "Nettogewinn",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Umsatzbericht: Nach Kunde",
|
||||||
"pdf_total_sales_label": "TOTAL SALES",
|
"pdf_total_sales_label": "GESAMTUMSATZ",
|
||||||
"pdf_item_sales_label": "Sales Report: By Item",
|
"pdf_item_sales_label": "Umsatzbericht: Nach Artikel",
|
||||||
"pdf_tax_report_label": "TAX REPORT",
|
"pdf_tax_report_label": "Umsatzsteuer BERICHT",
|
||||||
"pdf_total_tax_label": "TOTAL TAX",
|
"pdf_total_tax_label": "Gesamte Umsatzsteuer",
|
||||||
"pdf_tax_types_label": "Steuersätze",
|
"pdf_tax_types_label": "Steuersätze",
|
||||||
"pdf_expenses_label": "Gesamtausgaben",
|
"pdf_expenses_label": "Gesamtausgaben",
|
||||||
"pdf_bill_to": "Rechnungsempfänger,",
|
"pdf_bill_to": "Rechnungsempfänger,",
|
||||||
"pdf_ship_to": "Versand an,",
|
"pdf_ship_to": "Versand an,",
|
||||||
"pdf_received_from": "Received from:"
|
"pdf_received_from": "Erhalten von:"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,18 +10,18 @@
|
|||||||
"reports": "Informes",
|
"reports": "Informes",
|
||||||
"settings": "Configuraciones",
|
"settings": "Configuraciones",
|
||||||
"logout": "Cerrar sesión",
|
"logout": "Cerrar sesión",
|
||||||
"users": "Users"
|
"users": "Usuarios"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"add_company": "Add Company",
|
"add_company": "Añadir empresa",
|
||||||
"view_pdf": "Ver PDF",
|
"view_pdf": "Ver PDF",
|
||||||
"copy_pdf_url": "Copy PDF Url",
|
"copy_pdf_url": "Copiar dirección URL del archivo PDF",
|
||||||
"download_pdf": "Descargar PDF",
|
"download_pdf": "Descargar PDF",
|
||||||
"save": "Guardar",
|
"save": "Guardar",
|
||||||
"create": "Create",
|
"create": "Crear",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"deselect": "Deselect",
|
"deselect": "Deseleccionar",
|
||||||
"download": "Descargar",
|
"download": "Descargar",
|
||||||
"from_date": "Desde la fecha",
|
"from_date": "Desde la fecha",
|
||||||
"to_date": "Hasta la fecha",
|
"to_date": "Hasta la fecha",
|
||||||
@ -33,7 +33,7 @@
|
|||||||
"subject": "Sujeta",
|
"subject": "Sujeta",
|
||||||
"body": "Cuerpo",
|
"body": "Cuerpo",
|
||||||
"message": "Mensaje",
|
"message": "Mensaje",
|
||||||
"send": "Send",
|
"send": "Enviar",
|
||||||
"go_back": "Volver",
|
"go_back": "Volver",
|
||||||
"back_to_login": "¿Volver al inicio de sesión?",
|
"back_to_login": "¿Volver al inicio de sesión?",
|
||||||
"home": "Inicio",
|
"home": "Inicio",
|
||||||
@ -84,9 +84,9 @@
|
|||||||
"street_2": "Calle 2",
|
"street_2": "Calle 2",
|
||||||
"action_failed": "Accion Fallida",
|
"action_failed": "Accion Fallida",
|
||||||
"retry": "Procesar de nuevo",
|
"retry": "Procesar de nuevo",
|
||||||
"choose_note": "Choose Note",
|
"choose_note": "Elegir nota",
|
||||||
"no_note_found": "No Note Found",
|
"no_note_found": "No se encontró ninguna nota",
|
||||||
"insert_note": "Insert Note"
|
"insert_note": "Insertar una nota"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"select_year": "Seleccionar año",
|
"select_year": "Seleccionar año",
|
||||||
@ -133,28 +133,28 @@
|
|||||||
"compound_tax": "Impuesto compuesto"
|
"compound_tax": "Impuesto compuesto"
|
||||||
},
|
},
|
||||||
"global_search": {
|
"global_search": {
|
||||||
"search": "Search...",
|
"search": "Buscar...",
|
||||||
"customers": "Clientes",
|
"customers": "Clientes",
|
||||||
"users": "Users",
|
"users": "Usuarios",
|
||||||
"no_results_found": "No Results Found"
|
"no_results_found": "No se encontraron resultados"
|
||||||
},
|
},
|
||||||
"customers": {
|
"customers": {
|
||||||
"title": "Clientes",
|
"title": "Clientes",
|
||||||
"add_customer": "Agregar cliente",
|
"add_customer": "Agregar cliente",
|
||||||
"contacts_list": "Lista de clientes",
|
"contacts_list": "Lista de clientes",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"mail": "Mail | Mails",
|
"mail": "Correo | Correos",
|
||||||
"statement": "Statement",
|
"statement": "Declaración",
|
||||||
"display_name": "Nombre para mostrar",
|
"display_name": "Nombre para mostrar",
|
||||||
"primary_contact_name": "Nombre de contacto primario",
|
"primary_contact_name": "Nombre de contacto primario",
|
||||||
"contact_name": "Nombre de contacto",
|
"contact_name": "Nombre de contacto",
|
||||||
"amount_due": "Cantidad Debida",
|
"amount_due": "Cantidad Debida",
|
||||||
"email": "Email",
|
"email": "Correo electrónico",
|
||||||
"address": "Dirección",
|
"address": "Dirección",
|
||||||
"phone": "Teléfono",
|
"phone": "Teléfono",
|
||||||
"website": "Sitio web",
|
"website": "Sitio web",
|
||||||
"overview": "Overview",
|
"overview": "Descripción general",
|
||||||
"enable_portal": "Enable Portal",
|
"enable_portal": "Habilitar Portal",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
"state": "Estado",
|
"state": "Estado",
|
||||||
"city": "Ciudad",
|
"city": "Ciudad",
|
||||||
@ -253,7 +253,7 @@
|
|||||||
"convert_to_invoice": "Convertir a factura",
|
"convert_to_invoice": "Convertir a factura",
|
||||||
"mark_as_sent": "Marcar como enviado",
|
"mark_as_sent": "Marcar como enviado",
|
||||||
"send_estimate": "Enviar presupuesto",
|
"send_estimate": "Enviar presupuesto",
|
||||||
"resend_estimate": "Resend Estimate",
|
"resend_estimate": "Reenviar estimado",
|
||||||
"record_payment": "Registro de pago",
|
"record_payment": "Registro de pago",
|
||||||
"add_estimate": "Agregar presupuesto",
|
"add_estimate": "Agregar presupuesto",
|
||||||
"save_estimate": "Guardar presupuesto",
|
"save_estimate": "Guardar presupuesto",
|
||||||
@ -339,7 +339,7 @@
|
|||||||
"notes": "Notas",
|
"notes": "Notas",
|
||||||
"view": "Ver",
|
"view": "Ver",
|
||||||
"send_invoice": "Enviar la factura",
|
"send_invoice": "Enviar la factura",
|
||||||
"resend_invoice": "Resend Invoice",
|
"resend_invoice": "Reenviar factura",
|
||||||
"invoice_template": "Plantilla de factura",
|
"invoice_template": "Plantilla de factura",
|
||||||
"template": "Modelo",
|
"template": "Modelo",
|
||||||
"mark_as_sent": "Marcar como enviada",
|
"mark_as_sent": "Marcar como enviada",
|
||||||
@ -438,8 +438,8 @@
|
|||||||
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
"list_of_payments": "Esta sección contendrá la lista de pagos.",
|
||||||
"select_payment_mode": "Seleccionar modo de pago",
|
"select_payment_mode": "Seleccionar modo de pago",
|
||||||
"confirm_mark_as_sent": "Este presupuesto se marcará como enviado",
|
"confirm_mark_as_sent": "Este presupuesto se marcará como enviado",
|
||||||
"confirm_send_payment": "This payment will be sent via email to the customer",
|
"confirm_send_payment": "Este pago se enviará por correo electrónico al cliente",
|
||||||
"send_payment_successfully": "Payment sent successfully",
|
"send_payment_successfully": "Pago enviado correctamente",
|
||||||
"user_email_does_not_exist": "El email del usuario no existe",
|
"user_email_does_not_exist": "El email del usuario no existe",
|
||||||
"something_went_wrong": "Algo fue mal",
|
"something_went_wrong": "Algo fue mal",
|
||||||
"confirm_delete": "No podrá recuperar este pago | No podrá recuperar estos pagos",
|
"confirm_delete": "No podrá recuperar este pago | No podrá recuperar estos pagos",
|
||||||
@ -494,7 +494,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"login": {
|
"login": {
|
||||||
"email": "Email",
|
"email": "Correo electrónico",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"forgot_password": "¿Olvidaste tu contraseña?",
|
"forgot_password": "¿Olvidaste tu contraseña?",
|
||||||
"or_signIn_with": "o Inicia sesión con",
|
"or_signIn_with": "o Inicia sesión con",
|
||||||
@ -505,33 +505,33 @@
|
|||||||
"enter_email": "Escriba el correo electrónico",
|
"enter_email": "Escriba el correo electrónico",
|
||||||
"enter_password": "Escriba la contraseña",
|
"enter_password": "Escriba la contraseña",
|
||||||
"retype_password": "Reescriba la contraseña",
|
"retype_password": "Reescriba la contraseña",
|
||||||
"login_placeholder": "mail@example.com"
|
"login_placeholder": "correo@ejemplo.com"
|
||||||
},
|
},
|
||||||
"users": {
|
"users": {
|
||||||
"title": "Users",
|
"title": "Usuarios",
|
||||||
"users_list": "Users List",
|
"users_list": "Lista de usuarios",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"description": "Descripción",
|
"description": "Descripción",
|
||||||
"added_on": "Añadido",
|
"added_on": "Añadido",
|
||||||
"date_of_creation": "Fecha de creación",
|
"date_of_creation": "Fecha de creación",
|
||||||
"action": "Acción",
|
"action": "Acción",
|
||||||
"add_user": "Add User",
|
"add_user": "Agregar usuario",
|
||||||
"save_user": "Save User",
|
"save_user": "Guardar usuario",
|
||||||
"update_user": "Update User",
|
"update_user": "Actualizar usuario",
|
||||||
"user": "User | Users",
|
"user": "Usuario | Usuarios",
|
||||||
"add_new_user": "Add New User",
|
"add_new_user": "Agregar Nuevo Usuario",
|
||||||
"new_user": "New User",
|
"new_user": "Nuevo usuario",
|
||||||
"edit_user": "Edit User",
|
"edit_user": "Editar usuario",
|
||||||
"no_users": "No users yet!",
|
"no_users": "¡Aún no hay usuarios!",
|
||||||
"list_of_users": "This section will contain the list of users.",
|
"list_of_users": "Esta sección contendrá la lista de usuarios.",
|
||||||
"email": "Email",
|
"email": "Correo",
|
||||||
"phone": "Teléfono",
|
"phone": "Teléfono",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"user_attached_message": "No se puede eliminar un elemento que ya está en uso.",
|
"user_attached_message": "No se puede eliminar un elemento que ya está en uso.",
|
||||||
"confirm_delete": "You will not be able to recover this User | You will not be able to recover these Users",
|
"confirm_delete": "No podrá recuperar este Usuario | No podrá recuperar estos Usuarios",
|
||||||
"created_message": "User created successfully",
|
"created_message": "Usuario creado satisfactoriamente",
|
||||||
"updated_message": "User updated successfully",
|
"updated_message": "Usuario actualizado satisfactoriamente",
|
||||||
"deleted_message": "User deleted successfully | User deleted successfully"
|
"deleted_message": "Usuario eliminado exitosamente | Usuario eliminado correctamente"
|
||||||
},
|
},
|
||||||
"reports": {
|
"reports": {
|
||||||
"title": "Informe",
|
"title": "Informe",
|
||||||
@ -604,10 +604,10 @@
|
|||||||
"tax_types": "Tipos de impuestos",
|
"tax_types": "Tipos de impuestos",
|
||||||
"expense_category": "Categorías de gastos",
|
"expense_category": "Categorías de gastos",
|
||||||
"update_app": "Actualizar aplicación",
|
"update_app": "Actualizar aplicación",
|
||||||
"backup": "Backup",
|
"backup": "Copias de seguridad",
|
||||||
"file_disk": "File Disk",
|
"file_disk": "Disco de archivo",
|
||||||
"custom_fields": "Campos Personalizados",
|
"custom_fields": "Campos Personalizados",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Modos de pago",
|
||||||
"notes": "Notas"
|
"notes": "Notas"
|
||||||
},
|
},
|
||||||
"title": "Configuraciones",
|
"title": "Configuraciones",
|
||||||
@ -674,7 +674,7 @@
|
|||||||
},
|
},
|
||||||
"custom_fields": {
|
"custom_fields": {
|
||||||
"title": "Campos Personalizados",
|
"title": "Campos Personalizados",
|
||||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
"section_description": "Personalice sus facturas, estimaciones y recibos de pago en sus propios campos. Asegúrese de usar los siguientes campos añadidos en los formatos de dirección de la página de configuración de personalización.",
|
||||||
"add_custom_field": "Agregar campo personalizado",
|
"add_custom_field": "Agregar campo personalizado",
|
||||||
"edit_custom_field": "Editar campo personalizado",
|
"edit_custom_field": "Editar campo personalizado",
|
||||||
"field_name": "Nombre del campo",
|
"field_name": "Nombre del campo",
|
||||||
@ -722,7 +722,7 @@
|
|||||||
"address": "Dirección",
|
"address": "Dirección",
|
||||||
"display_name": "Nombre para mostrar",
|
"display_name": "Nombre para mostrar",
|
||||||
"primary_contact_name": "Nombre de contacto principal",
|
"primary_contact_name": "Nombre de contacto principal",
|
||||||
"email": "Email",
|
"email": "Correo electrónico",
|
||||||
"website": "Sitio web",
|
"website": "Sitio web",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
@ -740,41 +740,41 @@
|
|||||||
"title": "Facturas",
|
"title": "Facturas",
|
||||||
"notes": "Notas",
|
"notes": "Notas",
|
||||||
"invoice_prefix": "Prefijo de las facturas",
|
"invoice_prefix": "Prefijo de las facturas",
|
||||||
"default_invoice_email_body": "Default Invoice Email Body",
|
"default_invoice_email_body": "Cuerpo predeterminado del correo electrónico de la factura",
|
||||||
"invoice_settings": "Ajustes de facturas",
|
"invoice_settings": "Ajustes de facturas",
|
||||||
"autogenerate_invoice_number": "Autogenerar número de factura",
|
"autogenerate_invoice_number": "Autogenerar número de factura",
|
||||||
"invoice_setting_description": "Desactive esto, si no desea generar automáticamente números de factura cada vez que cree una nueva factura.",
|
"invoice_setting_description": "Desactive esto, si no desea generar automáticamente números de factura cada vez que cree una nueva factura.",
|
||||||
"enter_invoice_prefix": "Introduzca el prefijo de factura",
|
"enter_invoice_prefix": "Introduzca el prefijo de factura",
|
||||||
"terms_and_conditions": "Términos y Condiciones",
|
"terms_and_conditions": "Términos y Condiciones",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Formato de dirección de la empresa",
|
||||||
"shipping_address_format": "Shipping Address Format",
|
"shipping_address_format": "Formato de la dirección de envío",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Formato de dirección de facturación",
|
||||||
"invoice_setting_updated": "Configuración de factura actualizada correctamente"
|
"invoice_setting_updated": "Configuración de factura actualizada correctamente"
|
||||||
},
|
},
|
||||||
"estimates": {
|
"estimates": {
|
||||||
"title": "Estimaciones",
|
"title": "Estimaciones",
|
||||||
"estimate_prefix": "Prefijo de los presupuestos",
|
"estimate_prefix": "Prefijo de los presupuestos",
|
||||||
"default_estimate_email_body": "Default Estimate Email Body",
|
"default_estimate_email_body": "Cuerpo predeterminado estimado del correo electrónico",
|
||||||
"estimate_settings": "Ajustes de presupuestos",
|
"estimate_settings": "Ajustes de presupuestos",
|
||||||
"autogenerate_estimate_number": "Autogenerar número de presupuesto",
|
"autogenerate_estimate_number": "Autogenerar número de presupuesto",
|
||||||
"estimate_setting_description": "Desactive esto, si no desea generar automáticamente números de presupuesto cada vez que cree un nuevo presupuesto.",
|
"estimate_setting_description": "Desactive esto, si no desea generar automáticamente números de presupuesto cada vez que cree un nuevo presupuesto.",
|
||||||
"enter_estimate_prefix": "Introduzca el prefijo de presupuesto",
|
"enter_estimate_prefix": "Introduzca el prefijo de presupuesto",
|
||||||
"estimate_setting_updated": "Configuración de presupuestos actualizada correctamente",
|
"estimate_setting_updated": "Configuración de presupuestos actualizada correctamente",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Formato de dirección de la empresa",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Formato de la dirección de facturación",
|
||||||
"shipping_address_format": "Shipping Address Format"
|
"shipping_address_format": "Formato de dirección de envío"
|
||||||
},
|
},
|
||||||
"payments": {
|
"payments": {
|
||||||
"title": "Pagos",
|
"title": "Pagos",
|
||||||
"description": "Modes of transaction for payments",
|
"description": "Modos de transacción de pagos",
|
||||||
"payment_prefix": "Prefijo de los pagos",
|
"payment_prefix": "Prefijo de los pagos",
|
||||||
"default_payment_email_body": "Default Payment Email Body",
|
"default_payment_email_body": "Cuerpo predeterminado del correo electrónico del pago",
|
||||||
"payment_settings": "Ajustes de pagos",
|
"payment_settings": "Ajustes de pagos",
|
||||||
"autogenerate_payment_number": "Autogenerar número de pago",
|
"autogenerate_payment_number": "Autogenerar número de pago",
|
||||||
"payment_setting_description": "Desactive esto, si no desea generar automáticamente números de pago cada vez que cree un nuevo pago.",
|
"payment_setting_description": "Desactive esto, si no desea generar automáticamente números de pago cada vez que cree un nuevo pago.",
|
||||||
"enter_payment_prefix": "Introduzca el prefijo de pago",
|
"enter_payment_prefix": "Introduzca el prefijo de pago",
|
||||||
"payment_setting_updated": "Configuración de pagos actualizada correctamente",
|
"payment_setting_updated": "Configuración de pagos actualizada correctamente",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Modos de pago",
|
||||||
"add_payment_mode": "Agregar modo de pago",
|
"add_payment_mode": "Agregar modo de pago",
|
||||||
"edit_payment_mode": "Editar modo de pago",
|
"edit_payment_mode": "Editar modo de pago",
|
||||||
"mode_name": "Nombre del modo",
|
"mode_name": "Nombre del modo",
|
||||||
@ -783,8 +783,8 @@
|
|||||||
"payment_mode_confirm_delete": "No podrá recuperar este modo de pago",
|
"payment_mode_confirm_delete": "No podrá recuperar este modo de pago",
|
||||||
"already_in_use": "El modo de pago ya está en uso",
|
"already_in_use": "El modo de pago ya está en uso",
|
||||||
"deleted_message": "Modo de pago eliminado correctamente",
|
"deleted_message": "Modo de pago eliminado correctamente",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Formato de dirección de la empresa",
|
||||||
"from_customer_address_format": "From Customer Address Format"
|
"from_customer_address_format": "Desde el formato de dirección del cliente"
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"title": "Artículos",
|
"title": "Artículos",
|
||||||
@ -800,24 +800,24 @@
|
|||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"title": "Notas",
|
"title": "Notas",
|
||||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
"description": "Ahorre tiempo creando notas y reutilizándolas en sus facturas, cálculos y pagos.",
|
||||||
"notes": "Notas",
|
"notes": "Notas",
|
||||||
"type": "Tipo",
|
"type": "Tipo",
|
||||||
"add_note": "Add Note",
|
"add_note": "Agregar nota",
|
||||||
"add_new_note": "Add New Note",
|
"add_new_note": "Agregar nueva nota",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"edit_note": "Edit Note",
|
"edit_note": "Editar nota",
|
||||||
"note_added": "Note added successfully",
|
"note_added": "Nota agregada correctamente",
|
||||||
"note_updated": "Note Updated successfully",
|
"note_updated": "Nota actualizada correctamente",
|
||||||
"note_confirm_delete": "You will not be able to recover this Note",
|
"note_confirm_delete": "No podrá recuperar esta nota",
|
||||||
"already_in_use": "Note is already in use",
|
"already_in_use": "Nota ya está en uso",
|
||||||
"deleted_message": "Note deleted successfully"
|
"deleted_message": "Nota eliminada correctamente"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"account_settings": {
|
"account_settings": {
|
||||||
"profile_picture": "Foto de perfil",
|
"profile_picture": "Foto de perfil",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"email": "Email",
|
"email": "Correo electrónico",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"confirm_password": "Confirmar contraseña",
|
"confirm_password": "Confirmar contraseña",
|
||||||
"account_settings": "Configuraciones de la cuenta",
|
"account_settings": "Configuraciones de la cuenta",
|
||||||
@ -827,7 +827,7 @@
|
|||||||
},
|
},
|
||||||
"user_profile": {
|
"user_profile": {
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"email": "Email",
|
"email": "Correo electrónico",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"confirm_password": "Confirmar contraseña"
|
"confirm_password": "Confirmar contraseña"
|
||||||
},
|
},
|
||||||
@ -879,7 +879,7 @@
|
|||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"currency": "Moneda",
|
"currency": "Moneda",
|
||||||
"default_language": "Default Language",
|
"default_language": "Idioma predeterminado",
|
||||||
"time_zone": "Zona horaria",
|
"time_zone": "Zona horaria",
|
||||||
"fiscal_year": "Año financiero",
|
"fiscal_year": "Año financiero",
|
||||||
"date_format": "Formato de fecha",
|
"date_format": "Formato de fecha",
|
||||||
@ -892,7 +892,7 @@
|
|||||||
"updated_message": "Preferencias actualizadas exitosamente",
|
"updated_message": "Preferencias actualizadas exitosamente",
|
||||||
"select_language": "seleccione el idioma",
|
"select_language": "seleccione el idioma",
|
||||||
"select_time_zone": "selecciona la zona horaria",
|
"select_time_zone": "selecciona la zona horaria",
|
||||||
"select_date_format": "Select Date Format",
|
"select_date_format": "Seleccionar formato de fecha",
|
||||||
"select_financial_year": "seleccione año financiero"
|
"select_financial_year": "seleccione año financiero"
|
||||||
},
|
},
|
||||||
"update_app": {
|
"update_app": {
|
||||||
@ -901,7 +901,7 @@
|
|||||||
"check_update": "Buscar actualizaciones",
|
"check_update": "Buscar actualizaciones",
|
||||||
"avail_update": "Nueva actualización disponible",
|
"avail_update": "Nueva actualización disponible",
|
||||||
"next_version": "Próxima versión",
|
"next_version": "Próxima versión",
|
||||||
"requirements": "Requirements",
|
"requirements": "Requisitos",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"update_progress": "Actualización en progreso...",
|
"update_progress": "Actualización en progreso...",
|
||||||
"progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
|
"progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
|
||||||
@ -917,91 +917,91 @@
|
|||||||
"update_failed_text": "¡Lo siento! Su actualización falló el: {step} paso"
|
"update_failed_text": "¡Lo siento! Su actualización falló el: {step} paso"
|
||||||
},
|
},
|
||||||
"backup": {
|
"backup": {
|
||||||
"title": "Backup | Backups",
|
"title": "Copia de seguridad | Copias de seguridad",
|
||||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
"description": "La copia de seguridad es un archivo comprimido zip que contiene todos los archivos en los directorios que especifiques junto con tu base de datos",
|
||||||
"new_backup": "Add New Backup",
|
"new_backup": "Agregar nueva copia de seguridad",
|
||||||
"create_backup": "Create Backup",
|
"create_backup": "Crear copia de seguridad",
|
||||||
"select_backup_type": "Select Backup Type",
|
"select_backup_type": "Seleccione Tipo de Copia de Seguridad",
|
||||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
"backup_confirm_delete": "No podrá recuperar esta copia de seguridad",
|
||||||
"path": "path",
|
"path": "ruta",
|
||||||
"new_disk": "New Disk",
|
"new_disk": "Nuevo Disco",
|
||||||
"created_at": "created at",
|
"created_at": "creado el",
|
||||||
"size": "size",
|
"size": "tamaño",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "dropbox",
|
||||||
"local": "local",
|
"local": "local",
|
||||||
"healthy": "healthy",
|
"healthy": "saludable",
|
||||||
"amount_of_backups": "amount of backups",
|
"amount_of_backups": "cantidad de copias de seguridad",
|
||||||
"newest_backups": "newest backups",
|
"newest_backups": "copias de seguridad más recientes",
|
||||||
"used_storage": "used storage",
|
"used_storage": "almacenamiento utilizado",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Seleccionar Disco",
|
||||||
"action": "Acción",
|
"action": "Acción",
|
||||||
"deleted_message": "Backup deleted successfully",
|
"deleted_message": "Copia de seguridad eliminada exitosamente",
|
||||||
"created_message": "Backup created successfully",
|
"created_message": "Copia de seguridad creada satisfactoriamente",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Credencial no válida del disco seleccionado"
|
||||||
},
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"title": "File Disk | File Disks",
|
"title": "Disco de archivos | Discos de archivos",
|
||||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
"description": "Por defecto, Crater utilizará su disco local para guardar copias de seguridad, avatar y otros archivos de imagen. Puede configurar varios controladores de disco como DigitalOcean, S3 y Dropbox según sus preferencias.",
|
||||||
"created_at": "created at",
|
"created_at": "creado el",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "dropbox",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"driver": "Driver",
|
"driver": "Controlador",
|
||||||
"disk_type": "Tipo",
|
"disk_type": "Tipo",
|
||||||
"disk_name": "Disk Name",
|
"disk_name": "Nombre del disco",
|
||||||
"new_disk": "Add New Disk",
|
"new_disk": "Agregar nuevo disco",
|
||||||
"filesystem_driver": "Filesystem Driver",
|
"filesystem_driver": "Controlador del sistema de archivos",
|
||||||
"local_driver": "local Driver",
|
"local_driver": "controlador local",
|
||||||
"local_root": "local Root",
|
"local_root": "raíz local",
|
||||||
"public_driver": "Public Driver",
|
"public_driver": "Controlador público",
|
||||||
"public_root": "Public Root",
|
"public_root": "Raíz pública",
|
||||||
"public_url": "Public URL",
|
"public_url": "URL pública",
|
||||||
"public_visibility": "Public Visibility",
|
"public_visibility": "Visibilidad pública",
|
||||||
"media_driver": "Media Driver",
|
"media_driver": "Controlador multimedia",
|
||||||
"media_root": "Media Root",
|
"media_root": "Raíz multimedia",
|
||||||
"aws_driver": "AWS Driver",
|
"aws_driver": "Controlador AWS",
|
||||||
"aws_key": "AWS Key",
|
"aws_key": "Clave AWS",
|
||||||
"aws_secret": "AWS Secret",
|
"aws_secret": "Secreto AWS",
|
||||||
"aws_region": "AWS Region",
|
"aws_region": "Región de AWS",
|
||||||
"aws_bucket": "AWS Bucket",
|
"aws_bucket": "Cubo AWS",
|
||||||
"aws_root": "AWS Root",
|
"aws_root": "Raíz AWS",
|
||||||
"do_spaces_type": "Do Spaces type",
|
"do_spaces_type": "Hacer Espacios tipo",
|
||||||
"do_spaces_key": "Do Spaces key",
|
"do_spaces_key": "Disponer espacios",
|
||||||
"do_spaces_secret": "Do Spaces Secret",
|
"do_spaces_secret": "Disponer espacios secretos",
|
||||||
"do_spaces_region": "Do Spaces Region",
|
"do_spaces_region": "Disponer región de espacios",
|
||||||
"do_spaces_bucket": "Do Spaces Bucket",
|
"do_spaces_bucket": "Disponer espacios",
|
||||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
"do_spaces_endpoint": "Disponer espacios extremos",
|
||||||
"do_spaces_root": "Do Spaces Root",
|
"do_spaces_root": "Disponer espacios en la raíz",
|
||||||
"dropbox_type": "Dropbox Type",
|
"dropbox_type": "Tipo de Dropbox",
|
||||||
"dropbox_token": "Dropbox Token",
|
"dropbox_token": "Token de DropBox",
|
||||||
"dropbox_key": "Dropbox Key",
|
"dropbox_key": "Clave Dropbox",
|
||||||
"dropbox_secret": "Dropbox Secret",
|
"dropbox_secret": "Dropbox Secret",
|
||||||
"dropbox_app": "Dropbox App",
|
"dropbox_app": "Aplicación Dropbox",
|
||||||
"dropbox_root": "Dropbox Root",
|
"dropbox_root": "Raíz Dropbox",
|
||||||
"default_driver": "Default Driver",
|
"default_driver": "Controlador por defecto",
|
||||||
"is_default": "IS DEFAULT",
|
"is_default": "ES PREDETERMINADO",
|
||||||
"set_default_disk": "Set Default Disk",
|
"set_default_disk": "Establecer disco predeterminado",
|
||||||
"success_set_default_disk": "Disk set as default successfully",
|
"success_set_default_disk": "Disco establecido correctamente como predeterminado",
|
||||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
"save_pdf_to_disk": "Guardar PDFs a disco",
|
||||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
"disk_setting_description": " Habilite esto, si desea guardar automáticamente una copia en formato pdf de cada factura, cálculo y recibo de pago en su disco predeterminado. Al activar esta opción, se reducirá el tiempo de carga al visualizar los archivos PDFs.",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Seleccionar Disco",
|
||||||
"disk_settings": "Disk Settings",
|
"disk_settings": "Configuración del disco",
|
||||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
"confirm_delete": "Los archivos y carpetas existentes en el disco especificado no se verán afectados, pero su configuración de disco será eliminada de Crater",
|
||||||
"action": "Acción",
|
"action": "Acción",
|
||||||
"edit_file_disk": "Edit File Disk",
|
"edit_file_disk": "Editar disco de ficheros",
|
||||||
"success_create": "Disk added successfully",
|
"success_create": "Disco añadido satisfactoriamente",
|
||||||
"success_update": "Disk updated successfully",
|
"success_update": "Disco actualizado satisfactoriamente",
|
||||||
"error": "Disk addition failed",
|
"error": "Error al añadir disco",
|
||||||
"deleted_message": "File Disk deleted successfully",
|
"deleted_message": "Disco de archivo borrado correctamente",
|
||||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
"disk_variables_save_successfully": "Disco configurado correctamente",
|
||||||
"disk_variables_save_error": "Disk configuration failed.",
|
"disk_variables_save_error": "La configuración del disco ha fallado.",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Credencial no válida del disco seleccionado"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wizard": {
|
"wizard": {
|
||||||
"account_info": "Información de la cuenta",
|
"account_info": "Información de la cuenta",
|
||||||
"account_info_desc": "Los detalles a continuación se utilizarán para crear la cuenta principal de administrador. También puede cambiar los detalles en cualquier momento después de iniciar sesión.",
|
"account_info_desc": "Los detalles a continuación se utilizarán para crear la cuenta principal de administrador. También puede cambiar los detalles en cualquier momento después de iniciar sesión.",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"email": "Email",
|
"email": "Correo",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"confirm_password": "Confirmar contraseña",
|
"confirm_password": "Confirmar contraseña",
|
||||||
"save_cont": "Guardar y continuar",
|
"save_cont": "Guardar y continuar",
|
||||||
@ -1037,10 +1037,10 @@
|
|||||||
"port": "Puerto de la base de datos",
|
"port": "Puerto de la base de datos",
|
||||||
"password": "Contraseña de la base de datos",
|
"password": "Contraseña de la base de datos",
|
||||||
"app_url": "URL de la aplicación",
|
"app_url": "URL de la aplicación",
|
||||||
"app_domain": "App Domain",
|
"app_domain": "Dominio",
|
||||||
"username": "Nombre de usuario de la base de datos",
|
"username": "Nombre de usuario de la base de datos",
|
||||||
"db_name": "Nombre de la base de datos",
|
"db_name": "Nombre de la base de datos",
|
||||||
"db_path": "Database Path",
|
"db_path": "Ruta de la base de datos",
|
||||||
"desc": "Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario."
|
"desc": "Cree una base de datos en su servidor y establezca las credenciales utilizando el siguiente formulario."
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@ -1101,7 +1101,7 @@
|
|||||||
"email_incorrect": "Email incorrecto.",
|
"email_incorrect": "Email incorrecto.",
|
||||||
"email_already_taken": "Este email ya está en uso",
|
"email_already_taken": "Este email ya está en uso",
|
||||||
"email_does_not_exist": "El usuario con el correo electrónico dado no existe",
|
"email_does_not_exist": "El usuario con el correo electrónico dado no existe",
|
||||||
"item_unit_already_taken": "This item unit name has already been taken",
|
"item_unit_already_taken": "El nombre de la unidad ya está en uso",
|
||||||
"payment_mode_already_taken": "El modo de pago ya ha sido tomado",
|
"payment_mode_already_taken": "El modo de pago ya ha sido tomado",
|
||||||
"send_reset_link": "Enviar enlace de restablecimiento",
|
"send_reset_link": "Enviar enlace de restablecimiento",
|
||||||
"not_yet": "¿Aún no? Envíalo de nuevo",
|
"not_yet": "¿Aún no? Envíalo de nuevo",
|
||||||
@ -1122,8 +1122,8 @@
|
|||||||
"amount_maxlength": "La cantidad no debe ser mayor de 20 dígitos.",
|
"amount_maxlength": "La cantidad no debe ser mayor de 20 dígitos.",
|
||||||
"amount_minvalue": "La cantidad debe ser mayor que 0 dígitos",
|
"amount_minvalue": "La cantidad debe ser mayor que 0 dígitos",
|
||||||
"description_maxlength": "La descripción no debe tener más de 255 caracteres.",
|
"description_maxlength": "La descripción no debe tener más de 255 caracteres.",
|
||||||
"subject_maxlength": "Subject should not be greater than 100 characters.",
|
"subject_maxlength": "El asunto no debe tener más de 100 caracteres.",
|
||||||
"message_maxlength": "Message should not be greater than 255 characters.",
|
"message_maxlength": "El mensaje no debe tener más de 255 caracteres.",
|
||||||
"maximum_options_error": "Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.",
|
"maximum_options_error": "Máximo de {max} opciones seleccionadas. Primero elimine una opción seleccionada para seleccionar otra.",
|
||||||
"notes_maxlength": "Las notas no deben tener más de 255 caracteres.",
|
"notes_maxlength": "Las notas no deben tener más de 255 caracteres.",
|
||||||
"address_maxlength": "La dirección no debe tener más de 255 caracteres.",
|
"address_maxlength": "La dirección no debe tener más de 255 caracteres.",
|
||||||
@ -1134,11 +1134,11 @@
|
|||||||
"pdf_estimate_label": "Presupuestar",
|
"pdf_estimate_label": "Presupuestar",
|
||||||
"pdf_estimate_number": "Número de Presupuesto",
|
"pdf_estimate_number": "Número de Presupuesto",
|
||||||
"pdf_estimate_date": "Fecha presupuesto",
|
"pdf_estimate_date": "Fecha presupuesto",
|
||||||
"pdf_estimate_expire_date": "Expiry date",
|
"pdf_estimate_expire_date": "Fecha de caducidad",
|
||||||
"pdf_invoice_label": "Factura",
|
"pdf_invoice_label": "Factura",
|
||||||
"pdf_invoice_number": "Numero de factura",
|
"pdf_invoice_number": "Numero de factura",
|
||||||
"pdf_invoice_date": "Fecha de la factura",
|
"pdf_invoice_date": "Fecha de la factura",
|
||||||
"pdf_invoice_due_date": "Due date",
|
"pdf_invoice_due_date": "Fecha final",
|
||||||
"pdf_notes": "Notas",
|
"pdf_notes": "Notas",
|
||||||
"pdf_items_label": "Artículos",
|
"pdf_items_label": "Artículos",
|
||||||
"pdf_quantity_label": "Cantidad",
|
"pdf_quantity_label": "Cantidad",
|
||||||
@ -1147,24 +1147,24 @@
|
|||||||
"pdf_amount_label": "Cantidad",
|
"pdf_amount_label": "Cantidad",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotal",
|
||||||
"pdf_total": "Total",
|
"pdf_total": "Total",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "RECIBO DE PAGO",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Fecha de pago",
|
||||||
"pdf_payment_number": "Numero de pago",
|
"pdf_payment_number": "Numero de pago",
|
||||||
"pdf_payment_mode": "Modo de pago",
|
"pdf_payment_mode": "Modo de pago",
|
||||||
"pdf_payment_amount_received_label": "Amount Received",
|
"pdf_payment_amount_received_label": "Monto Recibido",
|
||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "INFORME DE GASTOS",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "GASTO TOTAL",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "INFORME PERDIDAS & GANANCIAS",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INGRESO",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "GANANCIA NETA",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Informe de ventas: Por cliente",
|
||||||
"pdf_total_sales_label": "TOTAL SALES",
|
"pdf_total_sales_label": "VENTAS TOTALES",
|
||||||
"pdf_item_sales_label": "Sales Report: By Item",
|
"pdf_item_sales_label": "Informe de ventas: por artículo",
|
||||||
"pdf_tax_report_label": "TAX REPORT",
|
"pdf_tax_report_label": "INFORME DE IMPUESTOS",
|
||||||
"pdf_total_tax_label": "TOTAL TAX",
|
"pdf_total_tax_label": "TOTAL IMPUESTOS",
|
||||||
"pdf_tax_types_label": "Tipos de impuestos",
|
"pdf_tax_types_label": "Tipos de impuestos",
|
||||||
"pdf_expenses_label": "Gastos",
|
"pdf_expenses_label": "Gastos",
|
||||||
"pdf_bill_to": "Cobrar a,",
|
"pdf_bill_to": "Cobrar a,",
|
||||||
"pdf_ship_to": "Enviar a,",
|
"pdf_ship_to": "Enviar a,",
|
||||||
"pdf_received_from": "Received from:"
|
"pdf_received_from": "Recibido desde:"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -7,9 +7,10 @@ import ar from './ar.json'
|
|||||||
import de from './de.json'
|
import de from './de.json'
|
||||||
import pt_BR from './pt-br.json'
|
import pt_BR from './pt-br.json'
|
||||||
import it from './it.json'
|
import it from './it.json'
|
||||||
import sr_LA from './sr-latn.json'
|
import sr from './sr.json'
|
||||||
import nl from './nl.json'
|
import nl from './nl.json'
|
||||||
import lv from './lv.json'
|
import lv from './lv.json'
|
||||||
|
import sv from './sv.json'
|
||||||
|
|
||||||
Vue.use(VueI18n)
|
Vue.use(VueI18n)
|
||||||
|
|
||||||
@ -23,9 +24,10 @@ const i18n = new VueI18n({
|
|||||||
de,
|
de,
|
||||||
pt_BR,
|
pt_BR,
|
||||||
it,
|
it,
|
||||||
sr_LA,
|
sr,
|
||||||
nl,
|
nl,
|
||||||
lv,
|
lv,
|
||||||
|
sv,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -684,14 +684,14 @@
|
|||||||
"required": "Required",
|
"required": "Required",
|
||||||
"placeholder": "Placeholder",
|
"placeholder": "Placeholder",
|
||||||
"help_text": "Help Text",
|
"help_text": "Help Text",
|
||||||
"default_value": "Default Value",
|
"default_value": "Noklusējuma vērtība",
|
||||||
"prefix": "Prefix",
|
"prefix": "Prefikss",
|
||||||
"starting_number": "Starting Number",
|
"starting_number": "Sākuma numurs",
|
||||||
"model": "Model",
|
"model": "Modelis",
|
||||||
"help_text_description": "Enter some text to help users understand the purpose of this custom field.",
|
"help_text_description": "Enter some text to help users understand the purpose of this custom field.",
|
||||||
"suffix": "Suffix",
|
"suffix": "Suffix",
|
||||||
"yes": "Yes",
|
"yes": "Jā",
|
||||||
"no": "No",
|
"no": "Nē",
|
||||||
"order": "Order",
|
"order": "Order",
|
||||||
"custom_field_confirm_delete": "You will not be able to recover this Custom Field",
|
"custom_field_confirm_delete": "You will not be able to recover this Custom Field",
|
||||||
"already_in_use": "Custom Field is already in use",
|
"already_in_use": "Custom Field is already in use",
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
"sort_by": "Sorteer op",
|
"sort_by": "Sorteer op",
|
||||||
"ascending": "Oplopend",
|
"ascending": "Oplopend",
|
||||||
"descending": "Aflopend",
|
"descending": "Aflopend",
|
||||||
"subject": "Onderwerpen",
|
"subject": "Onderwerp",
|
||||||
"body": "Inhoud",
|
"body": "Inhoud",
|
||||||
"message": "Bericht",
|
"message": "Bericht",
|
||||||
"send": "Verstuur",
|
"send": "Verstuur",
|
||||||
@ -94,7 +94,7 @@
|
|||||||
"due_amount": "Openstaand bedrag",
|
"due_amount": "Openstaand bedrag",
|
||||||
"customers": "Klanten",
|
"customers": "Klanten",
|
||||||
"invoices": "Facturen",
|
"invoices": "Facturen",
|
||||||
"estimates": "Offerte"
|
"estimates": "Offertes"
|
||||||
},
|
},
|
||||||
"chart_info": {
|
"chart_info": {
|
||||||
"total_sales": "Verkoop",
|
"total_sales": "Verkoop",
|
||||||
@ -166,7 +166,7 @@
|
|||||||
"primary_currency": "Primaire valuta",
|
"primary_currency": "Primaire valuta",
|
||||||
"description": "Omschrijving",
|
"description": "Omschrijving",
|
||||||
"add_new_customer": "Nieuwe klant toevoegen",
|
"add_new_customer": "Nieuwe klant toevoegen",
|
||||||
"save_customer": "Klant redden",
|
"save_customer": "Klant opslaan",
|
||||||
"update_customer": "Klant bijwerken",
|
"update_customer": "Klant bijwerken",
|
||||||
"customer": "Klant | Klanten",
|
"customer": "Klant | Klanten",
|
||||||
"new_customer": "Nieuwe klant",
|
"new_customer": "Nieuwe klant",
|
||||||
@ -186,7 +186,7 @@
|
|||||||
"no_matching_customers": "Er zijn geen overeenkomende klanten!",
|
"no_matching_customers": "Er zijn geen overeenkomende klanten!",
|
||||||
"phone_number": "Telefoonnummer",
|
"phone_number": "Telefoonnummer",
|
||||||
"create_date": "Aangemaakt op",
|
"create_date": "Aangemaakt op",
|
||||||
"confirm_delete": "U kunt deze klant en alle gerelateerde facturen, offertes en betalingen niet terugkrijgen. | U zult deze klanten en alle gerelateerde facturen, offertes en betalingen niet kunnen terugkrijgen.",
|
"confirm_delete": "Deze klant en alle gerelateerde facturen, offertes en betalingen worden permanent verwijderd. | Deze klanten en alle gerelateerde facturen, offertes en betalingen worden permanent verwijderd.",
|
||||||
"created_message": "Klant succesvol aangemaakt",
|
"created_message": "Klant succesvol aangemaakt",
|
||||||
"updated_message": "Klant succesvol geüpdatet",
|
"updated_message": "Klant succesvol geüpdatet",
|
||||||
"deleted_message": "Klant succesvol verwijderd | Klanten zijn succesvol verwijderd"
|
"deleted_message": "Klant succesvol verwijderd | Klanten zijn succesvol verwijderd"
|
||||||
@ -236,14 +236,14 @@
|
|||||||
"total": "Totaal",
|
"total": "Totaal",
|
||||||
"discount": "Korting",
|
"discount": "Korting",
|
||||||
"sub_total": "Subtotaal",
|
"sub_total": "Subtotaal",
|
||||||
"estimate_number": "Geschat aantal",
|
"estimate_number": "Offerte nummer",
|
||||||
"ref_number": "Referentie nummer",
|
"ref_number": "Referentie nummer",
|
||||||
"contact": "Contact",
|
"contact": "Contact",
|
||||||
"add_item": "Voeg een item toe",
|
"add_item": "Voeg een item toe",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
"due_date": "Opleveringsdatum",
|
"due_date": "Opleveringsdatum",
|
||||||
"expiry_date": "Vervaldatum",
|
"expiry_date": "Vervaldatum",
|
||||||
"status": "Statu",
|
"status": "Status",
|
||||||
"add_tax": "Belasting toevoegen",
|
"add_tax": "Belasting toevoegen",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
@ -332,7 +332,7 @@
|
|||||||
"add_item": "Voeg een item toe",
|
"add_item": "Voeg een item toe",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
"due_date": "Opleveringsdatum",
|
"due_date": "Opleveringsdatum",
|
||||||
"status": "Statu",
|
"status": "Status",
|
||||||
"add_tax": "Belasting toevoegen",
|
"add_tax": "Belasting toevoegen",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
@ -379,7 +379,7 @@
|
|||||||
"type_item_description": "Type Item Beschrijving (optioneel)"
|
"type_item_description": "Type Item Beschrijving (optioneel)"
|
||||||
},
|
},
|
||||||
"payment_attached_message": "Aan een van de geselecteerde facturen is al een betaling gekoppeld. Zorg ervoor dat u eerst de bijgevoegde betalingen verwijdert om door te gaan met de verwijdering",
|
"payment_attached_message": "Aan een van de geselecteerde facturen is al een betaling gekoppeld. Zorg ervoor dat u eerst de bijgevoegde betalingen verwijdert om door te gaan met de verwijdering",
|
||||||
"confirm_delete": "U kunt deze factuur | niet terugvorderen U kunt deze facturen niet terugkrijgen",
|
"confirm_delete": "Deze factuur wordt permanent verwijderd | Deze facturen worden permanent verwijderd",
|
||||||
"created_message": "Factuur succesvol aangemaakt",
|
"created_message": "Factuur succesvol aangemaakt",
|
||||||
"updated_message": "Factuur succesvol bijgewerkt",
|
"updated_message": "Factuur succesvol bijgewerkt",
|
||||||
"deleted_message": "Factuur succesvol verwijderd | Facturen succesvol verwijderd",
|
"deleted_message": "Factuur succesvol verwijderd | Facturen succesvol verwijderd",
|
||||||
@ -442,7 +442,7 @@
|
|||||||
"send_payment_successfully": "Betaling succesvol verzonden",
|
"send_payment_successfully": "Betaling succesvol verzonden",
|
||||||
"user_email_does_not_exist": "E-mailadres van gebruiker bestaat niet",
|
"user_email_does_not_exist": "E-mailadres van gebruiker bestaat niet",
|
||||||
"something_went_wrong": "Er is iets fout gegaan",
|
"something_went_wrong": "Er is iets fout gegaan",
|
||||||
"confirm_delete": "U kunt deze betaling niet herstellen U kunt deze betalingen niet terugkrijgen",
|
"confirm_delete": "Deze betaling wordt permanent verwijderd | Deze betalingen worden permanent verwijderd",
|
||||||
"created_message": "De betaling is succesvol aangemaakt",
|
"created_message": "De betaling is succesvol aangemaakt",
|
||||||
"updated_message": "Betaling succesvol bijgewerkt",
|
"updated_message": "Betaling succesvol bijgewerkt",
|
||||||
"deleted_message": "Betaling succesvol verwijderd | Betalingen zijn verwijderd",
|
"deleted_message": "Betaling succesvol verwijderd | Betalingen zijn verwijderd",
|
||||||
@ -476,7 +476,7 @@
|
|||||||
"expense": "Uitgaven | Uitgaven",
|
"expense": "Uitgaven | Uitgaven",
|
||||||
"no_expenses": "Nog geen kosten!",
|
"no_expenses": "Nog geen kosten!",
|
||||||
"list_of_expenses": "Hier vind je jouw uitgaven terug.",
|
"list_of_expenses": "Hier vind je jouw uitgaven terug.",
|
||||||
"confirm_delete": "U kunt deze kosten | niet terugkrijgen U kunt deze kosten niet terugvorderen",
|
"confirm_delete": "Deze uitgave wordt permanent verwijderd | Deze kosten worden permanent verwijderd",
|
||||||
"created_message": "Kosten succesvol gemaakt",
|
"created_message": "Kosten succesvol gemaakt",
|
||||||
"updated_message": "Kosten succesvol bijgewerkt",
|
"updated_message": "Kosten succesvol bijgewerkt",
|
||||||
"deleted_message": "Kosten succesvol verwijderd | Uitgaven zijn verwijderd",
|
"deleted_message": "Kosten succesvol verwijderd | Uitgaven zijn verwijderd",
|
||||||
@ -537,7 +537,7 @@
|
|||||||
"title": "Verslag doen van",
|
"title": "Verslag doen van",
|
||||||
"from_date": "Van datum",
|
"from_date": "Van datum",
|
||||||
"to_date": "Tot datum",
|
"to_date": "Tot datum",
|
||||||
"status": "Statu",
|
"status": "Status",
|
||||||
"paid": "Betaald",
|
"paid": "Betaald",
|
||||||
"unpaid": "Onbetaald",
|
"unpaid": "Onbetaald",
|
||||||
"download_pdf": "Download PDF",
|
"download_pdf": "Download PDF",
|
||||||
@ -572,17 +572,17 @@
|
|||||||
"due_date": "Opleveringsdatum",
|
"due_date": "Opleveringsdatum",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"contact_name": "Contactnaam",
|
"contact_name": "Contactnaam",
|
||||||
"status": "Statu"
|
"status": "Status"
|
||||||
},
|
},
|
||||||
"estimates": {
|
"estimates": {
|
||||||
"estimate": "Offerte",
|
"estimate": "Offerte",
|
||||||
"estimate_date": "Geschatte datum",
|
"estimate_date": "Offerte Datum",
|
||||||
"due_date": "Opleveringsdatum",
|
"due_date": "Opleveringsdatum",
|
||||||
"estimate_number": "Geschat aantal",
|
"estimate_number": "Offerte nummer",
|
||||||
"ref_number": "Referentie nummer",
|
"ref_number": "Referentie nummer",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"contact_name": "Contactnaam",
|
"contact_name": "Contactnaam",
|
||||||
"status": "Statu"
|
"status": "Status"
|
||||||
},
|
},
|
||||||
"expenses": {
|
"expenses": {
|
||||||
"expenses": "Uitgaven",
|
"expenses": "Uitgaven",
|
||||||
@ -606,8 +606,8 @@
|
|||||||
"update_app": "App bijwerken",
|
"update_app": "App bijwerken",
|
||||||
"backup": "Back-up",
|
"backup": "Back-up",
|
||||||
"file_disk": "Bestandsopslag",
|
"file_disk": "Bestandsopslag",
|
||||||
"custom_fields": "Custom Fields",
|
"custom_fields": "Aangepaste velden",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Betaalmethodes",
|
||||||
"notes": "Opmerkingen"
|
"notes": "Opmerkingen"
|
||||||
},
|
},
|
||||||
"title": "Instellingen",
|
"title": "Instellingen",
|
||||||
@ -636,7 +636,7 @@
|
|||||||
"add_currency": "Valuta toevoegen"
|
"add_currency": "Valuta toevoegen"
|
||||||
},
|
},
|
||||||
"mail": {
|
"mail": {
|
||||||
"host": "Mail Host",
|
"host": "Mail host",
|
||||||
"port": "Mail Port",
|
"port": "Mail Port",
|
||||||
"driver": "Mail-stuurprogramma",
|
"driver": "Mail-stuurprogramma",
|
||||||
"secret": "Geheim",
|
"secret": "Geheim",
|
||||||
@ -668,45 +668,45 @@
|
|||||||
"state": "Provincie",
|
"state": "Provincie",
|
||||||
"city": "Stad",
|
"city": "Stad",
|
||||||
"address": "Adres",
|
"address": "Adres",
|
||||||
"zip": "Zip",
|
"zip": "Postcode",
|
||||||
"save": "Opslaan",
|
"save": "Opslaan",
|
||||||
"updated_message": "Bedrijfsinformatie succesvol bijgewerkt"
|
"updated_message": "Bedrijfsinformatie succesvol bijgewerkt"
|
||||||
},
|
},
|
||||||
"custom_fields": {
|
"custom_fields": {
|
||||||
"title": "Custom Fields",
|
"title": "Aangepaste velden",
|
||||||
"section_description": "Customize your Invoices, Estimates & Payment Receipts with your own fields. Make sure to use the below added fields on the address formats on Customization settings page.",
|
"section_description": "Uw facturen, offertes & betalingsbewijzen aanpassen met uw eigen velden. Gebruik onderstaande velden op het adres format op de Customization instellings pagina.",
|
||||||
"add_custom_field": "Add Custom Field",
|
"add_custom_field": "Extra veld toevoegen",
|
||||||
"edit_custom_field": "Edit Custom Field",
|
"edit_custom_field": "Veld wijzigen",
|
||||||
"field_name": "Field Name",
|
"field_name": "Veld naam",
|
||||||
"label": "Label",
|
"label": "Label",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
"required": "Required",
|
"required": "Verplicht",
|
||||||
"placeholder": "Placeholder",
|
"placeholder": "Tijdelijke plaatshouder",
|
||||||
"help_text": "Help Text",
|
"help_text": "Hulp Text",
|
||||||
"default_value": "Default Value",
|
"default_value": "Standaard waarde",
|
||||||
"prefix": "Prefix",
|
"prefix": "Voorvoegsel",
|
||||||
"starting_number": "Starting Number",
|
"starting_number": "Starting Number",
|
||||||
"model": "Model",
|
"model": "Model",
|
||||||
"help_text_description": "Enter some text to help users understand the purpose of this custom field.",
|
"help_text_description": "Voer tekst in om gebruikers te helpen het doel van dit aangepaste veld te begrijpen.",
|
||||||
"suffix": "Suffix",
|
"suffix": "Achtervoegsel",
|
||||||
"yes": "Yes",
|
"yes": "Ja",
|
||||||
"no": "No",
|
"no": "Nee",
|
||||||
"order": "Order",
|
"order": "Volgorde",
|
||||||
"custom_field_confirm_delete": "You will not be able to recover this Custom Field",
|
"custom_field_confirm_delete": "U kunt dit veld niet herstellen",
|
||||||
"already_in_use": "Custom Field is already in use",
|
"already_in_use": "Aangepast veld is al in gebruik",
|
||||||
"deleted_message": "Custom Field deleted successfully",
|
"deleted_message": "Aangepast veld is succesvol verwijderd",
|
||||||
"options": "options",
|
"options": "opties",
|
||||||
"add_option": "Add Options",
|
"add_option": "Optie toevoegen",
|
||||||
"add_another_option": "Add another option",
|
"add_another_option": "Nog een optie toevoegen",
|
||||||
"sort_in_alphabetical_order": "Sort in Alphabetical Order",
|
"sort_in_alphabetical_order": "Sorteer op alfabetische volgorde",
|
||||||
"add_options_in_bulk": "Add options in bulk",
|
"add_options_in_bulk": "Voeg opties toe in bulk",
|
||||||
"use_predefined_options": "Use Predefined Options",
|
"use_predefined_options": "Gebruik voorgedefinieerde opties",
|
||||||
"select_custom_date": "Select Custom Date",
|
"select_custom_date": "Selecteer een aangepaste datum",
|
||||||
"select_relative_date": "Select Relative Date",
|
"select_relative_date": "Selecteer relatieve datum",
|
||||||
"ticked_by_default": "Ticked by default",
|
"ticked_by_default": "Standaard aangevinkt",
|
||||||
"updated_message": "Custom Field updated successfully",
|
"updated_message": "Aangepast veld is succesvol aangepast",
|
||||||
"added_message": "Custom Field added successfully"
|
"added_message": "Aangepast veld is succesvol toegevoegd"
|
||||||
},
|
},
|
||||||
"customization": {
|
"customization": {
|
||||||
"customization": "aanpassen",
|
"customization": "aanpassen",
|
||||||
@ -740,29 +740,29 @@
|
|||||||
"title": "Facturen",
|
"title": "Facturen",
|
||||||
"notes": "Opmerkingen",
|
"notes": "Opmerkingen",
|
||||||
"invoice_prefix": "Factuurvoorvoegsel",
|
"invoice_prefix": "Factuurvoorvoegsel",
|
||||||
"default_invoice_email_body": "Default Invoice Email Body",
|
"default_invoice_email_body": "Standaard factuur email text",
|
||||||
"invoice_settings": "Factuurinstellingen",
|
"invoice_settings": "Factuurinstellingen",
|
||||||
"autogenerate_invoice_number": "Factuurnummer automatisch genereren",
|
"autogenerate_invoice_number": "Factuurnummer automatisch genereren",
|
||||||
"invoice_setting_description": "Schakel dit uit als u niet automatisch factuurnummers wilt genereren telkens wanneer u een nieuwe factuur maakt.",
|
"invoice_setting_description": "Schakel dit uit als u niet automatisch factuurnummers wilt genereren telkens wanneer u een nieuwe factuur maakt.",
|
||||||
"enter_invoice_prefix": "Voer het factuurvoorvoegsel in",
|
"enter_invoice_prefix": "Voer het factuurvoorvoegsel in",
|
||||||
"terms_and_conditions": "Voorwaarden",
|
"terms_and_conditions": "Voorwaarden",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Bedrijfsadres format",
|
||||||
"shipping_address_format": "Shipping Address Format",
|
"shipping_address_format": "Verzendadres format",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Factuuradres format",
|
||||||
"invoice_setting_updated": "Factuurinstelling succesvol bijgewerkt"
|
"invoice_setting_updated": "Factuurinstelling succesvol bijgewerkt"
|
||||||
},
|
},
|
||||||
"estimates": {
|
"estimates": {
|
||||||
"title": "Offertes",
|
"title": "Offertes",
|
||||||
"estimate_prefix": "Voorvoegsel schatten",
|
"estimate_prefix": "Voorvoegsel schatten",
|
||||||
"default_estimate_email_body": "Default Estimate Email Body",
|
"default_estimate_email_body": "Standaard offerte email text",
|
||||||
"estimate_settings": "Instellingen schatten",
|
"estimate_settings": "Instellingen schatten",
|
||||||
"autogenerate_estimate_number": "Automatisch geschat nummer genereren",
|
"autogenerate_estimate_number": "Automatisch geschat nummer genereren",
|
||||||
"estimate_setting_description": "Schakel dit uit als u niet automatisch offertesaantallen wilt genereren telkens wanneer u een nieuwe offerte maakt.",
|
"estimate_setting_description": "Schakel dit uit als u niet automatisch offertesaantallen wilt genereren telkens wanneer u een nieuwe offerte maakt.",
|
||||||
"enter_estimate_prefix": "Voer het prefixnummer in",
|
"enter_estimate_prefix": "Voer het prefixnummer in",
|
||||||
"estimate_setting_updated": "Instelling Offerte succesvol bijgewerkt",
|
"estimate_setting_updated": "Instelling Offerte succesvol bijgewerkt",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Bedrijfsadres format",
|
||||||
"billing_address_format": "Billing Address Format",
|
"billing_address_format": "Factuuradres Format",
|
||||||
"shipping_address_format": "Shipping Address Format"
|
"shipping_address_format": "Verzendadres format"
|
||||||
},
|
},
|
||||||
"payments": {
|
"payments": {
|
||||||
"title": "Betalingen",
|
"title": "Betalingen",
|
||||||
@ -774,7 +774,7 @@
|
|||||||
"payment_setting_description": "Schakel dit uit als u niet elke keer dat u een nieuwe betaling aanmaakt, automatisch betalingsnummers wilt genereren.",
|
"payment_setting_description": "Schakel dit uit als u niet elke keer dat u een nieuwe betaling aanmaakt, automatisch betalingsnummers wilt genereren.",
|
||||||
"enter_payment_prefix": "Voer het betalingsvoorvoegsel in",
|
"enter_payment_prefix": "Voer het betalingsvoorvoegsel in",
|
||||||
"payment_setting_updated": "Betalingsinstelling geüpdatet",
|
"payment_setting_updated": "Betalingsinstelling geüpdatet",
|
||||||
"payment_modes": "Payment Modes",
|
"payment_modes": "Betaalmethodes",
|
||||||
"add_payment_mode": "Betaalmodus toevoegen",
|
"add_payment_mode": "Betaalmodus toevoegen",
|
||||||
"edit_payment_mode": "Betaalmodus bewerken",
|
"edit_payment_mode": "Betaalmodus bewerken",
|
||||||
"mode_name": "Mode naam",
|
"mode_name": "Mode naam",
|
||||||
@ -783,8 +783,8 @@
|
|||||||
"payment_mode_confirm_delete": "U kunt deze betalingsmodus niet herstellen",
|
"payment_mode_confirm_delete": "U kunt deze betalingsmodus niet herstellen",
|
||||||
"already_in_use": "De betalingsmodus is al in gebruik",
|
"already_in_use": "De betalingsmodus is al in gebruik",
|
||||||
"deleted_message": "Betaalwijze succesvol verwijderd",
|
"deleted_message": "Betaalwijze succesvol verwijderd",
|
||||||
"company_address_format": "Company Address Format",
|
"company_address_format": "Bedrijfsadres format",
|
||||||
"from_customer_address_format": "From Customer Address Format"
|
"from_customer_address_format": "Van klant adres formaat"
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"title": "Artikelen",
|
"title": "Artikelen",
|
||||||
@ -800,18 +800,18 @@
|
|||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"title": "Opmerkingen",
|
"title": "Opmerkingen",
|
||||||
"description": "Save time by creating notes and reusing them on your invoices, estimates & payments.",
|
"description": "Bespaar tijd door notities te maken en ze opnieuw te gebruiken op uw facturen, ramingen en betalingen.",
|
||||||
"notes": "Opmerkingen",
|
"notes": "Opmerkingen",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
"add_note": "Add Note",
|
"add_note": "Notitie toevoegen",
|
||||||
"add_new_note": "Add New Note",
|
"add_new_note": "Voeg een nieuwe notitie toe",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
"edit_note": "Edit Note",
|
"edit_note": "Notitie bewerken",
|
||||||
"note_added": "Note added successfully",
|
"note_added": "Notitie toegevoegd",
|
||||||
"note_updated": "Note Updated successfully",
|
"note_updated": "Notitie bijgewerkt",
|
||||||
"note_confirm_delete": "You will not be able to recover this Note",
|
"note_confirm_delete": "U kunt deze notitie niet terughalen",
|
||||||
"already_in_use": "Note is already in use",
|
"already_in_use": "Notitie is reeds in gebruik",
|
||||||
"deleted_message": "Note deleted successfully"
|
"deleted_message": "Notitie verwijderd"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"account_settings": {
|
"account_settings": {
|
||||||
@ -859,7 +859,7 @@
|
|||||||
"created_message": "Belastingtype is gemaakt",
|
"created_message": "Belastingtype is gemaakt",
|
||||||
"updated_message": "Belastingtype succesvol bijgewerkt",
|
"updated_message": "Belastingtype succesvol bijgewerkt",
|
||||||
"deleted_message": "Belastingtype succesvol verwijderd",
|
"deleted_message": "Belastingtype succesvol verwijderd",
|
||||||
"confirm_delete": "U kunt dit belastingtype niet terugkrijgen",
|
"confirm_delete": "Dit belastingtype wordt permanent verwijderd",
|
||||||
"already_in_use": "Belasting al in gebruik"
|
"already_in_use": "Belasting al in gebruik"
|
||||||
},
|
},
|
||||||
"expense_category": {
|
"expense_category": {
|
||||||
@ -879,7 +879,7 @@
|
|||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"currency": "Valuta",
|
"currency": "Valuta",
|
||||||
"default_language": "Default Language",
|
"default_language": "Standaard taal",
|
||||||
"time_zone": "Tijdzone",
|
"time_zone": "Tijdzone",
|
||||||
"fiscal_year": "Financieel jaar",
|
"fiscal_year": "Financieel jaar",
|
||||||
"date_format": "Datumnotatie",
|
"date_format": "Datumnotatie",
|
||||||
@ -892,7 +892,7 @@
|
|||||||
"updated_message": "Voorkeuren succesvol bijgewerkt",
|
"updated_message": "Voorkeuren succesvol bijgewerkt",
|
||||||
"select_language": "Selecteer taal",
|
"select_language": "Selecteer taal",
|
||||||
"select_time_zone": "Selecteer Tijdzone",
|
"select_time_zone": "Selecteer Tijdzone",
|
||||||
"select_date_format": "Select Date Format",
|
"select_date_format": "Selecteer datum/tijdindeling",
|
||||||
"select_financial_year": "Selecteer financieel ja"
|
"select_financial_year": "Selecteer financieel ja"
|
||||||
},
|
},
|
||||||
"update_app": {
|
"update_app": {
|
||||||
@ -901,7 +901,7 @@
|
|||||||
"check_update": "Controleer op updates",
|
"check_update": "Controleer op updates",
|
||||||
"avail_update": "Nieuwe update beschikbaar",
|
"avail_update": "Nieuwe update beschikbaar",
|
||||||
"next_version": "Volgende versie",
|
"next_version": "Volgende versie",
|
||||||
"requirements": "Requirements",
|
"requirements": "Vereisten",
|
||||||
"update": "Nu updaten",
|
"update": "Nu updaten",
|
||||||
"update_progress": "Update wordt uitgevoerd...",
|
"update_progress": "Update wordt uitgevoerd...",
|
||||||
"progress_text": "Het duurt maar een paar minuten. Vernieuw het scherm niet en sluit het venster niet voordat de update is voltooid",
|
"progress_text": "Het duurt maar een paar minuten. Vernieuw het scherm niet en sluit het venster niet voordat de update is voltooid",
|
||||||
@ -918,56 +918,56 @@
|
|||||||
},
|
},
|
||||||
"backup": {
|
"backup": {
|
||||||
"title": "Backup | Backups",
|
"title": "Backup | Backups",
|
||||||
"description": "The backup is a zipfile that contains all files in the directories you specify along with a dump of your database",
|
"description": "De back-up is een zipfile met alle bestanden in de mappen die je opgeeft samen met een dump van je database",
|
||||||
"new_backup": "Add New Backup",
|
"new_backup": "Nieuwe back-up",
|
||||||
"create_backup": "Create Backup",
|
"create_backup": "Backup maken",
|
||||||
"select_backup_type": "Select Backup Type",
|
"select_backup_type": "Backup-type selecteren",
|
||||||
"backup_confirm_delete": "You will not be able to recover this Backup",
|
"backup_confirm_delete": "U kunt deze back-up niet terughalen",
|
||||||
"path": "path",
|
"path": "pad",
|
||||||
"new_disk": "New Disk",
|
"new_disk": "Nieuwe schijf",
|
||||||
"created_at": "created at",
|
"created_at": "aangemaakt op",
|
||||||
"size": "size",
|
"size": "grootte",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "dropbox",
|
||||||
"local": "local",
|
"local": "lokaal",
|
||||||
"healthy": "healthy",
|
"healthy": "gezond",
|
||||||
"amount_of_backups": "amount of backups",
|
"amount_of_backups": "aantal back-ups",
|
||||||
"newest_backups": "newest backups",
|
"newest_backups": "nieuwste back-ups",
|
||||||
"used_storage": "used storage",
|
"used_storage": "gebruikte opslag",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Selecteer Disk",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
"deleted_message": "Backup deleted successfully",
|
"deleted_message": "Back-up is succesvol verwijderd",
|
||||||
"created_message": "Backup created successfully",
|
"created_message": "Back-up successvol gemaakt",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Ongeldige inloggegevens voor geselecteerde schijf"
|
||||||
},
|
},
|
||||||
"disk": {
|
"disk": {
|
||||||
"title": "File Disk | File Disks",
|
"title": "Bestandsschijf | Bestandsschijven",
|
||||||
"description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.",
|
"description": "Standaard gebruikt Crater uw lokale schijf om back-ups, avatars en andere afbeeldingen op te slaan. U kunt indien gewenst meer dan één opslaglocatie configureren zoals DigitalOcean, S3 en Dropbox.",
|
||||||
"created_at": "created at",
|
"created_at": "aangemaakt op",
|
||||||
"dropbox": "dropbox",
|
"dropbox": "dropbox",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
"driver": "Driver",
|
"driver": "Stuurprogramma",
|
||||||
"disk_type": "Type",
|
"disk_type": "Type",
|
||||||
"disk_name": "Disk Name",
|
"disk_name": "Naam van de schijf",
|
||||||
"new_disk": "Add New Disk",
|
"new_disk": "Nieuwe schijf toevoegen",
|
||||||
"filesystem_driver": "Filesystem Driver",
|
"filesystem_driver": "Filesystem Driver",
|
||||||
"local_driver": "local Driver",
|
"local_driver": "lokaal besturingsprogramma",
|
||||||
"local_root": "local Root",
|
"local_root": "local Root",
|
||||||
"public_driver": "Public Driver",
|
"public_driver": "Publiek besturingsprogramma",
|
||||||
"public_root": "Public Root",
|
"public_root": "Public Root",
|
||||||
"public_url": "Public URL",
|
"public_url": "Publieke URL",
|
||||||
"public_visibility": "Public Visibility",
|
"public_visibility": "Publieke zichtbaarheid",
|
||||||
"media_driver": "Media Driver",
|
"media_driver": "Media stuurprogramma",
|
||||||
"media_root": "Media Root",
|
"media_root": "Media Root",
|
||||||
"aws_driver": "AWS Driver",
|
"aws_driver": "AWS Stuurprogramma",
|
||||||
"aws_key": "AWS Key",
|
"aws_key": "AWS Sleutel",
|
||||||
"aws_secret": "AWS Secret",
|
"aws_secret": "AWS Secret",
|
||||||
"aws_region": "AWS Region",
|
"aws_region": "AWS Regio",
|
||||||
"aws_bucket": "AWS Bucket",
|
"aws_bucket": "AWS Bucket",
|
||||||
"aws_root": "AWS Root",
|
"aws_root": "AWS Root",
|
||||||
"do_spaces_type": "Do Spaces type",
|
"do_spaces_type": "Do Spaces type",
|
||||||
"do_spaces_key": "Do Spaces key",
|
"do_spaces_key": "Do Spaces Key",
|
||||||
"do_spaces_secret": "Do Spaces Secret",
|
"do_spaces_secret": "Do Spaces Secret",
|
||||||
"do_spaces_region": "Do Spaces Region",
|
"do_spaces_region": "Do Spaces Regio",
|
||||||
"do_spaces_bucket": "Do Spaces Bucket",
|
"do_spaces_bucket": "Do Spaces Bucket",
|
||||||
"do_spaces_endpoint": "Do Spaces Endpoint",
|
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||||
"do_spaces_root": "Do Spaces Root",
|
"do_spaces_root": "Do Spaces Root",
|
||||||
@ -977,24 +977,24 @@
|
|||||||
"dropbox_secret": "Dropbox Secret",
|
"dropbox_secret": "Dropbox Secret",
|
||||||
"dropbox_app": "Dropbox App",
|
"dropbox_app": "Dropbox App",
|
||||||
"dropbox_root": "Dropbox Root",
|
"dropbox_root": "Dropbox Root",
|
||||||
"default_driver": "Default Driver",
|
"default_driver": "Standaard stuurprogramma",
|
||||||
"is_default": "IS DEFAULT",
|
"is_default": "IS STANDAARD",
|
||||||
"set_default_disk": "Set Default Disk",
|
"set_default_disk": "Standaardschijf instellen",
|
||||||
"success_set_default_disk": "Disk set as default successfully",
|
"success_set_default_disk": "Standaardschijf ingesteld",
|
||||||
"save_pdf_to_disk": "Save PDFs to Disk",
|
"save_pdf_to_disk": "PDF's opslaan op schijf",
|
||||||
"disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.",
|
"disk_setting_description": " Schakel dit in als je een kopie van elke factuur, raming en betalingsbewijs automatisch op je standaard schijf wilt opslaan. Het inschakelen van deze optie zal de laadtijd verminderen wanneer de PDF's worden bekeken.",
|
||||||
"select_disk": "Select Disk",
|
"select_disk": "Selecteer Schijf",
|
||||||
"disk_settings": "Disk Settings",
|
"disk_settings": "Schijfinstellingen",
|
||||||
"confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater",
|
"confirm_delete": "Uw bestaande bestanden en mappen in de opgegeven schijf worden niet beïnvloed, maar uw schijfconfiguratie wordt uit Crater verwijderd",
|
||||||
"action": "Actie",
|
"action": "Actie",
|
||||||
"edit_file_disk": "Edit File Disk",
|
"edit_file_disk": "Bestandsschijf bewerken",
|
||||||
"success_create": "Disk added successfully",
|
"success_create": "Schijf toegevoegd",
|
||||||
"success_update": "Disk updated successfully",
|
"success_update": "Schijf bijgewerkt",
|
||||||
"error": "Disk addition failed",
|
"error": "Schijf niet toegevoegd",
|
||||||
"deleted_message": "File Disk deleted successfully",
|
"deleted_message": "Bestandsschijf verwijderd",
|
||||||
"disk_variables_save_successfully": "Disk Configured Successfully",
|
"disk_variables_save_successfully": "Schijf geconfigureerd",
|
||||||
"disk_variables_save_error": "Disk configuration failed.",
|
"disk_variables_save_error": "Schijfconfiguratie mislukt.",
|
||||||
"invalid_disk_credentials": "Invalid credential of selected disk"
|
"invalid_disk_credentials": "Ongeldige inloggegevens voor geselecteerde schijf"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wizard": {
|
"wizard": {
|
||||||
@ -1033,14 +1033,14 @@
|
|||||||
"database": {
|
"database": {
|
||||||
"database": "Site-URL en database",
|
"database": "Site-URL en database",
|
||||||
"connection": "Database verbinding",
|
"connection": "Database verbinding",
|
||||||
"host": "Database Host",
|
"host": "Database host",
|
||||||
"port": "Databasepoort",
|
"port": "Databasepoort",
|
||||||
"password": "Database wachtwoord",
|
"password": "Database wachtwoord",
|
||||||
"app_url": "App-URL",
|
"app_url": "App-URL",
|
||||||
"app_domain": "App Domain",
|
"app_domain": "App Domein",
|
||||||
"username": "Database gebruikersnaam",
|
"username": "Database gebruikersnaam",
|
||||||
"db_name": "Database naam",
|
"db_name": "Database naam",
|
||||||
"db_path": "Database Path",
|
"db_path": "Databankpad",
|
||||||
"desc": "Maak een database op uw server en stel de referenties in via het onderstaande formulier."
|
"desc": "Maak een database op uw server en stel de referenties in via het onderstaande formulier."
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@ -1050,8 +1050,8 @@
|
|||||||
"permission_desc": "Hieronder vindt u de lijst met mapmachtigingen die vereist zijn om de app te laten werken. Als de machtigingscontrole mislukt, moet u de mapmachtigingen bijwerken."
|
"permission_desc": "Hieronder vindt u de lijst met mapmachtigingen die vereist zijn om de app te laten werken. Als de machtigingscontrole mislukt, moet u de mapmachtigingen bijwerken."
|
||||||
},
|
},
|
||||||
"mail": {
|
"mail": {
|
||||||
"host": "Mail Host",
|
"host": "E-mail server",
|
||||||
"port": "Mail Port",
|
"port": "E-mail Poort",
|
||||||
"driver": "Mail-stuurprogramma",
|
"driver": "Mail-stuurprogramma",
|
||||||
"secret": "Geheim",
|
"secret": "Geheim",
|
||||||
"mailgun_secret": "Mailgun Secret",
|
"mailgun_secret": "Mailgun Secret",
|
||||||
@ -1094,7 +1094,7 @@
|
|||||||
"invoices_and_estimates": "facturen en offertes met de mogelijkheid om meerdere sjablonen te kiezen."
|
"invoices_and_estimates": "facturen en offertes met de mogelijkheid om meerdere sjablonen te kiezen."
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"invalid_phone": "Invalid Phone Number",
|
"invalid_phone": "Ongeldig Telefoonnummer",
|
||||||
"invalid_url": "Ongeldige URL (bijvoorbeeld: http://www.crater.com))",
|
"invalid_url": "Ongeldige URL (bijvoorbeeld: http://www.crater.com))",
|
||||||
"invalid_domain_url": "Ongeldige URL (bijvoorbeeld: crater.com))",
|
"invalid_domain_url": "Ongeldige URL (bijvoorbeeld: crater.com))",
|
||||||
"required": "Veld is verplicht",
|
"required": "Veld is verplicht",
|
||||||
@ -1132,39 +1132,39 @@
|
|||||||
"something_went_wrong": "Er is iets fout gegaan"
|
"something_went_wrong": "Er is iets fout gegaan"
|
||||||
},
|
},
|
||||||
"pdf_estimate_label": "Offerte",
|
"pdf_estimate_label": "Offerte",
|
||||||
"pdf_estimate_number": "Geschat aantal",
|
"pdf_estimate_number": "Offerte nummer",
|
||||||
"pdf_estimate_date": "Geschatte datum",
|
"pdf_estimate_date": "Offerte Datum",
|
||||||
"pdf_estimate_expire_date": "Expiry date",
|
"pdf_estimate_expire_date": "Vervaldatum",
|
||||||
"pdf_invoice_label": "Factuur",
|
"pdf_invoice_label": "Factuur",
|
||||||
"pdf_invoice_number": "Factuurnummer",
|
"pdf_invoice_number": "Factuurnummer",
|
||||||
"pdf_invoice_date": "Factuur datum",
|
"pdf_invoice_date": "Factuur datum",
|
||||||
"pdf_invoice_due_date": "Due date",
|
"pdf_invoice_due_date": "Opleveringsdatum",
|
||||||
"pdf_notes": "Opmerkingen",
|
"pdf_notes": "Opmerkingen",
|
||||||
"pdf_items_label": "Artikelen",
|
"pdf_items_label": "Artikelen",
|
||||||
"pdf_quantity_label": "Aantal stuks",
|
"pdf_quantity_label": "Aantal stuks",
|
||||||
"pdf_price_label": "Prijs",
|
"pdf_price_label": "Prijs",
|
||||||
"pdf_discount_label": "Korting",
|
"pdf_discount_label": "Korting",
|
||||||
"pdf_amount_label": "Bedrag",
|
"pdf_amount_label": "Bedrag",
|
||||||
"pdf_subtotal": "Subtotal",
|
"pdf_subtotal": "Subtotaal",
|
||||||
"pdf_total": "Totaal",
|
"pdf_total": "Totaal",
|
||||||
"pdf_payment_receipt_label": "PAYMENT RECEIPT",
|
"pdf_payment_receipt_label": "Betalingsafschrift",
|
||||||
"pdf_payment_date": "Payment Date",
|
"pdf_payment_date": "Betalingsdatum",
|
||||||
"pdf_payment_number": "Betalingsnummer",
|
"pdf_payment_number": "Betalingsnummer",
|
||||||
"pdf_payment_mode": "Betaalmethode",
|
"pdf_payment_mode": "Betaalmethode",
|
||||||
"pdf_payment_amount_received_label": "Amount Received",
|
"pdf_payment_amount_received_label": "Ontvangen bedrag",
|
||||||
"pdf_expense_report_label": "EXPENSES REPORT",
|
"pdf_expense_report_label": "UITGAVEN RAPPORT",
|
||||||
"pdf_total_expenses_label": "TOTAL EXPENSE",
|
"pdf_total_expenses_label": "TOTALE UITGAVEN",
|
||||||
"pdf_profit_loss_label": "PROFIT & LOSS REPORT",
|
"pdf_profit_loss_label": "WINST & VERLIES RAPPORT",
|
||||||
"pdf_income_label": "INCOME",
|
"pdf_income_label": "INKOMEN",
|
||||||
"pdf_net_profit_label": "NET PROFIT",
|
"pdf_net_profit_label": "NETTO WINST",
|
||||||
"pdf_customer_sales_report": "Sales Report: By Customer",
|
"pdf_customer_sales_report": "Verkooprapport: per klant",
|
||||||
"pdf_total_sales_label": "TOTAL SALES",
|
"pdf_total_sales_label": "TOTALE VERKOPEN",
|
||||||
"pdf_item_sales_label": "Sales Report: By Item",
|
"pdf_item_sales_label": "Verkooprapport: Per Item",
|
||||||
"pdf_tax_report_label": "TAX REPORT",
|
"pdf_tax_report_label": "BELASTINGEN RAPPORT",
|
||||||
"pdf_total_tax_label": "TOTAL TAX",
|
"pdf_total_tax_label": "TOTALE BELASTINGEN",
|
||||||
"pdf_tax_types_label": "Belastingtypen",
|
"pdf_tax_types_label": "Belastingtypen",
|
||||||
"pdf_expenses_label": "Uitgaven",
|
"pdf_expenses_label": "Uitgaven",
|
||||||
"pdf_bill_to": "Rekening naar,",
|
"pdf_bill_to": "Rekening naar,",
|
||||||
"pdf_ship_to": "Verzend naar,",
|
"pdf_ship_to": "Verzend naar,",
|
||||||
"pdf_received_from": "Received from:"
|
"pdf_received_from": "Ontvangen van:"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,29 +6,34 @@
|
|||||||
"invoices": "Fakture",
|
"invoices": "Fakture",
|
||||||
"expenses": "Rashodi",
|
"expenses": "Rashodi",
|
||||||
"estimates": "Profakture",
|
"estimates": "Profakture",
|
||||||
"payments": "Plaćanja",
|
"payments": "Uplate",
|
||||||
"reports": "Izveštaji",
|
"reports": "Izveštaji",
|
||||||
"settings": "Podešavanja",
|
"settings": "Podešavanja",
|
||||||
"logout": "Odjavi se"
|
"logout": "Odjavi se",
|
||||||
|
"users": "Korisnici"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
|
"add_company": "Dodaj kompaniju",
|
||||||
"view_pdf": "Pogledaj PDF",
|
"view_pdf": "Pogledaj PDF",
|
||||||
"copy_pdf_url": "Kopiraj PDF link",
|
"copy_pdf_url": "Kopiraj PDF link",
|
||||||
"download_pdf": "Preuzmi PDF",
|
"download_pdf": "Preuzmi PDF",
|
||||||
"save": "Sačuvaj",
|
"save": "Sačuvaj",
|
||||||
|
"create": "Napravi",
|
||||||
"cancel": "Otkaži",
|
"cancel": "Otkaži",
|
||||||
"update": "Ažuriraj",
|
"update": "Ažuriraj",
|
||||||
"deselect": "Poništi izbor",
|
"deselect": "Poništi izbor",
|
||||||
"download": "Preuzmi",
|
"download": "Preuzmi",
|
||||||
"from_date": "Od Datuma",
|
"from_date": "Od Datuma",
|
||||||
"to_date": "Do Datuma",
|
"to_date": "Do Datuma",
|
||||||
"from": "Od",
|
"from": "Pošiljalac",
|
||||||
"to": "Do",
|
"to": "Primalac",
|
||||||
"sort_by": "Rasporedi Po",
|
"sort_by": "Rasporedi Po",
|
||||||
"ascending": "Rastuće",
|
"ascending": "Rastuće",
|
||||||
"descending": "Opadajuće",
|
"descending": "Opadajuće",
|
||||||
"subject": "Predmet",
|
"subject": "Predmet",
|
||||||
|
"body": "Telo",
|
||||||
"message": "Poruka",
|
"message": "Poruka",
|
||||||
|
"send": "Pošalji",
|
||||||
"go_back": "Idi nazad",
|
"go_back": "Idi nazad",
|
||||||
"back_to_login": "Nazad na prijavu?",
|
"back_to_login": "Nazad na prijavu?",
|
||||||
"home": "Početna",
|
"home": "Početna",
|
||||||
@ -78,7 +83,11 @@
|
|||||||
"street_1": "Adresa 1",
|
"street_1": "Adresa 1",
|
||||||
"street_2": "Adresa 2",
|
"street_2": "Adresa 2",
|
||||||
"action_failed": "Akcija nije uspela",
|
"action_failed": "Akcija nije uspela",
|
||||||
"retry": "Pokušaj ponovo"
|
"retry": "Pokušaj ponovo",
|
||||||
|
"choose_note": "Odaberi napomenu",
|
||||||
|
"no_note_found": "Ne postoje sačuvane napomene",
|
||||||
|
"insert_note": "Unesi belešku",
|
||||||
|
"copied_pdf_url_clipboard": "Link do PDF fajla kopiran!"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"select_year": "Odaberi godinu",
|
"select_year": "Odaberi godinu",
|
||||||
@ -124,11 +133,19 @@
|
|||||||
"percent": "Procenat",
|
"percent": "Procenat",
|
||||||
"compound_tax": "Složeni porez"
|
"compound_tax": "Složeni porez"
|
||||||
},
|
},
|
||||||
|
"global_search": {
|
||||||
|
"search": "Pretraga...",
|
||||||
|
"customers": "Klijenti",
|
||||||
|
"users": "Korisnici",
|
||||||
|
"no_results_found": "Nema rezultata"
|
||||||
|
},
|
||||||
"customers": {
|
"customers": {
|
||||||
"title": "Klijenti",
|
"title": "Klijenti",
|
||||||
"add_customer": "Dodaj Klijenta",
|
"add_customer": "Dodaj Klijenta",
|
||||||
"contacts_list": "Lista klijenata",
|
"contacts_list": "Lista klijenata",
|
||||||
"name": "Naziv",
|
"name": "Naziv",
|
||||||
|
"mail": "Mail | Mail-ovi",
|
||||||
|
"statement": "Izjava",
|
||||||
"display_name": "Naziv koji se prikazuje",
|
"display_name": "Naziv koji se prikazuje",
|
||||||
"primary_contact_name": "Primarna kontakt osoba",
|
"primary_contact_name": "Primarna kontakt osoba",
|
||||||
"contact_name": "Naziv kontakt osobe",
|
"contact_name": "Naziv kontakt osobe",
|
||||||
@ -137,6 +154,8 @@
|
|||||||
"address": "Adresa",
|
"address": "Adresa",
|
||||||
"phone": "Telefon",
|
"phone": "Telefon",
|
||||||
"website": "Veb stranica",
|
"website": "Veb stranica",
|
||||||
|
"overview": "Pregled",
|
||||||
|
"enable_portal": "Uključi portal",
|
||||||
"country": "Država",
|
"country": "Država",
|
||||||
"state": "Savezna država",
|
"state": "Savezna država",
|
||||||
"city": "Grad",
|
"city": "Grad",
|
||||||
@ -146,6 +165,7 @@
|
|||||||
"password": "Šifra",
|
"password": "Šifra",
|
||||||
"street_number": "Broj ulice",
|
"street_number": "Broj ulice",
|
||||||
"primary_currency": "Primarna valuta",
|
"primary_currency": "Primarna valuta",
|
||||||
|
"description": "Opis",
|
||||||
"add_new_customer": "Dodaj novog klijenta",
|
"add_new_customer": "Dodaj novog klijenta",
|
||||||
"save_customer": "Sačuvaj klijenta",
|
"save_customer": "Sačuvaj klijenta",
|
||||||
"update_customer": "Ažuriraj klijenta",
|
"update_customer": "Ažuriraj klijenta",
|
||||||
@ -163,7 +183,10 @@
|
|||||||
"select_currency": "Odaberi valutu",
|
"select_currency": "Odaberi valutu",
|
||||||
"select_a_customer": "Odaberi klijenta",
|
"select_a_customer": "Odaberi klijenta",
|
||||||
"type_or_click": "Unesi tekst ili klikni da izabereš",
|
"type_or_click": "Unesi tekst ili klikni da izabereš",
|
||||||
|
"new_transaction": "Nova transakcija",
|
||||||
|
"no_matching_customers": "Ne postoje klijenti koji odgovaraju pretrazi!",
|
||||||
|
"phone_number": "Broj telefona",
|
||||||
|
"create_date": "Datum kreiranja",
|
||||||
"confirm_delete": "Nećeš moći da povratiš ovog klijenta i sve njegove Fakture, Profakture i Uplate. | Nećeš moći da povratiš ove klijente i njihove Fakture, Profakture i Uplate.",
|
"confirm_delete": "Nećeš moći da povratiš ovog klijenta i sve njegove Fakture, Profakture i Uplate. | Nećeš moći da povratiš ove klijente i njihove Fakture, Profakture i Uplate.",
|
||||||
"created_message": "Klijent uspešno kreiran",
|
"created_message": "Klijent uspešno kreiran",
|
||||||
"updated_message": "Klijent uspešno ažuriran",
|
"updated_message": "Klijent uspešno ažuriran",
|
||||||
@ -213,7 +236,7 @@
|
|||||||
"partially_paid": "Delimično Plaćeno",
|
"partially_paid": "Delimično Plaćeno",
|
||||||
"total": "Ukupno za plaćanje",
|
"total": "Ukupno za plaćanje",
|
||||||
"discount": "Popust",
|
"discount": "Popust",
|
||||||
"sub_total": "Ukupno",
|
"sub_total": "Osnovica za obračun PDV-a",
|
||||||
"estimate_number": "Broj profakture",
|
"estimate_number": "Broj profakture",
|
||||||
"ref_number": "Poziv na broj",
|
"ref_number": "Poziv na broj",
|
||||||
"contact": "Kontakt",
|
"contact": "Kontakt",
|
||||||
@ -262,7 +285,6 @@
|
|||||||
"list_of_estimates": "Ova sekcija će da sadrži spisak Profaktura.",
|
"list_of_estimates": "Ova sekcija će da sadrži spisak Profaktura.",
|
||||||
"mark_as_rejected": "Označi kao odbijeno",
|
"mark_as_rejected": "Označi kao odbijeno",
|
||||||
"mark_as_accepted": "Označi kao prihvaćeno",
|
"mark_as_accepted": "Označi kao prihvaćeno",
|
||||||
|
|
||||||
"marked_as_accepted_message": "Profaktura označena kao prihvaćena",
|
"marked_as_accepted_message": "Profaktura označena kao prihvaćena",
|
||||||
"marked_as_rejected_message": "Profaktura označena kao odbijena",
|
"marked_as_rejected_message": "Profaktura označena kao odbijena",
|
||||||
"confirm_delete": "Nećeš moći da povratiš ovu Profakturu | Nećeš moći da povratiš ove Profakture",
|
"confirm_delete": "Nećeš moći da povratiš ovu Profakturu | Nećeš moći da povratiš ove Profakture",
|
||||||
@ -303,7 +325,7 @@
|
|||||||
"partially_paid": "Delimično plaćeno",
|
"partially_paid": "Delimično plaćeno",
|
||||||
"total": "Ukupno za plaćanje",
|
"total": "Ukupno za plaćanje",
|
||||||
"discount": "Popust",
|
"discount": "Popust",
|
||||||
"sub_total": "Ukupno",
|
"sub_total": "Osnovica za obračun PDV-a",
|
||||||
"invoice": "Faktura | Fakture",
|
"invoice": "Faktura | Fakture",
|
||||||
"invoice_number": "Broj Fakture",
|
"invoice_number": "Broj Fakture",
|
||||||
"ref_number": "Poziv na broj",
|
"ref_number": "Poziv na broj",
|
||||||
@ -407,7 +429,8 @@
|
|||||||
"edit_payment": "Izmeni Uplatu",
|
"edit_payment": "Izmeni Uplatu",
|
||||||
"view_payment": "Vidi Uplatu",
|
"view_payment": "Vidi Uplatu",
|
||||||
"add_new_payment": "Dodaj Novu Uplatu",
|
"add_new_payment": "Dodaj Novu Uplatu",
|
||||||
"send_payment_receipt": "Pošalji potvrdu o plaćanju",
|
"send_payment_receipt": "Pošalji potvrdu o uplati",
|
||||||
|
"send_payment": "Pošalji Uplatu",
|
||||||
"save_payment": "Sačuvaj Uplatu",
|
"save_payment": "Sačuvaj Uplatu",
|
||||||
"update_payment": "Ažuriraj Uplatu",
|
"update_payment": "Ažuriraj Uplatu",
|
||||||
"payment": "Uplata | Uplate",
|
"payment": "Uplata | Uplate",
|
||||||
@ -415,11 +438,11 @@
|
|||||||
"no_matching_payments": "Ne postoje uplate koje odgovaraju pretrazi!",
|
"no_matching_payments": "Ne postoje uplate koje odgovaraju pretrazi!",
|
||||||
"list_of_payments": "Ova sekcija će da sadrži listu uplata.",
|
"list_of_payments": "Ova sekcija će da sadrži listu uplata.",
|
||||||
"select_payment_mode": "Odaberi način plaćanja",
|
"select_payment_mode": "Odaberi način plaćanja",
|
||||||
|
"confirm_mark_as_sent": "Ovo plaćanje će biti označena kao Poslata",
|
||||||
"confirm_send_payment": "Ovo plaćanje će biti poslato putem Email-a klijentu",
|
"confirm_send_payment": "Ovo plaćanje će biti poslato putem Email-a klijentu",
|
||||||
"send_payment_successfully": "Plaćanje uspešno poslato",
|
"send_payment_successfully": "Plaćanje uspešno poslato",
|
||||||
"user_email_does_not_exist": "Email adresa klijenta ne postoji",
|
"user_email_does_not_exist": "Email adresa klijenta ne postoji",
|
||||||
"something_went_wrong": "nešto je krenulo naopako",
|
"something_went_wrong": "nešto je krenulo naopako",
|
||||||
|
|
||||||
"confirm_delete": "Nećeš moći da povratiš ovu Uplatu | Nećeš moći da povratiš ove Uplate",
|
"confirm_delete": "Nećeš moći da povratiš ovu Uplatu | Nećeš moći da povratiš ove Uplate",
|
||||||
"created_message": "Uplata uspešno kreirana",
|
"created_message": "Uplata uspešno kreirana",
|
||||||
"updated_message": "Uplata uspešno ažurirana",
|
"updated_message": "Uplata uspešno ažurirana",
|
||||||
@ -428,7 +451,7 @@
|
|||||||
},
|
},
|
||||||
"expenses": {
|
"expenses": {
|
||||||
"title": "Rashodi",
|
"title": "Rashodi",
|
||||||
"expenses_list": "List Rashoda",
|
"expenses_list": "Lista Rashoda",
|
||||||
"select_a_customer": "Odaberi klijenta",
|
"select_a_customer": "Odaberi klijenta",
|
||||||
"expense_title": "Naslov",
|
"expense_title": "Naslov",
|
||||||
"customer": "Klijent",
|
"customer": "Klijent",
|
||||||
@ -443,7 +466,7 @@
|
|||||||
"action": "Akcija",
|
"action": "Akcija",
|
||||||
"note": "Napomena",
|
"note": "Napomena",
|
||||||
"category_id": "ID kategorije",
|
"category_id": "ID kategorije",
|
||||||
"date": "Datum Rashoda",
|
"date": "Datum",
|
||||||
"add_expense": "Dodaj Rashod",
|
"add_expense": "Dodaj Rashod",
|
||||||
"add_new_expense": "Dodaj Novi Rashod",
|
"add_new_expense": "Dodaj Novi Rashod",
|
||||||
"save_expense": "Sačuvaj Rashod",
|
"save_expense": "Sačuvaj Rashod",
|
||||||
@ -454,7 +477,6 @@
|
|||||||
"expense": "Rashod | Rashodi",
|
"expense": "Rashod | Rashodi",
|
||||||
"no_expenses": "Još uvek nema rashoda!",
|
"no_expenses": "Još uvek nema rashoda!",
|
||||||
"list_of_expenses": "Ova sekcija će da sadrži listu rashoda.",
|
"list_of_expenses": "Ova sekcija će da sadrži listu rashoda.",
|
||||||
|
|
||||||
"confirm_delete": "Nećeš moći da povratiš ovaj Rashod | Nećeš moći da povratiš ove Rashode",
|
"confirm_delete": "Nećeš moći da povratiš ovaj Rashod | Nećeš moći da povratiš ove Rashode",
|
||||||
"created_message": "Rashod uspešno kreiran",
|
"created_message": "Rashod uspešno kreiran",
|
||||||
"updated_message": "Rashod uspešno ažuriran",
|
"updated_message": "Rashod uspešno ažuriran",
|
||||||
@ -486,6 +508,32 @@
|
|||||||
"retype_password": "Ponovo unesi šifru",
|
"retype_password": "Ponovo unesi šifru",
|
||||||
"login_placeholder": "mail@example.com"
|
"login_placeholder": "mail@example.com"
|
||||||
},
|
},
|
||||||
|
"users": {
|
||||||
|
"title": "Korisnici",
|
||||||
|
"users_list": "Lista korisnika",
|
||||||
|
"name": "Ime i prezime",
|
||||||
|
"description": "Opis",
|
||||||
|
"added_on": "Datum dodavanja",
|
||||||
|
"date_of_creation": "Datum kreiranja",
|
||||||
|
"action": "Akcija",
|
||||||
|
"add_user": "Dodaj Korisnika",
|
||||||
|
"save_user": "Sačuvaj Korisnika",
|
||||||
|
"update_user": "Ažuriraj Korisnika",
|
||||||
|
"user": "Korisnik | Korisnici",
|
||||||
|
"add_new_user": "Dodaj novog korisnika",
|
||||||
|
"new_user": "Nov Korisnik",
|
||||||
|
"edit_user": "Izmeni Korisnika",
|
||||||
|
"no_users": "Još uvek nema korisnika!",
|
||||||
|
"list_of_users": "Ova sekcija će da sadrži listu korisnika.",
|
||||||
|
"email": "Email",
|
||||||
|
"phone": "Broj telefona",
|
||||||
|
"password": "Šifra",
|
||||||
|
"user_attached_message": "Ne možete obrisati stavku koja je već u upotrebi",
|
||||||
|
"confirm_delete": "Nećeš moći da povratiš ovog Korisnika | Nećeš moći da povratiš ove Korisnike",
|
||||||
|
"created_message": "Korisnik uspešno napravljen",
|
||||||
|
"updated_message": "Korisnik uspešno ažuriran",
|
||||||
|
"deleted_message": "Korisnik uspešno obrisan | Korisnici uspešno obrisani"
|
||||||
|
},
|
||||||
"reports": {
|
"reports": {
|
||||||
"title": "Izveštaj",
|
"title": "Izveštaj",
|
||||||
"from_date": "Datum od",
|
"from_date": "Datum od",
|
||||||
@ -556,7 +604,12 @@
|
|||||||
"notifications": "Obaveštenja",
|
"notifications": "Obaveštenja",
|
||||||
"tax_types": "Tipovi Poreza",
|
"tax_types": "Tipovi Poreza",
|
||||||
"expense_category": "Kategorije Rashoda",
|
"expense_category": "Kategorije Rashoda",
|
||||||
"update_app": "Ažuriraj Aplikaciju"
|
"update_app": "Ažuriraj Aplikaciju",
|
||||||
|
"backup": "Bekap",
|
||||||
|
"file_disk": "File Disk",
|
||||||
|
"custom_fields": "Prilagođena polja",
|
||||||
|
"payment_modes": "Način plaćanja",
|
||||||
|
"notes": "Napomene"
|
||||||
},
|
},
|
||||||
"title": "Podešavanja",
|
"title": "Podešavanja",
|
||||||
"setting": "Podešavanje | Podešavanja",
|
"setting": "Podešavanje | Podešavanja",
|
||||||
@ -620,6 +673,42 @@
|
|||||||
"save": "Sačuvaj",
|
"save": "Sačuvaj",
|
||||||
"updated_message": "Podaci o firmi uspešno sačuvani"
|
"updated_message": "Podaci o firmi uspešno sačuvani"
|
||||||
},
|
},
|
||||||
|
"custom_fields": {
|
||||||
|
"title": "Prilagođena polja",
|
||||||
|
"section_description": "Prilagodite vaše Fakture, Profakture i Uplate (priznanice) sa svojim poljima. Postarajte se da koristite polja navedena ispod na formatu adrese na stranici Podešavanja/Prilagođavanje.",
|
||||||
|
"add_custom_field": "Dodaj prilagođeno polje",
|
||||||
|
"edit_custom_field": "Izmeni prilagođeno polje",
|
||||||
|
"field_name": "Naziv polja",
|
||||||
|
"label": "Oznaka",
|
||||||
|
"type": "Tip",
|
||||||
|
"name": "Naziv",
|
||||||
|
"required": "Obavezno",
|
||||||
|
"placeholder": "Opis polja (Placeholder)",
|
||||||
|
"help_text": "Pomoćni tekst",
|
||||||
|
"default_value": "Podrazumevana vrednost",
|
||||||
|
"prefix": "Prefiks",
|
||||||
|
"starting_number": "Početni broj",
|
||||||
|
"model": "Model",
|
||||||
|
"help_text_description": "Unesite opis koji će pomoći korisnicima da razumeju svrhu ovog prilagođenog polja.",
|
||||||
|
"suffix": "Sufiks",
|
||||||
|
"yes": "Da",
|
||||||
|
"no": "Ne",
|
||||||
|
"order": "Redosled",
|
||||||
|
"custom_field_confirm_delete": "Nećeš moći da povratiš ovo prilagođeno polje",
|
||||||
|
"already_in_use": "Prilagođeno polje je već u upotrebi",
|
||||||
|
"deleted_message": "Prilagođeno polje je uspešno obrisano",
|
||||||
|
"options": "opcije",
|
||||||
|
"add_option": "Dodaj opcije",
|
||||||
|
"add_another_option": "Dodaj još jednu opciju",
|
||||||
|
"sort_in_alphabetical_order": "Poređaj po Abecedi",
|
||||||
|
"add_options_in_bulk": "Grupno dodavanje opcija",
|
||||||
|
"use_predefined_options": "Koristi predefinisane opcije",
|
||||||
|
"select_custom_date": "Odaberi datum",
|
||||||
|
"select_relative_date": "Odaberi relativan datum",
|
||||||
|
"ticked_by_default": "Podrazumevano odabrano",
|
||||||
|
"updated_message": "Prilagođeno polje uspešno ažurirano",
|
||||||
|
"added_message": "Prilagođeno polje uspešno dodato"
|
||||||
|
},
|
||||||
"customization": {
|
"customization": {
|
||||||
"customization": "prilagođavanje",
|
"customization": "prilagođavanje",
|
||||||
"save": "Sačuvaj",
|
"save": "Sačuvaj",
|
||||||
@ -648,38 +737,45 @@
|
|||||||
"address_setting_updated": "Podešavanje adrese uspešno ažurirano"
|
"address_setting_updated": "Podešavanje adrese uspešno ažurirano"
|
||||||
},
|
},
|
||||||
"updated_message": "Podaci o firmi su uspešno ažurirani",
|
"updated_message": "Podaci o firmi su uspešno ažurirani",
|
||||||
|
|
||||||
"invoices": {
|
"invoices": {
|
||||||
"title": "Fakture",
|
"title": "Fakture",
|
||||||
"notes": "Napomene",
|
"notes": "Napomene",
|
||||||
"invoice_prefix": "Prefiks faktura",
|
"invoice_prefix": "Prefiks faktura",
|
||||||
|
"default_invoice_email_body": "Podrazumevan sadržaj email-a za Fakture",
|
||||||
"invoice_settings": "Podešavanje za fakture",
|
"invoice_settings": "Podešavanje za fakture",
|
||||||
"autogenerate_invoice_number": "Automatski-generiši broj fakture",
|
"autogenerate_invoice_number": "Automatski-generiši broj fakture",
|
||||||
"invoice_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj fakture kada pravite novu fakturu.",
|
"invoice_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj fakture kada pravite novu fakturu.",
|
||||||
"enter_invoice_prefix": "Unesite prefiks fakture",
|
"enter_invoice_prefix": "Unesite prefiks fakture",
|
||||||
"terms_and_conditions": "Uslovi Korišćenja",
|
"terms_and_conditions": "Uslovi Korišćenja",
|
||||||
|
"company_address_format": "Format adrese firme",
|
||||||
|
"shipping_address_format": "Format adrese za dostavu firme",
|
||||||
|
"billing_address_format": "Format adrese za naplatu firme",
|
||||||
"invoice_setting_updated": "Podešavanje za fakture je uspešno sačuvano"
|
"invoice_setting_updated": "Podešavanje za fakture je uspešno sačuvano"
|
||||||
},
|
},
|
||||||
|
|
||||||
"estimates": {
|
"estimates": {
|
||||||
"title": "Profakture",
|
"title": "Profakture",
|
||||||
"estimate_prefix": "Prefiks profaktura",
|
"estimate_prefix": "Prefiks profaktura",
|
||||||
|
"default_estimate_email_body": "Podrazumevan sadržaj email-a za Profakture",
|
||||||
"estimate_settings": "Podešavanje za profakture",
|
"estimate_settings": "Podešavanje za profakture",
|
||||||
"autogenerate_estimate_number": "Automatski-generiši broj profakture",
|
"autogenerate_estimate_number": "Automatski-generiši broj profakture",
|
||||||
"estimate_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj profakture kada pravite novu profakturu.",
|
"estimate_setting_description": "Onemogući ovo, Ako Vi ne želite da automatski-generišete broj profakture kada pravite novu profakturu.",
|
||||||
"enter_estimate_prefix": "Unesite prefiks profakture",
|
"enter_estimate_prefix": "Unesite prefiks profakture",
|
||||||
"estimate_setting_updated": "Podešavanje za profakture je uspešno sačuvano"
|
"estimate_setting_updated": "Podešavanje za profakture je uspešno sačuvano",
|
||||||
|
"company_address_format": "Format adrese firme",
|
||||||
|
"billing_address_format": "Format adrese za naplatu firme",
|
||||||
|
"shipping_address_format": "Format adrese za dostavu firme"
|
||||||
},
|
},
|
||||||
|
|
||||||
"payments": {
|
"payments": {
|
||||||
"title": "Plaćanja",
|
"title": "Uplate",
|
||||||
|
"description": "Način plaćanja",
|
||||||
"payment_prefix": "Prefiks uplata",
|
"payment_prefix": "Prefiks uplata",
|
||||||
|
"default_payment_email_body": "Podrazumevan sadržaj email-a za potvrdu o plaćanju (račun)",
|
||||||
"payment_settings": "Podešavanje za plaćanja",
|
"payment_settings": "Podešavanje za plaćanja",
|
||||||
"autogenerate_payment_number": "Automatski-generiši broj uplate",
|
"autogenerate_payment_number": "Automatski-generiši broj uplate",
|
||||||
"payment_setting_description": "Onemogući ovo, Ako ne želite da automatski-generišete broj uplate kada pravite novu uplatu.",
|
"payment_setting_description": "Onemogući ovo, Ako ne želite da automatski-generišete broj uplate kada pravite novu uplatu.",
|
||||||
"enter_payment_prefix": "Unesite prefiks uplate",
|
"enter_payment_prefix": "Unesite prefiks uplate",
|
||||||
"payment_setting_updated": "Podešavanje za plaćanja je uspešno sačuvano",
|
"payment_setting_updated": "Podešavanje za plaćanja je uspešno sačuvano",
|
||||||
"payment_mode": "Način Plaćanja",
|
"payment_modes": "Način Plaćanja",
|
||||||
"add_payment_mode": "Dodaj način plaćanja",
|
"add_payment_mode": "Dodaj način plaćanja",
|
||||||
"edit_payment_mode": "Izmeni način plaćanja",
|
"edit_payment_mode": "Izmeni način plaćanja",
|
||||||
"mode_name": "Način plaćanja",
|
"mode_name": "Način plaćanja",
|
||||||
@ -687,12 +783,13 @@
|
|||||||
"payment_mode_updated": "Način plaćanja ažuriran",
|
"payment_mode_updated": "Način plaćanja ažuriran",
|
||||||
"payment_mode_confirm_delete": "Nećeš moći da povratiš ovaj Način Plaćanja",
|
"payment_mode_confirm_delete": "Nećeš moći da povratiš ovaj Način Plaćanja",
|
||||||
"already_in_use": "Način plaćanja se već koristi",
|
"already_in_use": "Način plaćanja se već koristi",
|
||||||
"deleted_message": "Način plaćanja uspešno obrisan"
|
"deleted_message": "Način plaćanja uspešno obrisan",
|
||||||
|
"company_address_format": "Format adrese firme",
|
||||||
|
"from_customer_address_format": "Format adrese klijenta"
|
||||||
},
|
},
|
||||||
|
|
||||||
"items": {
|
"items": {
|
||||||
"title": "Stavke",
|
"title": "Stavke",
|
||||||
"units": "jedinice",
|
"units": "Jedinice",
|
||||||
"add_item_unit": "Dodaj jedinicu stavke",
|
"add_item_unit": "Dodaj jedinicu stavke",
|
||||||
"edit_item_unit": "Izmeni jedinicu stavke",
|
"edit_item_unit": "Izmeni jedinicu stavke",
|
||||||
"unit_name": "Naziv jedinice",
|
"unit_name": "Naziv jedinice",
|
||||||
@ -701,6 +798,21 @@
|
|||||||
"item_unit_confirm_delete": "Nećeš moći da povratiš ovu jedinicu stavke",
|
"item_unit_confirm_delete": "Nećeš moći da povratiš ovu jedinicu stavke",
|
||||||
"already_in_use": "Jedinica stavke se već koristi",
|
"already_in_use": "Jedinica stavke se već koristi",
|
||||||
"deleted_message": "Jedinica stavke uspešno obrisana"
|
"deleted_message": "Jedinica stavke uspešno obrisana"
|
||||||
|
},
|
||||||
|
"notes": {
|
||||||
|
"title": "Napomene",
|
||||||
|
"description": "Uštedite vreme pravljeći napomene i koristeći ih na fakturama, profakturama i uplatama.",
|
||||||
|
"notes": "Napomene",
|
||||||
|
"type": "Tip",
|
||||||
|
"add_note": "Dodaj Napomenu",
|
||||||
|
"add_new_note": "Dodaj novu Napomenu",
|
||||||
|
"name": "Naziv",
|
||||||
|
"edit_note": "Izmeni Napomenu",
|
||||||
|
"note_added": "Napomena uspešno dodata",
|
||||||
|
"note_updated": "Napomena uspešno ažurirana",
|
||||||
|
"note_confirm_delete": "Nećeš moći da povratiš ovu Napomenu",
|
||||||
|
"already_in_use": "Napomena se već koristi",
|
||||||
|
"deleted_message": "Napomena uspešno obrisana"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"account_settings": {
|
"account_settings": {
|
||||||
@ -768,7 +880,7 @@
|
|||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"currency": "Valuta",
|
"currency": "Valuta",
|
||||||
"language": "Jezik",
|
"default_language": "Jezik",
|
||||||
"time_zone": "Vremenska Zona",
|
"time_zone": "Vremenska Zona",
|
||||||
"fiscal_year": "Finansijska Godina",
|
"fiscal_year": "Finansijska Godina",
|
||||||
"date_format": "Format datuma",
|
"date_format": "Format datuma",
|
||||||
@ -779,10 +891,10 @@
|
|||||||
"preference": "Preferencija | Preferencije",
|
"preference": "Preferencija | Preferencije",
|
||||||
"general_settings": "Podrazumevane preferencije za sistem",
|
"general_settings": "Podrazumevane preferencije za sistem",
|
||||||
"updated_message": "Preferencije su uspešno ažurirane",
|
"updated_message": "Preferencije su uspešno ažurirane",
|
||||||
"select_language": "izaberi jezik",
|
"select_language": "Izaberi Jezik",
|
||||||
"select_time_zone": "izaberi vremensku zonu",
|
"select_time_zone": "Izaberi Vremensku Zonu",
|
||||||
"select_date_formate": "izaberi format datuma",
|
"select_date_format": "Izaberi Format Datuma",
|
||||||
"select_financial_year": "izaberi finansijsku godinu"
|
"select_financial_year": "Izaberi Finansijsku Godinu"
|
||||||
},
|
},
|
||||||
"update_app": {
|
"update_app": {
|
||||||
"title": "Ažuriraj aplikaciju",
|
"title": "Ažuriraj aplikaciju",
|
||||||
@ -790,6 +902,7 @@
|
|||||||
"check_update": "Proveri ažuriranost",
|
"check_update": "Proveri ažuriranost",
|
||||||
"avail_update": "Dostupna je nova verzija",
|
"avail_update": "Dostupna je nova verzija",
|
||||||
"next_version": "Sledeća verzija",
|
"next_version": "Sledeća verzija",
|
||||||
|
"requirements": "Zahtevi",
|
||||||
"update": "Ažuriraj sad",
|
"update": "Ažuriraj sad",
|
||||||
"update_progress": "Ažuriranje je u toku...",
|
"update_progress": "Ažuriranje je u toku...",
|
||||||
"progress_text": "Trajaće svega par minuta. Nemojte osvežavati ili zatvoriti stranicu dok ažuriranje ne bude gotovo",
|
"progress_text": "Trajaće svega par minuta. Nemojte osvežavati ili zatvoriti stranicu dok ažuriranje ne bude gotovo",
|
||||||
@ -799,10 +912,92 @@
|
|||||||
"download_zip_file": "Preuzmi ZIP paket",
|
"download_zip_file": "Preuzmi ZIP paket",
|
||||||
"unzipping_package": "Raspakivanje paketa",
|
"unzipping_package": "Raspakivanje paketa",
|
||||||
"copying_files": "Kopiranje datoteka",
|
"copying_files": "Kopiranje datoteka",
|
||||||
|
"deleting_files": "Brisanje fajlova koji nisu u upotrebi",
|
||||||
"running_migrations": "Migracije u toku",
|
"running_migrations": "Migracije u toku",
|
||||||
"finishing_update": "Završavanje ažuriranja",
|
"finishing_update": "Završavanje ažuriranja",
|
||||||
"update_failed": "Neuspešno ažuriranje",
|
"update_failed": "Neuspešno ažuriranje",
|
||||||
"update_failed_text": "Žao mi je! Tvoje ažuriranje nije uspelo na koraku broj: {step} "
|
"update_failed_text": "Žao mi je! Tvoje ažuriranje nije uspelo na koraku broj: {step} korak"
|
||||||
|
},
|
||||||
|
"backup": {
|
||||||
|
"title": "Bekap | Bekapi",
|
||||||
|
"description": "Bekap je zip arhiva koja sadrži sve fajlove iz foldera koje ste specificirali, takođe sadrži bekap baze.",
|
||||||
|
"new_backup": "Dodaj novi Bekap",
|
||||||
|
"create_backup": "Napravi Bekap",
|
||||||
|
"select_backup_type": "Izaberi tip Bekapa",
|
||||||
|
"backup_confirm_delete": "Nećeš moći da povratiš ovaj Bekap",
|
||||||
|
"path": "putanja",
|
||||||
|
"new_disk": "Novi Disk",
|
||||||
|
"created_at": "datum kreiranja",
|
||||||
|
"size": "veličina",
|
||||||
|
"dropbox": "dropbox",
|
||||||
|
"local": "lokalni",
|
||||||
|
"healthy": "zdrav",
|
||||||
|
"amount_of_backups": "broj bekapa",
|
||||||
|
"newest_backups": "najnoviji bekapi",
|
||||||
|
"used_storage": "korišćeno skladište",
|
||||||
|
"select_disk": "Izaberi Disk",
|
||||||
|
"action": "Akcija",
|
||||||
|
"deleted_message": "Bekap uspešno obrisan",
|
||||||
|
"created_message": "Bekap uspešno napravljen",
|
||||||
|
"invalid_disk_credentials": "Pogrešni kredencijali za odabrani disk"
|
||||||
|
},
|
||||||
|
"disk": {
|
||||||
|
"title": "File Disk | File Disks",
|
||||||
|
"description": "Podrazumevano ponašanje je da Crater koristi lokalni disk za čuvanje bekapa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.",
|
||||||
|
"created_at": "datum kreiranja",
|
||||||
|
"dropbox": "dropbox",
|
||||||
|
"name": "Naziv",
|
||||||
|
"driver": "Drajver",
|
||||||
|
"disk_type": "Tip",
|
||||||
|
"disk_name": "Naziv Diska",
|
||||||
|
"new_disk": "Dodaj novi Disk",
|
||||||
|
"filesystem_driver": "Filesystem Driver",
|
||||||
|
"local_driver": "lokalni Drajver",
|
||||||
|
"local_root": "local Root",
|
||||||
|
"public_driver": "Public Driver",
|
||||||
|
"public_root": "Public Root",
|
||||||
|
"public_url": "Public URL",
|
||||||
|
"public_visibility": "Public Visibility",
|
||||||
|
"media_driver": "Media Driver",
|
||||||
|
"media_root": "Media Root",
|
||||||
|
"aws_driver": "AWS Driver",
|
||||||
|
"aws_key": "AWS Key",
|
||||||
|
"aws_secret": "AWS Secret",
|
||||||
|
"aws_region": "AWS Region",
|
||||||
|
"aws_bucket": "AWS Bucket",
|
||||||
|
"aws_root": "AWS Root",
|
||||||
|
"do_spaces_type": "Do Spaces type",
|
||||||
|
"do_spaces_key": "Do Spaces key",
|
||||||
|
"do_spaces_secret": "Do Spaces Secret",
|
||||||
|
"do_spaces_region": "Do Spaces Region",
|
||||||
|
"do_spaces_bucket": "Do Spaces Bucket",
|
||||||
|
"do_spaces_endpoint": "Do Spaces Endpoint",
|
||||||
|
"do_spaces_root": "Do Spaces Root",
|
||||||
|
"dropbox_type": "Dropbox Type",
|
||||||
|
"dropbox_token": "Dropbox Token",
|
||||||
|
"dropbox_key": "Dropbox Key",
|
||||||
|
"dropbox_secret": "Dropbox Secret",
|
||||||
|
"dropbox_app": "Dropbox App",
|
||||||
|
"dropbox_root": "Dropbox Root",
|
||||||
|
"default_driver": "Podrazumevani Drajver",
|
||||||
|
"is_default": "DA LI JE PODRAZUMEVAN",
|
||||||
|
"set_default_disk": "Postavi Podrazumevani Disk",
|
||||||
|
"set_default_disk_confirm": "Ovaj disk će biti postavljen kao podrazumevan i svi novi PDF fajlovi će biti sačuvani na ovom disku",
|
||||||
|
"success_set_default_disk": "Disk je uspešno postavljen kao podrazumevan",
|
||||||
|
"save_pdf_to_disk": "Sačuvaj PDF fajlove na Disk",
|
||||||
|
"disk_setting_description": " Uključite ovo ako želite da sačuvate kopiju PDF fajla svake Fakture, Profakture i Uplate na vaš podrazumevani disk automatski. Uključivanjem ove opcije ćete smanjiti vreme učitavanja pri pregledu PDF fajlova.",
|
||||||
|
"select_disk": "Izaberi Disk",
|
||||||
|
"disk_settings": "Disk Podešavanja",
|
||||||
|
"confirm_delete": "Ovo neće uticati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz Cratera.",
|
||||||
|
"action": "Akcija",
|
||||||
|
"edit_file_disk": "Izmeni File Disk",
|
||||||
|
"success_create": "Disk uspešno dodat",
|
||||||
|
"success_update": "Disk uspešno ažuriran",
|
||||||
|
"error": "Dodavanje diska nije uspelo",
|
||||||
|
"deleted_message": "File Disk uspešno obrisan",
|
||||||
|
"disk_variables_save_successfully": "Disk uspešno podešen",
|
||||||
|
"disk_variables_save_error": "Podešavanje diska nije uspelo.",
|
||||||
|
"invalid_disk_credentials": "Pogrešan kredencijal za disk koji je naveden"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wizard": {
|
"wizard": {
|
||||||
@ -845,8 +1040,10 @@
|
|||||||
"port": "Port baze podataka",
|
"port": "Port baze podataka",
|
||||||
"password": "Šifra baze podataka",
|
"password": "Šifra baze podataka",
|
||||||
"app_url": "URL aplikacije",
|
"app_url": "URL aplikacije",
|
||||||
|
"app_domain": "Domen aplikacije",
|
||||||
"username": "Korisničko ime baze podataka",
|
"username": "Korisničko ime baze podataka",
|
||||||
"db_name": "Naziv baze podataka",
|
"db_name": "Naziv baze podataka",
|
||||||
|
"db_path": "Putanja do baze",
|
||||||
"desc": "Kreiraj bazu podataka na svom serveru i postavi kredencijale prateći obrazac u nastavku."
|
"desc": "Kreiraj bazu podataka na svom serveru i postavi kredencijale prateći obrazac u nastavku."
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
@ -872,7 +1069,6 @@
|
|||||||
"from_mail": "E-mail adresa pošiljaoca",
|
"from_mail": "E-mail adresa pošiljaoca",
|
||||||
"encryption": "E-mail enkripcija",
|
"encryption": "E-mail enkripcija",
|
||||||
"mail_config_desc": "Ispod se nalazi forma za podešavanje E-mail drajvera za slanje pošte iz aplikacije. Takođe možete podesiti provajdere treće strane kao Sendgrid, SES itd."
|
"mail_config_desc": "Ispod se nalazi forma za podešavanje E-mail drajvera za slanje pošte iz aplikacije. Takođe možete podesiti provajdere treće strane kao Sendgrid, SES itd."
|
||||||
|
|
||||||
},
|
},
|
||||||
"req": {
|
"req": {
|
||||||
"system_req": "Sistemski zahtevi",
|
"system_req": "Sistemski zahtevi",
|
||||||
@ -901,7 +1097,9 @@
|
|||||||
"invoices_and_estimates": "fakture i profakture sa mogućnošću odabira više obrazaca"
|
"invoices_and_estimates": "fakture i profakture sa mogućnošću odabira više obrazaca"
|
||||||
},
|
},
|
||||||
"validation": {
|
"validation": {
|
||||||
"invalid_url": "Nevažeći URL (ex: http://www.crater.com)",
|
"invalid_phone": "Pogrešan Broj Telefona",
|
||||||
|
"invalid_url": "Nevažeći URL (primer: http://www.crater.com)",
|
||||||
|
"invalid_domain_url": "Pogrešan URL (primer: crater.com)",
|
||||||
"required": "Obavezno polje",
|
"required": "Obavezno polje",
|
||||||
"email_incorrect": "Pogrešan E-mail",
|
"email_incorrect": "Pogrešan E-mail",
|
||||||
"email_already_taken": "Navedeni E-mail je zauzet",
|
"email_already_taken": "Navedeni E-mail je zauzet",
|
||||||
@ -926,14 +1124,50 @@
|
|||||||
"price_minvalue": "Cena mora biti veća od 0",
|
"price_minvalue": "Cena mora biti veća od 0",
|
||||||
"amount_maxlength": "Iznos ne može da ima više od 20 cifara",
|
"amount_maxlength": "Iznos ne može da ima više od 20 cifara",
|
||||||
"amount_minvalue": "Iznos mora biti veći od 0",
|
"amount_minvalue": "Iznos mora biti veći od 0",
|
||||||
"description_maxlength": "Opis ne može da ima više od 255 karaktera",
|
"description_maxlength": "Opis ne može da ima više od 65,000 karaktera",
|
||||||
"subject_maxlength": "Predmet ne može da ima više od 100 karaktera",
|
"subject_maxlength": "Predmet ne može da ima više od 100 karaktera",
|
||||||
"message_maxlength": "Poruka ne može da ima više od 255 karaktera",
|
"message_maxlength": "Poruka ne može da ima više od 255 karaktera",
|
||||||
"maximum_options_error": "Maksimalan broj opcija je izabran. Prvo uklonite izabranu opciju da biste izabrali drugu",
|
"maximum_options_error": "Maksimalan broj opcija je izabran. Prvo uklonite izabranu opciju da biste izabrali drugu",
|
||||||
"notes_maxlength": "Napomena ne može da ima više od 255 karaktera",
|
"notes_maxlength": "Napomena ne može da ima više od 65,000 karaktera",
|
||||||
"address_maxlength": "Adresa ne može da ima više od 255 karaktera",
|
"address_maxlength": "Adresa ne može da ima više od 255 karaktera",
|
||||||
"ref_number_maxlength": "Poziv na broj ne može da ima više od 225 karaktera",
|
"ref_number_maxlength": "Poziv na broj ne može da ima više od 225 karaktera",
|
||||||
"prefix_maxlength": "Prefiks ne može da ima više od 5 karaktera",
|
"prefix_maxlength": "Prefiks ne može da ima više od 5 karaktera",
|
||||||
"something_went_wrong": "nešto je krenulo naopako"
|
"something_went_wrong": "nešto je krenulo naopako"
|
||||||
}
|
},
|
||||||
|
"pdf_estimate_label": "Profaktura",
|
||||||
|
"pdf_estimate_number": "Broj Profakture",
|
||||||
|
"pdf_estimate_date": "Datum Profakture",
|
||||||
|
"pdf_estimate_expire_date": "Datum isteka Profakture",
|
||||||
|
"pdf_invoice_label": "Faktura",
|
||||||
|
"pdf_invoice_number": "Broj Fakture",
|
||||||
|
"pdf_invoice_date": "Datum Fakture",
|
||||||
|
"pdf_invoice_due_date": "Datum dospeća Fakture",
|
||||||
|
"pdf_notes": "Napomena",
|
||||||
|
"pdf_items_label": "Stavke",
|
||||||
|
"pdf_quantity_label": "Količina",
|
||||||
|
"pdf_price_label": "Cena",
|
||||||
|
"pdf_discount_label": "Popust",
|
||||||
|
"pdf_amount_label": "Iznos",
|
||||||
|
"pdf_subtotal": "Osnovica za obračun PDV-a",
|
||||||
|
"pdf_total": "Ukupan iznos",
|
||||||
|
"pdf_payment_receipt_label": "POTVRDA O UPLATI",
|
||||||
|
"pdf_payment_date": "Datum Uplate",
|
||||||
|
"pdf_payment_number": "Broj Uplate",
|
||||||
|
"pdf_payment_mode": "Način Uplate",
|
||||||
|
"pdf_payment_amount_received_label": "Iznos Uplate",
|
||||||
|
"pdf_expense_report_label": "IZVEŠTAJ O RASHODIMA",
|
||||||
|
"pdf_total_expenses_label": "RASHODI UKUPNO",
|
||||||
|
"pdf_profit_loss_label": "IZVEŠTAJ O PRIHODIMA I RASHODIMA",
|
||||||
|
"pdf_income_label": "PRIHOD",
|
||||||
|
"pdf_net_profit_label": "NETO PROFIT",
|
||||||
|
"pdf_customer_sales_report": "Izveštaj o Prodaji: Po Klijentu",
|
||||||
|
"pdf_total_sales_label": "PRODAJA UKUPNO",
|
||||||
|
"pdf_item_sales_label": "Izveštaj o Prodaji: Po Stavci",
|
||||||
|
"pdf_tax_report_label": "IZVEŠTAJ O POREZIMA",
|
||||||
|
"pdf_total_tax_label": "UKUPNO POREZ",
|
||||||
|
"pdf_tax_types_label": "Tipovi Poreza",
|
||||||
|
"pdf_expenses_label": "Rashodi",
|
||||||
|
"pdf_bill_to": "Račun za,",
|
||||||
|
"pdf_ship_to": "Isporučiti za,",
|
||||||
|
"pdf_received_from": "Poslat od strane:"
|
||||||
}
|
}
|
||||||
1172
resources/assets/js/plugins/sv.json
Normal file
1172
resources/assets/js/plugins/sv.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -46,7 +46,6 @@
|
|||||||
|
|
||||||
<script type="text/babel">
|
<script type="text/babel">
|
||||||
import { async } from 'q'
|
import { async } from 'q'
|
||||||
import { mapActions } from 'vuex'
|
|
||||||
const { required, email } = require('vuelidate/lib/validators')
|
const { required, email } = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -68,7 +67,6 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions('auth'),
|
|
||||||
async validateBeforeSubmit(e) {
|
async validateBeforeSubmit(e) {
|
||||||
this.$v.formData.$touch()
|
this.$v.formData.$touch()
|
||||||
if (!this.$v.formData.$invalid) {
|
if (!this.$v.formData.$invalid) {
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
<base-page class="customer-create">
|
<base-page class="customer-create">
|
||||||
<sw-page-header :title="$t('customers.title')">
|
<sw-page-header :title="$t('customers.title')">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item to="dashboard" :title="$t('general.home')" />
|
<sw-breadcrumb-item :title="$t('general.home')" to="dashboard" />
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="#"
|
|
||||||
:title="$tc('customers.customer', 2)"
|
:title="$tc('customers.customer', 2)"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -159,7 +159,7 @@
|
|||||||
:filterable="false"
|
:filterable="false"
|
||||||
cell-class="no-click"
|
cell-class="no-click"
|
||||||
>
|
>
|
||||||
<div class="relative block" slot-scope="row">
|
<div slot-scope="row" class="relative block">
|
||||||
<sw-checkbox
|
<sw-checkbox
|
||||||
:id="row.id"
|
:id="row.id"
|
||||||
v-model="selectField"
|
v-model="selectField"
|
||||||
@ -243,16 +243,16 @@
|
|||||||
<dot-icon slot="activator" />
|
<dot-icon slot="activator" />
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`customers/${row.id}/edit`"
|
:to="`customers/${row.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`customers/${row.id}/view`"
|
:to="`customers/${row.id}/view`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<eye-icon class="h-5 mr-3 text-gray-600" />
|
<eye-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.view') }}
|
{{ $t('general.view') }}
|
||||||
@ -281,7 +281,6 @@ import {
|
|||||||
EyeIcon,
|
EyeIcon,
|
||||||
} from '@vue-hero-icons/solid'
|
} from '@vue-hero-icons/solid'
|
||||||
import AstronautIcon from '../../components/icon/AstronautIcon'
|
import AstronautIcon from '../../components/icon/AstronautIcon'
|
||||||
import { request } from 'http'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@ -35,10 +35,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('customers.create_date')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_create_date"
|
id="filter_create_date"
|
||||||
|
:label="$t('customers.create_date')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="invoices.created_at"
|
value="invoices.created_at"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -49,10 +49,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('customers.display_name')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_display_name"
|
id="filter_display_name"
|
||||||
|
:label="$t('customers.display_name')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="users.name"
|
value="users.name"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -62,8 +62,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -102,13 +102,13 @@
|
|||||||
{{ customer.name }}
|
{{ customer.name }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="mt-1 text-xs not-italic font-medium leading-5 text-gray-600"
|
|
||||||
v-if="customer.contact_name"
|
v-if="customer.contact_name"
|
||||||
|
class="mt-1 text-xs not-italic font-medium leading-5 text-gray-600"
|
||||||
>
|
>
|
||||||
{{ customer.contact_name }}
|
{{ customer.contact_name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="$utils.formatMoney(customer.due_amount, customer.currency)"
|
v-html="$utils.formatMoney(customer.due_amount, customer.currency)"
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
{{ $t('general.you_got_lost') }}
|
{{ $t('general.you_got_lost') }}
|
||||||
</h5>
|
</h5>
|
||||||
<router-link
|
<router-link
|
||||||
class="flex items-center w-32 h-12 px-2 py-1 text-base font-medium leading-none text-center text-white whitespace-no-wrap rounded bg-primary-500 btn-lg hover:text-white"
|
class="flex items-center w-32 h-12 px-2 py-1 text-base font-medium leading-none text-center text-white whitespace-nowrap rounded bg-primary-500 btn-lg hover:text-white"
|
||||||
to="/admin/dashboard"
|
to="/admin/dashboard"
|
||||||
>
|
>
|
||||||
<arrow-left-icon class="mr-2 text-white icon" />
|
<arrow-left-icon class="mr-2 text-white icon" />
|
||||||
|
|||||||
@ -7,23 +7,23 @@
|
|||||||
<sw-page-header :title="pageTitle">
|
<sw-page-header :title="pageTitle">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/dashboard"
|
|
||||||
:title="$t('general.home')"
|
:title="$t('general.home')"
|
||||||
|
to="/admin/dashboard"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/estimates"
|
|
||||||
:title="$tc('estimates.estimate', 2)"
|
:title="$tc('estimates.estimate', 2)"
|
||||||
|
to="/admin/estimates"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'estimates.edit'"
|
v-if="$route.name === 'estimates.edit'"
|
||||||
to="#"
|
|
||||||
:title="$t('estimates.edit_estimate')"
|
:title="$t('estimates.edit_estimate')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-else
|
v-else
|
||||||
to="#"
|
|
||||||
:title="$t('estimates.new_estimate')"
|
:title="$t('estimates.new_estimate')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -31,8 +31,8 @@
|
|||||||
<template slot="actions">
|
<template slot="actions">
|
||||||
<sw-button
|
<sw-button
|
||||||
v-if="$route.name === 'estimates.edit'"
|
v-if="$route.name === 'estimates.edit'"
|
||||||
tag-name="a"
|
|
||||||
:href="`/estimates/pdf/${newEstimate.unique_hash}`"
|
:href="`/estimates/pdf/${newEstimate.unique_hash}`"
|
||||||
|
tag-name="a"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
class="mr-3"
|
class="mr-3"
|
||||||
variant="primary-outline"
|
variant="primary-outline"
|
||||||
@ -59,9 +59,9 @@
|
|||||||
<!-- Select Customer & Basic Fields -->
|
<!-- Select Customer & Basic Fields -->
|
||||||
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
|
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
|
||||||
<customer-select
|
<customer-select
|
||||||
class="col-span-5 pr-0"
|
|
||||||
:valid="$v.selectedCustomer"
|
:valid="$v.selectedCustomer"
|
||||||
:customer-id="customerId"
|
:customer-id="customerId"
|
||||||
|
class="col-span-5 pr-0"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@ -77,7 +77,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.newEstimate.estimate_date.$touch()"
|
@input="$v.newEstimate.estimate_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -92,7 +92,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.newEstimate.expiry_date.$touch()"
|
@input="$v.newEstimate.expiry_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -218,7 +218,7 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<sw-popup
|
<sw-popup
|
||||||
ref="notePopup"
|
ref="notePopup"
|
||||||
class="text-sm font-semibold leading-5 text-primary-400"
|
class="z-10 text-sm font-semibold leading-5 text-primary-400"
|
||||||
>
|
>
|
||||||
<div slot="activator" class="float-right mt-1">
|
<div slot="activator" class="float-right mt-1">
|
||||||
+ {{ $t('general.insert_note') }}
|
+ {{ $t('general.insert_note') }}
|
||||||
@ -235,8 +235,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
|
|
||||||
v-if="customFields.length > 0"
|
v-if="customFields.length > 0"
|
||||||
|
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
|
||||||
>
|
>
|
||||||
<sw-input-group
|
<sw-input-group
|
||||||
v-for="(field, index) in customFields"
|
v-for="(field, index) in customFields"
|
||||||
@ -247,7 +247,7 @@
|
|||||||
<component
|
<component
|
||||||
:type="field.type.label"
|
:type="field.type.label"
|
||||||
:field="field"
|
:field="field"
|
||||||
:isEdit="isEdit"
|
:is-edit="isEdit"
|
||||||
:is="field.type + 'Field'"
|
:is="field.type + 'Field'"
|
||||||
:invalid-fields="invalidFields"
|
:invalid-fields="invalidFields"
|
||||||
@update="setCustomFieldValue"
|
@update="setCustomFieldValue"
|
||||||
@ -262,7 +262,7 @@
|
|||||||
>
|
>
|
||||||
<sw-button
|
<sw-button
|
||||||
type="button"
|
type="button"
|
||||||
class="flex justify-center w-full text-sm lg:w-auto"
|
class="flex justify-center w-full text-sm lg:w-auto hover:bg-gray-400"
|
||||||
variant="gray"
|
variant="gray"
|
||||||
@click="openTemplateModal"
|
@click="openTemplateModal"
|
||||||
>
|
>
|
||||||
@ -322,8 +322,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center justify-center w-12 border border-gray-300 border-solid rounded-tl-none rounded-bl-none font-base"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -366,8 +366,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-popup
|
<sw-popup
|
||||||
ref="taxModal"
|
|
||||||
v-if="taxPerItem === 'NO' || taxPerItem === null"
|
v-if="taxPerItem === 'NO' || taxPerItem === null"
|
||||||
|
ref="taxModal"
|
||||||
class="my-3 text-sm font-semibold leading-5 text-primary-400"
|
class="my-3 text-sm font-semibold leading-5 text-primary-400"
|
||||||
>
|
>
|
||||||
<div slot="activator" class="float-right pt-2 pb-4">
|
<div slot="activator" class="float-right pt-2 pb-4">
|
||||||
@ -425,8 +425,6 @@ const {
|
|||||||
} = require('vuelidate/lib/validators')
|
} = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [CustomFieldsMixin],
|
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
EstimateItem,
|
EstimateItem,
|
||||||
CustomerSelect,
|
CustomerSelect,
|
||||||
@ -438,6 +436,7 @@ export default {
|
|||||||
PlusSmIcon,
|
PlusSmIcon,
|
||||||
HashtagIcon,
|
HashtagIcon,
|
||||||
},
|
},
|
||||||
|
mixins: [CustomFieldsMixin],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -563,7 +562,7 @@ export default {
|
|||||||
if (this.newEstimate.discount_type === 'percentage') {
|
if (this.newEstimate.discount_type === 'percentage') {
|
||||||
this.newEstimate.discount_val = (this.subtotal * newValue) / 100
|
this.newEstimate.discount_val = (this.subtotal * newValue) / 100
|
||||||
} else {
|
} else {
|
||||||
this.newEstimate.discount_val = newValue * 100
|
this.newEstimate.discount_val = Math.round(newValue * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newEstimate.discount = newValue
|
this.newEstimate.discount = newValue
|
||||||
@ -727,7 +726,9 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newEstimate.discount_val = this.newEstimate.discount * 100
|
this.newEstimate.discount_val = Math.round(
|
||||||
|
this.newEstimate.discount * 100
|
||||||
|
)
|
||||||
this.newEstimate.discount_type = 'fixed'
|
this.newEstimate.discount_type = 'fixed'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -953,12 +954,15 @@ export default {
|
|||||||
let amount = 0
|
let amount = 0
|
||||||
|
|
||||||
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
||||||
amount =
|
amount = Math.round(
|
||||||
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
||||||
selectedTax.percent) /
|
selectedTax.percent) /
|
||||||
100
|
100
|
||||||
|
)
|
||||||
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
||||||
amount = (this.subtotalWithDiscount * selectedTax.percent) / 100
|
amount = Math.round(
|
||||||
|
(this.subtotalWithDiscount * selectedTax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newEstimate.taxes.push({
|
this.newEstimate.taxes.push({
|
||||||
@ -971,7 +975,7 @@ export default {
|
|||||||
amount,
|
amount,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (this.$$refs) {
|
if (this.$refs) {
|
||||||
this.$refs.taxModal.close()
|
this.$refs.taxModal.close()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
<div v-if="selectedCustomer.billing_address">
|
<div v-if="selectedCustomer.billing_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.bill_to') }}
|
{{ $t('general.bill_to') }}
|
||||||
</label>
|
</label>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<div v-if="selectedCustomer.shipping_address">
|
<div v-if="selectedCustomer.shipping_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.ship_to') }}
|
{{ $t('general.ship_to') }}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@ -45,11 +45,13 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -85,9 +85,10 @@
|
|||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px; padding: 6px"
|
style="height: 43px"
|
||||||
variant="white"
|
variant="white"
|
||||||
>
|
>
|
||||||
<span class="flex">
|
<span class="flex">
|
||||||
@ -256,7 +257,7 @@ export default {
|
|||||||
if (this.item.discount_type === 'percentage') {
|
if (this.item.discount_type === 'percentage') {
|
||||||
this.item.discount_val = (this.subtotal * newValue) / 100
|
this.item.discount_val = (this.subtotal * newValue) / 100
|
||||||
} else {
|
} else {
|
||||||
this.item.discount_val = newValue * 100
|
this.item.discount_val = Math.round(newValue * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.item.discount = newValue
|
this.item.discount = newValue
|
||||||
@ -266,22 +267,26 @@ export default {
|
|||||||
return this.subtotal - this.item.discount_val
|
return this.subtotal - this.item.discount_val
|
||||||
},
|
},
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalTax() {
|
totalTax() {
|
||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
@ -296,7 +301,7 @@ export default {
|
|||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
if (parseFloat(newValue) > 0) {
|
if (parseFloat(newValue) > 0) {
|
||||||
this.item.price = newValue * 100
|
this.item.price = Math.round(newValue * 100)
|
||||||
this.maxDiscount = this.item.price
|
this.maxDiscount = this.item.price
|
||||||
} else {
|
} else {
|
||||||
this.item.price = newValue
|
this.item.price = newValue
|
||||||
@ -411,7 +416,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.item.discount_val = this.item.discount * 100
|
this.item.discount_val = Math.round(this.item.discount * 100)
|
||||||
this.item.discount_type = 'fixed'
|
this.item.discount_type = 'fixed'
|
||||||
},
|
},
|
||||||
selectPercentage() {
|
selectPercentage() {
|
||||||
|
|||||||
@ -32,8 +32,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/estimates/${$route.params.id}/edit`"
|
:to="`/admin/estimates/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-primary-800" />
|
<pencil-icon class="h-5 mr-3 text-primary-800" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -96,8 +96,8 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_due_date"
|
id="filter_due_date"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
value="expiry_date"
|
|
||||||
:label="$t('estimates.due_date')"
|
:label="$t('estimates.due_date')"
|
||||||
|
value="expiry_date"
|
||||||
size="sm"
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
@change="onSearched"
|
@change="onSearched"
|
||||||
@ -110,8 +110,8 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_estimate_number"
|
id="filter_estimate_number"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
value="estimate_number"
|
|
||||||
:label="$t('estimates.estimate_number')"
|
:label="$t('estimates.estimate_number')"
|
||||||
|
value="estimate_number"
|
||||||
size="sm"
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
@change="onSearched"
|
@change="onSearched"
|
||||||
@ -121,8 +121,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -168,15 +168,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-badge
|
<sw-badge
|
||||||
class="px-1 text-xs"
|
|
||||||
:bg-color="$utils.getBadgeStatusColor(estimate.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(estimate.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(estimate.status).color"
|
:color="$utils.getBadgeStatusColor(estimate.status).color"
|
||||||
|
class="px-1 text-xs"
|
||||||
>
|
>
|
||||||
{{ estimate.status }}
|
{{ estimate.status }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="
|
v-html="
|
||||||
|
|||||||
@ -2,29 +2,29 @@
|
|||||||
<base-page class="relative">
|
<base-page class="relative">
|
||||||
<form action="" @submit.prevent="sendData">
|
<form action="" @submit.prevent="sendData">
|
||||||
<!-- Page Header -->
|
<!-- Page Header -->
|
||||||
<sw-page-header class="mb-5" :title="pageTitle">
|
<sw-page-header :title="pageTitle" class="mb-5">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/dashboard"
|
|
||||||
:title="$t('general.home')"
|
:title="$t('general.home')"
|
||||||
|
to="/admin/dashboard"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/expenses"
|
|
||||||
:title="$tc('expenses.expense', 2)"
|
:title="$tc('expenses.expense', 2)"
|
||||||
|
to="/admin/expenses"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'expenses.edit'"
|
v-if="$route.name === 'expenses.edit'"
|
||||||
to="#"
|
|
||||||
:title="$t('expenses.edit_expense')"
|
:title="$t('expenses.edit_expense')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-else
|
v-else
|
||||||
to="#"
|
|
||||||
:title="$t('expenses.new_expense')"
|
:title="$t('expenses.new_expense')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -32,8 +32,8 @@
|
|||||||
<template slot="actions">
|
<template slot="actions">
|
||||||
<sw-button
|
<sw-button
|
||||||
v-if="isReceiptAvailable"
|
v-if="isReceiptAvailable"
|
||||||
tag-name="a"
|
|
||||||
:href="getReceiptUrl"
|
:href="getReceiptUrl"
|
||||||
|
tag-name="a"
|
||||||
variant="primary"
|
variant="primary"
|
||||||
outline
|
outline
|
||||||
size="lg"
|
size="lg"
|
||||||
@ -110,7 +110,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
@change="$v.formData.expense_date.$touch()"
|
@input="$v.formData.expense_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -122,8 +122,8 @@
|
|||||||
<sw-money
|
<sw-money
|
||||||
v-model="amount"
|
v-model="amount"
|
||||||
:currency="defaultCurrencyForInput"
|
:currency="defaultCurrencyForInput"
|
||||||
class="focus:border focus:border-solid focus:border-primary-500"
|
|
||||||
:invalid="$v.formData.amount.$error"
|
:invalid="$v.formData.amount.$error"
|
||||||
|
class="focus:border focus:border-solid focus:border-primary-500"
|
||||||
@input="$v.formData.amount.$touch()"
|
@input="$v.formData.amount.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
@ -176,9 +176,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-avatar
|
<sw-avatar
|
||||||
trigger="#receipt-box"
|
|
||||||
:preview-avatar="previewReceipt"
|
:preview-avatar="previewReceipt"
|
||||||
:enable-cropper="false"
|
:enable-cropper="false"
|
||||||
|
trigger="#receipt-box"
|
||||||
@changed="onChange"
|
@changed="onChange"
|
||||||
>
|
>
|
||||||
<template v-slot:icon>
|
<template v-slot:icon>
|
||||||
@ -201,7 +201,7 @@
|
|||||||
<component
|
<component
|
||||||
:type="field.type.label"
|
:type="field.type.label"
|
||||||
:field="field"
|
:field="field"
|
||||||
:isEdit="isEdit"
|
:is-edit="isEdit"
|
||||||
:is="field.type + 'Field'"
|
:is="field.type + 'Field'"
|
||||||
:invalid-fields="invalidFields"
|
:invalid-fields="invalidFields"
|
||||||
@update="setCustomFieldValue"
|
@update="setCustomFieldValue"
|
||||||
@ -242,13 +242,12 @@ import { CloudUploadIcon, ShoppingCartIcon } from '@vue-hero-icons/solid'
|
|||||||
import CustomFieldsMixin from '../../mixins/customFields'
|
import CustomFieldsMixin from '../../mixins/customFields'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [CustomFieldsMixin],
|
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
CloudUploadIcon,
|
CloudUploadIcon,
|
||||||
ShoppingCartIcon,
|
ShoppingCartIcon,
|
||||||
DownloadIcon,
|
DownloadIcon,
|
||||||
},
|
},
|
||||||
|
mixins: [CustomFieldsMixin],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
addname: {
|
addname: {
|
||||||
@ -315,7 +314,7 @@ export default {
|
|||||||
return this.formData.amount / 100
|
return this.formData.amount / 100
|
||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
this.formData.amount = newValue * 100
|
this.formData.amount = Math.round(newValue * 100)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -7,23 +7,23 @@
|
|||||||
<sw-page-header :title="pageTitle">
|
<sw-page-header :title="pageTitle">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/dashboard"
|
|
||||||
:title="$t('general.home')"
|
:title="$t('general.home')"
|
||||||
|
to="/admin/dashboard"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/invoices"
|
|
||||||
:title="$tc('invoices.invoice', 2)"
|
:title="$tc('invoices.invoice', 2)"
|
||||||
|
to="/admin/invoices"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'invoice.edit'"
|
v-if="$route.name === 'invoice.edit'"
|
||||||
to="#"
|
|
||||||
:title="$t('invoices.edit_invoice')"
|
:title="$t('invoices.edit_invoice')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-else
|
v-else
|
||||||
to="#"
|
|
||||||
:title="$t('invoices.new_invoice')"
|
:title="$t('invoices.new_invoice')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -32,8 +32,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
v-if="$route.name === 'invoices.edit'"
|
v-if="$route.name === 'invoices.edit'"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
tag-name="a"
|
|
||||||
:href="`/invoices/pdf/${newInvoice.unique_hash}`"
|
:href="`/invoices/pdf/${newInvoice.unique_hash}`"
|
||||||
|
tag-name="a"
|
||||||
variant="primary-outline"
|
variant="primary-outline"
|
||||||
class="mr-3"
|
class="mr-3"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@ -58,9 +58,9 @@
|
|||||||
<!-- Select Customer & Basic Fields -->
|
<!-- Select Customer & Basic Fields -->
|
||||||
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
|
<div class="grid-cols-12 gap-8 mt-6 mb-8 lg:grid">
|
||||||
<customer-select
|
<customer-select
|
||||||
class="col-span-5 pr-0"
|
|
||||||
:valid="$v.selectedCustomer"
|
:valid="$v.selectedCustomer"
|
||||||
:customer-id="customerId"
|
:customer-id="customerId"
|
||||||
|
class="col-span-5 pr-0"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@ -76,7 +76,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.newInvoice.invoice_date.$touch()"
|
@input="$v.newInvoice.invoice_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -91,7 +91,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.newInvoice.due_date.$touch()"
|
@input="$v.newInvoice.due_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -211,7 +211,7 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<sw-popup
|
<sw-popup
|
||||||
ref="notePopup"
|
ref="notePopup"
|
||||||
class="text-sm font-semibold leading-5 text-primary-400"
|
class="z-10 text-sm font-semibold leading-5 text-primary-400"
|
||||||
>
|
>
|
||||||
<div slot="activator" class="float-right mt-1">
|
<div slot="activator" class="float-right mt-1">
|
||||||
+ {{ $t('general.insert_note') }}
|
+ {{ $t('general.insert_note') }}
|
||||||
@ -227,8 +227,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
|
|
||||||
v-if="customFields.length > 0"
|
v-if="customFields.length > 0"
|
||||||
|
class="grid gap-x-4 gap-y-2 md:gap-x-8 md:gap-y-4 grid-col-1 md:grid-cols-2"
|
||||||
>
|
>
|
||||||
<sw-input-group
|
<sw-input-group
|
||||||
v-for="(field, index) in customFields"
|
v-for="(field, index) in customFields"
|
||||||
@ -239,7 +239,7 @@
|
|||||||
<component
|
<component
|
||||||
:type="field.type.label"
|
:type="field.type.label"
|
||||||
:field="field"
|
:field="field"
|
||||||
:isEdit="isEdit"
|
:is-edit="isEdit"
|
||||||
:is="field.type + 'Field'"
|
:is="field.type + 'Field'"
|
||||||
:invalid-fields="invalidFields"
|
:invalid-fields="invalidFields"
|
||||||
@update="setCustomFieldValue"
|
@update="setCustomFieldValue"
|
||||||
@ -254,7 +254,7 @@
|
|||||||
>
|
>
|
||||||
<sw-button
|
<sw-button
|
||||||
type="button"
|
type="button"
|
||||||
class="flex justify-center w-full text-sm lg:w-auto"
|
class="flex justify-center w-full text-sm text-black lg:w-auto hover:bg-gray-400"
|
||||||
variant="gray"
|
variant="gray"
|
||||||
@click="openTemplateModal"
|
@click="openTemplateModal"
|
||||||
>
|
>
|
||||||
@ -315,8 +315,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center justify-center w-12 border border-gray-300 border-solid rounded-tl-none rounded-bl-none font-base"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -418,8 +418,6 @@ const {
|
|||||||
} = require('vuelidate/lib/validators')
|
} = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [CustomFieldsMixin],
|
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
InvoiceItem,
|
InvoiceItem,
|
||||||
CustomerSelect,
|
CustomerSelect,
|
||||||
@ -431,6 +429,7 @@ export default {
|
|||||||
ShoppingCartIcon,
|
ShoppingCartIcon,
|
||||||
HashtagIcon,
|
HashtagIcon,
|
||||||
},
|
},
|
||||||
|
mixins: [CustomFieldsMixin],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -558,7 +557,7 @@ export default {
|
|||||||
if (this.newInvoice.discount_type === 'percentage') {
|
if (this.newInvoice.discount_type === 'percentage') {
|
||||||
this.newInvoice.discount_val = (this.subtotal * newValue) / 100
|
this.newInvoice.discount_val = (this.subtotal * newValue) / 100
|
||||||
} else {
|
} else {
|
||||||
this.newInvoice.discount_val = newValue * 100
|
this.newInvoice.discount_val = Math.round(newValue * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newInvoice.discount = newValue
|
this.newInvoice.discount = newValue
|
||||||
@ -566,23 +565,27 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.newInvoice.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.newInvoice.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.newInvoice.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.newInvoice.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
totalTax() {
|
totalTax() {
|
||||||
@ -590,9 +593,11 @@ export default {
|
|||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
}
|
}
|
||||||
|
|
||||||
return window._.sumBy(this.newInvoice.items, function (tax) {
|
return Math.round(
|
||||||
return tax.tax
|
window._.sumBy(this.newInvoice.items, function (tax) {
|
||||||
})
|
return tax.tax
|
||||||
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
allTaxes() {
|
allTaxes() {
|
||||||
@ -722,7 +727,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newInvoice.discount_val = this.newInvoice.discount * 100
|
this.newInvoice.discount_val = Math.round(this.newInvoice.discount * 100)
|
||||||
this.newInvoice.discount_type = 'fixed'
|
this.newInvoice.discount_type = 'fixed'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -952,12 +957,15 @@ export default {
|
|||||||
let amount = 0
|
let amount = 0
|
||||||
|
|
||||||
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
if (selectedTax.compound_tax && this.subtotalWithDiscount) {
|
||||||
amount =
|
amount = Math.round(
|
||||||
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
((this.subtotalWithDiscount + this.totalSimpleTax) *
|
||||||
selectedTax.percent) /
|
selectedTax.percent) /
|
||||||
100
|
100
|
||||||
|
)
|
||||||
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
} else if (this.subtotalWithDiscount && selectedTax.percent) {
|
||||||
amount = (this.subtotalWithDiscount * selectedTax.percent) / 100
|
amount = Math.round(
|
||||||
|
(this.subtotalWithDiscount * selectedTax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.newInvoice.taxes.push({
|
this.newInvoice.taxes.push({
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<div v-if="selectedCustomer.billing_address">
|
<div v-if="selectedCustomer.billing_address">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.bill_to') }}
|
{{ $t('general.bill_to') }}
|
||||||
</label>
|
</label>
|
||||||
@ -79,7 +79,7 @@
|
|||||||
<div v-if="selectedCustomer.shipping_address" class="col col-6">
|
<div v-if="selectedCustomer.shipping_address" class="col col-6">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<label
|
<label
|
||||||
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-no-wrap"
|
class="mb-1 text-sm font-medium text-gray-500 uppercase whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $t('general.ship_to') }}
|
{{ $t('general.ship_to') }}
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@ -45,11 +45,13 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -83,8 +83,8 @@
|
|||||||
<sw-button
|
<sw-button
|
||||||
slot="activator"
|
slot="activator"
|
||||||
type="button"
|
type="button"
|
||||||
class="flex items-center px-5 py-1 text-sm font-medium leading-none text-center text-gray-500 whitespace-no-wrap border border-gray-300 border-solid rounded rounded-tl-none rounded-bl-none dropdown-toggle"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
|
size="discount"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false"
|
aria-expanded="false"
|
||||||
style="height: 43px"
|
style="height: 43px"
|
||||||
@ -256,7 +256,7 @@ export default {
|
|||||||
if (this.item.discount_type === 'percentage') {
|
if (this.item.discount_type === 'percentage') {
|
||||||
this.item.discount_val = (this.subtotal * newValue) / 100
|
this.item.discount_val = (this.subtotal * newValue) / 100
|
||||||
} else {
|
} else {
|
||||||
this.item.discount_val = newValue * 100
|
this.item.discount_val = Math.round(newValue * 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.item.discount = newValue
|
this.item.discount = newValue
|
||||||
@ -266,22 +266,26 @@ export default {
|
|||||||
return this.subtotal - this.item.discount_val
|
return this.subtotal - this.item.discount_val
|
||||||
},
|
},
|
||||||
totalSimpleTax() {
|
totalSimpleTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (!tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (!tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalCompoundTax() {
|
totalCompoundTax() {
|
||||||
return window._.sumBy(this.item.taxes, function (tax) {
|
return Math.round(
|
||||||
if (tax.compound_tax) {
|
window._.sumBy(this.item.taxes, function (tax) {
|
||||||
return tax.amount
|
if (tax.compound_tax) {
|
||||||
}
|
return tax.amount
|
||||||
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
})
|
})
|
||||||
|
)
|
||||||
},
|
},
|
||||||
totalTax() {
|
totalTax() {
|
||||||
return this.totalSimpleTax + this.totalCompoundTax
|
return this.totalSimpleTax + this.totalCompoundTax
|
||||||
@ -296,7 +300,7 @@ export default {
|
|||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
if (parseFloat(newValue) > 0) {
|
if (parseFloat(newValue) > 0) {
|
||||||
this.item.price = newValue * 100
|
this.item.price = Math.round(newValue * 100)
|
||||||
this.maxDiscount = this.item.price
|
this.maxDiscount = this.item.price
|
||||||
} else {
|
} else {
|
||||||
this.item.price = newValue
|
this.item.price = newValue
|
||||||
@ -412,7 +416,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.item.discount_val = this.item.discount * 100
|
this.item.discount_val = Math.round(this.item.discount * 100)
|
||||||
this.item.discount_type = 'fixed'
|
this.item.discount_type = 'fixed'
|
||||||
},
|
},
|
||||||
selectPercentage() {
|
selectPercentage() {
|
||||||
|
|||||||
@ -105,11 +105,13 @@ export default {
|
|||||||
},
|
},
|
||||||
taxAmount() {
|
taxAmount() {
|
||||||
if (this.tax.compound_tax && this.total) {
|
if (this.tax.compound_tax && this.total) {
|
||||||
return ((this.total + this.totalTax) * this.tax.percent) / 100
|
return Math.round(
|
||||||
|
((this.total + this.totalTax) * this.tax.percent) / 100
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.total && this.tax.percent) {
|
if (this.total && this.tax.percent) {
|
||||||
return (this.total * this.tax.percent) / 100
|
return Math.round((this.total * this.tax.percent) / 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -27,8 +27,8 @@
|
|||||||
invoice.status === 'OVERDUE' ||
|
invoice.status === 'OVERDUE' ||
|
||||||
invoice.status === 'VIEWED'
|
invoice.status === 'VIEWED'
|
||||||
"
|
"
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/payments/${$route.params.id}/create`"
|
:to="`/admin/payments/${$route.params.id}/create`"
|
||||||
|
tag-name="router-link"
|
||||||
variant="primary"
|
variant="primary"
|
||||||
class="text-sm"
|
class="text-sm"
|
||||||
>
|
>
|
||||||
@ -45,8 +45,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/invoices/${$route.params.id}/edit`"
|
:to="`/admin/invoices/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -125,10 +125,10 @@
|
|||||||
<sw-radio
|
<sw-radio
|
||||||
id="filter_invoice_number"
|
id="filter_invoice_number"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
:label="$t('invoices.invoice_number')"
|
||||||
size="sm"
|
size="sm"
|
||||||
type="radio"
|
type="radio"
|
||||||
name="filter"
|
name="filter"
|
||||||
:label="$t('invoices.invoice_number')"
|
|
||||||
value="invoice_number"
|
value="invoice_number"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
/>
|
/>
|
||||||
@ -137,8 +137,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -184,16 +184,16 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-badge
|
<sw-badge
|
||||||
class="px-1 text-xs"
|
|
||||||
:bg-color="$utils.getBadgeStatusColor(invoice.status).bgColor"
|
:bg-color="$utils.getBadgeStatusColor(invoice.status).bgColor"
|
||||||
:color="$utils.getBadgeStatusColor(invoice.status).color"
|
:color="$utils.getBadgeStatusColor(invoice.status).color"
|
||||||
:font-size="$utils.getBadgeStatusColor(invoice.status).fontSize"
|
:font-size="$utils.getBadgeStatusColor(invoice.status).fontSize"
|
||||||
|
class="px-1 text-xs"
|
||||||
>
|
>
|
||||||
{{ invoice.status }}
|
{{ invoice.status }}
|
||||||
</sw-badge>
|
</sw-badge>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="
|
v-html="
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<base-page>
|
<base-page>
|
||||||
<!-- Page Header -->
|
<!-- Page Header -->
|
||||||
<sw-page-header class="mb-3" :title="pageTitle">
|
<sw-page-header :title="pageTitle" class="mb-3">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item to="/admin/dashboard" :title="$t('general.home')" />
|
<sw-breadcrumb-item :title="$t('general.home')" to="/admin/dashboard" />
|
||||||
<sw-breadcrumb-item to="/admin/items" :title="$tc('items.item', 2)" />
|
<sw-breadcrumb-item :title="$tc('items.item', 2)" to="/admin/items" />
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'items.edit'"
|
v-if="$route.name === 'items.edit'"
|
||||||
to="#"
|
|
||||||
:title="$t('items.edit_item')"
|
:title="$t('items.edit_item')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-else
|
v-else
|
||||||
to="#"
|
|
||||||
:title="$t('items.new_item')"
|
:title="$t('items.new_item')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -59,11 +59,11 @@
|
|||||||
<sw-input-group :label="$t('items.unit')" class="mb-4">
|
<sw-input-group :label="$t('items.unit')" class="mb-4">
|
||||||
<sw-select
|
<sw-select
|
||||||
v-model="formData.unit"
|
v-model="formData.unit"
|
||||||
class="mt-2"
|
|
||||||
:options="itemUnits"
|
:options="itemUnits"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:placeholder="$t('items.select_a_unit')"
|
:placeholder="$t('items.select_a_unit')"
|
||||||
|
class="mt-2"
|
||||||
label="name"
|
label="name"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
@ -89,12 +89,12 @@
|
|||||||
>
|
>
|
||||||
<sw-select
|
<sw-select
|
||||||
v-model="formData.taxes"
|
v-model="formData.taxes"
|
||||||
class="mt-2"
|
|
||||||
:options="getTaxTypes"
|
:options="getTaxTypes"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:allow-empty="true"
|
:allow-empty="true"
|
||||||
:multiple="true"
|
:multiple="true"
|
||||||
|
class="mt-2"
|
||||||
track-by="tax_type_id"
|
track-by="tax_type_id"
|
||||||
label="tax_name"
|
label="tax_name"
|
||||||
/>
|
/>
|
||||||
@ -187,7 +187,7 @@ export default {
|
|||||||
return this.formData.price / 100
|
return this.formData.price / 100
|
||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
this.formData.price = newValue * 100
|
this.formData.price = Math.round(newValue * 100)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
<base-page>
|
<base-page>
|
||||||
<sw-page-header :title="$t('items.title')">
|
<sw-page-header :title="$t('items.title')">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item to="dashboard" :title="$t('general.home')" />
|
<sw-breadcrumb-item :title="$t('general.home')" to="dashboard" />
|
||||||
<sw-breadcrumb-item to="#" :title="$tc('items.item', 2)" active />
|
<sw-breadcrumb-item :title="$tc('items.item', 2)" to="#" active />
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
|
|
||||||
<template slot="actions">
|
<template slot="actions">
|
||||||
@ -50,9 +50,9 @@
|
|||||||
v-model="filters.unit"
|
v-model="filters.unit"
|
||||||
:options="itemUnits"
|
:options="itemUnits"
|
||||||
:searchable="true"
|
:searchable="true"
|
||||||
class="mt-2"
|
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:placeholder="$t('items.select_a_unit')"
|
:placeholder="$t('items.select_a_unit')"
|
||||||
|
class="mt-2"
|
||||||
label="name"
|
label="name"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
/>
|
/>
|
||||||
@ -225,8 +225,8 @@
|
|||||||
<dot-icon slot="activator" />
|
<dot-icon slot="activator" />
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`items/${row.id}/edit`"
|
:to="`items/${row.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -356,7 +356,7 @@ export default {
|
|||||||
let data = {
|
let data = {
|
||||||
search: this.filters.name !== null ? this.filters.name : '',
|
search: this.filters.name !== null ? this.filters.name : '',
|
||||||
unit_id: this.filters.unit !== null ? this.filters.unit.id : '',
|
unit_id: this.filters.unit !== null ? this.filters.unit.id : '',
|
||||||
price: this.filters.price * 100,
|
price: Math.round(this.filters.price * 100),
|
||||||
orderByField: sort.fieldName || 'created_at',
|
orderByField: sort.fieldName || 'created_at',
|
||||||
orderBy: sort.order || 'desc',
|
orderBy: sort.order || 'desc',
|
||||||
page,
|
page,
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<base-page class="relative payment-create">
|
<base-page class="relative payment-create">
|
||||||
<form action="" @submit.prevent="submitPaymentData">
|
<form action="" @submit.prevent="submitPaymentData">
|
||||||
<sw-page-header class="mb-5" :title="pageTitle">
|
<sw-page-header :title="pageTitle" class="mb-5">
|
||||||
<sw-breadcrumb slot="breadcrumbs">
|
<sw-breadcrumb slot="breadcrumbs">
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/dashboard"
|
|
||||||
:title="$t('general.home')"
|
:title="$t('general.home')"
|
||||||
|
to="/admin/dashboard"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
to="/admin/payments"
|
|
||||||
:title="$tc('payments.payment', 2)"
|
:title="$tc('payments.payment', 2)"
|
||||||
|
to="/admin/payments"
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-if="$route.name === 'payments.edit'"
|
v-if="$route.name === 'payments.edit'"
|
||||||
to="#"
|
|
||||||
:title="$t('payments.edit_payment')"
|
:title="$t('payments.edit_payment')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
<sw-breadcrumb-item
|
<sw-breadcrumb-item
|
||||||
v-else
|
v-else
|
||||||
to="#"
|
|
||||||
:title="$t('payments.new_payment')"
|
:title="$t('payments.new_payment')"
|
||||||
|
to="#"
|
||||||
active
|
active
|
||||||
/>
|
/>
|
||||||
</sw-breadcrumb>
|
</sw-breadcrumb>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
class="mt-1"
|
class="mt-1"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
@change="$v.formData.payment_date.$touch()"
|
@input="$v.formData.payment_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -134,8 +134,8 @@
|
|||||||
:searchable="true"
|
:searchable="true"
|
||||||
:show-labels="false"
|
:show-labels="false"
|
||||||
:placeholder="$t('payments.select_payment_mode')"
|
:placeholder="$t('payments.select_payment_mode')"
|
||||||
|
:max-height="150"
|
||||||
label="name"
|
label="name"
|
||||||
:maxHeight="150"
|
|
||||||
class="mt-1"
|
class="mt-1"
|
||||||
>
|
>
|
||||||
<div slot="afterList">
|
<div slot="afterList">
|
||||||
@ -165,7 +165,7 @@
|
|||||||
<component
|
<component
|
||||||
:type="field.type.label"
|
:type="field.type.label"
|
||||||
:field="field"
|
:field="field"
|
||||||
:isEdit="isEdit"
|
:is-edit="isEdit"
|
||||||
:is="field.type + 'Field'"
|
:is="field.type + 'Field'"
|
||||||
:invalid-fields="invalidFields"
|
:invalid-fields="invalidFields"
|
||||||
@update="setCustomFieldValue"
|
@update="setCustomFieldValue"
|
||||||
@ -218,9 +218,8 @@ import CustomFieldsMixin from '../../mixins/customFields'
|
|||||||
const { required, between, numeric } = require('vuelidate/lib/validators')
|
const { required, between, numeric } = require('vuelidate/lib/validators')
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [CustomFieldsMixin],
|
|
||||||
|
|
||||||
components: { ShoppingCartIcon },
|
components: { ShoppingCartIcon },
|
||||||
|
mixins: [CustomFieldsMixin],
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -288,7 +287,7 @@ export default {
|
|||||||
return this.formData.amount / 100
|
return this.formData.amount / 100
|
||||||
},
|
},
|
||||||
set: function (newValue) {
|
set: function (newValue) {
|
||||||
this.formData.amount = newValue * 100
|
this.formData.amount = Math.round(newValue * 100)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pageTitle() {
|
pageTitle() {
|
||||||
@ -552,9 +551,11 @@ export default {
|
|||||||
},
|
},
|
||||||
id: this.$route.params.id,
|
id: this.$route.params.id,
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
let response = await this.updatePayment(data)
|
let response = await this.updatePayment(data)
|
||||||
|
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
this.$router.push(
|
this.$router.push(
|
||||||
@ -563,17 +564,21 @@ export default {
|
|||||||
window.toastr['success'](this.$t('payments.updated_message'))
|
window.toastr['success'](this.$t('payments.updated_message'))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.data.error === 'invalid_amount') {
|
if (response.data.error === 'invalid_amount') {
|
||||||
window.toastr['error'](this.$t('invalid_amount_message'))
|
window.toastr['error'](this.$t('invalid_amount_message'))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['error'](response.data.error)
|
window.toastr['error'](response.data.error)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
|
|
||||||
if (err.response.data.errors.payment_number) {
|
if (err.response.data.errors.payment_number) {
|
||||||
window.toastr['error'](err.response.data.errors.payment_number)
|
window.toastr['error'](err.response.data.errors.payment_number)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['error'](err.response.data.message)
|
window.toastr['error'](err.response.data.message)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -584,9 +589,12 @@ export default {
|
|||||||
: null,
|
: null,
|
||||||
payment_date: moment(this.formData.payment_date).format('YYYY-MM-DD'),
|
payment_date: moment(this.formData.payment_date).format('YYYY-MM-DD'),
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let response = await this.addPayment(data)
|
let response = await this.addPayment(data)
|
||||||
|
|
||||||
if (response.data.success) {
|
if (response.data.success) {
|
||||||
this.$router.push(
|
this.$router.push(
|
||||||
`/admin/payments/${response.data.payment.id}/view`
|
`/admin/payments/${response.data.payment.id}/view`
|
||||||
@ -595,17 +603,21 @@ export default {
|
|||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.data.error === 'invalid_amount') {
|
if (response.data.error === 'invalid_amount') {
|
||||||
window.toastr['error'](this.$t('invalid_amount_message'))
|
window.toastr['error'](this.$t('invalid_amount_message'))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['error'](response.data.error)
|
window.toastr['error'](response.data.error)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
|
|
||||||
if (err.response.data.errors.payment_number) {
|
if (err.response.data.errors.payment_number) {
|
||||||
window.toastr['error'](err.response.data.errors.payment_number)
|
window.toastr['error'](err.response.data.errors.payment_number)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['error'](err.response.data.message)
|
window.toastr['error'](err.response.data.message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,8 +20,8 @@
|
|||||||
</sw-dropdown-item>
|
</sw-dropdown-item>
|
||||||
|
|
||||||
<sw-dropdown-item
|
<sw-dropdown-item
|
||||||
tag-name="router-link"
|
|
||||||
:to="`/admin/payments/${$route.params.id}/edit`"
|
:to="`/admin/payments/${$route.params.id}/edit`"
|
||||||
|
tag-name="router-link"
|
||||||
>
|
>
|
||||||
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
<pencil-icon class="h-5 mr-3 text-gray-600" />
|
||||||
{{ $t('general.edit') }}
|
{{ $t('general.edit') }}
|
||||||
@ -68,10 +68,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('invoices.title')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_invoice_number"
|
id="filter_invoice_number"
|
||||||
|
:label="$t('invoices.title')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="invoice_number"
|
value="invoice_number"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -82,10 +82,10 @@
|
|||||||
<sw-dropdown-item class="flex cursor-pointer">
|
<sw-dropdown-item class="flex cursor-pointer">
|
||||||
<sw-input-group class="-mt-3 font-normal">
|
<sw-input-group class="-mt-3 font-normal">
|
||||||
<sw-radio
|
<sw-radio
|
||||||
:label="$t('payments.date')"
|
|
||||||
size="sm"
|
|
||||||
id="filter_payment_date"
|
id="filter_payment_date"
|
||||||
|
:label="$t('payments.date')"
|
||||||
v-model="searchData.orderByField"
|
v-model="searchData.orderByField"
|
||||||
|
size="sm"
|
||||||
name="filter"
|
name="filter"
|
||||||
value="payment_date"
|
value="payment_date"
|
||||||
@change="onSearch"
|
@change="onSearch"
|
||||||
@ -109,8 +109,8 @@
|
|||||||
</sw-dropdown>
|
</sw-dropdown>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="ml-1"
|
|
||||||
v-tooltip.top-center="{ content: getOrderName }"
|
v-tooltip.top-center="{ content: getOrderName }"
|
||||||
|
class="ml-1"
|
||||||
size="md"
|
size="md"
|
||||||
variant="gray-light"
|
variant="gray-light"
|
||||||
@click="sortData"
|
@click="sortData"
|
||||||
@ -162,7 +162,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-1 whitespace-no-wrap right">
|
<div class="flex-1 whitespace-nowrap right">
|
||||||
<div
|
<div
|
||||||
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
class="mb-2 text-xl not-italic font-semibold leading-8 text-right text-gray-900"
|
||||||
v-html="$utils.formatMoney(payment.amount, payment.user.currency)"
|
v-html="$utils.formatMoney(payment.amount, payment.user.currency)"
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.from_date.$touch()"
|
@input="$v.formData.from_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.to_date.$touch()"
|
@input="$v.formData.to_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -65,7 +65,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
@ -164,13 +164,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
dateRangeUrl () {
|
dateRangeUrl() {
|
||||||
return `${this.siteURL}?from_date=${moment(
|
return `${this.siteURL}?from_date=${moment(
|
||||||
this.formData.from_date
|
this.formData.from_date
|
||||||
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.from_date.$touch()"
|
@input="$v.formData.from_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.to_date.$touch()"
|
@input="$v.formData.to_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
@ -163,13 +163,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
dateRangeUrl () {
|
dateRangeUrl() {
|
||||||
return `${this.siteURL}?from_date=${moment(
|
return `${this.siteURL}?from_date=${moment(
|
||||||
this.formData.from_date
|
this.formData.from_date
|
||||||
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.from_date.$touch()"
|
@input="$v.formData.from_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.to_date.$touch()"
|
@input="$v.formData.to_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -79,7 +79,7 @@
|
|||||||
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
@ -182,21 +182,21 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
customerDateRangeUrl () {
|
customerDateRangeUrl() {
|
||||||
return `${this.customerSiteURL}?from_date=${moment(
|
return `${this.customerSiteURL}?from_date=${moment(
|
||||||
this.formData.from_date
|
this.formData.from_date
|
||||||
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
},
|
},
|
||||||
|
|
||||||
itemDateRangeUrl () {
|
itemDateRangeUrl() {
|
||||||
return `${this.itemsSiteURL}?from_date=${moment(
|
return `${this.itemsSiteURL}?from_date=${moment(
|
||||||
this.formData.from_date
|
this.formData.from_date
|
||||||
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.from_date.$touch()"
|
@input="$v.formData.from_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
:calendar-button="true"
|
:calendar-button="true"
|
||||||
calendar-button-icon="calendar"
|
calendar-button-icon="calendar"
|
||||||
class="mt-2"
|
class="mt-2"
|
||||||
@change="$v.formData.to_date.$touch()"
|
@input="$v.formData.to_date.$touch()"
|
||||||
/>
|
/>
|
||||||
</sw-input-group>
|
</sw-input-group>
|
||||||
</div>
|
</div>
|
||||||
@ -61,7 +61,7 @@
|
|||||||
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
class="hidden w-full h-screen border-gray-100 border-solid rounded md:flex"
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-no-wrap rounded md:hidden bg-primary-500"
|
class="flex items-center justify-center h-10 px-5 py-1 text-sm font-medium leading-none text-center text-white whitespace-nowrap rounded md:hidden bg-primary-500"
|
||||||
@click="viewReportsPDF"
|
@click="viewReportsPDF"
|
||||||
>
|
>
|
||||||
<document-text-icon />
|
<document-text-icon />
|
||||||
@ -152,13 +152,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
dateRangeUrl () {
|
dateRangeUrl() {
|
||||||
return `${this.siteURL}?from_date=${moment(
|
return `${this.siteURL}?from_date=${moment(
|
||||||
this.formData.from_date
|
this.formData.from_date
|
||||||
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
).format('YYYY-MM-DD')}&to_date=${moment(this.formData.to_date).format(
|
||||||
'YYYY-MM-DD'
|
'YYYY-MM-DD'
|
||||||
)}`
|
)}`
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="relative setting-main-container backup">
|
<div class="relative setting-main-container backup">
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $tc('settings.backup.title', 1) }}
|
{{ $tc('settings.backup.title', 1) }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.menu_title.custom_fields') }}
|
{{ $t('settings.menu_title.custom_fields') }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.expense_category.title') }}
|
{{ $t('settings.expense_category.title') }}
|
||||||
@ -51,7 +51,7 @@
|
|||||||
}}</span>
|
}}</span>
|
||||||
<div class="w-48 overflow-hidden notes">
|
<div class="w-48 overflow-hidden notes">
|
||||||
<div
|
<div
|
||||||
class="overflow-hidden whitespace-no-wrap"
|
class="overflow-hidden whitespace-nowrap"
|
||||||
style="text-overflow: ellipsis"
|
style="text-overflow: ellipsis"
|
||||||
>
|
>
|
||||||
{{ row.description }}
|
{{ row.description }}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="setting-main-container backup">
|
<div class="setting-main-container backup">
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $tc('settings.disk.title', 1) }}
|
{{ $tc('settings.disk.title', 1) }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.customization.notes.title') }}
|
{{ $t('settings.customization.notes.title') }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.customization.payments.payment_modes') }}
|
{{ $t('settings.customization.payments.payment_modes') }}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<div slot="header" class="flex flex-wrap justify-between lg:flex-no-wrap">
|
<div slot="header" class="flex flex-wrap justify-between lg:flex-nowrap">
|
||||||
<div>
|
<div>
|
||||||
<h6 class="sw-section-title">
|
<h6 class="sw-section-title">
|
||||||
{{ $t('settings.tax_types.title') }}
|
{{ $t('settings.tax_types.title') }}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<form @submit.prevent="updateUserData" class="relative h-full">
|
<form class="relative h-full" @submit.prevent="updateUserData">
|
||||||
<base-loader v-if="isRequestOnGoing" :show-bg-overlay="true" />
|
<base-loader v-if="isRequestOnGoing" :show-bg-overlay="true" />
|
||||||
<sw-card variant="setting-card">
|
<sw-card variant="setting-card">
|
||||||
<template slot="header">
|
<template slot="header">
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="grid mb-4 md:grid-cols-6">
|
<div class="grid mb-4 md:grid-cols-6">
|
||||||
<div>
|
<div>
|
||||||
<label
|
<label
|
||||||
class="text-sm not-italic font-medium leading-4 text-black whitespace-no-wrap"
|
class="text-sm not-italic font-medium leading-4 text-black whitespace-nowrap"
|
||||||
>
|
>
|
||||||
{{ $tc('settings.account_settings.profile_picture') }}
|
{{ $tc('settings.account_settings.profile_picture') }}
|
||||||
</label>
|
</label>
|
||||||
@ -114,9 +114,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<sw-button
|
<sw-button
|
||||||
class="mt-6"
|
|
||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
|
class="mt-6"
|
||||||
variant="primary"
|
variant="primary"
|
||||||
>
|
>
|
||||||
<save-icon v-if="!isLoading" class="mr-2 -ml-1" />
|
<save-icon v-if="!isLoading" class="mr-2 -ml-1" />
|
||||||
@ -313,59 +313,53 @@ export default {
|
|||||||
name: this.formData.name,
|
name: this.formData.name,
|
||||||
email: this.formData.email,
|
email: this.formData.email,
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
if (
|
if (
|
||||||
this.formData.password != null &&
|
this.formData.password != null &&
|
||||||
this.formData.password !== undefined &&
|
this.formData.password !== undefined &&
|
||||||
this.formData.password !== ''
|
this.formData.password !== ''
|
||||||
) {
|
) {
|
||||||
data = { ...data, password: this.formData.password }
|
data = { ...data, password: this.formData.password }
|
||||||
}
|
|
||||||
|
|
||||||
let response = await this.updateCurrentUser(data)
|
|
||||||
|
|
||||||
let languageData = {
|
|
||||||
settings: {
|
|
||||||
language: this.language.code,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
let languageRes = await this.updateUserSettings(languageData)
|
|
||||||
|
|
||||||
// if(languageRes) {
|
|
||||||
// window.i18n.locale = this.language.code
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (response.data.success) {
|
|
||||||
this.isLoading = false
|
|
||||||
|
|
||||||
if (this.fileObject && this.previewAvatar) {
|
|
||||||
let avatarData = new FormData()
|
|
||||||
|
|
||||||
avatarData.append(
|
|
||||||
'admin_avatar',
|
|
||||||
JSON.stringify({
|
|
||||||
name: this.fileObject.name,
|
|
||||||
data: this.previewAvatar,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
this.uploadAvatar(avatarData)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['success'](
|
let response = await this.updateCurrentUser(data)
|
||||||
this.$t('settings.account_settings.updated_message')
|
|
||||||
)
|
|
||||||
|
|
||||||
this.formData.password = ''
|
let languageData = {
|
||||||
this.formData.confirm_password = ''
|
settings: {
|
||||||
|
language: this.language.code,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
let languageRes = await this.updateUserSettings(languageData)
|
||||||
|
|
||||||
|
if (response.data.success) {
|
||||||
|
this.isLoading = false
|
||||||
|
|
||||||
|
if (this.fileObject && this.previewAvatar) {
|
||||||
|
let avatarData = new FormData()
|
||||||
|
|
||||||
|
avatarData.append(
|
||||||
|
'admin_avatar',
|
||||||
|
JSON.stringify({
|
||||||
|
name: this.fileObject.name,
|
||||||
|
data: this.previewAvatar,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
this.uploadAvatar(avatarData)
|
||||||
|
}
|
||||||
|
|
||||||
|
window.toastr['success'](
|
||||||
|
this.$t('settings.account_settings.updated_message')
|
||||||
|
)
|
||||||
|
|
||||||
|
this.formData.password = ''
|
||||||
|
this.formData.confirm_password = ''
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.isLoading = false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
window.toastr['error'](response.data.error)
|
|
||||||
|
|
||||||
this.isLoading = false
|
|
||||||
|
|
||||||
return true
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="flex flex-wrap justify-end mt-8 lg:flex-no-wrap">
|
<div class="flex flex-wrap justify-end mt-8 lg:flex-nowrap">
|
||||||
<sw-button size="lg" variant="primary-outline" @click="addItemUnit">
|
<sw-button size="lg" variant="primary-outline" @click="addItemUnit">
|
||||||
<plus-icon class="w-6 h-6 mr-1 -ml-2" />
|
<plus-icon class="w-6 h-6 mr-1 -ml-2" />
|
||||||
{{ $t('settings.customization.items.add_item_unit') }}
|
{{ $t('settings.customization.items.add_item_unit') }}
|
||||||
|
|||||||
8
resources/assets/sass/crater.scss
vendored
8
resources/assets/sass/crater.scss
vendored
@ -1,11 +1,9 @@
|
|||||||
// Tailwind
|
@tailwind base;
|
||||||
//----------------------------------
|
|
||||||
|
|
||||||
@import 'tailwindcss/base';
|
@tailwind components;
|
||||||
|
|
||||||
@import 'tailwindcss/components';
|
@tailwind utilities;
|
||||||
|
|
||||||
@import 'tailwindcss/utilities';
|
|
||||||
|
|
||||||
// Plugins
|
// Plugins
|
||||||
//----------------------------------
|
//----------------------------------
|
||||||
|
|||||||
@ -354,7 +354,7 @@
|
|||||||
<h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
|
<h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td width="50%" class="company-address-container company-address">
|
<td width="50%" class="company-address-container company-address text-right">
|
||||||
{!! $company_address !!}
|
{!! $company_address !!}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -94,26 +94,27 @@
|
|||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
@if($estimate->discount > 0)
|
||||||
@if ($estimate->discount_per_item === 'NO')
|
@if ($estimate->discount_per_item === 'NO')
|
||||||
<tr>
|
<tr>
|
||||||
<td class="pl-10 border-0 total-table-attribute-label">
|
<td class="pl-10 border-0 total-table-attribute-label">
|
||||||
@if($estimate->discount_type === 'fixed')
|
@if($estimate->discount_type === 'fixed')
|
||||||
@lang('pdf_discount_label')
|
@lang('pdf_discount_label')
|
||||||
@endif
|
@endif
|
||||||
@if($estimate->discount_type === 'percentage')
|
@if($estimate->discount_type === 'percentage')
|
||||||
@lang('pdf_discount_label') ({{$estimate->discount}}%)
|
@lang('pdf_discount_label') ({{$estimate->discount}}%)
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right border-0 item-cell total-table-attribute-value">
|
<td class="text-right border-0 item-cell total-table-attribute-value">
|
||||||
@if($estimate->discount_type === 'fixed')
|
@if($estimate->discount_type === 'fixed')
|
||||||
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
@if($estimate->discount_type === 'percentage')
|
@if($estimate->discount_type === 'percentage')
|
||||||
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
{!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
<tr>
|
<tr>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
|
|||||||
@ -273,7 +273,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.total-table-attribute-value {
|
.total-table-attribute-value {
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #040405;
|
color: #040405;
|
||||||
|
|||||||
@ -314,7 +314,7 @@
|
|||||||
<h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
|
<h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td width="50%" class="company-address-container company-address">
|
<td width="50%" class="company-address-container company-address text-right">
|
||||||
{!! $company_address !!}
|
{!! $company_address !!}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -39,19 +39,21 @@
|
|||||||
>
|
>
|
||||||
{!! format_money_pdf($item->price, $invoice->user->currency) !!}
|
{!! format_money_pdf($item->price, $invoice->user->currency) !!}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@if($invoice->discount_per_item === 'YES')
|
@if($invoice->discount_per_item === 'YES')
|
||||||
<td
|
<td
|
||||||
class="pl-10 text-right item-cell"
|
class="pl-10 text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
>
|
>
|
||||||
@if($item->discount_type === 'fixed')
|
@if($item->discount_type === 'fixed')
|
||||||
{!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
|
{!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
|
||||||
@endif
|
@endif
|
||||||
@if($item->discount_type === 'percentage')
|
@if($item->discount_type === 'percentage')
|
||||||
{{$item->discount}}%
|
{{$item->discount}}%
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<td
|
<td
|
||||||
class="text-right item-cell"
|
class="text-right item-cell"
|
||||||
style="vertical-align: top;"
|
style="vertical-align: top;"
|
||||||
@ -100,26 +102,29 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if ($invoice->discount_per_item === 'NO')
|
@if($invoice->discount > 0)
|
||||||
<tr>
|
@if ($invoice->discount_per_item === 'NO')
|
||||||
<td class="border-0 total-table-attribute-label">
|
<tr>
|
||||||
@if($invoice->discount_type === 'fixed')
|
<td class="border-0 total-table-attribute-label">
|
||||||
@lang('pdf_discount_label')
|
@if($invoice->discount_type === 'fixed')
|
||||||
@endif
|
@lang('pdf_discount_label')
|
||||||
@if($invoice->discount_type === 'percentage')
|
@endif
|
||||||
@lang('pdf_discount_label') ({{$invoice->discount}}%)
|
@if($invoice->discount_type === 'percentage')
|
||||||
@endif
|
@lang('pdf_discount_label') ({{$invoice->discount}}%)
|
||||||
</td>
|
@endif
|
||||||
<td class="py-2 border-0 item-cell total-table-attribute-value" >
|
</td>
|
||||||
@if($invoice->discount_type === 'fixed')
|
<td class="py-2 border-0 item-cell total-table-attribute-value" >
|
||||||
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
@if($invoice->discount_type === 'fixed')
|
||||||
@endif
|
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
||||||
@if($invoice->discount_type === 'percentage')
|
@endif
|
||||||
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
@if($invoice->discount_type === 'percentage')
|
||||||
@endif
|
{!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
|
||||||
</td>
|
@endif
|
||||||
</tr>
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
<td class="py-3"></td>
|
<td class="py-3"></td>
|
||||||
|
|||||||
@ -65,6 +65,10 @@
|
|||||||
float: right;
|
float: right;
|
||||||
} */
|
} */
|
||||||
|
|
||||||
|
.header-section-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
color: rgba(0, 0, 0, 0.7);
|
color: rgba(0, 0, 0, 0.7);
|
||||||
@ -226,7 +230,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.content-heading span {
|
.content-heading span {
|
||||||
font-weight: 400;
|
font-weight: normal;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 25px;
|
line-height: 25px;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
@ -248,7 +252,7 @@
|
|||||||
|
|
||||||
.total-display-label {
|
.total-display-label {
|
||||||
display: inline;
|
display: inline;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -256,7 +260,7 @@
|
|||||||
|
|
||||||
.total-display-box span {
|
.total-display-box span {
|
||||||
float: right;
|
float: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-text {
|
.heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -30,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-date-range {
|
.heading-date-range {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #A5ACC1;
|
color: #A5ACC1;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -40,7 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sub-heading-text {
|
.sub-heading-text {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
@ -98,7 +98,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -117,7 +117,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -127,7 +127,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-text {
|
.heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -30,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-date-range {
|
.heading-date-range {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #A5ACC1;
|
color: #A5ACC1;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -40,7 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sub-heading-text {
|
.sub-heading-text {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
@ -65,7 +65,7 @@
|
|||||||
.income-amount {
|
.income-amount {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -123,7 +123,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -142,7 +142,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -152,7 +152,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-text {
|
.heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -30,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-date-range {
|
.heading-date-range {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #A5ACC1;
|
color: #A5ACC1;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -40,7 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sub-heading-text {
|
.sub-heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -98,7 +98,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -117,7 +117,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -127,7 +127,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-text {
|
.heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -30,7 +30,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-date-range {
|
.heading-date-range {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #A5ACC1;
|
color: #A5ACC1;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -40,7 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sub-heading-text {
|
.sub-heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -98,7 +98,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -117,7 +117,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -127,7 +127,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-text {
|
.heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -31,7 +31,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.heading-date-range {
|
.heading-date-range {
|
||||||
font-weight: 600;
|
font-weight: normal;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #A5ACC1;
|
color: #A5ACC1;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -41,7 +41,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sub-heading-text {
|
.sub-heading-text {
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
@ -99,7 +99,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -118,7 +118,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: bold;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #595959;
|
color: #595959;
|
||||||
@ -128,7 +128,7 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 21px;
|
line-height: 21px;
|
||||||
color: #5851D8;
|
color: #5851D8;
|
||||||
|
|||||||
@ -6,10 +6,11 @@ module.exports = {
|
|||||||
'./resources/assets/js/**/*.js',
|
'./resources/assets/js/**/*.js',
|
||||||
'./resources/assets/js/**/*.vue',
|
'./resources/assets/js/**/*.vue',
|
||||||
'./resources/assets/sass/**/*.scss',
|
'./resources/assets/sass/**/*.scss',
|
||||||
'./node_modules/@bytefury/spacewind/**/*.js',
|
'./node_modules/\\@bytefury/spacewind/src/**/*.js',
|
||||||
'./node_modules/@bytefury/spacewind/**/*.vue',
|
'./node_modules/\\@bytefury/spacewind/src/**/*.vue',
|
||||||
'./node_modules/flatpickr/**/*.js',
|
'./node_modules/\\@bytefury/spacewind/plugin/**/*.js',
|
||||||
'./node_modules/toastr/**/*.js',
|
'flatpickr/**/*.js',
|
||||||
|
'toastr/**/*.js',
|
||||||
'./public/js/pace/**/*.js',
|
'./public/js/pace/**/*.js',
|
||||||
],
|
],
|
||||||
theme: {
|
theme: {
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
const mix = require('laravel-mix')
|
const mix = require('laravel-mix')
|
||||||
const tailwindcss = require('tailwindcss')
|
const tailwindcss = require('tailwindcss')
|
||||||
|
const path = require('path')
|
||||||
|
|
||||||
mix.webpackConfig({
|
mix.webpackConfig({
|
||||||
resolve: {
|
resolve: {
|
||||||
@ -9,17 +10,14 @@ mix.webpackConfig({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Admin
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
mix
|
mix
|
||||||
.js('resources/assets/js/app.js', 'public/assets/js/')
|
.js('resources/assets/js/app.js', 'public/assets/js/')
|
||||||
|
.vue({
|
||||||
|
version: 2,
|
||||||
|
extractVueStyles: true,
|
||||||
|
})
|
||||||
.sass('resources/assets/sass/crater.scss', 'public/assets/css/')
|
.sass('resources/assets/sass/crater.scss', 'public/assets/css/')
|
||||||
.options({
|
.options({
|
||||||
processCssUrls: false,
|
|
||||||
postCss: [tailwindcss('./tailwind.config.js')],
|
postCss: [tailwindcss('./tailwind.config.js')],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user