Merge branch 'akaunting:master' into button-loading

This commit is contained in:
Burak Civan 2022-06-16 18:35:14 +03:00 committed by GitHub
commit 9d424800c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
128 changed files with 4246 additions and 14911 deletions

View File

@ -2,7 +2,7 @@
namespace App\Abstracts;
use Akaunting\Apexcharts\Charts as Apexcharts;
use Akaunting\Apexcharts\Chart;
use App\Events\Report\DataLoaded;
use App\Events\Report\DataLoading;
use App\Events\Report\FilterApplying;
@ -14,7 +14,6 @@ use App\Exports\Common\Reports as Export;
use App\Models\Common\Report as Model;
use App\Models\Document\Document;
use App\Models\Setting\Category;
use App\Traits\Charts;
use App\Traits\DateTime;
use App\Traits\SearchString;
use App\Traits\Translations;
@ -24,7 +23,7 @@ use Illuminate\Support\Str;
abstract class Report
{
use Charts, DateTime, SearchString, Translations;
use DateTime, SearchString, Translations;
public $model;
@ -176,7 +175,7 @@ abstract class Report
public function getBarChart($table_key)
{
$chart = new Apexcharts();
$chart = new Chart();
if (empty($this->chart)) {
return $chart;
@ -194,7 +193,7 @@ abstract class Report
public function getDonutChart($table_key)
{
$chart = new Apexcharts();
$chart = new Chart();
if (empty($this->chart)) {
return $chart;

View File

@ -975,7 +975,7 @@ abstract class Show extends Component
$backgroundColor = setting($this->getSettingKey($type, 'color'), '#55588b');
return $backgroundColor;
return $this->convertClasstoHex($backgroundColor);
}
protected function getTextDocumentTitle($type, $textDocumentTitle)

View File

@ -276,7 +276,7 @@ abstract class Template extends Component
$backgroundColor = setting($this->getSettingKey($type, 'color'), '#55588b');
return $backgroundColor;
return $this->convertClasstoHex($backgroundColor);
}
protected function getTextDocumentTitle($type, $textDocumentTitle)

View File

@ -299,6 +299,9 @@ abstract class Show extends Component
/** @var bool */
public $hideRecurringMessage;
/** @var bool */
public $hideCreated;
/**
* Create a new component instance.
*
@ -327,7 +330,7 @@ abstract class Show extends Component
string $routeDocumentShow = '', string $routeTransactionShow = '', string $textButtonAddNew = '',
bool $hideSchedule = false, bool $hideChildren = false, bool $hideAttachment = false, $attachment = [],
array $connectTranslations = [], string $textRecurringType = '', bool $hideRecurringMessage = false
array $connectTranslations = [], string $textRecurringType = '', bool $hideRecurringMessage = false, bool $hideCreated = false
) {
$this->type = $type;
$this->transaction = $transaction;
@ -461,6 +464,7 @@ abstract class Show extends Component
$this->textRecurringType = $this->getTextRecurringType($type, $textRecurringType);
$this->hideRecurringMessage = $hideRecurringMessage;
$this->hideCreated = $hideCreated;
}
protected function getTransactionTemplate($type, $transactionTemplate)

View File

@ -5,7 +5,7 @@ namespace App\BulkActions\Sales;
use App\Abstracts\BulkAction;
use App\Events\Document\DocumentCancelled;
use App\Events\Document\DocumentCreated;
use App\Events\Document\DocumentSent;
use App\Events\Document\DocumentMarkedSent;
use App\Events\Document\PaymentReceived;
use App\Exports\Sales\Invoices as Export;
use App\Jobs\Document\DeleteDocument;
@ -58,7 +58,7 @@ class Invoices extends BulkAction
continue;
}
event(new DocumentSent($invoice));
event(new DocumentMarkedSent($invoice));
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Events\Document;
use App\Abstracts\Event;
class DocumentMarkedSent extends Event
{
public $document;
/**
* Create a new event instance.
*
* @param $document
*/
public function __construct($document)
{
$this->document = $document;
}
}

View File

@ -220,7 +220,7 @@ class Invoices extends Controller
*/
public function markSent(Document $invoice)
{
event(new \App\Events\Document\DocumentSent($invoice));
event(new \App\Events\Document\DocumentMarkedSent($invoice));
$message = trans('documents.messages.marked_sent', ['type' => trans_choice('general.invoices', 1)]);

View File

@ -27,7 +27,13 @@ class Favorites extends Component
foreach ($favorites as $favorite) {
$favorite['active'] = false;
$favorite['url'] = $this->getUrl($favorite);
try {
$favorite['url'] = $this->getUrl($favorite);
} catch (\Exception $e) {
continue;
}
$favorite['id'] = $this->getId($favorite);
if ($this->isActive($favorite['url'])) {

View File

@ -2,7 +2,8 @@
namespace App\Listeners\Document;
use App\Events\Document\DocumentSent as Event;
use App\Events\Document\DocumentMarkedSent;
use App\Events\Document\DocumentSent;
use App\Jobs\Document\CreateDocumentHistory;
use App\Traits\Jobs;
@ -10,13 +11,7 @@ class MarkDocumentSent
{
use Jobs;
/**
* Handle the event.
*
* @param $event
* @return void
*/
public function handle(Event $event)
public function handle(DocumentMarkedSent|DocumentSent $event): void
{
if ($event->document->status != 'partial') {
$event->document->status = 'sent';
@ -24,6 +19,11 @@ class MarkDocumentSent
$event->document->save();
}
$this->dispatch(new CreateDocumentHistory($event->document, 0, $this->getDescription($event)));
}
public function getDescription(DocumentMarkedSent|DocumentSent $event): string
{
$type_text = '';
if ($alias = config('type.document.' . $event->document->type . '.alias', '')) {
@ -34,12 +34,8 @@ class MarkDocumentSent
$type = trans_choice($type_text, 1);
$this->dispatch(
new CreateDocumentHistory(
$event->document,
0,
trans('documents.messages.marked_sent', ['type' => $type])
)
);
$message = ($event instanceof DocumentMarkedSent) ? 'marked_sent' : 'email_sent';
return trans('documents.messages.' . $message, ['type' => $type]);
}
}

View File

@ -480,7 +480,7 @@ class Transaction extends Model
'permission' => 'create-banking-transactions',
'attributes' => [
'id' => 'index-transactions-more-actions-connect-' . $this->id,
'@click' => 'onConnect(\'' . route('transactions.dial', $this->id) . '\')',
'@click' => 'onConnectTransactions(\'' . route('transactions.dial', $this->id) . '\')',
],
];

View File

@ -179,24 +179,29 @@ class Document extends Model
return $query->whereDate('due_at', '=', $date);
}
public function scopeStatus(Builder $query, string $status): Builder
{
return $query->where($this->qualifyColumn('status'), '=', $status);
}
public function scopeAccrued(Builder $query): Builder
{
return $query->whereNotIn('status', ['draft', 'cancelled']);
return $query->whereNotIn($this->qualifyColumn('status'), ['draft', 'cancelled']);
}
public function scopePaid(Builder $query): Builder
{
return $query->where('status', '=', 'paid');
return $query->where($this->qualifyColumn('status'), '=', 'paid');
}
public function scopeNotPaid(Builder $query): Builder
{
return $query->where('status', '<>', 'paid');
return $query->where($this->qualifyColumn('status'), '<>', 'paid');
}
public function scopeFuture(Builder $query): Builder
{
return $query->whereIn('status', $this->getDocumentStatusesForFuture());
return $query->whereIn($this->qualifyColumn('status'), $this->getDocumentStatusesForFuture());
}
public function scopeType(Builder $query, string $type): Builder
@ -244,14 +249,14 @@ class Document extends Model
public function getSentAtAttribute(string $value = null)
{
$sent = $this->histories()->where('status', 'sent')->first();
$sent = $this->histories()->where('document_histories.status', 'sent')->first();
return $sent->created_at ?? null;
}
public function getReceivedAtAttribute(string $value = null)
{
$received = $this->histories()->where('status', 'received')->first();
$received = $this->histories()->where('document_histories.status', 'received')->first();
return $received->created_at ?? null;
}

View File

@ -57,6 +57,9 @@ class Event extends Provider
'App\Listeners\Document\CreateDocumentTransaction',
'App\Listeners\Document\SendDocumentPaymentNotification',
],
'App\Events\Document\DocumentMarkedSent' => [
'App\Listeners\Document\MarkDocumentSent',
],
'App\Events\Document\DocumentSent' => [
'App\Listeners\Document\MarkDocumentSent',
],

View File

@ -2,7 +2,7 @@
namespace App\Traits;
use Akaunting\Apexcharts\Charts as Apexcharts;
use Akaunting\Apexcharts\Chart;
trait Charts
{
@ -54,7 +54,7 @@ trait Charts
$labels[$id] = $this->donut['labels'][$id];
}
$chart = new Apexcharts();
$chart = new Chart();
$chart->setType('donut')
->setWidth($width)
@ -75,7 +75,7 @@ trait Charts
public function getBarChart($name, $width = '100%', $height = 160)
{
$chart = new Apexcharts();
$chart = new Chart();
$chart->setType('bar')
->setWidth($width)

View File

@ -3,11 +3,14 @@
namespace App\Traits;
use Throwable;
use Illuminate\Support\Arr;
trait Translations
{
public function findTranslation($keys, $number = 2)
{
$keys = Arr::wrap($keys);
try {
foreach ($keys as $key) {
if (is_array($key)) {

View File

@ -752,4 +752,111 @@ trait ViewComponents
return '';
}
protected function convertClasstoHex($class)
{
$colors = [
'gray' => '#6b7280',
'gray-50' => '#f9fafb',
'gray-100' => '#f3f4f6',
'gray-200' => '#e5e7eb',
'gray-300' => '#d1d5db',
'gray-400' => '#9ca3af',
'gray-500' => '#6b7280',
'gray-600' => '#4b5563',
'gray-700' => '#374151',
'gray-800' => '#1f2937',
'gray-900' => '#111827',
'red' => '#cc0000',
'red-50' => '#fcf2f2',
'red-100' => '#fae6e6',
'red-200' => '#f2bfbf',
'red-300' => '#eb9999',
'red-400' => '#db4d4d',
'red-500' => '#cc0000',
'red-600' => '#b80000',
'red-700' => '#990000',
'red-800' => '#7a0000',
'red-900' => '#640000',
'yellow' => '#eab308',
'yellow-50' => '#fefce8',
'yellow-100' => '#fef9c3',
'yellow-200' => '#fef08a',
'yellow-300' => '#fde047',
'yellow-400' => '#facc15',
'yellow-500' => '#eab308',
'yellow-600' => '#ca8a04',
'yellow-700' => '#a16207',
'yellow-800' => '#854d0e',
'yellow-900' => '#713f12',
'green' => '#6ea152',
'green-50' => '#f8faf6',
'green-100' => '#f1f6ee',
'green-200' => '#dbe8d4',
'green-300' => '#c5d9ba',
'green-400' => '#9abd86',
'green-500' => '#6ea152',
'green-600' => '#63914a',
'green-700' => '#53793e',
'green-800' => '#426131',
'green-900' => '#364f28',
'blue' => '#006ea6',
'blue-50' => '#f2f8fb',
'blue-100' => '#e6f1f6',
'blue-200' => '#bfdbe9',
'blue-300' => '#99c5db',
'blue-400' => '#4d9ac1',
'blue-500' => '#006ea6',
'blue-600' => '#006395',
'blue-700' => '#00537d',
'blue-800' => '#004264',
'blue-900' => '#003651',
'indigo' => '#6366f1',
'indigo-50' => '#eef2ff',
'indigo-100' => '#e0e7ff',
'indigo-200' => '#c7d2fe',
'indigo-300' => '#a5b4fc',
'indigo-400' => '#818cf8',
'indigo-500' => '#6366f1',
'indigo-600' => '#4f46e5',
'indigo-700' => '#4338ca',
'indigo-800' => '#3730a3',
'indigo-900' => '#312e81',
'purple' => '#55588b',
'purple-50' => '#f7f7f9',
'purple-100' => '#eeeef3',
'purple-200' => '#d5d5e2',
'purple-300' => '#bbbcd1',
'purple-400' => '#888aae',
'purple-500' => '#55588b',
'purple-600' => '#4d4f7d',
'purple-700' => '#404268',
'purple-800' => '#333553',
'purple-900' => '#2a2b44',
'pink' => '#ec4899',
'pink-50' => '#fdf2f8',
'pink-100' => '#fce7f3',
'pink-200' => '#fbcfe8',
'pink-300' => '#f9a8d4',
'pink-400' => '#f472b6',
'pink-500' => '#ec4899',
'pink-600' => '#db2777',
'pink-700' => '#be185d',
'pink-800' => '#9d174d',
'pink-900' => '#831843',
];
if (Arr::exists($colors, $class)) {
return $colors[$class];
}
return $class;
}
}

View File

@ -200,7 +200,15 @@ class DeleteButton extends Component
$page = '';
if (! empty($this->route)) {
$page = explode('.', $this->route)[0];
if (! is_array($this->route)) {
$string = $this->route;
}
if (is_array($this->route)) {
$string = $this->route[0];
}
$page = explode('.', $string)[0];
} elseif (! empty($this->url)) {
$page = explode('/', $this->url)[1];
}

View File

@ -4,11 +4,12 @@ namespace App\View\Components;
use App\Abstracts\View\Component;
use App\Traits\DateTime;
use App\Traits\Translations;
use Illuminate\Support\Str;
class SearchString extends Component
{
use DateTime;
use DateTime, Translations;
public $filters;
@ -203,16 +204,16 @@ class SearchString extends Component
$values = [
[
'key' => 0,
'value' => empty($options['translation']) ? trans('general.no') : trans($options['translation'][0]),
'value' => empty($options['translation']) ? trans('general.no') : $this->findTranslation($options['translation'][0], 1),
],
[
'key' => 1,
'value' => empty($options['translation']) ? trans('general.yes') : trans($options['translation'][1]),
'value' => empty($options['translation']) ? trans('general.yes') : $this->findTranslation($options['translation'][1], 1),
],
];
} else if (isset($options['values'])) {
foreach ($options['values'] as $key => $value) {
$values[$key] = trans($value);
$values[$key] = $this->findTranslation($value, 1);
}
} else if ($search = request()->get('search', false)) {
$fields = explode(' ', $search);

View File

@ -2,7 +2,7 @@
namespace App\Widgets;
use Akaunting\Apexcharts\Charts as Apexcharts;
use Akaunting\Apexcharts\Chart;
use App\Abstracts\Widget;
use App\Models\Banking\Transaction;
use App\Traits\Currencies;
@ -55,7 +55,7 @@ class CashFlow extends Widget
],
];
$chart = new Apexcharts();
$chart = new Chart();
$chart->setType('line')
->setOptions($options)

View File

@ -6,7 +6,7 @@ use App\Abstracts\Widget;
use App\Utilities\Recurring;
use App\Models\Document\Document;
use App\Models\Banking\Transaction;
use Akaunting\Apexcharts\Charts as Apexcharts;
use Akaunting\Apexcharts\Chart;
use App\Traits\Currencies;
use App\Traits\DateTime;
use App\Utilities\Date;
@ -39,7 +39,7 @@ class ProfitLoss extends Widget
$colors = $this->getColors();
$chart = new Apexcharts();
$chart = new Chart();
$options = [
'legend' => [

View File

@ -27,7 +27,7 @@
"ext-tokenizer": "*",
"ext-xml": "*",
"ext-zip": "*",
"akaunting/laravel-apexcharts": "^1.0",
"akaunting/laravel-apexcharts": "^2.0",
"akaunting/laravel-firewall": "^1.2",
"akaunting/laravel-language": "^1.0",
"akaunting/laravel-menu": "^2.0",

64
composer.lock generated
View File

@ -4,27 +4,27 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f804c45a0f63885fada71147a44bb516",
"content-hash": "802a453ffd64d0ac19d6fc741b46dacc",
"packages": [
{
"name": "akaunting/laravel-apexcharts",
"version": "1.0.4",
"version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/akaunting/laravel-apexcharts.git",
"reference": "84ae3484f1df9f3486b5e0bd65241b5822947ca3"
"reference": "3b545508bec317c36a0cb83809de6e6cc8397832"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/akaunting/laravel-apexcharts/zipball/84ae3484f1df9f3486b5e0bd65241b5822947ca3",
"reference": "84ae3484f1df9f3486b5e0bd65241b5822947ca3",
"url": "https://api.github.com/repos/akaunting/laravel-apexcharts/zipball/3b545508bec317c36a0cb83809de6e6cc8397832",
"reference": "3b545508bec317c36a0cb83809de6e6cc8397832",
"shasum": ""
},
"require": {
"balping/json-raw-encoder": "^1.0",
"ext-json": "*",
"illuminate/support": ">=8.0",
"php": ">=7.3"
"php": ">=8.0"
},
"require-dev": {
"orchestra/testbench": ">=6.0",
@ -70,9 +70,9 @@
],
"support": {
"issues": "https://github.com/akaunting/laravel-apexcharts/issues",
"source": "https://github.com/akaunting/laravel-apexcharts/tree/1.0.4"
"source": "https://github.com/akaunting/laravel-apexcharts/tree/2.0.1"
},
"time": "2022-02-23T12:26:06+00:00"
"time": "2022-06-16T14:48:25+00:00"
},
{
"name": "akaunting/laravel-debugbar-collector",
@ -906,16 +906,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.225.1",
"version": "3.225.5",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "b795c9c14997dac771f66d1f6cbadb62c742373a"
"reference": "09b404c6b80b9c31be15fa245e647a2f9fb5e733"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b795c9c14997dac771f66d1f6cbadb62c742373a",
"reference": "b795c9c14997dac771f66d1f6cbadb62c742373a",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/09b404c6b80b9c31be15fa245e647a2f9fb5e733",
"reference": "09b404c6b80b9c31be15fa245e647a2f9fb5e733",
"shasum": ""
},
"require": {
@ -991,9 +991,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.225.1"
"source": "https://github.com/aws/aws-sdk-php/tree/3.225.5"
},
"time": "2022-06-09T18:19:43+00:00"
"time": "2022-06-15T19:35:13+00:00"
},
{
"name": "balping/json-raw-encoder",
@ -5225,16 +5225,16 @@
},
{
"name": "league/flysystem",
"version": "3.0.20",
"version": "3.0.21",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "42a2f47dcf39944e2aee1b660ee55ab6ef69b535"
"reference": "8f1fcf9d2304ff77a006aa36dd2cb5f236999b12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/42a2f47dcf39944e2aee1b660ee55ab6ef69b535",
"reference": "42a2f47dcf39944e2aee1b660ee55ab6ef69b535",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f1fcf9d2304ff77a006aa36dd2cb5f236999b12",
"reference": "8f1fcf9d2304ff77a006aa36dd2cb5f236999b12",
"shasum": ""
},
"require": {
@ -5295,7 +5295,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.0.20"
"source": "https://github.com/thephpleague/flysystem/tree/3.0.21"
},
"funding": [
{
@ -5311,20 +5311,20 @@
"type": "tidelift"
}
],
"time": "2022-05-25T19:18:39+00:00"
"time": "2022-06-12T17:54:28+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
"version": "3.0.13",
"version": "3.0.21",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
"reference": "0074cf016e21a6d1eb99b6db70acdd23743fc371"
"reference": "f4ee238279f1eb39a32539a18ef845db7251fd05"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/0074cf016e21a6d1eb99b6db70acdd23743fc371",
"reference": "0074cf016e21a6d1eb99b6db70acdd23743fc371",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/f4ee238279f1eb39a32539a18ef845db7251fd05",
"reference": "f4ee238279f1eb39a32539a18ef845db7251fd05",
"shasum": ""
},
"require": {
@ -5365,9 +5365,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.0.13"
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.0.21"
},
"time": "2022-04-01T22:05:11+00:00"
"time": "2022-06-12T17:34:31+00:00"
},
{
"name": "league/mime-type-detection",
@ -13932,16 +13932,16 @@
},
{
"name": "spatie/laravel-ignition",
"version": "1.2.4",
"version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
"reference": "b90026ba26fe6589101dc5cd6527846290560aea"
"reference": "5409e699fc19f4d53e59427445b08f90593fda28"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/b90026ba26fe6589101dc5cd6527846290560aea",
"reference": "b90026ba26fe6589101dc5cd6527846290560aea",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/5409e699fc19f4d53e59427445b08f90593fda28",
"reference": "5409e699fc19f4d53e59427445b08f90593fda28",
"shasum": ""
},
"require": {
@ -14018,7 +14018,7 @@
"type": "github"
}
],
"time": "2022-06-08T07:07:57+00:00"
"time": "2022-06-15T13:55:18+00:00"
},
{
"name": "theseer/tokenizer",
@ -14178,5 +14178,5 @@
"ext-zip": "*"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.2.0"
}

View File

@ -119,7 +119,7 @@ return [
'hide_amount' => env('SETTING_FALLBACK_INVOICE_HIDE_AMOUNT', false),
'payment_terms' => env('SETTING_FALLBACK_INVOICE_PAYMENT_TERMS', '0'),
'template' => env('SETTING_FALLBACK_INVOICE_TEMPLATE', 'default'),
'color' => env('SETTING_FALLBACK_INVOICE_COLOR', '#55588b'),
'color' => env('SETTING_FALLBACK_INVOICE_COLOR', 'purple-500'),
'logo_size_width' => env('SETTING_FALLBACK_INVOICE_LOGO_SIZE_WIDTH', 128),
'logo_size_height' => env('SETTING_FALLBACK_INVOICE_LOGO_SIZE_HEIGHT', 128),
'item_search_char_limit' => env('SETTING_FALLBACK_INVOICE_ITEM_SEARCH_CHAR_LIMIT', 3),
@ -138,7 +138,7 @@ return [
'quantity_name' => env('SETTING_FALLBACK_BILL_QUANTITY_NAME', 'settings.invoice.quantity'),
'payment_terms' => env('SETTING_FALLBACK_BILL_PAYMENT_TERMS', '0'),
'template' => env('SETTING_FALLBACK_BILL_TEMPLATE', 'default'),
'color' => env('SETTING_FALLBACK_BILL_COLOR', '#55588b'),
'color' => env('SETTING_FALLBACK_BILL_COLOR', 'purple-500'),
'item_search_char_limit' => env('SETTING_FALLBACK_BILL_ITEM_SEARCH_CHAR_LIMIT', 3),
],
'bill-recurring' => [

View File

@ -277,4 +277,17 @@ function runTooltip(tooltipToggleEl) {
tooltipToggleEl.addEventListener(event, hide);
});
}
// Tooltip elements using [data-tooltip-target], [data-tooltip-placement]
// Tooltip elements using [data-tooltip-target], [data-tooltip-placement]
//Auto Height for Textarea
const tx = document.querySelectorAll('[textarea-auto-height]');
for (let i = 0; i < tx.length; i++) {
tx[i].setAttribute('style', 'height:' + (tx[i].scrollHeight) + 'px;overflow-y:hidden;');
tx[i].addEventListener('input', OnInput, false);
}
function OnInput() {
this.style.height = 'auto';
this.style.height = (this.scrollHeight) + 'px';
}
//Auto Height for Textarea

12857
public/css/app.css vendored

File diff suppressed because it is too large Load Diff

52
public/css/print.css vendored
View File

@ -59,12 +59,12 @@ th, td
margin-bottom: 8px;
}
.mt-1
.print-template .mt-1
{
margin-top: 8px;
}
.ml-1
.print-template .ml-1
{
margin-left: 8px;
}
@ -74,67 +74,67 @@ th, td
padding-left: 18px;
}
.mt-0
.print-template .mt-0
{
margin-top: 0 !important;
}
.mt-1
.print-template .mt-1
{
margin-top: 8px;
}
.mt-2
.print-template .mt-2
{
margin-top: 16px;
}
.mt-3
.print-template .mt-3
{
margin-top: 24px;
}
.mt-4
.print-template .mt-4
{
margin-top: 32px;
}
.mt-5
.print-template .mt-5
{
margin-top: 40px;
}
.mt-6
.print-template .mt-6
{
margin-top: 48px;
}
.mt-7
.print-template .mt-7
{
margin-top: 56px;
}
.mt-8
.print-template .mt-8
{
margin-top: 64px;
}
.mt-9
.print-template .mt-9
{
margin-top: 72px;
}
.pb-0
.print-template .pb-0
{
padding-bottom: 0;
}
.pb-1
.print-template .pb-1
{
padding-bottom: 8px;
}
.py-1
.print-template .py-1
{
padding-bottom: 3px;
padding-top: 3px;
@ -158,47 +158,47 @@ th, td
padding: 0 10px 0 10px;
}
.pt-2
.print-template .pt-2
{
padding-top: 16px;
}
.pb-2
.print-template .pb-2
{
padding-bottom: 16px;
}
.pl-3
.print-template .pl-3
{
padding-left: 24px;
}
.pl-4
.print-template .pl-4
{
padding-left: 32px;
}
.pl-5
.print-template .pl-5
{
padding-left: 40px;
}
.pl-6
.print-template .pl-6
{
padding-left: 48px;
}
.pl-7
.print-template .pl-7
{
padding-left: 56px;
}
.pl-8
.print-template .pl-8
{
padding-left: 64px;
}
.pl-9
.print-template .pl-9
{
padding-left: 72px;
}
@ -383,7 +383,7 @@ html[dir='rtl'] .text-alignment-right {
.lines
{
border-collapse: collapse;
table-layout: fixed;
table-layout: auto;
border-bottom: 1px solid #adadad;
}
@ -564,7 +564,7 @@ html[dir='rtl'] .text-alignment-right {
.modern-lines
{
border-collapse: collapse;
table-layout: fixed;
table-layout: auto;
}
.modern-lines .item

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -222,7 +222,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
})
.catch(error => {
@ -239,7 +239,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
},
};

View File

@ -528,7 +528,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
})
.catch(error => {
@ -544,7 +544,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
closeIfClickedOutside(event) {

View File

@ -165,7 +165,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
},
};

View File

@ -444,7 +444,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
})
.catch(error => {
@ -463,7 +463,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
closeIfClickedOutside(event) {

View File

@ -125,7 +125,7 @@ export default {
if (this.show) {
let documentClasses = document.body.classList;
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
if (this.modalDialogClass) {
@ -158,7 +158,7 @@ export default {
onCancel() {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
this.$emit("cancel");
}
@ -169,9 +169,9 @@ export default {
let documentClasses = document.body.classList;
if (val) {
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
} else {
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
}
}

View File

@ -154,7 +154,7 @@ export default {
created: function () {
let documentClasses = document.body.classList;
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
if (this.modalDialogClass) {
let modal_size = this.modalDialogClass.replace('modal-', 'max-w-screen-');
@ -311,7 +311,7 @@ export default {
onCancel() {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
this.$emit("cancel");
}
@ -322,9 +322,9 @@ export default {
let documentClasses = document.body.classList;
if (val) {
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
} else {
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
}
}

View File

@ -693,7 +693,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
})
.catch(error => {
@ -712,7 +712,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
addModal() {

View File

@ -5,6 +5,7 @@
:class="[
{'readonly': readonly},
{'disabled': disabled},
{'no-arrow': noArrow},
formClasses
]"
:error="formError">
@ -346,6 +347,12 @@ export default {
description: "Selectbox disabled status"
},
noArrow: {
type: Boolean,
default: false,
description: "Selectbox show arrow"
},
clearable: {
type: Boolean,
default: true,
@ -908,7 +915,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
})
.catch(error => {
@ -927,7 +934,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
addModal() {

View File

@ -253,7 +253,7 @@ export default {
onCancel() {
let documentClasses = document.body.classList;
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
this.display = false;
this.form.name = '';
@ -272,9 +272,9 @@ export default {
let documentClasses = document.body.classList;
if (val) {
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
} else {
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
}
}

View File

@ -110,9 +110,9 @@
show(val) {
let documentClasses = document.body.classList;
if (val) {
documentClasses.add("overflow-hidden");
documentClasses.add('overflow-y-hidden', 'overflow-overlay', '-ml-4');
} else {
documentClasses.remove("overflow-hidden");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
}
}
}

View File

@ -85,7 +85,12 @@ export default {
"thousands_separator":",",
},
all_currencies: [],
content_loading: true
content_loading: true,
connect: {
show: false,
currency: {},
documents: [],
},
}
},
@ -627,7 +632,7 @@ export default {
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
}
})
@ -656,6 +661,34 @@ export default {
copy_badge.classList.remove('flex');
copy_html.classList.remove('hidden');
}, 800);
}
},
//connect transactions for account, document or etc.
onConnectTransactions(route) {
let dial_promise = Promise.resolve(window.axios.get(route));
dial_promise.then(response => {
this.connect.show = true;
this.connect.transaction = JSON.parse(response.data.transaction);
let currency = JSON.parse(response.data.currency);
this.connect.currency = {
decimal_mark: currency.decimal_mark,
precision: currency.precision,
symbol: currency.symbol,
symbol_first: currency.symbol_first,
thousands_separator: currency.thousands_separator,
};
this.connect.documents = JSON.parse(response.data.documents);
})
.catch(error => {
})
.finally(function () {
// always executed
});
},
}
}

View File

@ -29,42 +29,10 @@ const app = new Vue({
return {
form: new Form('transaction'),
bulk_action: new BulkAction('transactions'),
connect: {
show: false,
currency: {},
documents: [],
},
}
},
methods: {
onConnect(route) {
let dial_promise = Promise.resolve(window.axios.get(route));
dial_promise.then(response => {
this.connect.show = true;
this.connect.transaction = JSON.parse(response.data.transaction);
let currency = JSON.parse(response.data.currency);
this.connect.currency = {
decimal_mark: currency.decimal_mark,
precision: currency.precision,
symbol: currency.symbol,
symbol_first: currency.symbol_first,
thousands_separator: currency.thousands_separator,
};
this.connect.documents = JSON.parse(response.data.documents);
})
.catch(error => {
})
.finally(function () {
// always executed
});
},
async onEmail(route) {
let email = {
modal: false,
@ -110,7 +78,7 @@ const app = new Vue({
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
}
})

View File

@ -68,7 +68,13 @@ const app = new Vue({
dynamic_taxes: [],
show_discount: false,
show_discount_text: true,
delete_discount: false
delete_discount: false,
regex_condition: [
'..',
'.,',
',.',
',,'
],
}
},
@ -259,7 +265,7 @@ const app = new Vue({
inclusive_tax_total += item.tax_ids[inclusive.tax_index].price;
totals_taxes = this.calculateTotalsTax(totals_taxes, inclusive.tax_id, inclusive.tax_name, inclusive.tax_type, item.tax_ids[inclusive.tax_index].price);
totals_taxes = this.calculateTotalsTax(totals_taxes, inclusive.tax_id, inclusive.tax_name, item.tax_ids[inclusive.tax_index].price);
}, this);
item.total = parseFloat(item.grand_total - inclusive_tax_total);
@ -271,7 +277,7 @@ const app = new Vue({
total_tax_amount += item.tax_ids[fixed.tax_index].price;
totals_taxes = this.calculateTotalsTax(totals_taxes, fixed.tax_id, fixed.tax_name, fixed.tax_type, item.tax_ids[fixed.tax_index].price);
totals_taxes = this.calculateTotalsTax(totals_taxes, fixed.tax_id, fixed.tax_name, item.tax_ids[fixed.tax_index].price);
}, this);
}
@ -287,7 +293,7 @@ const app = new Vue({
total_tax_amount += item.tax_ids[normal.tax_index].price;
totals_taxes = this.calculateTotalsTax(totals_taxes, normal.tax_id, normal.tax_name, normal.tax_type, item.tax_ids[normal.tax_index].price);
totals_taxes = this.calculateTotalsTax(totals_taxes, normal.tax_id, normal.tax_name, item.tax_ids[normal.tax_index].price);
}, this);
}
@ -297,7 +303,7 @@ const app = new Vue({
total_tax_amount += item.tax_ids[withholding.tax_index].price;
totals_taxes = this.calculateTotalsTax(totals_taxes, withholding.tax_id, withholding.tax_name, withholding.tax_type, item.tax_ids[withholding.tax_index].price);
totals_taxes = this.calculateTotalsTax(totals_taxes, withholding.tax_id, withholding.tax_name, item.tax_ids[withholding.tax_index].price);
}, this);
}
@ -307,7 +313,7 @@ const app = new Vue({
compounds.forEach(function(compound) {
item.tax_ids[compound.tax_index].price = (item.grand_total / 100) * compound.tax_rate;
totals_taxes = this.calculateTotalsTax(totals_taxes, compound.tax_id, compound.tax_name, compound.tax_type, item.tax_ids[compound.tax_index].price);
totals_taxes = this.calculateTotalsTax(totals_taxes, compound.tax_id, compound.tax_name, item.tax_ids[compound.tax_index].price);
item.grand_total += item.tax_ids[compound.tax_index].price;
}, this);
@ -488,11 +494,14 @@ const app = new Vue({
onChangeDiscountType(type) {
this.form.discount_type = type;
this.onAddTotalDiscount();
this.onCalculateTotal();
},
onChangeLineDiscountType(item_index, type) {
this.items[item_index].discount_type = type;
this.onCalculateTotal();
},
@ -669,7 +678,7 @@ const app = new Vue({
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
}
})
@ -787,7 +796,7 @@ const app = new Vue({
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
}
})
@ -844,7 +853,7 @@ const app = new Vue({
let documentClasses = document.body.classList;
documentClasses.remove("modal-open");
documentClasses.remove('overflow-y-hidden', 'overflow-overlay', '-ml-4');
},
}
})
@ -1062,5 +1071,27 @@ const app = new Vue({
}
this.page_loaded = true;
}
},
watch: {
'form.discount': function (newVal, oldVal) {
if (newVal != '' && newVal.search('^(?=.*?[0-9])[0-9.,]+$') !== 0) {
this.form.discount = oldVal;
this.form.discount = this.form.discount.replace(',', '.');
return;
}
for (let item of this.regex_condition) {
if (this.form.discount.includes(item)) {
const removeLastChar = newVal.length - 1;
const inputShown = newVal.slice(0, removeLastChar);
this.form.discount = inputShown;
}
}
this.form.discount = this.form.discount.replace(',', '.');
},
},
});

View File

@ -82,12 +82,15 @@ const app = new Vue({
html: ''
},
addToCartLoading: false,
loadMoreLoading: false,
}
},
methods: {
addToCart(alias, subscription_type) {
this.addToCartLoading = true;
let add_to_cart_promise = Promise.resolve(axios.get(url + '/apps/' + alias + '/' + subscription_type +'/add'));
add_to_cart_promise.then(response => {
@ -95,25 +98,15 @@ const app = new Vue({
this.$notify({
message: response.data.message,
timeout: 0,
icon: "fas fa-bell",
icon: "shopping_cart_checkout",
type: 'success'
});
}
if (response.data.error) {
this.installation.status = 'exception';
this.installation.html = '<div class="text-red">' + response.data.message + '</div>';
}
// Set steps
if (response.data.data) {
this.installation.steps = response.data.data;
this.installation.steps_total = this.installation.steps.length;
this.next();
}
this.addToCartLoading = false;
})
.catch(error => {
this.addToCartLoading = false;
});
},

View File

@ -185,7 +185,7 @@
}
.overflow-overlay {
overflow: overlay;
overflow-x: overlay;
}
.py-top {
@ -357,6 +357,10 @@
content: "\e6e1";
}
.no-arrow .el-select__caret {
display: none;
}
.el-input .el-icon-circle-close {
transform: unset !important;
transition: unset !important;

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afganistan',
'AX' => 'Olandska ostrva',
'AL' => 'Albanija',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazahstan',
'KE' => 'Kenija',
'KI' => 'Kiribati',
'XK' => 'Kosovo',
'KW' => 'Kuvajt',
'KG' => 'Kirgistan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Jemen',
'ZM' => 'Zambija',
'ZW' => 'Zimbabve',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Izmjena kolona',
'empty_items' => 'Niste dodali nijednu stavku.',
'edit_columns' => 'Izmjena kolona',
'empty_items' => 'Niste dodali nijednu stavku.',
'grand_total' => 'TOTAL',
'accept_payment_online' => 'Prihvatite plaćanja na mreži',
'transaction' => 'Plaćanje za :iznos je izvršeno pomoću :računa.',
'billing' => 'Naplata',
'advanced' => 'Napredno',
'invoice_detail' => [
'marked' => '<b> Vi </b> označili ste ovu fakturu kao',
'services' => 'Usluge',
'another_item' => 'Druga stavka',
'another_description' => 'i drugi opis',
'more_item' => '+:count više stavki',
'invoice_detail' => [
'marked' => '<b> Vi </b> označili ste ovu fakturu kao',
'services' => 'Usluge',
'another_item' => 'Druga stavka',
'another_description' => 'i drugi opis',
'more_item' => '+:count više stavki',
],
'grand_total' => 'TOTAL',
'accept_payment_online' => 'Prihvatite plaćanja na mreži',
'transaction' => 'Plaćanje za :iznos je izvršeno pomoću :računa.',
'billing' => 'Naplata',
'advanced' => 'Napredno',
'statuses' => [
'draft' => 'U pripremi',
'sent' => 'Poslano',
'expired' => 'Isteklo',
'viewed' => 'Pregledano',
'approved' => 'Odobreno',
'received' => 'Primjeno',
'refused' => 'Odbijeno',
'restored' => 'Vraćeno',
'reversed' => 'Obrnuto',
'partial' => 'Djelomično',
'paid' => 'Plaćeno',
'pending' => 'Na čekanju',
'invoiced' => 'Fakturisano',
'overdue' => 'Kasni uplata',
'unpaid' => 'Neplaćeno',
'cancelled' => 'Otkazano',
'voided' => 'Poništeno',
'completed' => 'Završenoi',
'shipped' => 'Dostavljeno',
'refunded' => 'Izvršiti povrat novca',
'failed' => 'Neuspješno',
'denied' => 'Odbijenos',
'processed' => 'U obradi',
'open' => 'Otvoreno',
'closed' => 'Zatvoreno',
'billed' => 'Naplaćeno',
'delivered' => 'Dostavljeno',
'returned' => 'Vraćeno',
'drawn' => 'Izvučeno',
'not_billed' => 'Nije naplaćeno',
'issued' => 'Izdato',
'not_invoiced' => 'Nije fakturisano',
'confirmed' => 'Potvrđeno',
'not_confirmed' => 'Nije potvrđeno',
'active' => 'Aktivan',
'ended' => 'Završeno',
'draft' => 'U pripremi',
'sent' => 'Poslano',
'expired' => 'Isteklo',
'viewed' => 'Pregledano',
'approved' => 'Odobreno',
'received' => 'Primjeno',
'refused' => 'Odbijeno',
'restored' => 'Vraćeno',
'reversed' => 'Obrnuto',
'partial' => 'Djelomično',
'paid' => 'Plaćeno',
'pending' => 'Na čekanju',
'invoiced' => 'Fakturisano',
'overdue' => 'Kasni uplata',
'unpaid' => 'Neplaćeno',
'cancelled' => 'Otkazano',
'voided' => 'Poništeno',
'completed' => 'Završenoi',
'shipped' => 'Dostavljeno',
'refunded' => 'Izvršiti povrat novca',
'failed' => 'Neuspješno',
'denied' => 'Odbijenos',
'processed' => 'U obradi',
'open' => 'Otvoreno',
'closed' => 'Zatvoreno',
'billed' => 'Naplaćeno',
'delivered' => 'Dostavljeno',
'returned' => 'Vraćeno',
'drawn' => 'Izvučeno',
'not_billed' => 'Nije naplaćeno',
'issued' => 'Izdato',
'not_invoiced' => 'Nije fakturisano',
'confirmed' => 'Potvrđeno',
'not_confirmed' => 'Nije potvrđeno',
'active' => 'Aktivan',
'ended' => 'Završeno',
],
'form_description' => [
'companies' => 'Promijenite adresu, logo i druge informacije za svoju kompaniju.',
'billing' => 'Detalji naplate se pojavljuju u vašem dokumentu.',
'advanced' => 'Odaberite kategoriju, dodajte ili uredite podnožje i dodajte priloge svom :type.',
'attachment' => 'Preuzmite datoteke priložene ovom :type',
'companies' => 'Promijenite adresu, logo i druge informacije za svoju kompaniju.',
'billing' => 'Detalji naplate se pojavljuju u vašem dokumentu.',
'advanced' => 'Odaberite kategoriju, dodajte ili uredite podnožje i dodajte priloge svom :type.',
'attachment' => 'Preuzmite datoteke priložene ovom :type',
],
'messages' => [
'email_sent' => ':type email je poslan!',
'marked_as' => ':type prebačen je u :status!',
'marked_sent' => ':type označen je kao poslan!',
'marked_paid' => ':type označen je kao plaćen!',
'marked_viewed' => ':type označen je kao pregledan!',
'marked_cancelled' => ':type označen je kao otkazan!',
'marked_received' => ':type označen je kao primljen!',
'email_sent' => ':type email je poslan!',
'marked_as' => ':type prebačen je u :status!',
'marked_sent' => ':type označen je kao poslan!',
'marked_paid' => ':type označen je kao plaćen!',
'marked_viewed' => ':type označen je kao pregledan!',
'marked_cancelled' => ':type označen je kao otkazan!',
'marked_received' => ':type označen je kao primljen!',
],
'recurring' => [
'auto_generated' => 'Auto-generisani',
'auto_generated' => 'Auto-generisani',
'tooltip' => [
'document_date' => 'Datum :type će biti automatski dodijeljen na osnovu :type rasporeda i učestalosti.',

View File

@ -4,7 +4,6 @@ return [
'dashboards' => 'Kontrolna ploča|Kontrolna ploče',
'items' => 'Stavka|Stavke',
'incomes' => 'Prihod|Prihodi',
'invoices' => 'Faktura|Fakture',
'recurring_invoices' => 'Ponavljajuća faktura|Ponavljajuće fakture',
'customers' => 'Kupac|Kupci',
@ -70,6 +69,7 @@ return [
'invitations' => 'Pozivnica|Pozivnice',
'attachments' => 'Prilog|Prilozi',
'histories' => 'Istorija|Istorije',
'your_notifications' => 'Vaše obavještenje|Vaša obavještenja',
'welcome' => 'Dobrodošli',
'banking' => 'Bankarstvo',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'Nema podudaranja podataka',
'clear_cache' => 'Očisti cache',
'go_to_dashboard' => 'Idite na nadzornu ploču',
'create_first_invoice' => 'Kreiraj prvu fakturu',
'is' => 'je',
'isnot' => 'nije',
'recurring_and_more' => 'Ponavlja se i više',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Pošalji kopiju meni na email :email',
'connect' => 'Poveži',
'assign' => 'Dodijeliti',
'your_notifications' => 'Vaše obavještenje|Vaša obavještenja',
'new' => 'Novo',
'new_more' => 'Novo...',
'number' => 'Broj',

View File

@ -15,6 +15,27 @@ return [
'weeks' => 'Sedmice(a)',
'months' => 'Mjesec(i)',
'years' => 'Godine(a)',
'frequency' => 'Frekvencija',
'duration' => 'Trajanje',
'last_issued' => 'Zadnje izdavanje',
'after' => 'Nakon',
'on' => 'Uključeno',
'never' => 'Nikad',
'ends_after' => 'Ističe nakon :times puta',
'ends_never' => 'Nikad ne završi',
'ends_date' => 'Završava :date',
'next_date' => 'Slijedeći :date ',
'end' => 'Kraj ponavljanja',
'child' => ':url je automatski kreiran :date',
'message' => 'Ovo je ponavljajući :type i sljedeći :type će automatski biti generiran :date',
'message_parent' => 'Ovaj :type je automatski generisan ovdje :link',
'frequency_type' => 'Ponovite ovo :type',
'limit_date' => 'Kreirajte prvo :type',
'limit_middle' => 'i kraj',
'form_description' => [
'schedule' => 'Odaberite uslove i vrijeme početka/završetka kako biste osigurali da vaš kupac dobije vaš :type na ispravan dan.',
],
];

View File

@ -2,27 +2,42 @@
return [
'years' => 'Godina|Godine',
'this_year' => 'Tekuća godina',
'previous_year' => 'Prethodna godina',
'this_quarter' => 'Ovaj kvartal',
'previous_quarter' => 'Prethodni kvartal',
'last_12_months' => 'Zadnjih 12 mjeseci',
'profit_loss' => 'Dobit i gubitak',
'gross_profit' => 'Bruto dobit',
'net_profit' => 'Neto dobit',
'total_expenses' => 'Ukupni troškovi',
'net' => 'Neto',
'income_expense' => 'Prihod i rashod',
'income_summary' => 'Sažetak prihoda',
'expense_summary' => 'Sažetak troškova',
'income_expense_summary' => 'Prihodi nasuprot troškovima',
'tax_summary' => 'Sažetak poreza',
'years' => 'Godina|Godine',
'preferences' => 'Benefit|Benefiti',
'this_year' => 'Tekuća godina',
'previous_year' => 'Prethodna godina',
'this_quarter' => 'Ovaj kvartal',
'previous_quarter' => 'Prethodni kvartal',
'last_12_months' => 'Zadnjih 12 mjeseci',
'profit_loss' => 'Dobit i gubitak',
'income_summary' => 'Sažetak prihoda',
'expense_summary' => 'Sažetak troškova',
'income_expense_summary' => 'Prihodi nasuprot troškovima',
'tax_summary' => 'Sažetak poreza',
'gross_profit' => 'Bruto dobit',
'net_profit' => 'Neto dobit',
'total_expenses' => 'Ukupni troškovi',
'net' => 'Neto',
'income_expense' => 'Prihod i rashod',
'pin' => 'Zakačite svoj izvještaj',
'charts' => [
'line' => 'Crta',
'bar' => 'Graf',
'pie' => 'Pita',
'income_expense_description' => 'Opis izvještaja o prihodima i rashodima',
'accounting_description' => 'Opis za računovodstvene izvještaje',
'form_description' => [
'general' => 'Ovdje možete unijeti opće informacije izvještaja kao što su naziv, tip, opis itd.',
'preferences' => 'Podešavanja vam pomažu da prilagodite svoje izvještaje.'
],
'charts' => [
'line' => 'Crta',
'bar' => 'Graf',
'pie' => 'Pita',
],
'pin_text' => [
'unpin_report' => 'Otkačite svoj izvještaj',
'pin_report' => 'Zakačite svoj izvještaj',
]
];

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afganistan',
'AX' => 'Illes Åland',
'AL' => 'Albània',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'XK' => 'Kosovo',
'KW' => 'Kuwait',
'KG' => 'Kirguizistan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Iemen',
'ZM' => 'Zàmbia',
'ZW' => 'Zimbàbue',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Edita les columnes',
'empty_items' => 'No has afegit cap element.',
'edit_columns' => 'Edita les columnes',
'empty_items' => 'No has afegit cap element.',
'grand_total' => 'Suma total',
'accept_payment_online' => 'Accepta pagaments en línia',
'transaction' => 'S\'ha efectuat un pagament de :amount utilitzant :account',
'billing' => 'Facturació',
'advanced' => 'Avançat',
'invoice_detail' => [
'marked' => '<b> Tu </b> has marcat aquesta factura com',
'services' => 'Serveis',
'another_item' => 'Un altre article',
'another_description' => 'i una altra descripció',
'more_item' => '+:count més article(s)',
'invoice_detail' => [
'marked' => '<b> Tu </b> has marcat aquesta factura com',
'services' => 'Serveis',
'another_item' => 'Un altre article',
'another_description' => 'i una altra descripció',
'more_item' => '+:count més article(s)',
],
'grand_total' => 'Suma total',
'accept_payment_online' => 'Accepta pagaments en línia',
'transaction' => 'S\'ha efectuat un pagament de :amount utilitzant :account',
'billing' => 'Facturació',
'advanced' => 'Avançat',
'statuses' => [
'draft' => 'Esborrany',
'sent' => 'Enviat',
'expired' => 'Vençut',
'viewed' => 'Vist',
'approved' => 'Aprovat',
'received' => 'Rebut',
'refused' => 'Refusat',
'restored' => 'Restablert',
'reversed' => 'Capgirat',
'partial' => 'Parcial',
'paid' => 'Pagat',
'pending' => 'Pendent',
'invoiced' => 'Facturat',
'overdue' => 'Vençut',
'unpaid' => 'Pendent de pagament',
'cancelled' => 'Cancel·lat',
'voided' => 'Invalidat',
'completed' => 'Completat',
'shipped' => 'Enviat',
'refunded' => 'Reemborsat',
'failed' => 'S\'ha produït un error',
'denied' => 'Denegat',
'processed' => 'Processat',
'open' => 'Obert',
'closed' => 'Tancat',
'billed' => 'Facturat',
'delivered' => 'Enviat',
'returned' => 'Retornat',
'drawn' => 'Retirat',
'not_billed' => 'No cobrat',
'issued' => 'Emès',
'not_invoiced' => 'No facturat',
'confirmed' => 'Confirmat',
'not_confirmed' => 'No confirmat',
'active' => 'Actiu',
'ended' => 'Finalitzat',
'draft' => 'Esborrany',
'sent' => 'Enviat',
'expired' => 'Vençut',
'viewed' => 'Vist',
'approved' => 'Aprovat',
'received' => 'Rebut',
'refused' => 'Refusat',
'restored' => 'Restablert',
'reversed' => 'Capgirat',
'partial' => 'Parcial',
'paid' => 'Pagat',
'pending' => 'Pendent',
'invoiced' => 'Facturat',
'overdue' => 'Vençut',
'unpaid' => 'Pendent de pagament',
'cancelled' => 'Cancel·lat',
'voided' => 'Invalidat',
'completed' => 'Completat',
'shipped' => 'Enviat',
'refunded' => 'Reemborsat',
'failed' => 'S\'ha produït un error',
'denied' => 'Denegat',
'processed' => 'Processat',
'open' => 'Obert',
'closed' => 'Tancat',
'billed' => 'Facturat',
'delivered' => 'Enviat',
'returned' => 'Retornat',
'drawn' => 'Retirat',
'not_billed' => 'No cobrat',
'issued' => 'Emès',
'not_invoiced' => 'No facturat',
'confirmed' => 'Confirmat',
'not_confirmed' => 'No confirmat',
'active' => 'Actiu',
'ended' => 'Finalitzat',
],
'form_description' => [
'companies' => 'Canvia l\'adreça, el logotip i altra informació de la teva empresa.',
'billing' => 'Els detalls de facturació apareixen al teu document.',
'advanced' => 'Selecciona la categoria, afegeix o edita el peu de pàgina i afegeix adjunts al teu :type.',
'attachment' => 'Descarrega els arxius enllaçats a aquest :type',
'companies' => 'Canvia l\'adreça, el logotip i altra informació de la teva empresa.',
'billing' => 'Els detalls de facturació apareixen al teu document.',
'advanced' => 'Selecciona la categoria, afegeix o edita el peu de pàgina i afegeix adjunts al teu :type.',
'attachment' => 'Descarrega els arxius enllaçats a aquest :type',
],
'messages' => [
'email_sent' => 'S\'ha enviat :type per correu!',
'marked_as' => 'S\'ha marcat :type com :status!',
'marked_sent' => 'S\'ha marcat :type com enviat!',
'marked_paid' => 'S\'ha marcat :type com enviat!',
'marked_viewed' => 'S\'ha marcat :type com enviat!',
'marked_cancelled' => 'S\'ha marcat :type com cancel·lat!',
'marked_received' => 'S\'ha marcat :type com rebut!',
'email_sent' => 'S\'ha enviat :type per correu!',
'marked_as' => 'S\'ha marcat :type com :status!',
'marked_sent' => 'S\'ha marcat :type com enviat!',
'marked_paid' => 'S\'ha marcat :type com enviat!',
'marked_viewed' => 'S\'ha marcat :type com enviat!',
'marked_cancelled' => 'S\'ha marcat :type com cancel·lat!',
'marked_received' => 'S\'ha marcat :type com rebut!',
],
'recurring' => [
'auto_generated' => 'Auto-generat',
'auto_generated' => 'Auto-generat',
'tooltip' => [
'document_date' => 'La data de :type s\'assignarà automàticament en funció de la planificació i frequència de :type.',

View File

@ -4,7 +4,6 @@ return [
'dashboards' => 'Tauler|Taulers',
'items' => 'Article|Articles',
'incomes' => 'Ingrés|Ingressos',
'invoices' => 'Factura|Factures',
'recurring_invoices' => 'Factura recurrent|Factures recurrents',
'customers' => 'Client|Clients',
@ -70,6 +69,7 @@ return [
'invitations' => 'Invitació|Invitacions',
'attachments' => 'Adjunt|Adjunts',
'histories' => 'Història|Històries',
'your_notifications' => 'La teva notificació|Les teves notificacions',
'welcome' => 'Benvingut/da',
'banking' => 'Bancs',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'Cap dada coincident',
'clear_cache' => 'Neteja memòria cau',
'go_to_dashboard' => 'Vés al tauler de control',
'create_first_invoice' => 'Crea la teva primera factura',
'is' => 'és',
'isnot' => 'no és',
'recurring_and_more' => 'Recurrent i més...',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Envia\'m una còpia a mi mateix a :email',
'connect' => 'Connecta',
'assign' => 'Assigna',
'your_notifications' => 'La teva notificació|Les teves notificacions',
'new' => 'Nou',
'new_more' => 'Nou...',
'number' => 'Número',

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Honduras',
'AX' => 'Åland Islands',
'AL' => 'Albania',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'XK' => 'Kosovo',
'KW' => 'Kuwait',
'KG' => 'Kyrgyzstan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Yemen',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Edit Columns',
'empty_items' => 'You have not added any items.',
'edit_columns' => 'Edit Columns',
'empty_items' => 'You have not added any items.',
'grand_total' => 'Grand Total',
'accept_payment_online' => 'Accept Payments Online',
'transaction' => 'A payment for :amount was made using :account.',
'billing' => 'Billing',
'advanced' => 'Advanced',
'invoice_detail' => [
'marked' => '<b> You </b> marked this invoice as',
'services' => 'Services',
'another_item' => 'Another Item',
'another_description' => 'and another description',
'more_item' => '+:count more item',
'invoice_detail' => [
'marked' => '<b> You </b> marked this invoice as',
'services' => 'Services',
'another_item' => 'Another Item',
'another_description' => 'and another description',
'more_item' => '+:count more item',
],
'grand_total' => 'Grand Total',
'accept_payment_online' => 'Accept Payments Online',
'transaction' => 'A payment for :amount was made using :account.',
'billing' => 'Billing',
'advanced' => 'Advanced',
'statuses' => [
'draft' => 'Draft',
'sent' => 'Sent',
'expired' => 'Expired',
'viewed' => 'Viewed',
'approved' => 'Approved',
'received' => 'Received',
'refused' => 'Refused',
'restored' => 'Restored',
'reversed' => 'Reversed',
'partial' => 'Partial',
'paid' => 'Paid',
'pending' => 'Pending',
'invoiced' => 'Invoiced',
'overdue' => 'Overdue',
'unpaid' => 'Unpaid',
'cancelled' => 'Cancelled',
'voided' => 'Voided',
'completed' => 'Completed',
'shipped' => 'Shipped',
'refunded' => 'Refunded',
'failed' => 'Failed',
'denied' => 'Denied',
'processed' => 'Processed',
'open' => 'Open',
'closed' => 'Closed',
'billed' => 'Billed',
'delivered' => 'Delivered',
'returned' => 'Returned',
'drawn' => 'Drawn',
'not_billed' => 'Not Billed',
'issued' => 'Issued',
'not_invoiced' => 'Not Invoiced',
'confirmed' => 'Confirmed',
'not_confirmed' => 'Not Confirmed',
'active' => 'Active',
'ended' => 'Ended',
'draft' => 'Draft',
'sent' => 'Sent',
'expired' => 'Expired',
'viewed' => 'Viewed',
'approved' => 'Approved',
'received' => 'Received',
'refused' => 'Refused',
'restored' => 'Restored',
'reversed' => 'Reversed',
'partial' => 'Partial',
'paid' => 'Paid',
'pending' => 'Pending',
'invoiced' => 'Invoiced',
'overdue' => 'Overdue',
'unpaid' => 'Unpaid',
'cancelled' => 'Cancelled',
'voided' => 'Voided',
'completed' => 'Completed',
'shipped' => 'Shipped',
'refunded' => 'Refunded',
'failed' => 'Failed',
'denied' => 'Denied',
'processed' => 'Processed',
'open' => 'Open',
'closed' => 'Closed',
'billed' => 'Billed',
'delivered' => 'Delivered',
'returned' => 'Returned',
'drawn' => 'Drawn',
'not_billed' => 'Not Billed',
'issued' => 'Issued',
'not_invoiced' => 'Not Invoiced',
'confirmed' => 'Confirmed',
'not_confirmed' => 'Not Confirmed',
'active' => 'Active',
'ended' => 'Ended',
],
'form_description' => [
'companies' => 'Change the address, logo, and other information for your company.',
'billing' => 'Billing details appears in your document.',
'advanced' => 'Select the category, add or edit the footer, and add attachments to your :type.',
'attachment' => 'Download the files attached to this :type',
'companies' => 'Change the address, logo, and other information for your company.',
'billing' => 'Billing details appears in your document.',
'advanced' => 'Select the category, add or edit the footer, and add attachments to your :type.',
'attachment' => 'Download the files attached to this :type',
],
'messages' => [
'email_sent' => ':type email has been sent!',
'marked_as' => ':type marked as :status!',
'marked_sent' => ':type marked as sent!',
'marked_paid' => ':type marked as paid!',
'marked_viewed' => ':type marked as viewed!',
'marked_cancelled' => ':type marked as cancelled!',
'marked_received' => ':type marked as received!',
'email_sent' => ':type email has been sent!',
'marked_as' => ':type marked as :status!',
'marked_sent' => ':type marked as sent!',
'marked_paid' => ':type marked as paid!',
'marked_viewed' => ':type marked as viewed!',
'marked_cancelled' => ':type marked as cancelled!',
'marked_received' => ':type marked as received!',
],
'recurring' => [
'auto_generated' => 'Auto-generated',
'auto_generated' => 'Auto-generated',
'tooltip' => [
'document_date' => 'The :type date will be automatically assigned based on the :type schedule and frequency.',

View File

@ -4,7 +4,6 @@ return [
'dashboards' => 'Dashboard|Dashboards',
'items' => 'Item|Items',
'incomes' => 'Income|Incomes',
'invoices' => 'Invoice|Invoices',
'recurring_invoices' => 'Recurring Invoice|Recurring Invoices',
'customers' => 'Customer|Customers',
@ -70,6 +69,7 @@ return [
'invitations' => 'Invitation|Invitations',
'attachments' => 'Attachment|Attachments',
'histories' => 'History|Histories',
'your_notifications' => 'Your notification|Your notifications',
'welcome' => 'Welcome',
'banking' => 'Banking',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'No matching data',
'clear_cache' => 'Clear Cache',
'go_to_dashboard' => 'Go to dashboard',
'create_first_invoice' => 'Create your first invoice',
'is' => 'is',
'isnot' => 'is not',
'recurring_and_more' => 'Recurring and more..',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Send a copy to myself at :email',
'connect' => 'Connect',
'assign' => 'Assign',
'your_notifications' => 'Your notification|Your notifications',
'new' => 'New',
'new_more' => 'New ...',
'number' => 'Number',

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afghanistan',
'AX' => 'Åland Islands',
'AL' => 'Albania',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'XK' => 'Kosovo',
'KW' => 'Kuwait',
'KG' => 'Kyrgyzstan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Yemen',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Edit Columns',
'empty_items' => 'You have not added any items.',
'edit_columns' => 'Edit Columns',
'empty_items' => 'You have not added any items.',
'grand_total' => 'Grand Total',
'accept_payment_online' => 'Accept Payments Online',
'transaction' => 'A payment for :amount was made using :account.',
'billing' => 'Billing',
'advanced' => 'Advanced',
'invoice_detail' => [
'marked' => '<b> You </b> marked this invoice as',
'services' => 'Services',
'another_item' => 'Another Item',
'another_description' => 'and another description',
'more_item' => '+:count more item',
'invoice_detail' => [
'marked' => '<b>You</b> marked this invoice as',
'services' => 'Services',
'another_item' => 'Another Item',
'another_description' => 'and another description',
'more_item' => '+:count more item',
],
'grand_total' => 'Grand Total',
'accept_payment_online' => 'Accept Payments Online',
'transaction' => 'A payment for :amount was made using :account.',
'billing' => 'Billing',
'advanced' => 'Advanced',
'statuses' => [
'draft' => 'Draft',
'sent' => 'Sent',
'expired' => 'Expired',
'viewed' => 'Viewed',
'approved' => 'Approved',
'received' => 'Received',
'refused' => 'Refused',
'restored' => 'Restored',
'reversed' => 'Reversed',
'partial' => 'Partial',
'paid' => 'Paid',
'pending' => 'Pending',
'invoiced' => 'Invoiced',
'overdue' => 'Overdue',
'unpaid' => 'Unpaid',
'cancelled' => 'Cancelled',
'voided' => 'Voided',
'completed' => 'Completed',
'shipped' => 'Shipped',
'refunded' => 'Refunded',
'failed' => 'Failed',
'denied' => 'Denied',
'processed' => 'Processed',
'open' => 'Open',
'closed' => 'Closed',
'billed' => 'Billed',
'delivered' => 'Delivered',
'returned' => 'Returned',
'drawn' => 'Drawn',
'not_billed' => 'Not Billed',
'issued' => 'Issued',
'not_invoiced' => 'Not Invoiced',
'confirmed' => 'Confirmed',
'not_confirmed' => 'Not Confirmed',
'active' => 'Active',
'ended' => 'Ended',
'draft' => 'Draft',
'sent' => 'Sent',
'expired' => 'Expired',
'viewed' => 'Viewed',
'approved' => 'Approved',
'received' => 'Received',
'refused' => 'Refused',
'restored' => 'Restored',
'reversed' => 'Reversed',
'partial' => 'Partial',
'paid' => 'Paid',
'pending' => 'Pending',
'invoiced' => 'Invoiced',
'overdue' => 'Overdue',
'unpaid' => 'Unpaid',
'cancelled' => 'Cancelled',
'voided' => 'Voided',
'completed' => 'Completed',
'shipped' => 'Shipped',
'refunded' => 'Refunded',
'failed' => 'Failed',
'denied' => 'Denied',
'processed' => 'Processed',
'open' => 'Open',
'closed' => 'Closed',
'billed' => 'Billed',
'delivered' => 'Delivered',
'returned' => 'Returned',
'drawn' => 'Drawn',
'not_billed' => 'Not Billed',
'issued' => 'Issued',
'not_invoiced' => 'Not Invoiced',
'confirmed' => 'Confirmed',
'not_confirmed' => 'Not Confirmed',
'active' => 'Active',
'ended' => 'Ended',
],
'form_description' => [
'companies' => 'Change the address, logo, and other information for your company.',
'billing' => 'Billing details appears in your document.',
'advanced' => 'Select the category, add or edit the footer, and add attachments to your :type.',
'attachment' => 'Download the files attached to this :type',
'companies' => 'Change the address, logo, and other information for your company.',
'billing' => 'Billing details appears in your document.',
'advanced' => 'Select the category, add or edit the footer, and add attachments to your :type.',
'attachment' => 'Download the files attached to this :type',
],
'messages' => [
'email_sent' => ':type email has been sent!',
'marked_as' => ':type marked as :status!',
'marked_sent' => ':type marked as sent!',
'marked_paid' => ':type marked as paid!',
'marked_viewed' => ':type marked as viewed!',
'marked_cancelled' => ':type marked as cancelled!',
'marked_received' => ':type marked as received!',
'email_sent' => ':type email has been sent!',
'marked_as' => ':type marked as :status!',
'marked_sent' => ':type marked as sent!',
'marked_paid' => ':type marked as paid!',
'marked_viewed' => ':type marked as viewed!',
'marked_cancelled' => ':type marked as cancelled!',
'marked_received' => ':type marked as received!',
],
'recurring' => [
'auto_generated' => 'Auto-generated',
'auto_generated' => 'Auto-generated',
'tooltip' => [
'document_date' => 'The :type date will be automatically assigned based on the :type schedule and frequency.',

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afghanistan',
'AX' => 'Îles Åland',
'AL' => 'Albanie',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'XK' => 'Kosovo',
'KW' => 'Koweït',
'KG' => 'Kirghizstan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Yémen',
'ZM' => 'Zambie',
'ZW' => 'Zimbabwe',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Editer les colonnes',
'empty_items' => 'Vous n\'avez ajouté aucun élément.',
'edit_columns' => 'Editer les colonnes',
'empty_items' => 'Vous n\'avez ajouté aucun élément.',
'grand_total' => 'Total global',
'accept_payment_online' => 'Accepter les paiements en ligne',
'transaction' => 'Un paiement de :amount a été effectué en utilisant :account.',
'billing' => 'Facturation',
'advanced' => 'Avancé',
'invoice_detail' => [
'marked' => '<b> Vous </b> avez marqué cette facture comme',
'services' => 'Services',
'another_item' => 'Un autre élément',
'another_description' => 'et une autre description',
'more_item' => '+:count plus d\'élément',
'invoice_detail' => [
'marked' => '<b> Vous </b> avez marqué cette facture comme',
'services' => 'Services',
'another_item' => 'Un autre élément',
'another_description' => 'et une autre description',
'more_item' => '+:count plus d\'élément',
],
'grand_total' => 'Total global',
'accept_payment_online' => 'Accepter les paiements en ligne',
'transaction' => 'Un paiement de :amount a été effectué en utilisant :account.',
'billing' => 'Facturation',
'advanced' => 'Avancé',
'statuses' => [
'draft' => 'Brouillon',
'sent' => 'Envoyé',
'expired' => 'Expiré',
'viewed' => 'Vu',
'approved' => 'Approuvé',
'received' => 'Reçu',
'refused' => 'Refusé',
'restored' => 'Restauré',
'reversed' => 'Inversé',
'partial' => 'Partiel',
'paid' => 'Payé',
'pending' => 'En attente',
'invoiced' => 'Facturé',
'overdue' => 'En retard',
'unpaid' => 'Impayé',
'cancelled' => 'Annulé',
'voided' => 'Annulé',
'completed' => 'Terminé',
'shipped' => 'Envoyé',
'refunded' => 'Remboursé',
'failed' => 'Echoué',
'denied' => 'Refusé',
'processed' => 'Traité',
'open' => 'Ouvert',
'closed' => 'Fermé',
'billed' => 'Facturé',
'delivered' => 'Livré',
'returned' => 'Retourné',
'drawn' => 'Dessiné',
'not_billed' => 'Non facturé',
'issued' => 'Résolu',
'not_invoiced' => 'Non facturé',
'confirmed' => 'Confirmé',
'not_confirmed' => 'Non confirmé',
'active' => 'Actif',
'ended' => 'Terminé',
'draft' => 'Brouillon',
'sent' => 'Envoyé',
'expired' => 'Expiré',
'viewed' => 'Vu',
'approved' => 'Approuvé',
'received' => 'Reçu',
'refused' => 'Refusé',
'restored' => 'Restauré',
'reversed' => 'Inversé',
'partial' => 'Partiel',
'paid' => 'Payé',
'pending' => 'En attente',
'invoiced' => 'Facturé',
'overdue' => 'En retard',
'unpaid' => 'Impayé',
'cancelled' => 'Annulé',
'voided' => 'Annulé',
'completed' => 'Terminé',
'shipped' => 'Envoyé',
'refunded' => 'Remboursé',
'failed' => 'Echoué',
'denied' => 'Refusé',
'processed' => 'Traité',
'open' => 'Ouvert',
'closed' => 'Fermé',
'billed' => 'Facturé',
'delivered' => 'Livré',
'returned' => 'Retourné',
'drawn' => 'Dessiné',
'not_billed' => 'Non facturé',
'issued' => 'Résolu',
'not_invoiced' => 'Non facturé',
'confirmed' => 'Confirmé',
'not_confirmed' => 'Non confirmé',
'active' => 'Actif',
'ended' => 'Terminé',
],
'form_description' => [
'companies' => 'Changez l\'adresse, le logo et d\'autres informations pour votre entreprise.',
'billing' => 'Les détails de facturation apparaissent dans votre document.',
'advanced' => 'Sélectionnez la catégorie, ajoutez ou modifiez le pied de page et ajoutez des pièces jointes à votre :type.',
'attachment' => 'Télécharger les fichiers attachés à ce :type',
'companies' => 'Changez l\'adresse, le logo et d\'autres informations pour votre entreprise.',
'billing' => 'Les détails de facturation apparaissent dans votre document.',
'advanced' => 'Sélectionnez la catégorie, ajoutez ou modifiez le pied de page et ajoutez des pièces jointes à votre :type.',
'attachment' => 'Télécharger les fichiers attachés à ce :type',
],
'messages' => [
'email_sent' => ':type L\'email vous a été envoyé.',
'marked_as' => ':type marqué comme :status!',
'marked_sent' => ':type marqué comme envoyé!',
'marked_paid' => ':type marqué comme payé !',
'marked_viewed' => ':type marqué comme vu !',
'marked_cancelled' => ':type marqué comme annulé !',
'marked_received' => ':type marqué comme reçu!',
'email_sent' => ':type L\'email vous a été envoyé.',
'marked_as' => ':type marqué comme :status!',
'marked_sent' => ':type marqué comme envoyé!',
'marked_paid' => ':type marqué comme payé !',
'marked_viewed' => ':type marqué comme vu !',
'marked_cancelled' => ':type marqué comme annulé !',
'marked_received' => ':type marqué comme reçu!',
],
'recurring' => [
'auto_generated' => 'Généré automatiquement',
'auto_generated' => 'Généré automatiquement',
'tooltip' => [
'document_date' => 'La date de :type sera automatiquement assignée en fonction du planning et de la fréquence :type.',

View File

@ -4,7 +4,6 @@ return [
'dashboards' => 'Tableau de bord|Tableaux de bord',
'items' => 'Article|Articles',
'incomes' => 'Revenu|Revenus',
'invoices' => 'Facture|Factures',
'recurring_invoices' => 'Factures récurrentes|Factures récurrentes',
'customers' => 'Client|Clients',
@ -70,6 +69,7 @@ return [
'invitations' => 'Invitation|Invitations',
'attachments' => 'Pièce jointe|Pièces jointes',
'histories' => 'Historique|Historiques',
'your_notifications' => 'Votre notification|Vos notifications',
'welcome' => 'Bienvenue',
'banking' => 'Banque',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'Aucune donnée correspondante',
'clear_cache' => 'Vider le cache',
'go_to_dashboard' => 'Aller au tableau de bord',
'create_first_invoice' => 'Créez votre première facture',
'is' => 'est',
'isnot' => 'n\'est pas',
'recurring_and_more' => 'Récurrents et plus..',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Envoyez-moi une copie à :email',
'connect' => 'Connecter',
'assign' => 'Attribuer',
'your_notifications' => 'Votre notification|Vos notifications',
'new' => 'Nouveau',
'new_more' => 'Nouveau...',
'number' => 'Numéro',

View File

@ -3,6 +3,7 @@
return [
'account_name' => 'खाते का नाम',
'account_balance' => 'खाते का बैलेंस',
'number' => 'खाता संख्या',
'opening_balance' => 'प्रारंभिक शेष',
'current_balance' => 'वर्तमान शेष',
@ -14,5 +15,17 @@ return [
'outgoing' => 'जावक',
'see_performance' => 'प्रदर्शन देखें',
'create_report' => 'अगर आप खाते का प्रदर्शन देखना चाहते हैं। आप आय बनाम व्यय रिपोर्ट उदाहरण बना सकते हैं।',
'banks' => 'बैंक|बैंकों',
'credit_cards' => 'क्रेडिट कार्ड|क्रेडिट कार्ड',
'form_description' => [
'general' => 'ऋणात्मक प्रारंभिक शेषराशि के लिए क्रेडिट कार्ड प्रकार का उपयोग करें। खातों को सही ढंग से समेटने के लिए संख्या आवश्यक है। डिफ़ॉल्ट खाता सभी लेनदेन को रिकॉर्ड करेगा यदि अन्यथा नहीं चुना गया है।',
'bank' => 'आपके एक से अधिक बैंकों में कई बैंक खाते हो सकते हैं। आपके बैंक के बारे में जानकारी रिकॉर्ड करने से आपके बैंक के भीतर लेन-देन का मिलान करना आसान हो जाएगा।',
],
'no_records' => [
'transactions' => 'इस खाते में अभी तक कोई लेनदेन नहीं हुआ है। अब एक नया बनाएँ।',
'transfers' => 'इस खाते से/में अभी तक कोई स्थानांतरण नहीं हुआ है। अब एक नया बनाएँ।',
],
];

View File

@ -2,20 +2,34 @@
return [
'auth' => 'प्रमाणीकरण',
'profile' => 'प्रोफ़ाइल',
'logout' => 'लॉग आउट',
'login' => 'लॉग इन करें',
'forgot' => 'भूल गया',
'login_to' => 'अपना सेशन शुरू करने के लिए लॉगिन करे',
'remember_me' => 'मुझे याद रखना',
'forgot_password' => 'मैं अपना पासवर्ड भूल गया',
'reset_password' => 'पासवर्ड रीसेट',
'change_password' => 'पासवर्ड बदलें',
'enter_email' => 'अपना ईमेल दर्ज करे',
'current_email' => 'वर्तमान ईमेल',
'reset' => 'रीसेट',
'never' => 'कभी नहीँ',
'landing_page' => 'लैंडिंग पेज',
'personal_information' => 'व्यक्तिगत जानकारी',
'register_user' => 'उपयोगकर्ता पंजीकृत करें',
'register' => 'पंजीकरण करें',
'form_description' => [
'personal' => 'आमंत्रण लिंक नए उपयोगकर्ता को भेजा जाएगा, इसलिए सुनिश्चित करें कि ईमेल पता सही है। वे अपना पासवर्ड दर्ज करने में सक्षम होंगे।',
'assign' => 'उपयोगकर्ता के पास चयनित कंपनियों तक एक्सेस होगी। आप <a href=":url" class="border-b border-black">भूमिका (Roles)</a> पृष्ठ से अनुमतियों (Permission) को प्रतिबंधित कर सकते हैं।',
'preferences' => 'उपयोगकर्ता की डिफ़ॉल्ट भाषा का चयन करें। उपयोगकर्ता के लॉग इन करने के बाद आप लैंडिंग पृष्ठ भी सेट कर सकते हैं।',
],
'password' => [
'pass' => 'पासवर्ड',
'pass_confirm' => 'पासवर्ड पुष्टि करें',
'current' => 'पासवर्ड',
'current_confirm' => 'पासवर्ड पुष्टि करें',
'new' => 'नया पासवर्ड',
@ -28,14 +42,51 @@ return [
'no_company' => 'त्रुटि: आपके खाते को कोई कंपनी नहीं सौंपी गई। कृपया सिस्टम व्यवस्थापक से संपर्क करें।',
],
'login_redirect' => 'सत्यापन हो गया! आप को ले जाय जा रहा है...',
'failed' => 'ये प्रमाण हमारे रिकॉर्ड से मेल नहीं खा रहे हैं।',
'throttle' => 'बहुत सारे लॉगिन प्रयास। :seconds सेकंड में फिर से कोशिश करें।',
'disabled' => 'यह खाता निष्क्रिय है। कृपया सिस्टम व्यवस्थापक से संपर्क करें।',
'notification' => [
'message_1' => 'आप यह ईमेल प्राप्त कर रहे हैं क्योंकि हमें आपके खाते के लिए पासवर्ड रीसेट अनुरोध प्राप्त हुआ है।',
'message_2' => 'यदि आपने पासवर्ड रीसेट का अनुरोध नहीं किया है, तो आगे की कार्रवाई की आवश्यकता नहीं है।',
'button' => 'पासवर्ड रीसेट',
'message_1' => 'आप यह ईमेल प्राप्त कर रहे हैं क्योंकि हमें आपके खाते के लिए पासवर्ड रीसेट अनुरोध प्राप्त हुआ है।',
'message_2' => 'यदि आपने पासवर्ड रीसेट का अनुरोध नहीं किया है, तो आगे की कार्रवाई की आवश्यकता नहीं है।',
'button' => 'पासवर्ड रीसेट',
],
'invitation' => [
'message_1' => 'आपको यह ईमेल इसलिए प्राप्त हो रहा है क्योंकि आपको Akaunting में शामिल होने के लिए आमंत्रित किया गया है।',
'message_2' => 'यदि आप शामिल नहीं होना चाहते हैं, तो आगे किसी गतिविधि की आवश्यकता नहीं है।',
'button' => 'शुरू करें',
],
'information' => [
'invoice' => 'आसानी से चालान बनाएं',
'reports' => 'विस्तृत रिपोर्ट प्राप्त करें',
'expense' => 'किसी भी खर्च को ट्रैक करें',
'customize' => 'अपनी Akaunting को अनुकूलित करें',
],
'roles' => [
'admin' => [
'name' => 'व्यवस्थापक',
'description' => 'उन्हें ग्राहकों, इनवॉइस, रिपोर्ट, सेटिंग्स और ऐप्स सहित आपकी Akaunting तक पूरी पहुंच मिलती है।',
],
'manager' => [
'name' => 'प्रबंधक',
'description' => 'उन्हें आपके Akaunting का पूरा एक्सेस मिलता है, लेकिन वे उपयोगकर्ताओं और ऐप्स को प्रबंधित नहीं कर सकते।',
],
'customer' => [
'name' => 'ग्राहक',
'description' => 'वे क्लाइंट पोर्टल तक पहुंच सकते हैं और आपके द्वारा सेट की गई भुगतान विधियों के माध्यम से अपने चालानों का ऑनलाइन भुगतान कर सकते हैं।',
],
'accountant' => [
'name' => 'मुनीम',
'description' => 'वे चालान, लेनदेन और रिपोर्ट तक पहुंच सकते हैं और जर्नल प्रविष्टियां बना सकते हैं।',
],
'employee' => [
'name' => 'कर्मचारी',
'description' => 'वे व्यय के दावे बना सकते हैं और असाइन किए गए प्रोजेक्ट के लिए समय ट्रैक कर सकते हैं, लेकिन केवल अपनी जानकारी देख सकते हैं।',
],
],
];

View File

@ -19,11 +19,13 @@ return [
'total' => 'कुल',
'item_name' => 'वस्तु का नाम|वस्तुओं के नाम',
'recurring_bills' => 'आवर्ती बिल',
'show_discount' => ':discount% छूट',
'add_discount' => 'छूट जोड़ें',
'discount_desc' => 'पूर्ण योग का',
'payment_made' => 'भुगतान किया गया',
'payment_due' => 'भुगतान राशि',
'amount_due' => 'देय राशि',
'paid' => 'भुगतान किया है|',
@ -39,6 +41,10 @@ return [
'receive_bill' => 'बिल प्राप्त करें',
'make_payment' => 'भुगतान करो',
'form_description' => [
'billing' => 'बिलिंग विवरण आपके बिल में दिखाई देते हैं। बिल दिनांक का उपयोग डैशबोर्ड और रिपोर्ट में किया जाता है। उस दिनांक का चयन करें जिसे आप देय दिनांक के रूप में भुगतान करने की अपेक्षा करते हैं।',
],
'messages' => [
'draft' => 'यह एक <b>ड्राफ्ट</b> बिल है और इसे प्राप्त होने के बाद चार्ट पर प्रतिबिंबित किया जाएगा।',

View File

@ -20,4 +20,7 @@ return [
'unreconcile' => 'क्या आप वाकई चयनित रिकॉर्ड को <b>अवधान</b> करना चाहते हैं?|क्या आप वाकई चयनित रिकॉर्ड को <b>अवधान</b> करना चाहते हैं?',
],
'success' => [
'general' => ':count रिकॉर्ड :type।',
],
];

View File

@ -0,0 +1,11 @@
<?php
return [
'collapse' => 'संक्षिप्त करें',
'form_description' => [
'general' => 'श्रेणी आपको अपने आइटम, आय, व्यय और अन्य रिकॉर्ड को वर्गीकृत करने में मदद करती है।',
],
];

View File

@ -11,4 +11,12 @@ return [
'disable_active' => 'त्रुटि: सक्रिय कंपनी को निष्क्रिय नहीं कर सकते। कृपया, पहले दूसरे पर स्विच करें!',
],
'form_description' => [
'general' => 'यह जानकारी आपके द्वारा बनाए गए रिकॉर्ड में दिखाई देती है।',
'billing' => 'प्रत्येक चालान/बिल में कर संख्या दिखाई देती है। डैशबोर्ड और रिपोर्ट डिफ़ॉल्ट मुद्रा के अंतर्गत दिखाए जाते हैं।',
'address' => 'आपके द्वारा जारी इनवॉइस, बिल और अन्य रिकॉर्ड में पते का उपयोग किया जाएगा।',
],
'skip_step' => 'इस चरण (step) को छोड़ दें',
];

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'अफ़गानिस्तान',
'AX' => 'एलैंड द्वीपसमूह',
'AL' => 'अल्बानिया',
@ -119,6 +120,7 @@ return [
'KZ' => 'कज़ाखस्तान',
'KE' => 'केन्या',
'KI' => 'किरिबाती',
'XK' => 'कोसोवो',
'KW' => 'कुवैत',
'KG' => 'किर्गिज़स्तान',
'LA' => 'लाओस',
@ -250,4 +252,5 @@ return [
'YE' => 'यमन',
'ZM' => 'ज़ाम्बिया',
'ZW' => 'ज़िम्बाब्वे',
];

View File

@ -14,6 +14,14 @@ return [
'position' => 'चिह्न की स्थिति',
'before' => 'राशि से पहले',
'after' => 'राशि के बाद',
]
],
'form_description' => [
'general' => 'डिफ़ॉल्ट मुद्रा का उपयोग डैशबोर्ड और रिपोर्ट पर किया जाता है। अन्य मुद्राओं के लिए, कमजोर मुद्राओं के लिए दर 1 से कम और मजबूत मुद्राओं के लिए 1 से अधिक होनी चाहिए।',
],
'no_currency' => 'कोई मुद्रा नहीं',
'create_currency' => 'एक नई मुद्रा बनाएं और सेटिंग से कभी भी संपादित करें।',
'new_currency' => 'नई मुद्रा',
];

View File

@ -2,11 +2,29 @@
return [
'can_login' => 'लॉग इन कर सकते हैं?',
'user_created' => 'उपयोगकर्ता बनाया गया',
'can_login' => 'लॉग इन कर सकते हैं?',
'can_login_description' => 'इस उपयोगकर्ता को क्लाइंट पोर्टल में लॉग इन करने के लिए आमंत्रण भेजें।',
'user_created' => 'उपयोगकर्ता बनाया गया',
'client_portal_description' => 'ग्राहक पोर्टल एक ऐसा वातावरण है जहां आप अपने ग्राहकों के साथ लेनदेन और चालान साझा कर सकते हैं, जहां वे आपके व्यवसाय के साथ अपने संबंधों को ट्रैक करते हैं और भुगतान करते हैं, और जब चाहें लॉग इन करते हैं; उनके पासवर्ड के साथ',
'error' => [
'email' => 'ईमेल पहले ही ली जा चुकी हैं।',
'email' => 'ईमेल पहले ही ली जा चुकी हैं।',
],
'client_portal_text' => [
'can' => 'यह ग्राहक क्लाइंट पोर्टल में लॉग इन कर सकता है।',
'cant' => 'यह ग्राहक क्लाइंट पोर्टल में लॉग इन नहीं कर सकता है।',
],
'form_description' => [
'general' => 'आपके क्लाइंट की संपर्क जानकारी इनवॉइस और उनकी प्रोफाइल में दिखाई देगी। आप नीचे दिए गए बॉक्स को चेक करके अपने क्लाइंट को आपके द्वारा भेजे गए इनवॉइस को ट्रैक करने के लिए लॉगिन करने की अनुमति भी दे सकते हैं।',
'billing' => 'ग्राहक को जारी किए गए प्रत्येक चालान में कर संख्या दिखाई देती है। चयनित मुद्रा इस ग्राहक के लिए डिफ़ॉल्ट मुद्रा बन जाती है।',
'address' => 'इनवॉइस के लिए पता आवश्यक है, इसलिए आपको अपने ग्राहक के लिए बिलिंग पता विवरण जोड़ना होगा।',
],
'no_records' => [
'invoices' => 'इस ग्राहक के लिए अभी तक कोई चालान नहीं है। अब एक नया बनाएँ।',
'transactions' => 'इस ग्राहक के लिए अभी तक कोई लेन-देन नहीं हुआ है। अब एक नया बनाएँ।',
],
];

View File

@ -8,4 +8,8 @@ return [
'disable_last' => 'त्रुटि: अंतिम डैशबोर्ड को निष्क्रिय नहीं कर सकते। कृपया, पहले एक नया बनाएं!',
],
'form_description' => [
'general' => 'उन उपयोगकर्ताओं का चयन करें जिनकी आप नए डैशबोर्ड तक पहुंच चाहते हैं।',
],
];

View File

@ -2,53 +2,85 @@
return [
'edit_columns' => 'कॉलम संपादित करें',
'empty_items' => 'आपने कोई आइटम नहीं जोड़ा है।',
'edit_columns' => 'कॉलम संपादित करें',
'empty_items' => 'आपने कोई आइटम नहीं जोड़ा है।',
'grand_total' => 'कुल योग',
'accept_payment_online' => 'ऑनलाइन भुगतान स्वीकार करें',
'transaction' => ':account का उपयोग करके :amount का भुगतान किया गया था।',
'billing' => 'बिलिंग',
'advanced' => 'अग्रिम',
'invoice_detail' => [
'marked' => '<b>आपने</b> इस चालान को इस रूप में चिह्नित किया है ',
'services' => 'सेवाएं',
'another_item' => 'एक और आइटम',
'another_description' => 'और एक और विवरण',
'more_item' => '+:count और आइटम',
],
'statuses' => [
'draft' => 'ड्राफ्ट',
'sent' => 'भेजे गए',
'expired' => 'समय-सीमा समाप्त',
'viewed' => 'देखा गया',
'approved' => 'स्वीकृत',
'received' => 'प्राप्त हुआ',
'refused' => 'मना कर दिया',
'restored' => 'पुनः स्थापित किए गए',
'reversed' => 'उल्टा',
'partial' => 'आंशिक',
'paid' => 'भुगतान किया है',
'pending' => 'अपूर्ण',
'invoiced' => 'चालान की गई',
'overdue' => 'समय पर भुगतान नहीं किया',
'unpaid' => 'भुगतान नहीं किया है',
'cancelled' => 'रद्द कर दिया',
'voided' => 'अमान्य कर',
'completed' => 'पूरा हो गया',
'shipped' => 'भेजा हुआ',
'refunded' => 'वापसी की गई है',
'failed' => 'विफल रहा',
'denied' => 'निषेध',
'processed' => 'प्रक्रिया की गई',
'open' => 'खुला',
'closed' => 'बंद कर दिया',
'billed' => 'बिल किया हुआ ',
'delivered' => 'पहुंचा दिया',
'returned' => 'लौटाया हुआ',
'drawn' => 'तैयार',
'not_billed' => 'बिल नहीं दिया',
'issued' => 'जारी किए गए',
'not_invoiced' => 'चालान नहीं हुआ',
'confirmed' => 'पुष्टि कीया गया',
'not_confirmed' => 'पुष्टि नहीं',
'draft' => 'ड्राफ्ट',
'sent' => 'भेजे गए',
'expired' => 'समय-सीमा समाप्त',
'viewed' => 'देखा गया',
'approved' => 'स्वीकृत',
'received' => 'प्राप्त हुआ',
'refused' => 'मना कर दिया',
'restored' => 'पुनः स्थापित किए गए',
'reversed' => 'उल्टा',
'partial' => 'आंशिक',
'paid' => 'भुगतान किया है',
'pending' => 'अपूर्ण',
'invoiced' => 'चालान की गई',
'overdue' => 'समय पर भुगतान नहीं किया',
'unpaid' => 'भुगतान नहीं किया है',
'cancelled' => 'रद्द कर दिया',
'voided' => 'अमान्य कर',
'completed' => 'पूरा हो गया',
'shipped' => 'भेजा हुआ',
'refunded' => 'वापसी की गई है',
'failed' => 'विफल रहा',
'denied' => 'निषेध',
'processed' => 'प्रक्रिया की गई',
'open' => 'खुला',
'closed' => 'बंद कर दिया',
'billed' => 'बिल किया हुआ ',
'delivered' => 'पहुंचा दिया',
'returned' => 'लौटाया हुआ',
'drawn' => 'तैयार',
'not_billed' => 'बिल नहीं दिया',
'issued' => 'जारी किए गए',
'not_invoiced' => 'चालान नहीं हुआ',
'confirmed' => 'पुष्टि कीया गया',
'not_confirmed' => 'पुष्टि नहीं',
'active' => 'सक्रिय',
'ended' => 'समाप्त',
],
'form_description' => [
'companies' => 'अपनी कंपनी का पता, लोगो और अन्य जानकारी बदलें।',
'billing' => 'आपके दस्तावेज़ में बिलिंग विवरण दिखाई देता है।',
'advanced' => 'श्रेणी का चयन करें, पाद लेख जोड़ें या संपादित करें, और अपनी :type में अनुलग्नक(attachment) जोड़ें',
'attachment' => 'इस :type से जुड़ी फ़ाइलें डाउनलोड करें',
],
'messages' => [
'email_sent' => ':type ईमेल भेजा गया है!',
'marked_as' => ':type :status के रूप में चिह्नित !',
'marked_sent' => ':type भेजे गए के रूप में मार्क किया गया!',
'marked_paid' => ':type भुगतान के रूप में मार्क किया गया!',
'marked_viewed' => ':type देखे गए के रूप में मार्क किया गया!',
'marked_cancelled' => ':type रद्द के रूप में मार्क किया गया!',
'marked_received' => ':type स्वीकार किये के रूप में मार्क किया गया!',
'email_sent' => ':type ईमेल भेजा गया है!',
'marked_as' => ':type :status के रूप में चिह्नित !',
'marked_sent' => ':type भेजे गए के रूप में मार्क किया गया!',
'marked_paid' => ':type भुगतान के रूप में मार्क किया गया!',
'marked_viewed' => ':type देखे गए के रूप में मार्क किया गया!',
'marked_cancelled' => ':type रद्द के रूप में मार्क किया गया!',
'marked_received' => ':type स्वीकार किये के रूप में मार्क किया गया!',
],
'recurring' => [
'auto_generated' => 'स्व - उत्पन्न',
'tooltip' => [
'document_date' => ':type की तारीख स्वचालित रूप से :type अनुसूची और आवृत्ति के आधार पर असाइन की जाएगी।',
'document_number' => 'प्रत्येक आवर्ती :type उत्पन्न होने पर :type संख्या स्वचालित रूप से असाइन की जाएगी।',
],
],
];

View File

@ -6,5 +6,8 @@ return [
'powered' => 'Akaunting द्वारा संचालित',
'link' => 'https://akaunting.com',
'software' => 'मुफ्त लेखांकन सॉफ्टवेयर',
'powered_by' => 'द्वारा संचालित',
'tag_line' => 'Akaunting के साथ चालान भेजें, खर्चों को ट्रैक करें और लेखांकन को स्वचालित करें। :get_started_url',
'get_started' => 'शुरू करें',
];

View File

@ -25,4 +25,9 @@ return [
'docs_link' => 'https://akaunting.com/docs',
'support_link' => 'https://akaunting.com/support',
'favorite' => [
'added_favorite' => 'पसंदीदा में जोड़ा',
'add_favorite' => 'पसंदीदा में जोड़े',
],
];

View File

@ -44,4 +44,8 @@ return [
'connection' => 'त्रुटि: डेटाबेस से कनेक्ट नहीं हो सका! कृपया, सुनिश्चित करें कि विवरण सही हैं।',
],
'update' => [
'core' => 'Akaunting का नया संस्करण उपलब्ध है! कृपया, अपने इंस्टालेशन को अपडेट करें।',
'module' => ':module नया संस्करण उपलब्ध है! कृपया, अपने इंस्टालेशन को अपडेट करें।',
],
];

View File

@ -2,8 +2,16 @@
return [
'sale_price' => 'विक्रय कीमत',
'purchase_price' => 'खरीद कीमत',
'enter_item_description' => 'वस्तु का विवरण दर्ज करें',
'sale_price' => 'विक्रय कीमत',
'purchase_price' => 'खरीद कीमत',
'enter_item_description' => 'वस्तु का विवरण दर्ज करें',
'billing' => 'बिलिंग',
'sale_information' => 'बिक्री की जानकारी',
'purchase_information' => 'खऱीदी की जानकारी ',
'form_description' => [
'general' => 'अपनी रिपोर्ट को अधिक विस्तृत बनाने के लिए एक श्रेणी चुनें। जब किसी चलान या बिल में आइटम का चयन किया जाता है तो विवरण पॉप्युलेट हो जाएगा।',
'billing' => 'बिक्री की जानकारी का उपयोग चालान में किया जाता है, और खरीद जानकारी का उपयोग बिलों में किया जाता है। इनवॉइस और बिल दोनों पर टैक्स लगेगा।',
],
];

View File

@ -4,17 +4,45 @@ return [
'api_key' => 'API कुंजी',
'my_apps' => 'मेरी एप्प्स',
'checkout' => 'चेक आउट',
'documentation' => 'प्रलेखन',
'home' => 'होम',
'tiles' => 'सूची',
'item' => 'ऐप विवरण',
'pre_sale' => 'पूर्व बिक्री',
'no_apps' => 'अपने व्यवसाय के लिए सबसे अधिक पेशेवर ऐप्स देखें और उन्हें सर्वोत्तम मूल्य पर प्राप्त करें।',
'learn_more' => 'और अधिक जानें',
'see_apps' => 'ऐप्स देखें',
'no_apps_marketing' => 'अपना व्यवसाय पेशेवर रूप से करें',
'premium_banner' => 'आज ही प्रीमियम पर स्विच करें',
'see_all' => 'सभी देखें',
'see_all_type' => 'सभी :type देखें',
'saving' => 'आप साल में :saved-price बचाते हैं!',
'top_paid' => 'टॉप पेड',
'new' => 'नया',
'top_free' => 'टॉप फ़्री',
'free' => 'फ़्री',
'monthly' => 'मासिक',
'yearly' => 'वार्षिक',
'yearly_pricing' => 'वार्षिक मूल्य निर्धारण',
'monthly_price' => ' :price से',
'per_month' => 'प्रति माह',
'billed_yearly' => 'वार्षिक बिल किया गया',
'billed_monthly' => 'मासिक बिल किया गया',
'save_year' => 'आप सालाना <strong>:price</strong> बचाते हैं!',
'if_paid_year' => 'या <strong>:price/mo</strong> अगर सालाना भुगतान किया जाता है',
'information_monthly' => 'यह विकल्प केवल <strong>क्लाउड सेवा</strong> के लिए मान्य है',
'install' => 'इंस्टॉल करें',
'buy_now' => 'अभी खरीदें',
'get_api_key' => 'अपनी एपीआई कुंजी प्राप्त करने के लिए यहां <a href=":url" target="_blank">क्लिक</a> करें।',
'no_apps' => 'इस श्रेणी में अभी तक कोई एप्लिकेशन नहीं हैं।',
'become_developer' => 'क्या आप एक डेवलपर हैं? <a href=":url" target="_blank">यहां</a> आप सीख सकते हैं कि ऐप कैसे बनाएं और आज बेचना शुरू करें!',
'recommended_apps' => 'अनुशंसित ऐप्स',
'can_not_install' => 'मासिक सदस्यता केवल क्लाउड सेवा पर उपलब्ध है। <a href="https://akaunting.com/upgrad-to-yearly" target="_blank">और जानें।</a>',
'apps_managing' => 'सबसे ट्रेंडिंग ऐप्स देखें और आज ही पेशेवर रूप से अपने वित्त का प्रबंधन शुरू करें।',
'ready' => 'तैयार',
'popular_this_week' => 'इस सप्ताह में लोकप्रिय',
'about' => 'के बारे में',
@ -25,13 +53,22 @@ return [
'view' => 'देखें',
'back' => 'पीछे',
'use_app' => 'अभी ऐप का उपयोग करना शुरू करें',
'see_more' => 'और देखें',
'installed' => ':module इंस्टॉल',
'uninstalled' => ':module अनइंस्टॉल',
'updated_2' => ':module अपडेट किया गया',
'enabled' => ':module सक्रिय',
'disabled' => ':module निष्क्रिय',
'per_month' => 'प्रति माह',
'pre_sale_uninstall' => 'प्री-सेल के लिए रियायती मूल्य से न चूकें!',
'pre_sale_install' => 'आपके पास प्री-सेल की समाप्ति वाला ऐप होगा।',
'tab' => [
'features' => 'विशेषताएं',
'screenshots' => 'स्क्रीनशॉट्स',
'installation' => 'स्थापना',
'faq' => 'सामान्य प्रश्न',
'changelog' => 'चेंज लोग',
@ -49,6 +86,7 @@ return [
],
'errors' => [
'purchase' => 'आपको :module! खरीदना/नवीनीकरण करना चाहिए !',
'download' => ':module डाउनलोड करने में सक्षम नहीं है।',
'zip' => ':module ज़िप फ़ाइल बनाने में सक्षम नहीं है।',
'unzip' => ':module अनज़िप करने में सक्षम नहीं है।',

View File

@ -14,5 +14,9 @@ return [
'cleared_amount' => 'स्पष्ट राशि',
'deposit' => 'जमा',
'withdrawal' => 'निकासी',
'reconciled_amount' => 'मेल मिलाप',
'in_progress' => 'प्रगति में',
'save_draft' => 'ड्राफ्ट के रूप में सेव करें',
'irreconcilable' => 'असंगत',
];

View File

@ -15,6 +15,27 @@ return [
'weeks' => 'सप्ताह()',
'months' => 'महीना(s)',
'years' => 'वर्ष(s)',
'frequency' => 'आवृत्ति',
'duration' => 'अवधि',
'last_issued' => 'अंतिम बार जारी किए गए',
'after' => 'के बाद',
'on' => 'चालू',
'never' => 'कभी नहीं',
'ends_after' => ':times बार के बाद समाप्त होता है',
'ends_never' => 'कभी समाप्त नहीं होती',
'ends_date' => ':date को समाप्त होगा',
'next_date' => 'अगला :date को',
'end' => 'अंत आवर्ती',
'child' => ':url स्वचालित रूप से :date को बनाया गया था',
'message' => 'यह एक आवर्ती :type है और अगला :type :date को स्वचालित रूप से उत्पन्न हो जाएगा',
'message_parent' => 'यह :type स्वचालित रूप से :link से उत्पन्न हुआ था',
'frequency_type' => 'इस :type को दोहराएं',
'limit_date' => 'पर पहली :type बनाएं',
'limit_middle' => 'और अंत',
'form_description' => [
'schedule' => 'यह सुनिश्चित करने के लिए कि आपका ग्राहक सही दिन पर आपकी :type प्राप्त करता है, शर्तें और प्रारंभ/समाप्ति समय चुनें।',
],
];

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afganistan',
'AX' => 'Kepulauan Aland',
'AL' => 'Albania',
@ -119,6 +120,7 @@ return [
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'XK' => 'KOSOVO',
'KW' => 'Kuwait',
'KG' => 'Kirgizstan',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Yaman',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Rediģēt kolonnas',
'empty_items' => 'Jūs neesat pievienojis nevienu vienumu.',
'edit_columns' => 'Rediģēt kolonnas',
'empty_items' => 'Jūs neesat pievienojis nevienu vienumu.',
'grand_total' => 'Kopsumma',
'accept_payment_online' => 'Pieņemt maksājumus tiešsaistē',
'transaction' => 'Maksājums par :amount tika veikts, izmantojot :account',
'billing' => 'Norēķini',
'advanced' => 'Papildu',
'invoice_detail' => [
'marked' => '<b> Jūs </b> atzīmējāt šo rēķinu kā',
'services' => 'Pakalpojumi',
'another_item' => 'Cits vienums',
'another_description' => 'un cits apraksts',
'more_item' => '+:count vairāk preču',
'invoice_detail' => [
'marked' => '<b> Jūs </b> atzīmējāt šo rēķinu kā',
'services' => 'Pakalpojumi',
'another_item' => 'Cits vienums',
'another_description' => 'un cits apraksts',
'more_item' => '+:count vairāk preču',
],
'grand_total' => 'Kopsumma',
'accept_payment_online' => 'Pieņemt maksājumus tiešsaistē',
'transaction' => 'Maksājums par :amount tika veikts, izmantojot :account',
'billing' => 'Norēķini',
'advanced' => 'Papildu',
'statuses' => [
'draft' => 'Melnraksts',
'sent' => 'Nosūtīts',
'expired' => 'Termiņš beidzies',
'viewed' => 'Skatīts',
'approved' => 'Apstiprināts',
'received' => 'Saņemts',
'refused' => 'Atteikts',
'restored' => 'Atjaunots',
'reversed' => 'Reverss',
'partial' => 'Daļējs',
'paid' => 'Samaksāts',
'pending' => 'Gaida',
'invoiced' => 'Izrakstīts',
'overdue' => 'Nokavēts',
'unpaid' => 'Neapmaksāts',
'cancelled' => 'Atcelts',
'voided' => 'Anulēts',
'completed' => 'Pabeigts',
'shipped' => 'Nosūtīts',
'refunded' => 'Atmaksāts',
'failed' => 'Neizdevās',
'denied' => 'Atteikts',
'processed' => 'Apstrādāts',
'open' => 'Atvērums',
'closed' => 'Slēgts',
'billed' => 'Izrakstīts',
'delivered' => 'Piegādāts',
'returned' => 'Atgriezts',
'drawn' => 'Uzzīmēts',
'not_billed' => 'Nav izrakstīts rēķins',
'issued' => 'Izdots',
'not_invoiced' => 'Nav iekļauts rēķinā',
'confirmed' => 'Apstiprināts',
'not_confirmed' => 'Nav apstiprināts',
'active' => 'Aktīvs',
'ended' => 'Beidzies',
'draft' => 'Melnraksts',
'sent' => 'Nosūtīts',
'expired' => 'Termiņš beidzies',
'viewed' => 'Skatīts',
'approved' => 'Apstiprināts',
'received' => 'Saņemts',
'refused' => 'Atteikts',
'restored' => 'Atjaunots',
'reversed' => 'Reverss',
'partial' => 'Daļējs',
'paid' => 'Samaksāts',
'pending' => 'Gaida',
'invoiced' => 'Izrakstīts',
'overdue' => 'Nokavēts',
'unpaid' => 'Neapmaksāts',
'cancelled' => 'Atcelts',
'voided' => 'Anulēts',
'completed' => 'Pabeigts',
'shipped' => 'Nosūtīts',
'refunded' => 'Atmaksāts',
'failed' => 'Neizdevās',
'denied' => 'Atteikts',
'processed' => 'Apstrādāts',
'open' => 'Atvērums',
'closed' => 'Slēgts',
'billed' => 'Izrakstīts',
'delivered' => 'Piegādāts',
'returned' => 'Atgriezts',
'drawn' => 'Uzzīmēts',
'not_billed' => 'Nav izrakstīts rēķins',
'issued' => 'Izdots',
'not_invoiced' => 'Nav iekļauts rēķinā',
'confirmed' => 'Apstiprināts',
'not_confirmed' => 'Nav apstiprināts',
'active' => 'Aktīvs',
'ended' => 'Beidzies',
],
'form_description' => [
'companies' => 'Mainiet sava uzņēmuma adresi, logotipu un citu informāciju.',
'billing' => 'Norēķinu informācija tiek parādīta jūsu dokumentā.',
'advanced' => 'Atlasiet kategoriju, pievienojiet vai rediģējiet kājeni un pievienojiet pielikumus savam :type.',
'attachment' => 'Lejupielādējiet šim :type pievienotos failus',
'companies' => 'Mainiet sava uzņēmuma adresi, logotipu un citu informāciju.',
'billing' => 'Norēķinu informācija tiek parādīta jūsu dokumentā.',
'advanced' => 'Atlasiet kategoriju, pievienojiet vai rediģējiet kājeni un pievienojiet pielikumus savam :type.',
'attachment' => 'Lejupielādējiet šim :type pievienotos failus',
],
'messages' => [
'email_sent' => ':veids e-pasts nosūtīts veiksmīgi!',
'marked_as' => ':veids atzīmēts kā :status!',
'marked_sent' => ':veids atzīmēts kā nosūtīts!',
'marked_paid' => ':veids atzīmēts kā samaksāts!',
'marked_viewed' => ':type atzīmēts kā skatīts!',
'marked_cancelled' => ':veids atzīmēts kā atcelts!',
'marked_received' => ':veids atzīmēts kā saņemts!',
'email_sent' => ':veids e-pasts nosūtīts veiksmīgi!',
'marked_as' => ':veids atzīmēts kā :status!',
'marked_sent' => ':veids atzīmēts kā nosūtīts!',
'marked_paid' => ':veids atzīmēts kā samaksāts!',
'marked_viewed' => ':type atzīmēts kā skatīts!',
'marked_cancelled' => ':veids atzīmēts kā atcelts!',
'marked_received' => ':veids atzīmēts kā saņemts!',
],
'recurring' => [
'auto_generated' => 'Automātiski ģenerēts',
'auto_generated' => 'Automātiski ģenerēts',
'tooltip' => [
'document_date' => ':type datums tiks automātiski piešķirts, pamatojoties uz :type grafiku un biežumu.',

View File

@ -4,7 +4,6 @@ return [
'dashboards' => 'Informācijas panelis',
'items' => 'Preces|Preces',
'incomes' => 'Ienākumi|Ienākumi',
'invoices' => 'Rēķini|Rēķini',
'recurring_invoices' => 'Atkārtots rēķins|Atkārtoti rēķini',
'customers' => 'Pircēji|Pircēji',
@ -70,6 +69,7 @@ return [
'invitations' => 'Ielūgums|Ielūgumi',
'attachments' => 'Pielikums|Pielikumi',
'histories' => 'Vēsture|Vēstures',
'your_notifications' => 'Jūsu paziņojums|Jūsu paziņojumi',
'welcome' => 'Laipni lūdzam',
'banking' => 'Banka',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'Nav sakritību datos',
'clear_cache' => 'Notīrīt kešatmiņu',
'go_to_dashboard' => 'Doties uz galveno paneli',
'create_first_invoice' => 'Izveidojiet savu pirmo rēķinu',
'is' => 'ir',
'isnot' => 'nav',
'recurring_and_more' => 'Atkārtojas un vairāk..',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Nosūtīt kopiju man uz :email',
'connect' => 'Pieslēgties',
'assign' => 'Piešķirt',
'your_notifications' => 'Jūsu paziņojums|Jūsu paziņojumi',
'new' => 'Jauns',
'new_more' => 'Jauns...',
'number' => 'Numurs',

View File

@ -2,9 +2,179 @@
return [
'whoops' => 'Whoops!',
'whoops' => 'Klau!',
'hello' => 'Sveicināts!',
'salutation' => 'Sveicieniem,<br> : company_name',
'subcopy' => 'Ja rodas problēmas, noklikšķinot uz ": tekstu" pogu, nokopējiet šo URL un ielīmējiet to savā web pārlūkprogrammā: [: url](:url)',
'salutation' => 'Sveicināti,<br>:uzņēmuma nosaukums',
'subcopy' => 'Ja rodas problēmas, noklikšķinot uz ": tekstu" pogu, nokopējiet šo URL un ielīmējiet to savā web pārlūkprogrammā: [:url](:url)',
'mark_read' => 'Atzīmēt kā izlasītu',
'mark_read_all' => 'Atzīmēt visu kā izlasītu',
'empty' => 'Oho, nav jaunu paziņojumu!',
'update' => [
'mail' => [
'title' => '⚠️ Atjaunināšana neizdevās :domain',
'description' => 'Šāda atjaunināšana no :alias :current_version uz :new_version neizdevās <strong>:solis</strong> solis ar šādu ziņojumu: :error_message',
],
'slack' => [
'description' => 'Atjaunināšana neizdevās :domain',
],
],
'import' => [
'completed' => [
'title' => 'Importēšana pabeigta',
'description' => 'Importēšana ir pabeigta, un ieraksti ir pieejami panelī.',
],
'failed' => [
'title' => 'Importēšana neizdevās',
'description' => 'Failu nevar importēt šādu problēmu dēļ:',
],
],
'export' => [
'completed' => [
'title' => 'Eksportēšana ir pabeigta',
'description' => 'Eksportēšanas fails ir gatavs lejupielādei no šīs saites:',
],
'failed' => [
'title' => 'Eksportēšana neizdevās',
'description' => 'Nevar izveidot eksportēšanas failu šādas problēmas dēļ:',
],
],
'menu' => [
'export_completed' => [
'title' => 'Eksportēšana ir pabeigta',
'description' => 'Jūsu <strong>:type</strong> eksporta fails ir gatavs <a href=":url" target="_blank"><strong>lejupielādei</strong></a>.',
],
'export_failed' => [
'title' => 'Eksportēšana neizdevās',
'description' => 'Nevar izveidot eksporta failu šādas problēmas dēļ: :issues',
],
'import_completed' => [
'title' => 'Importēšana pabeigta',
'description' => 'Jūsu <strong>:type</strong> līnijas <strong>:count</strong> dati ir veiksmīgi importēti.',
],
'new_apps' => [
'title' => 'Jauna lietotne',
'description' => '<strong>:name</strong> lietotne ir beigusies. Jūs varat <a href=":url">nospiežot šeit</a> redzēt detaļas.',
],
'invoice_new_customer' => [
'title' => 'Jauns rēķins',
'description' => '<strong>:invoice_number</strong>rēķins ir izveidots. Jūs varat <a href=":invoice_portal_link">noklikšķiniet šeit</a> lai redzētu detalizētu informāciju un turpinātu maksājumu.',
],
'invoice_remind_customer' => [
'title' => 'Nokavēts rēķins',
'description' => '<strong>:invoice_number</strong> rēķins bija jāsamaksā <strong>:invoice_due_date</strong>. Varat <a href=":invoice_portal_link">noklikšķināt šeit</a> lai skatītu detalizētu informāciju un turpinātu maksājumu.',
],
'invoice_remind_admin' => [
'title' => 'Nokavēts rēķins',
'description' => '<strong>:invoice_number</strong> rēķins bija jāsamaksā<strong>:invoice_due_date</strong>. Varat <a href=":invoice_admin_link">noklikšķināt šeit</a> lai skatītu detalizētu informāciju.',
],
'invoice_recur_customer' => [
'title' => 'Jauns periodisks rēķins',
'description' => 'Rēķins <strong>:invoice_number</strong> tiek izveidots, pamatojoties uz jūsu periodiskumu. Varat <a href=":invoice_portal_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju un turpinātu maksājumu.',
],
'invoice_recur_admin' => [
'title' => 'Jauns periodisks rēķins',
'description' => '<strong>:invoice_number</strong> rēķins tiek izveidots, pamatojoties uz <strong>:customer_name</strong> periodiskumu. Varat <a href=":invoice_admin_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'invoice_view_admin' => [
'title' => 'Rēķins skatīts',
'description' => '<strong>:customer_name</strong> ir skatījis <strong>:invoice_number</strong> rēķinu. Varat <a href=":invoice_admin_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'revenue_new_customer' => [
'title' => 'Saņemts maksājums',
'description' => 'Paldies par apmaksu rēķinam <strong>:invoice_number</strong>. Varat <a href=":invoice_portal_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'invoice_payment_customer' => [
'title' => 'Saņemts maksājums',
'description' => 'Paldies par apmaksu rēķinam <strong>:invoice_number</strong>. Varat <a href=":invoice_portal_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'invoice_payment_admin' => [
'title' => 'Saņemts maksājums',
'description' => ':customer_name reģistrēts maksājums par rēķinu<strong>:invoice_number</strong>. Varat <a href=":invoice_admin_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'bill_remind_admin' => [
'title' => 'Rēķins Nokavēts ',
'description' => '<strong>:bill_number</strong> rēķins bija jāsamaksā <strong>:bill_demis_date</strong>. Varat <a href=":bill_admin_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
'bill_recur_admin' => [
'title' => 'Jauns periodisks rēķins',
'description' => 'Rēķins <strong>:bill_number</strong> tiek izveidots, pamatojoties uz <strong>:vendor_name</strong> periodiskumu. Varat <a href=":bill_admin_link">noklikšķināt šeit</a>, lai skatītu detalizētu informāciju.',
],
],
'messages' => [
'mark_read' => ':veids ir izlasīts šis paziņojums!',
'mark_read_all' => ':veids ir izlasīti visi paziņojumi!',
],
];

View File

@ -167,7 +167,7 @@ return [
],
'scheduling' => [
'name' => 'Ieplānotšana',
'name' => 'Plānošana',
'description' => 'Automātiskie atgādinātāji un komandas atkārtojumu veikšanai',
'search_keywords' => 'automātisks, atgādinājums, atkārtots, cron, komanda',
'send_invoice' => 'Sūtīt rēķinu atgādinājumus',

View File

@ -1,6 +1,7 @@
<?php
return [
'AF' => 'Afeganistão',
'AX' => 'Ilhas Aland',
'AL' => 'Albânia',
@ -119,6 +120,7 @@ return [
'KZ' => 'Cazaquistão',
'KE' => 'Quênia',
'KI' => 'Quiribati',
'XK' => 'Kosovo',
'KW' => 'Kuwait',
'KG' => 'Quirguistão',
'LA' => 'Laos',
@ -250,4 +252,5 @@ return [
'YE' => 'Iêmen',
'ZM' => 'Zâmbia',
'ZW' => 'Zimbábue',
];

View File

@ -2,84 +2,80 @@
return [
'edit_columns' => 'Editar colunas',
'empty_items' => 'Você não adicionou nenhum item.',
'edit_columns' => 'Editar colunas',
'empty_items' => 'Você não adicionou nenhum item.',
'grand_total' => 'Total Geral',
'accept_payment_online' => 'Aceite Pagamentos Online',
'transaction' => 'Um pagamento para :amount foi feito usando :account.',
'billing' => 'Cobrança',
'advanced' => 'Avançado',
'invoice_detail' => [
'marked' => '<b> Você </b> marcou esta fatura como',
'services' => 'Serviços',
'another_item' => 'Outro item',
'another_description' => 'e outra descrição',
'more_item' => '+:count mais itens',
'invoice_detail' => [
'marked' => '<b> Você </b> marcou esta fatura como',
'services' => 'Serviços',
'another_item' => 'Outro item',
'another_description' => 'e outra descrição',
'more_item' => '+:count mais itens',
],
'grand_total' => 'Total Geral',
'accept_payment_online' => 'Aceite Pagamentos Online',
'transaction' => 'Um pagamento para :amount foi feito usando :account.',
'billing' => 'Cobrança',
'advanced' => 'Avançado',
'statuses' => [
'draft' => 'Rascunho',
'sent' => 'Enviado',
'expired' => 'Expirado',
'viewed' => 'Visualizado',
'approved' => 'Aprovado',
'received' => 'Recebido',
'refused' => 'Recusado',
'restored' => 'Restaurado',
'reversed' => 'Revertido',
'partial' => 'Parcial',
'paid' => 'Pago',
'pending' => 'Pendente',
'invoiced' => 'Faturado',
'overdue' => 'Vencido',
'unpaid' => 'Não Pago',
'cancelled' => 'Cancelado',
'voided' => 'Anulado',
'completed' => 'Concluído',
'shipped' => 'Enviado',
'refunded' => 'Reembolsado',
'failed' => 'Falhou',
'denied' => 'Negado',
'processed' => 'Processado',
'open' => 'Aberto',
'closed' => 'Fechado',
'billed' => 'Faturado',
'delivered' => 'Entregue',
'returned' => 'Devolvido',
'drawn' => 'Rascunho',
'not_billed' => 'Não faturado',
'issued' => 'Emitido',
'not_invoiced' => 'Não faturado',
'confirmed' => 'Confirmado',
'not_confirmed' => 'Não confirmado',
'active' => 'Ativo',
'ended' => 'Finalizado',
'draft' => 'Rascunho',
'sent' => 'Enviado',
'expired' => 'Expirado',
'viewed' => 'Visualizado',
'approved' => 'Aprovado',
'received' => 'Recebido',
'refused' => 'Recusado',
'restored' => 'Restaurado',
'reversed' => 'Revertido',
'partial' => 'Parcial',
'paid' => 'Pago',
'pending' => 'Pendente',
'invoiced' => 'Faturado',
'overdue' => 'Vencido',
'unpaid' => 'Não Pago',
'cancelled' => 'Cancelado',
'voided' => 'Anulado',
'completed' => 'Concluído',
'shipped' => 'Enviado',
'refunded' => 'Reembolsado',
'failed' => 'Falhou',
'denied' => 'Negado',
'processed' => 'Processado',
'open' => 'Aberto',
'closed' => 'Fechado',
'billed' => 'Faturado',
'delivered' => 'Entregue',
'returned' => 'Devolvido',
'drawn' => 'Rascunho',
'not_billed' => 'Não faturado',
'issued' => 'Emitido',
'not_invoiced' => 'Não faturado',
'confirmed' => 'Confirmado',
'not_confirmed' => 'Não confirmado',
'active' => 'Ativo',
'ended' => 'Finalizado',
],
'form_description' => [
'companies' => 'Altere o endereço, logotipo, e outras informações para sua empresa.',
'billing' => 'Detalhes de faturamento aparecem no seu documento.',
'advanced' => 'Selecione a categoria, adicione ou edite o rodapé e adicione anexos ao seu :type.',
'attachment' => 'Baixar os arquivos anexados a esse :type',
'companies' => 'Altere o endereço, logotipo, e outras informações para sua empresa.',
'billing' => 'Detalhes de faturamento aparecem no seu documento.',
'advanced' => 'Selecione a categoria, adicione ou edite o rodapé e adicione anexos ao seu :type.',
'attachment' => 'Baixar os arquivos anexados a esse :type',
],
'messages' => [
'email_sent' => 'E-mail :type foi enviado!',
'marked_as' => ':type marcado como :status!',
'marked_sent' => ':type marcado como enviado!',
'marked_paid' => ':type marcado como pago!',
'marked_viewed' => ':type marcado como visualizado!',
'marked_cancelled' => ':type marcado como cancelado!',
'marked_received' => ':type marcado como recebido!',
'email_sent' => 'E-mail :type foi enviado!',
'marked_as' => ':type marcado como :status!',
'marked_sent' => ':type marcado como enviado!',
'marked_paid' => ':type marcado como pago!',
'marked_viewed' => ':type marcado como visualizado!',
'marked_cancelled' => ':type marcado como cancelado!',
'marked_received' => ':type marcado como recebido!',
],
'recurring' => [
'auto_generated' => 'Gerado automaticamente',
'auto_generated' => 'Gerado automaticamente',
'tooltip' => [
'document_date' => 'A data :type será automaticamente atribuída com base no agendamento e frequência :type.',

View File

@ -4,11 +4,10 @@ return [
'dashboards' => 'Painel | Painéis',
'items' => 'Item | Itens',
'incomes' => 'Renda|Rendas',
'invoices' => 'Fatura|Faturas',
'recurring_invoices' => 'Fatura recorrente|Faturas recorrentes',
'customers' => 'Cliente|Clientes',
'incomes' => 'Receita|Receitas',
'incomes' => 'Renda|Rendas',
'recurring_incomes' => 'Receita recorrente|Receitas recorrentes',
'expenses' => 'Despesa|Despesas',
'recurring_expenses' => 'Despesa recorrente|Despesas recorrentes',
@ -70,6 +69,7 @@ return [
'invitations' => 'Convite|Convites',
'attachments' => 'Anexo|Anexos',
'histories' => 'Histórico|Históricos',
'your_notifications' => 'Sua notificação|Suas notificações',
'welcome' => 'Bem-vindo',
'banking' => 'Banco',
@ -184,6 +184,7 @@ return [
'no_matching_data' => 'Não há dados correspondentes',
'clear_cache' => 'Limpar o Cache',
'go_to_dashboard' => 'Ir para o Painel',
'create_first_invoice' => 'Crie sua primeira fatura',
'is' => 'é',
'isnot' => 'não é',
'recurring_and_more' => 'Recorrente e mais..',
@ -199,7 +200,6 @@ return [
'email_send_me' => 'Enviar uma cópia para mim mesmo em :email',
'connect' => 'Conectar',
'assign' => 'Atribuir',
'your_notifications' => 'Sua notificação|Suas notificações',
'new' => 'Novo',
'new_more' => 'Novo ...',
'number' => 'Número',

View File

@ -291,11 +291,17 @@
<x-slot name="first">
{{ $item->contact->name }}
</x-slot>
<x-slot name="second">
<x-slot name="second" class="w-20 font-normal group">
@if ($item->document)
<div data-tooltip-target="tooltip-information-{{ $item->document_id }}" data-tooltip-placement="left" override="class">
<a href="{{ route($item->route_name, $item->route_id) }}" class="font-normal truncate border-b border-black border-dashed">
{{ $item->document->document_number }}
</a>
<div class="w-28 absolute h-10 -ml-12 -mt-6"></div>
<x-documents.index.information :document="$item->document" />
</div>
@else
<x-empty-data />
@endif
@ -444,6 +450,16 @@
</x-show.content.right>
</x-show.content>
</x-show.container>
<akaunting-connect-transactions
:show="connect.show"
:transaction="connect.transaction"
:currency="connect.currency"
:documents="connect.documents"
:translations="{{ json_encode($transactions) }}"
modal-dialog-class="max-w-screen-lg"
v-on:close-modal="connect.show = false"
></akaunting-connect-transactions>
</x-slot>
<x-script folder="banking" file="accounts" />

View File

@ -8,7 +8,7 @@
</x-slot>
<x-slot name="buttons">
<x-transactions.show.buttons type="{{ $recurring_transaction->type }}" :transaction="$recurring_transaction" />
<x-transactions.show.buttons type="{{ $recurring_transaction->type }}" :transaction="$recurring_transaction" hide-divider4 hide-button-delete />
</x-slot>
<x-slot name="moreButtons">
@ -21,8 +21,8 @@
hide-button-share
hide-button-email
hide-divider-2
hide-button-delete
hide-divider-4
hide-button-delete
/>
</x-slot>

View File

@ -59,6 +59,7 @@
<x-slot name="third"
amount="{{ money($totals['profit'], setting('default.currency'), true) }}"
title="{{ trans_choice('general.profits', 1) }}"
class="cursor-default"
></x-slot>
</x-index.summary>
@ -162,15 +163,18 @@
<x-slot name="first">
{{ $item->contact->name }}
</x-slot>
<x-slot name="second" class="w-20 font-normal group" data-tooltip-target="tooltip-information-{{ $item->id }}" data-tooltip-placement="left" override="class">
<x-slot name="second" class="w-20 font-normal group">
@if ($item->document)
<a href="{{ route($item->route_name, $item->route_id) }}" class="font-normal truncate border-b border-black border-dashed">
{{ $item->document->document_number }}
</a>
<div data-tooltip-target="tooltip-information-{{ $item->document_id }}" data-tooltip-placement="left" override="class">
<a href="{{ route($item->route_name, $item->route_id) }}" class="font-normal truncate border-b border-black border-dashed">
{{ $item->document->document_number }}
</a>
<div class="w-28 absolute h-10 -ml-12 -mt-6"></div>
<div class="w-28 absolute h-10 -ml-12 -mt-6">
</div>
<x-documents.index.information :document="$item->document" />
<x-documents.index.information :document="$item->document" />
</div>
@else
<x-empty-data />
@endif

View File

@ -100,7 +100,9 @@
<div class="dashboard-action">
<x-dropdown id="dropdown-dashboard-company">
<x-slot name="trigger" class="flex" override="class">
<span id="dashboard-more-actions" class="material-icons-outlined text-4xl text-purple cursor-pointer hover:bg-gray-100 hover:rounded-lg hover:shadow-md">more_vert</span>
<span id="dashboard-more-actions" class="w-8 h-8 flex items-center justify-center px-2 py-2 ltr:ml-2 rtl:mr-2 hover:bg-gray-100 rounded-xl text-purple text-sm font-medium leading-6">
<span class="material-icons">more_vert</span>
</span>
</x-slot>
@can('create-common-widgets')

View File

@ -52,13 +52,15 @@
</a>
</div>
<div class="flex items-start">
<div class="flex items-start ltr:space-x-2 rtl:space-x-reverse">
<livewire:report.pin :categories="$categories" :report-id="$report->id" />
@canany(['create-common-reports', 'update-common-reports', 'delete-common-reports'])
<x-dropdown id="widget-{{ $category_id }}-{{ $report->id }}">
<x-slot name="trigger" class="flex" override="class">
<span class="material-icons-outlined text-lg px-1 py-0.5 cursor-pointer hover:bg-gray-100 hover:rounded-lg hover:shadow-md">more_vert</span>
<span class="w-8 h-8 flex items-center justify-center px-2 py-2 rtl:mr-4 hover:bg-gray-100 rounded-xl text-purple text-sm font-medium leading-6">
<span class="material-icons">more_vert</span>
</span>
</x-slot>
@can('update-common-reports')

View File

@ -215,12 +215,12 @@
{{ $item->contact_name }}
</x-slot>
<x-slot name="second" class="relative w-20 font-normal group" data-tooltip-target="tooltip-information-{{ $item->id }}" data-tooltip-placement="left" override="class,data-tooltip-target,data-tooltip-placement">
<x-slot name="second" class="w-20 font-normal group" data-tooltip-target="tooltip-information-{{ $item->id }}" data-tooltip-placement="left" override="class,data-tooltip-target,data-tooltip-placement">
<span class="border-black border-b border-dashed">
{{ $item->document_number }}
</span>
<div class="w-full absolute h-10 -left-10 -mt-6"></div>
<div class="w-28 absolute h-10 -left-10 -mt-6"></div>
<x-documents.index.information :document="$item" />
</x-slot>

View File

@ -65,7 +65,7 @@
<td class="px-3 py-3 border-b-0 description">
@if (! $hideItemDescription)
<textarea
class="form-element mt-1.5 resize-none"
class="form-element mt-1.5"
style="height:42px;"
:ref="'items-' + index + '-description'"
placeholder="{{ trans('items.enter_item_description') }}"
@ -295,6 +295,27 @@
:dynamic-options="dynamic_taxes"
:disabled-options="form.items[index].tax_ids"
:value="row_tax.id"
:add-new="{{ json_encode([
'status' => true,
'text' => trans('general.title.new', ['type' => trans_choice('general.taxes', 1)]),
'path' => route('modals.taxes.create'),
'type' => 'modal',
'field' => [
'key' => 'id',
'value' => 'title'
],
'new_text' => trans('modules.new'),
'buttons' => [
'cancel' => [
'text' => trans('general.cancel'),
'class' => 'btn-outline-secondary'
],
'confirm' => [
'text' => trans('general.save'),
'class' => 'disabled:bg-green-100'
]
]
])}}"
@interface="row_tax.id = $event"
@change="onCalculateTotal()"
@new="dynamic_taxes.push($event)"

View File

@ -8,5 +8,6 @@
form-label-class="lg:text-lg"
form-group-class="border-b pb-2 mb-3.5"
rows="1"
textarea-auto-height
/>
</div>

View File

@ -106,7 +106,7 @@
</button>
</div>
<x-form.group.number name="pre_discount" id="pre-discount" form-group-class="-mt-1" v-model="form.discount" @input="onAddTotalDiscount" />
<x-form.group.text name="pre_discount" id="pre-discount" form-group-class="-mt-1" v-model="form.discount" @input="onAddTotalDiscount" />
</div>
</td>
@ -182,6 +182,13 @@
selected="{{ $currency->code }}"
change="onChangeCurrency"
model="form.currency_code"
add-new
add-new-text="{!! trans('general.title.new', ['type' => trans_choice('general.currencies', 1)]) !!}"
:path="route('modals.currencies.create')"
:field="[
'key' => 'code',
'value' => 'name'
]"
form-group-class="h-8 -mt-2"
/>

View File

@ -1,4 +1,4 @@
<div id="tooltip-information-{{ $document->id }}" role="tooltip" class="w-96 inline-block absolute z-10 text-sm font-medium rounded-lg border border-gray-200 shadow-sm whitespace-nowrap tooltip-content transition-visible bg-lilac-900 border-none text-black p-6 cursor-auto opacity-0 invisible">
<div id="tooltip-information-{{ $document->id }}" role="tooltip" class="w-96 inline-block absolute left-0 z-10 text-sm font-medium rounded-lg border border-gray-200 shadow-sm whitespace-nowrap tooltip-content transition-visible bg-lilac-900 border-none text-black p-6 cursor-auto opacity-0 invisible">
<div class="absolute w-2 h-2 inset-y-1/2 -right-1 before:content-[' '] before:absolute before:w-2 before:h-2 before:bg-lilac-900 before:border-gray-200 before:transform before:rotate-45 before:border before:border-t-0 before:border-l-0 data-popper-arrow"></div>
<ul>

View File

@ -130,8 +130,6 @@
<x-dropdown.link href="{{ route($endRoute, $document->id) }}">
{{ trans('recurring.end') }}
</x-dropdown.link>
<x-dropdown.divider />
@endif
@stack('end_button_end')

View File

@ -1,4 +1,4 @@
<div class="p-7 shadow-2xl rounded-2xl print-template">
<div class="p-7 shadow-2xl rounded-2xl">
@if ($documentTemplate)
@switch($documentTemplate)
@case('classic')

View File

@ -1,387 +1,389 @@
<div class="row">
<div class="col-100">
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
<div class="row">
<div class="col-58">
<div class="text">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (!empty($document->contact->logo) && !empty($document->contact->logo->id))
<img class="c-logo w-image" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="c-logo w-image" src="{{ $logo }}" alt="{{ setting('company.name') }}" />
@endif
@endif
@stack('company_logo_end')
</div>
</div>
<div class="col-42">
<div class="text right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@if (! $hideCompanyDetails)
@if (! $hideCompanyName)
<p>{{ setting('company.name') }}</p>
@endif
@if (! $hideCompanyAddress)
<p>
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
@if (setting('company.tax_number'))
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ setting('company.tax_number') }}
</p>
@endif
@endif
@if (! $hideCompanyPhone)
@if (setting('company.phone'))
<p>
{{ setting('company.phone') }}
</p>
@endif
@endif
@if (! $hideCompanyEmail)
<p class="small-text">
{{ setting('company.email') }}
</p>
@endif
@endif
@stack('company_details_end')
</div>
</div>
</div>
<div class="row mt-2">
<div class="col-33">
<div class="invoice-classic-line mb-1 mt-4" style="background-color:{{ $backgroundColor }};"></div>
<div class="invoice-classic-line" style="background-color:{{ $backgroundColor }};"></div>
</div>
<div class="col-33">
<div class="invoice-classic-frame ml-1 mt-1" style="border: 1px solid {{ $backgroundColor }}">
<div class="invoice-classic-inline-frame text-center" style="border: 1px solid {{ $backgroundColor }}">
@stack('invoice_number_input_start')
@if (! $hideDocumentNumber)
<div class="text small-text text-semibold mt-classic">
<span>
{{ trans($textDocumentNumber) }}:
</span>
<br>
{{ $document->document_number }}
</div>
@endif
@stack('invoice_number_input_end')
<div class="print-template">
<div class="row">
<div class="col-100">
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
<div class="col-33">
<div class="invoice-classic-line mb-1 mt-4" style="background-color:{{ $backgroundColor }};"></div>
<div class="invoice-classic-line" style="background-color:{{ $backgroundColor }};"></div>
</div>
</div>
<div class="row">
<div class="col-58">
<div class="text">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (!empty($document->contact->logo) && !empty($document->contact->logo->id))
<img class="c-logo w-image" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="c-logo w-image" src="{{ $logo }}" alt="{{ setting('company.name') }}" />
@endif
@endif
@stack('company_logo_end')
</div>
</div>
<div class="row top-spacing">
<div class="col-60">
<div class="text p-index-left">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">
{{ trans($textContactInfo) }}
</p>
@endif
@stack('name_input_start')
@if (! $hideContactName)
<p>
{{ $document->contact_name }}
<div class="col-42">
<div class="text right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@stack('name_input_end')
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@if (! $hideCompanyDetails)
@if (! $hideCompanyName)
<p>{{ setting('company.name') }}</p>
@endif
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
@if (! $hideCompanyAddress)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
@if (setting('company.tax_number'))
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ setting('company.tax_number') }}
</p>
@endif
@endif
@if (! $hideCompanyPhone)
@if (setting('company.phone'))
<p>
{{ setting('company.phone') }}
</p>
@endif
@endif
@if (! $hideCompanyEmail)
<p class="small-text">
{{ setting('company.email') }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p class="small-text">
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
@stack('company_details_end')
</div>
</div>
</div>
<div class="col-40">
<div class="text p-index-right">
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<div class="row mt-2">
<div class="col-33">
<div class="invoice-classic-line mb-1 mt-4" style="background-color:{{ $backgroundColor }};"></div>
<div class="invoice-classic-line" style="background-color:{{ $backgroundColor }};"></div>
</div>
<div class="col-33">
<div class="invoice-classic-frame ml-1 mt-1" style="border: 1px solid {{ $backgroundColor }}">
<div class="invoice-classic-inline-frame text-center" style="border: 1px solid {{ $backgroundColor }}">
@stack('invoice_number_input_start')
@if (! $hideDocumentNumber)
<div class="text small-text text-semibold mt-classic">
<span>
{{ trans($textDocumentNumber) }}:
</span>
<br>
{{ $document->document_number }}
</div>
@endif
@stack('invoice_number_input_end')
</div>
</div>
</div>
<div class="col-33">
<div class="invoice-classic-line mb-1 mt-4" style="background-color:{{ $backgroundColor }};"></div>
<div class="invoice-classic-line" style="background-color:{{ $backgroundColor }};"></div>
</div>
</div>
<div class="row top-spacing">
<div class="col-60">
<div class="text p-index-left">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">
{{ trans($textContactInfo) }}
</p>
@endif
@stack('name_input_start')
@if (! $hideContactName)
<p>
{{ $document->contact_name }}
</p>
@endif
@stack('name_input_end')
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p class="small-text">
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
</div>
</div>
<div class="col-40">
<div class="text p-index-right">
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textOrderNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textOrderNumber) }}:
{{ trans($textIssuedAt) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
@date($document->issued_at)
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('issued_at_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textIssuedAt) }}:
</span>
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDueAt) }}:
</span>
<span class="float-right spacing">
@date($document->issued_at)
</span>
</p>
@endif
@stack('issued_at_input_end')
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDueAt) }}:
</span>
@foreach ($document->totals_sorted as $total)
@if ($total->code == 'total')
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($total->name) }}:
</span>
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
@foreach ($document->totals_sorted as $total)
@if ($total->code == 'total')
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($total->name) }}:
</span>
<span class="float-right spacing">
@money($total->amount - $document->paid, $document->currency_code, true)
</span>
</p>
@endif
@endforeach
</div>
</div>
</div>
@if (! $hideItems)
<div class="row">
<div class="col-100">
<div class="text extra-spacing">
<table class="c-lines">
<thead>
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-alignment-right text-right">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-alignment-right text-right">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-alignment-right text-right">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-alignment-right text-right">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text-center text empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
<span class="float-right spacing">
@money($total->amount - $document->paid, $document->currency_code, true)
</span>
</p>
@endif
@endforeach
</div>
</div>
</div>
@endif
<div class="row mt-4 clearfix">
<div class="col-60">
<div class="text p-index-right">
@stack('notes_input_start')
@if ($hideNote)
@if ($document->notes)
<strong>
{{ trans_choice('general.notes', 2) }}
</strong>
{!! nl2br($document->notes) !!}
@endif
@endif
@stack('notes_input_end')
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text border-bottom-dashed py-1">
<strong class="float-left text-semibold">
{{ trans($total->title) }}:
</strong>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text border-bottom-dashed py-1">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_tr_start')
<div class="text border-bottom-dashed py-1">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-1">
@if (! $hideItems)
<div class="row">
<div class="col-100">
<div class="text company">
<strong>
{!! nl2br($document->footer) !!}
</strong>
<div class="text extra-spacing">
<table class="c-lines">
<thead>
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-alignment-right text-right">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-alignment-right text-right">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-alignment-right text-right">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-alignment-right text-right">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text-center text empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
</div>
</div>
</div>
@endif
@endif
<div class="row mt-4 clearfix">
<div class="col-60">
<div class="text p-index-right">
@stack('notes_input_start')
@if ($hideNote)
@if ($document->notes)
<strong>
{{ trans_choice('general.notes', 2) }}
</strong>
{!! nl2br($document->notes) !!}
@endif
@endif
@stack('notes_input_end')
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text border-bottom-dashed py-1">
<strong class="float-left text-semibold">
{{ trans($total->title) }}:
</strong>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text border-bottom-dashed py-1">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_tr_start')
<div class="text border-bottom-dashed py-1">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-1">
<div class="col-100">
<div class="text company">
<strong>
{!! nl2br($document->footer) !!}
</strong>
</div>
</div>
</div>
@endif
@endif
</div>

View File

@ -1,346 +1,348 @@
<div class="row">
<div class="col-100">
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
<div class="row border-bottom-1">
<div class="col-58">
<div class="text">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (! empty($document->contact->logo) && ! empty($document->contact->logo->id))
<img class="d-logo w-image" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="d-logo w-image" src="{{ $logo }}" alt="{{ setting('company.name') }}"/>
@endif
@endif
@stack('company_logo_end')
</div>
</div>
<div class="col-42">
<div class="text right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@if (! $hideCompanyDetails)
@if (! $hideCompanyName)
<p>{{ setting('company.name') }}</p>
@endif
@if (! $hideCompanyAddress)
<p>
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
@if (setting('company.tax_number'))
<p>
{{ trans('general.tax_number') }}: {{ setting('company.tax_number') }}
</p>
@endif
@endif
@if (! $hideCompanyPhone)
@if (setting('company.phone'))
<p>
{{ setting('company.phone') }}
</p>
@endif
@endif
@if (! $hideCompanyEmail)
<p class="small-text">{{ setting('company.email') }}</p>
@endif
@endif
@stack('company_details_end')
</div>
</div>
</div>
<div class="row top-spacing">
<div class="col-60">
<div class="text p-index-left">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">{{ trans($textContactInfo) }}</p>
@endif
@stack('name_input_start')
@if (! $hideContactName)
<p>{{ $document->contact_name }}</p>
@endif
@stack('name_input_end')
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p class="small-text">
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
</div>
</div>
<div class="col-40">
<div class="text p-index-right">
@stack('document_number_input_start')
@if (! $hideDocumentNumber)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textDocumentNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->document_number }}
</span>
</p>
@endif
@stack('document_number_input_end')
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textOrderNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textIssuedAt) }}:
</span>
<span class="float-right spacing">
@date($document->issued_at)
</span>
</p>
@endif
@stack('issued_at_input_end')
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textDueAt) }}:
</span>
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
</div>
</div>
</div>
@if (! $hideItems)
<div class="print-template">
<div class="row">
<div class="col-100">
<div class="text extra-spacing">
<table class="lines">
<thead class="bg-{{ $backgroundColor }}" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left text-white border-radius-first">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-alignment-right text-right text-white">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-alignment-right text-right text-white">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-alignment-right text-right text-white">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-white text-alignment-right text-right border-radius-last">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text text-center empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
@endif
<div class="row mt-9 clearfix">
<div class="col-60">
<div class="text p-index-left">
@stack('notes_input_start')
@if ($document->notes)
<p class="text-semibold">
{{ trans_choice('general.notes', 2) }}
</p>
{!! nl2br($document->notes) !!}
<div class="row border-bottom-1">
<div class="col-58">
<div class="text">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (! empty($document->contact->logo) && ! empty($document->contact->logo->id))
<img class="d-logo w-image" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="d-logo w-image" src="{{ $logo }}" alt="{{ setting('company.name') }}"/>
@endif
@endif
@stack('notes_input_end')
@stack('company_logo_end')
</div>
</div>
<div class="col-42">
<div class="text right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@if (! $hideCompanyDetails)
@if (! $hideCompanyName)
<p>{{ setting('company.name') }}</p>
@endif
@if (! $hideCompanyAddress)
<p>
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
@if (setting('company.tax_number'))
<p>
{{ trans('general.tax_number') }}: {{ setting('company.tax_number') }}
</p>
@endif
@endif
@if (! $hideCompanyPhone)
@if (setting('company.phone'))
<p>
{{ setting('company.phone') }}
</p>
@endif
@endif
@if (! $hideCompanyEmail)
<p class="small-text">{{ setting('company.email') }}</p>
@endif
@endif
@stack('company_details_end')
</div>
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans($total->title) }}:
</span>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
<div class="row top-spacing">
<div class="col-60">
<div class="text p-index-left">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">{{ trans($textContactInfo) }}</p>
@endif
@stack('grand_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
@stack('name_input_start')
@if (! $hideContactName)
<p>{{ $document->contact_name }}</p>
@endif
@stack('name_input_end')
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p class="small-text">
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
</div>
</div>
<div class="col-40">
<div class="text p-index-right">
@stack('document_number_input_start')
@if (! $hideDocumentNumber)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textDocumentNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->document_number }}
</span>
</p>
@endif
@stack('document_number_input_end')
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textOrderNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textIssuedAt) }}:
</span>
<span class="float-right spacing">
@date($document->issued_at)
</span>
</p>
@endif
@stack('issued_at_input_end')
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="font-semibold spacing w-numbers">
{{ trans($textDueAt) }}:
</span>
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
</div>
</div>
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-4">
<div class="col-100 text-left">
<div class="text">
<strong>
{!! nl2br($document->footer) !!}
</strong>
@if (! $hideItems)
<div class="row">
<div class="col-100">
<div class="text extra-spacing">
<table class="lines">
<thead style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left text-white border-radius-first">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-alignment-right text-right text-white">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-alignment-right text-right text-white">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-alignment-right text-right text-white">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-white text-alignment-right text-right border-radius-last">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text text-center empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
</div>
</div>
</div>
@endif
@endif
<div class="row mt-9 clearfix">
<div class="col-60">
<div class="text p-index-left">
@stack('notes_input_start')
@if ($document->notes)
<p class="text-semibold">
{{ trans_choice('general.notes', 2) }}
</p>
{!! nl2br($document->notes) !!}
@endif
@stack('notes_input_end')
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans($total->title) }}:
</span>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_tr_start')
<div class="text border-bottom-1 py-1">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-4">
<div class="col-100 text-left">
<div class="text">
<strong>
{!! nl2br($document->footer) !!}
</strong>
</div>
</div>
</div>
@endif
@endif
</div>

View File

@ -1,357 +1,359 @@
<div class="row">
<div class="col-100">
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
<div class="row modern-head pt-2 pb-2 mt-1 bg-{{ $backgroundColor }}" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<div class="col-58">
<div class="text p-modern">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (! empty($document->contact->logo) && ! empty($document->contact->logo->id))
<img class="w-image radius-circle" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="w-image radius-circle" src="{{ $logo }}" alt="{{ setting('company.name') }}" />
@endif
@endif
@stack('company_logo_end')
</div>
</div>
<div class="col-42">
<div class="text p-modern right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@if (! $hideCompanyName)
<p class="text-white">
{{ setting('company.name') }}
</p>
@endif
@if (! $hideCompanyDetails)
@if (! $hideCompanyAddress)
<p class="text-white">
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
<p class="text-white">
@if (setting('company.tax_number'))
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ setting('company.tax_number') }}
@endif
</p>
@endif
@if (!$hideCompanyPhone)
<p class="text-white">
@if (setting('company.phone'))
{{ setting('company.phone') }}
@endif
</p>
@endif
@if (!$hideCompanyEmail)
<p class="small-text text-white">
{{ setting('company.email') }}
</p>
@endif
@endif
@stack('company_details_end')
</div>
</div>
</div>
<div class="row top-spacing">
<div class="col-50">
<div class="text p-modern">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">
{{ trans($textContactInfo) }}
</p>
@endif
@stack('name_input_start')
@if (! $hideContactName)
<p>
{{ $document->contact_name }}
</p>
@endif
@stack('name_input_end')
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br/>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p>
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
</div>
</div>
<div class="col-50">
<div class="text p-modern">
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textOrderNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('invoice_number_input_start')
@if (! $hideDocumentNumber)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDocumentNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->document_number }}
</span>
</p>
@endif
@stack('invoice_number_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textIssuedAt) }}:
</span>
<span class="float-right spacing">
@date($document->issued_at)
</span>
</p>
@endif
@stack('issued_at_input_end')
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDueAt) }}:
</span>
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
</div>
</div>
</div>
@if (! $hideItems)
<div class="print-template">
<div class="row">
<div class="col-100">
<div class="text extra-spacing">
<table class="lines modern-lines">
<thead class="bg-{{ $backgroundColor }}" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left text-white border-radius-first">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-white text-alignment-right text-right">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-white text-alignment-right text-right">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-white text-alignment-right text-right">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-white text-alignment-right text-right border-radius-last">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text text-center empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
<div class="text text-dark">
<h3>
{{ $textDocumentTitle }}
</h3>
</div>
</div>
</div>
@endif
<div class="row mt-7 clearfix">
<div class="col-60">
<div class="text p-index-right p-modern">
@stack('notes_input_start')
@if ($document->notes)
<p class="text-semibold">
{{ trans_choice('general.notes', 2) }}
</p>
{!! nl2br($document->notes) !!}
<div class="row modern-head pt-2 pb-2 mt-1 bg-{{ $backgroundColor }}" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<div class="col-58">
<div class="text p-modern">
@stack('company_logo_start')
@if (! $hideCompanyLogo)
@if (! empty($document->contact->logo) && ! empty($document->contact->logo->id))
<img class="w-image radius-circle" src="{{ $logo }}" alt="{{ $document->contact_name }}"/>
@else
<img class="w-image radius-circle" src="{{ $logo }}" alt="{{ setting('company.name') }}" />
@endif
@endif
@stack('notes_input_end')
@stack('company_logo_end')
</div>
</div>
<div class="col-42">
<div class="text p-modern right-column">
@stack('company_details_start')
@if ($textDocumentSubheading)
<p class="text-normal font-semibold">
{{ $textDocumentSubheading }}
</p>
@endif
@if (! $hideCompanyName)
<p class="text-white">
{{ setting('company.name') }}
</p>
@endif
@if (! $hideCompanyDetails)
@if (! $hideCompanyAddress)
<p class="text-white">
{!! nl2br(setting('company.address')) !!}
{!! $document->company->location !!}
</p>
@endif
@if (! $hideCompanyTaxNumber)
<p class="text-white">
@if (setting('company.tax_number'))
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ setting('company.tax_number') }}
@endif
</p>
@endif
@if (!$hideCompanyPhone)
<p class="text-white">
@if (setting('company.phone'))
{{ setting('company.phone') }}
@endif
</p>
@endif
@if (!$hideCompanyEmail)
<p class="small-text text-white">
{{ setting('company.email') }}
</p>
@endif
@endif
@stack('company_details_end')
</div>
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans($total->title) }}:
</span>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
<div class="row top-spacing">
<div class="col-50">
<div class="text p-modern">
@if (! $hideContactInfo)
<p class="text-semibold mb-0">
{{ trans($textContactInfo) }}
</p>
@endif
@stack('grand_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
@stack('name_input_start')
@if (! $hideContactName)
<p>
{{ $document->contact_name }}
</p>
@endif
@stack('name_input_end')
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
@stack('address_input_start')
@if (! $hideContactAddress)
<p>
{!! nl2br($document->contact_address) !!}
<br/>
{!! $document->contact_location !!}
</p>
@endif
@stack('address_input_end')
@stack('tax_number_input_start')
@if (! $hideContactTaxNumber)
@if ($document->contact_tax_number)
<p>
<span class="text-medium text-default">
{{ trans('general.tax_number') }}:
</span>
{{ $document->contact_tax_number }}
</p>
@endif
@endif
@stack('tax_number_input_end')
@stack('phone_input_start')
@if (! $hideContactPhone)
@if ($document->contact_phone)
<p>
{{ $document->contact_phone }}
</p>
@endif
@endif
@stack('phone_input_end')
@stack('email_start')
@if (! $hideContactEmail)
<p>
{{ $document->contact_email }}
</p>
@endif
@stack('email_input_end')
</div>
</div>
<div class="col-50">
<div class="text p-modern">
@stack('order_number_input_start')
@if (! $hideOrderNumber)
@if ($document->order_number)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textOrderNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->order_number }}
</span>
</p>
@endif
@endif
@stack('order_number_input_end')
@stack('invoice_number_input_start')
@if (! $hideDocumentNumber)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDocumentNumber) }}:
</span>
<span class="float-right spacing">
{{ $document->document_number }}
</span>
</p>
@endif
@stack('invoice_number_input_end')
@stack('issued_at_input_start')
@if (! $hideIssuedAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textIssuedAt) }}:
</span>
<span class="float-right spacing">
@date($document->issued_at)
</span>
</p>
@endif
@stack('issued_at_input_end')
@stack('due_at_input_start')
@if (! $hideDueAt)
<p class="mb-0">
<span class="text-semibold spacing">
{{ trans($textDueAt) }}:
</span>
<span class="float-right spacing">
@date($document->due_at)
</span>
</p>
@endif
@stack('due_at_input_end')
</div>
</div>
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-7">
<div class="col-100 py-top p-modern bg-{{ $backgroundColor }}" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<div class="text pl-2">
<strong class="text-white">
{!! nl2br($document->footer) !!}
</strong>
@if (! $hideItems)
<div class="row">
<div class="col-100">
<div class="text extra-spacing">
<table class="lines modern-lines">
<thead style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<tr>
@stack('name_th_start')
@if (! $hideItems || (! $hideName && ! $hideDescription))
<th class="item text text-semibold text-alignment-left text-left text-white border-radius-first">
{{ (trans_choice($textItems, 2) != $textItems) ? trans_choice($textItems, 2) : trans($textItems) }}
</th>
@endif
@stack('name_th_end')
@stack('quantity_th_start')
@if (! $hideQuantity)
<th class="quantity text text-semibold text-white text-alignment-right text-right">
{{ trans($textQuantity) }}
</th>
@endif
@stack('quantity_th_end')
@stack('price_th_start')
@if (! $hidePrice)
<th class="price text text-semibold text-white text-alignment-right text-right">
{{ trans($textPrice) }}
</th>
@endif
@stack('price_th_end')
@if (! $hideDiscount)
@if (in_array(setting('localisation.discount_location', 'total'), ['item', 'both']))
@stack('discount_td_start')
<th class="discount text text-semibold text-white text-alignment-right text-right">
{{ trans('invoices.discount') }}
</th>
@stack('discount_td_end')
@endif
@endif
@stack('total_th_start')
@if (! $hideAmount)
<th class="total text text-semibold text-white text-alignment-right text-right border-radius-last">
{{ trans($textAmount) }}
</th>
@endif
@stack('total_th_end')
</tr>
</thead>
<tbody>
@if ($document->items->count())
@foreach($document->items as $item)
<x-documents.template.line-item
type="{{ $type }}"
:item="$item"
:document="$document"
hide-items="{{ $hideItems }}"
hide-name="{{ $hideName }}"
hide-description="{{ $hideDescription }}"
hide-quantity="{{ $hideQuantity }}"
hide-price="{{ $hidePrice }}"
hide-discount="{{ $hideDiscount }}"
hide-amount="{{ $hideAmount }}"
/>
@endforeach
@else
<tr>
<td colspan="5" class="text text-center empty-items">
{{ trans('documents.empty_items') }}
</td>
</tr>
@endif
</tbody>
</table>
</div>
</div>
</div>
@endif
@endif
<div class="row mt-7 clearfix">
<div class="col-60">
<div class="text p-index-right p-modern">
@stack('notes_input_start')
@if ($document->notes)
<p class="text-semibold">
{{ trans_choice('general.notes', 2) }}
</p>
{!! nl2br($document->notes) !!}
@endif
@stack('notes_input_end')
</div>
</div>
<div class="col-40 float-right text-right">
@foreach ($document->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans($total->title) }}:
</span>
<span>
@money($total->amount, $document->currency_code, true)
</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($document->paid)
@stack('paid_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans('invoices.paid') }}:
</span>
<span>
- @money($document->paid, $document->currency_code, true)
</span>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_tr_start')
<div class="text">
<span class="float-left text-semibold">
{{ trans($total->name) }}:
</span>
<span>
@money($document->amount_due, $document->currency_code, true)
</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
</div>
@if (! $hideFooter)
@if ($document->footer)
<div class="row mt-7">
<div class="col-100 py-top p-modern" style="background-color:{{ $backgroundColor }} !important; -webkit-print-color-adjust: exact;">
<div class="text pl-2">
<strong class="text-white">
{!! nl2br($document->footer) !!}
</strong>
</div>
</div>
</div>
@endif
@endif
</div>

View File

@ -46,9 +46,13 @@
<li class="border-b p-2 hover:bg-gray-100">
<a href="{{ url($suggestion->action_url) . '?' . http_build_query((array) $suggestion->action_parameters) }}" class="flex items-center justify-between text-xs">
<div class="truncate">
<h2 class="">{{ $suggestion->name }}</h2>
<h2>
{{ $suggestion->name }}
</h2>
<div class="h-4 overflow-hidden text-black-400 truncate">Enter details and create your first expense easily</div>
<div class="h-4 overflow-hidden text-black-400 truncate">
{{ $suggestion->description ?? '' }}
</div>
</div>
<span class="material-icons text-gray-500">chevron_right</span>

View File

@ -70,7 +70,7 @@
@if (! empty($addNew))
:add-new="{{ json_encode([
'status' => true,
'text' => trans('general.title.new', ['type' => $label ?? '']),
'text' => isset($attributes['add-new-text']) ? $attributes['add-new-text'] : trans('general.title.new', ['type' => $label ?? '']),
'path' => isset($attributes['path']) ? $attributes['path']: false,
'type' => isset($attributes['type']) ? $attributes['type'] : 'modal',
'field' => [
@ -121,6 +121,10 @@
clearable
@endif
@if (isset($attributes['no-arrow']))
:no-arrow="{{ $attributes['no-arrow'] }}"
@endif
@if (isset($attributes['v-disabled']))
:disabled="{{ $attributes['v-disabled'] }}"
@endif

Some files were not shown because too many files have changed in this diff Show More