Merge branch 'master' of https://github.com/brkcvn/akaunting into button-loading
This commit is contained in:
commit
ec257b07f7
@ -237,7 +237,7 @@ abstract class Report
|
||||
->setColors(array_values($colors))
|
||||
->setDataset($this->tables[$table_key], 'donut', array_values($values));
|
||||
|
||||
$chart->options['legend']['width'] = 150;
|
||||
$chart->options['legend']['width'] = 105;
|
||||
$chart->options['legend']['position'] = 'right';
|
||||
|
||||
return $chart;
|
||||
|
@ -215,6 +215,10 @@ abstract class Form extends Component
|
||||
$label = $this->name;
|
||||
}
|
||||
|
||||
if ($this->type == 'select') {
|
||||
return trans('general.form.select.field', ['field' => $label]);
|
||||
}
|
||||
|
||||
return trans('general.form.enter', ['field' => $label]);
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
|
||||
$accounts = Account::enabled()->orderBy('name')->get()->pluck('title', 'id');
|
||||
|
||||
$currency = Currency::where('code', setting('default.currency'))->first();
|
||||
|
||||
@ -134,7 +134,7 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function edit(Transfer $transfer)
|
||||
{
|
||||
$accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
|
||||
$accounts = Account::enabled()->orderBy('name')->get()->pluck('title', 'id');
|
||||
|
||||
$currency_code = ($transfer->expense_transaction->account) ? $transfer->expense_transaction->account->currency_code : setting('default.currency');
|
||||
|
||||
|
@ -27,12 +27,25 @@ class Notifications extends Component
|
||||
return view('livewire.menu.notifications');
|
||||
}
|
||||
|
||||
public function markRead($notification_id)
|
||||
public function markRead($type, $notification_id, $message = true)
|
||||
{
|
||||
$notification = DatabaseNotification::find($notification_id);
|
||||
$data = $notification->getAttribute('data');
|
||||
switch ($type) {
|
||||
case 'updates':
|
||||
$this->markUpdateRead($notification_id);
|
||||
break;
|
||||
case 'new-apps':
|
||||
$this->markNewAppRead($notification_id);
|
||||
break;
|
||||
default:
|
||||
$notification = DatabaseNotification::find($notification_id);
|
||||
$data = $notification->getAttribute('data');
|
||||
|
||||
$notification->markAsRead();
|
||||
$notification->markAsRead();
|
||||
}
|
||||
|
||||
if (! $message) {
|
||||
return;
|
||||
}
|
||||
|
||||
$type = isset($data['file_name']) ?: trans('general.export');
|
||||
|
||||
@ -44,10 +57,10 @@ class Notifications extends Component
|
||||
|
||||
public function markReadAll()
|
||||
{
|
||||
$notifications = user()->unreadNotifications;
|
||||
$notifications = $this->getNotifications();
|
||||
|
||||
foreach ($notifications as $notification) {
|
||||
$notification->markAsRead();
|
||||
$this->markRead($notification->type, $notification->id, false);
|
||||
}
|
||||
|
||||
$this->dispatchBrowserEvent('mark-read-all', [
|
||||
@ -56,6 +69,25 @@ class Notifications extends Component
|
||||
]);
|
||||
}
|
||||
|
||||
public function markUpdateRead($notification_id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function markNewAppRead($notification_id)
|
||||
{
|
||||
$notifications = $this->getNotifications();
|
||||
|
||||
foreach ($notifications as $notification) {
|
||||
if ($notification->id == $notification_id) {
|
||||
setting()->set('notifications.' . $notification->notifiable_id . '.' . $notification->data['alias'], '1');
|
||||
|
||||
setting()->save();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getNotifications(): array
|
||||
{
|
||||
$notifications = new \stdClass();
|
||||
|
@ -65,7 +65,8 @@ class ShowInNotifications
|
||||
$new->notifiable_id = user()->id;
|
||||
$new->data = [
|
||||
'title' => $new_app->name,
|
||||
'description' => $new_app->alias,
|
||||
'description' => '', // $new_app->message,
|
||||
'alias' => $new_app->alias,
|
||||
];
|
||||
$new->created_at = $new_app->started_at->date;
|
||||
|
||||
|
@ -51,12 +51,12 @@ class Account extends Model
|
||||
|
||||
public function expense_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getExpenseTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getExpenseTypes());
|
||||
}
|
||||
|
||||
public function income_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getIncomeTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getIncomeTypes());
|
||||
}
|
||||
|
||||
public function transactions()
|
||||
|
@ -98,7 +98,7 @@ class Transaction extends Model
|
||||
|
||||
public function bill()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id');
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function category()
|
||||
@ -123,12 +123,12 @@ class Transaction extends Model
|
||||
|
||||
public function invoice()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id');
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function document()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id');
|
||||
return $this->belongsTo('App\Models\Document\Document', 'document_id')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function parent()
|
||||
|
@ -54,34 +54,42 @@ class Transfer extends Model
|
||||
|
||||
public function expense_transaction()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Transaction', 'expense_transaction_id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsTo('App\Models\Banking\Transaction', 'expense_transaction_id')
|
||||
->withoutGlobalScope('App\Scopes\Transaction')
|
||||
->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
public function expense_account()
|
||||
{
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'expense_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'expense_transaction_id']
|
||||
)
|
||||
->withoutGlobalScope('App\Scopes\Transaction')
|
||||
->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
public function income_transaction()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Transaction', 'income_transaction_id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsTo('App\Models\Banking\Transaction', 'income_transaction_id')
|
||||
->withoutGlobalScope('App\Scopes\Transaction')
|
||||
->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
public function income_account()
|
||||
{
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'income_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'income_transaction_id']
|
||||
)
|
||||
->withoutGlobalScope('App\Scopes\Transaction')
|
||||
->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,7 +94,7 @@ class Contact extends Model
|
||||
|
||||
public function bills()
|
||||
{
|
||||
return $this->documents()->where('type', Document::BILL_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::BILL_TYPE);
|
||||
}
|
||||
|
||||
public function currency()
|
||||
@ -104,17 +104,17 @@ class Contact extends Model
|
||||
|
||||
public function expense_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getExpenseTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getExpenseTypes());
|
||||
}
|
||||
|
||||
public function income_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getIncomeTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getIncomeTypes());
|
||||
}
|
||||
|
||||
public function invoices()
|
||||
{
|
||||
return $this->documents()->where('type', Document::INVOICE_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::INVOICE_TYPE);
|
||||
}
|
||||
|
||||
public function transactions()
|
||||
|
@ -5,6 +5,7 @@ namespace App\Models\Common;
|
||||
use App\Abstracts\Model;
|
||||
use Bkwld\Cloner\Cloneable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Widget extends Model
|
||||
{
|
||||
@ -28,6 +29,20 @@ class Widget extends Model
|
||||
'settings' => 'object',
|
||||
];
|
||||
|
||||
/**
|
||||
* Scope to only include widgets of a given alias.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param string $alias
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeAlias($query, $alias)
|
||||
{
|
||||
$class = ($alias == 'core') ? 'App\\\\' : 'Modules\\\\' . Str::studly($alias) . '\\\\';
|
||||
|
||||
return $query->where('class', 'like', $class . '%');
|
||||
}
|
||||
|
||||
public function dashboard()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Common\Dashboard');
|
||||
|
@ -17,7 +17,7 @@ class DocumentHistory extends Model
|
||||
|
||||
public function document()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document');
|
||||
return $this->belongsTo('App\Models\Document\Document')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function scopeType(Builder $query, string $type)
|
||||
|
@ -69,7 +69,7 @@ class DocumentItem extends Model
|
||||
|
||||
public function document()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document');
|
||||
return $this->belongsTo('App\Models\Document\Document')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function item()
|
||||
|
@ -26,7 +26,7 @@ class DocumentItemTax extends Model
|
||||
|
||||
public function document()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document');
|
||||
return $this->belongsTo('App\Models\Document\Document')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function item()
|
||||
|
@ -29,7 +29,7 @@ class DocumentTotal extends Model
|
||||
|
||||
public function document()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Document\Document');
|
||||
return $this->belongsTo('App\Models\Document\Document')->withoutGlobalScope('App\Scopes\Document');
|
||||
}
|
||||
|
||||
public function scopeType(Builder $query, string $type)
|
||||
|
@ -112,22 +112,22 @@ class Category extends Model
|
||||
|
||||
public function bills()
|
||||
{
|
||||
return $this->documents()->where('type', Document::BILL_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::BILL_TYPE);
|
||||
}
|
||||
|
||||
public function expense_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getExpenseTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getExpenseTypes());
|
||||
}
|
||||
|
||||
public function income_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getIncomeTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getIncomeTypes());
|
||||
}
|
||||
|
||||
public function invoices()
|
||||
{
|
||||
return $this->documents()->where('type', Document::INVOICE_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::INVOICE_TYPE);
|
||||
}
|
||||
|
||||
public function items()
|
||||
|
@ -63,7 +63,7 @@ class Currency extends Model
|
||||
|
||||
public function bills()
|
||||
{
|
||||
return $this->documents()->where('type', Document::BILL_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::BILL_TYPE);
|
||||
}
|
||||
|
||||
public function contacts()
|
||||
@ -73,22 +73,22 @@ class Currency extends Model
|
||||
|
||||
public function customers()
|
||||
{
|
||||
return $this->contacts()->whereIn('type', (array) $this->getCustomerTypes());
|
||||
return $this->contacts()->whereIn('contacts.type', (array) $this->getCustomerTypes());
|
||||
}
|
||||
|
||||
public function expense_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getExpenseTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getExpenseTypes());
|
||||
}
|
||||
|
||||
public function income_transactions()
|
||||
{
|
||||
return $this->transactions()->whereIn('type', (array) $this->getIncomeTypes());
|
||||
return $this->transactions()->whereIn('transactions.type', (array) $this->getIncomeTypes());
|
||||
}
|
||||
|
||||
public function invoices()
|
||||
{
|
||||
return $this->documents()->where('type', Document::INVOICE_TYPE);
|
||||
return $this->documents()->where('documents.type', Document::INVOICE_TYPE);
|
||||
}
|
||||
|
||||
public function transactions()
|
||||
@ -98,7 +98,7 @@ class Currency extends Model
|
||||
|
||||
public function vendors()
|
||||
{
|
||||
return $this->contacts()->whereIn('type', (array) $this->getVendorTypes());
|
||||
return $this->contacts()->whereIn('contacts.type', (array) $this->getVendorTypes());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,12 +55,12 @@ class Tax extends Model
|
||||
|
||||
public function bill_items()
|
||||
{
|
||||
return $this->document_items()->where('type', Document::BILL_TYPE);
|
||||
return $this->document_items()->where('document_item_taxes.type', Document::BILL_TYPE);
|
||||
}
|
||||
|
||||
public function invoice_items()
|
||||
{
|
||||
return $this->document_items()->where('type', Document::INVOICE_TYPE);
|
||||
return $this->document_items()->where('document_item_taxes.type', Document::INVOICE_TYPE);
|
||||
}
|
||||
|
||||
public function scopeName($query, $name)
|
||||
|
@ -37,7 +37,7 @@ class Company implements Scope
|
||||
}
|
||||
|
||||
// Skip if already exists
|
||||
if ($this->scopeColumnExists($builder, 'company_id')) {
|
||||
if ($this->scopeColumnExists($builder, '', 'company_id')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -8,17 +8,10 @@ use Illuminate\Support\Str;
|
||||
|
||||
trait Scopes
|
||||
{
|
||||
/**
|
||||
* Apply the scope to a given Eloquent query builder.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $builder
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public function applyNotRecurringScope(Builder $builder, Model $model)
|
||||
public function applyNotRecurringScope(Builder $builder, Model $model): void
|
||||
{
|
||||
// Skip if recurring already in query
|
||||
if ($this->scopeValueExists($builder, 'type', '-recurring')) {
|
||||
// Skip if type already set
|
||||
if ($this->scopeColumnExists($builder, $model->getTable(), 'type')) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -26,17 +19,10 @@ trait Scopes
|
||||
$builder->isNotRecurring();
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the scope to a given Eloquent query builder.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $builder
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public function applyNotSplitScope(Builder $builder, Model $model)
|
||||
public function applyNotSplitScope(Builder $builder, Model $model): void
|
||||
{
|
||||
// Skip if split already in query
|
||||
if ($this->scopeValueExists($builder, 'type', '-split')) {
|
||||
// Skip if type already set
|
||||
if ($this->scopeColumnExists($builder, $model->getTable(), 'type')) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -44,14 +30,7 @@ trait Scopes
|
||||
$builder->isNotSplit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if scope exists.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $builder
|
||||
* @param $column
|
||||
* @return boolean
|
||||
*/
|
||||
public function scopeColumnExists($builder, $column)
|
||||
public function scopeColumnExists(Builder $builder, string $table, string $column): bool
|
||||
{
|
||||
$query = $builder->getQuery();
|
||||
|
||||
@ -63,9 +42,14 @@ trait Scopes
|
||||
if (strstr($where['column'], '.')) {
|
||||
$whr = explode('.', $where['column']);
|
||||
|
||||
$where['table'] = $whr[0];
|
||||
$where['column'] = $whr[1];
|
||||
}
|
||||
|
||||
if (! empty($where['table']) && ! empty($table) && ($where['table'] != $table)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($where['column'] != $column) {
|
||||
continue;
|
||||
}
|
||||
@ -76,15 +60,7 @@ trait Scopes
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if scope has the exact value.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $builder
|
||||
* @param $column
|
||||
* @param $value
|
||||
* @return boolean
|
||||
*/
|
||||
public function scopeValueExists($builder, $column, $value)
|
||||
public function scopeValueExists(Builder $builder, string $table, string $column, string $value): bool
|
||||
{
|
||||
$query = $builder->getQuery();
|
||||
|
||||
@ -96,9 +72,14 @@ trait Scopes
|
||||
if (strstr($where['column'], '.')) {
|
||||
$whr = explode('.', $where['column']);
|
||||
|
||||
$where['table'] = $whr[0];
|
||||
$where['column'] = $whr[1];
|
||||
}
|
||||
|
||||
if (! empty($where['table']) && ! empty($table) && ($where['table'] != $table)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($where['column'] != $column) {
|
||||
continue;
|
||||
}
|
||||
@ -114,8 +95,8 @@ trait Scopes
|
||||
}
|
||||
|
||||
// @deprecated version 3.0.0
|
||||
public function scopeExists($builder, $column)
|
||||
public function scopeExists($builder, $column): bool
|
||||
{
|
||||
return $this->scopeColumnExists($builder, $column);
|
||||
return $this->scopeColumnExists($builder, '', $column);
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\View\Components\Layouts\Admin;
|
||||
|
||||
use App\Abstracts\View\Component;
|
||||
use App\Utilities\Versions;
|
||||
use App\Events\Menu\NotificationsCreated;
|
||||
|
||||
class Menu extends Component
|
||||
{
|
||||
@ -21,10 +21,7 @@ class Menu extends Component
|
||||
{
|
||||
$this->companies = $this->getCompanies();
|
||||
|
||||
$version_update = Versions::getUpdates();
|
||||
|
||||
$this->notification_count = user()->unreadNotifications->count();
|
||||
$this->notification_count += count($version_update);
|
||||
$this->notification_count = $this->getNotificationCount();
|
||||
|
||||
return view('components.layouts.admin.menu');
|
||||
}
|
||||
@ -39,4 +36,16 @@ class Menu extends Component
|
||||
|
||||
return $companies;
|
||||
}
|
||||
|
||||
public function getNotificationCount()
|
||||
{
|
||||
// Get nofitications
|
||||
$notifications = new \stdClass();
|
||||
$notifications->notifications = [];
|
||||
$notifications->keyword = '';
|
||||
|
||||
event(new NotificationsCreated($notifications));
|
||||
|
||||
return $notifications->notifications->count();
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class ExpensesByCategory extends Widget
|
||||
|
||||
$chart = $this->getDonutChart(trans_choice('general.expenses', 2), '100%', 300, 6);
|
||||
|
||||
$chart->options['legend']['width'] = 210;
|
||||
$chart->options['legend']['width'] = 160;
|
||||
$chart->options['legend']['position'] = 'right';
|
||||
|
||||
return $this->view('widgets.donut_chart', [
|
||||
|
111
composer.lock
generated
111
composer.lock
generated
@ -608,16 +608,16 @@
|
||||
},
|
||||
{
|
||||
"name": "akaunting/laravel-sortable",
|
||||
"version": "1.0.3",
|
||||
"version": "1.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/akaunting/laravel-sortable.git",
|
||||
"reference": "8cfb79d6b6426cd7f1c01a64025f615e17a88fda"
|
||||
"reference": "8a5f702d282934c998933f82c3372aab48238ace"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/akaunting/laravel-sortable/zipball/8cfb79d6b6426cd7f1c01a64025f615e17a88fda",
|
||||
"reference": "8cfb79d6b6426cd7f1c01a64025f615e17a88fda",
|
||||
"url": "https://api.github.com/repos/akaunting/laravel-sortable/zipball/8a5f702d282934c998933f82c3372aab48238ace",
|
||||
"reference": "8a5f702d282934c998933f82c3372aab48238ace",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -666,9 +666,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/akaunting/laravel-sortable/issues",
|
||||
"source": "https://github.com/akaunting/laravel-sortable/tree/1.0.3"
|
||||
"source": "https://github.com/akaunting/laravel-sortable/tree/1.0.5"
|
||||
},
|
||||
"time": "2022-01-31T13:15:55+00:00"
|
||||
"time": "2022-06-10T12:46:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "akaunting/laravel-version",
|
||||
@ -906,16 +906,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.224.3",
|
||||
"version": "3.225.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "52f45dfe0d1e5a77f33c050bde5134901fc54a57"
|
||||
"reference": "b795c9c14997dac771f66d1f6cbadb62c742373a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/52f45dfe0d1e5a77f33c050bde5134901fc54a57",
|
||||
"reference": "52f45dfe0d1e5a77f33c050bde5134901fc54a57",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b795c9c14997dac771f66d1f6cbadb62c742373a",
|
||||
"reference": "b795c9c14997dac771f66d1f6cbadb62c742373a",
|
||||
"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.224.3"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.225.1"
|
||||
},
|
||||
"time": "2022-06-02T18:22:57+00:00"
|
||||
"time": "2022-06-09T18:19:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "balping/json-raw-encoder",
|
||||
@ -2924,16 +2924,16 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "7.4.3",
|
||||
"version": "7.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab"
|
||||
"reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/74a8602c6faec9ef74b7a9391ac82c5e65b1cdab",
|
||||
"reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8",
|
||||
"reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3028,7 +3028,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.4.3"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.4.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -3044,7 +3044,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-05-25T13:24:33+00:00"
|
||||
"time": "2022-06-09T21:39:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
@ -3132,16 +3132,16 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "2.2.1",
|
||||
"version": "2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "c94a94f120803a18554c1805ef2e539f8285f9a2"
|
||||
"reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2",
|
||||
"reference": "c94a94f120803a18554c1805ef2e539f8285f9a2",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee",
|
||||
"reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3165,7 +3165,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2-dev"
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -3227,7 +3227,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.2.1"
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.3.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -3243,7 +3243,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-20T21:55:58+00:00"
|
||||
"time": "2022-06-09T08:26:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hoa/compiler",
|
||||
@ -4472,16 +4472,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v9.16.0",
|
||||
"version": "v9.17.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "dbad869e737542734c48d36d4cb87ee90455c4b8"
|
||||
"reference": "091e287678ac723c591509ca6374e4ded4a99b1c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/dbad869e737542734c48d36d4cb87ee90455c4b8",
|
||||
"reference": "dbad869e737542734c48d36d4cb87ee90455c4b8",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/091e287678ac723c591509ca6374e4ded4a99b1c",
|
||||
"reference": "091e287678ac723c591509ca6374e4ded4a99b1c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4647,7 +4647,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2022-06-02T18:13:11+00:00"
|
||||
"time": "2022-06-07T15:09:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
@ -5037,16 +5037,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/commonmark",
|
||||
"version": "2.3.2",
|
||||
"version": "2.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/commonmark.git",
|
||||
"reference": "6eddb90a9e4a1a8c5773226068fcfb48cb36812a"
|
||||
"reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6eddb90a9e4a1a8c5773226068fcfb48cb36812a",
|
||||
"reference": "6eddb90a9e4a1a8c5773226068fcfb48cb36812a",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/0da1dca5781dd3cfddbe328224d9a7a62571addc",
|
||||
"reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5139,7 +5139,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-06-03T14:07:39+00:00"
|
||||
"time": "2022-06-07T21:28:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/config",
|
||||
@ -6215,16 +6215,16 @@
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "2.6.0",
|
||||
"version": "2.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "247918972acd74356b0a91dfaa5adcaec069b6c0"
|
||||
"reference": "5579edf28aee1190a798bfa5be8bc16c563bd524"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/247918972acd74356b0a91dfaa5adcaec069b6c0",
|
||||
"reference": "247918972acd74356b0a91dfaa5adcaec069b6c0",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/5579edf28aee1190a798bfa5be8bc16c563bd524",
|
||||
"reference": "5579edf28aee1190a798bfa5be8bc16c563bd524",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -6303,7 +6303,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Seldaek/monolog/issues",
|
||||
"source": "https://github.com/Seldaek/monolog/tree/2.6.0"
|
||||
"source": "https://github.com/Seldaek/monolog/tree/2.7.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -6315,7 +6315,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-05-10T09:36:00+00:00"
|
||||
"time": "2022-06-09T08:59:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/jmespath.php",
|
||||
@ -9161,6 +9161,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"abandoned": "symfony/error-handler",
|
||||
"time": "2022-04-12T15:19:55+00:00"
|
||||
},
|
||||
{
|
||||
@ -11301,21 +11302,21 @@
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "1.10.0",
|
||||
"version": "1.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozarts/assert.git",
|
||||
"reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
|
||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
|
||||
"reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
"ext-ctype": "*",
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan": "<0.12.20",
|
||||
@ -11353,9 +11354,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/webmozarts/assert/issues",
|
||||
"source": "https://github.com/webmozarts/assert/tree/1.10.0"
|
||||
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
|
||||
},
|
||||
"time": "2021-03-09T10:59:23+00:00"
|
||||
"time": "2022-06-03T18:03:27+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@ -13931,16 +13932,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-ignition.git",
|
||||
"reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646"
|
||||
"reference": "b90026ba26fe6589101dc5cd6527846290560aea"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/51e5daaa7e43c154fe57f1ddfbba862f9fe57646",
|
||||
"reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/b90026ba26fe6589101dc5cd6527846290560aea",
|
||||
"reference": "b90026ba26fe6589101dc5cd6527846290560aea",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -14017,7 +14018,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-05-05T15:53:24+00:00"
|
||||
"time": "2022-06-08T07:07:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
@ -14177,5 +14178,5 @@
|
||||
"ext-zip": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.2.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
@ -14,9 +14,10 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'enabled' => env('APP_DEBUG', false),
|
||||
'enabled' => env('DEBUGBAR_ENABLED', env('APP_DEBUG', false)),
|
||||
'except' => [
|
||||
'telescope*'
|
||||
'telescope*',
|
||||
'horizon*',
|
||||
],
|
||||
|
||||
/*
|
||||
@ -33,12 +34,56 @@ return [
|
||||
*/
|
||||
'storage' => [
|
||||
'enabled' => true,
|
||||
'driver' => 'file', // redis, file, pdo, custom
|
||||
'driver' => 'file', // redis, file, pdo, socket, custom
|
||||
'path' => storage_path('debugbar'), // For file driver
|
||||
'connection' => null, // Leave null for default connection (Redis/PDO)
|
||||
'provider' => '' // Instance of StorageInterface for custom driver
|
||||
'provider' => '', // Instance of StorageInterface for custom driver
|
||||
'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver
|
||||
'port' => 2304, // Port to use with the "socket" driver
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Editor
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Choose your preferred editor to use when clicking file name.
|
||||
|
|
||||
| Supported: "phpstorm", "vscode", "vscode-insiders", "vscode-remote",
|
||||
| "vscode-insiders-remote", "vscodium", "textmate", "emacs",
|
||||
| "sublime", "atom", "nova", "macvim", "idea", "netbeans",
|
||||
| "xdebug", "espresso"
|
||||
|
|
||||
*/
|
||||
|
||||
'editor' => env('DEBUGBAR_EDITOR', 'phpstorm'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Remote Path Mapping
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you are using a remote dev server, like Laravel Homestead, Docker, or
|
||||
| even a remote VPS, it will be necessary to specify your path mapping.
|
||||
|
|
||||
| Leaving one, or both of these, empty or null will not trigger the remote
|
||||
| URL changes and Debugbar will treat your editor links as local files.
|
||||
|
|
||||
| "remote_sites_path" is an absolute base path for your sites or projects
|
||||
| in Homestead, Vagrant, Docker, or another remote development server.
|
||||
|
|
||||
| Example value: "/home/vagrant/Code"
|
||||
|
|
||||
| "local_sites_path" is an absolute base path for your sites or projects
|
||||
| on your local computer where your IDE or code editor is running on.
|
||||
|
|
||||
| Example values: "/Users/<name>/Code", "C:\Users\<name>\Documents\Code"
|
||||
|
|
||||
*/
|
||||
|
||||
'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH', ''),
|
||||
'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', ''),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Vendors
|
||||
@ -64,6 +109,9 @@ return [
|
||||
| you can use this option to disable sending the data through the headers.
|
||||
|
|
||||
| Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
|
||||
|
|
||||
| Note for your request to be identified as ajax requests they must either send the header
|
||||
| X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
|
||||
*/
|
||||
|
||||
'capture_ajax' => true,
|
||||
@ -111,7 +159,7 @@ return [
|
||||
'views' => true, // Views with their data
|
||||
'route' => true, // Current route information
|
||||
'auth' => false, // Display Laravel authentication status
|
||||
'gate' => false, // Display Laravel Gate checks
|
||||
'gate' => true, // Display Laravel Gate checks
|
||||
'session' => true, // Display session data
|
||||
'symfony_request' => true, // Only one can be enabled..
|
||||
'mail' => false, // Catch mail messages
|
||||
@ -122,7 +170,8 @@ return [
|
||||
'files' => false, // Show the included files
|
||||
'config' => false, // Display config settings
|
||||
'cache' => false, // Display cache events
|
||||
'models' => true, // Display models
|
||||
'models' => true, // Display models
|
||||
'livewire' => true, // Display Livewire (when available)
|
||||
],
|
||||
|
||||
/*
|
||||
@ -141,28 +190,31 @@ return [
|
||||
'db' => [
|
||||
'with_params' => true, // Render SQL with the parameters substituted
|
||||
'backtrace' => true, // Use a backtrace to find the origin of the query in your files.
|
||||
'timeline' => true, // Add the queries to the timeline
|
||||
'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
|
||||
'timeline' => false, // Add the queries to the timeline
|
||||
'duration_background' => true, // Show shaded background on each query relative to how long it took to execute.
|
||||
'explain' => [ // Show EXPLAIN output on queries
|
||||
'enabled' => false,
|
||||
'types' => ['SELECT'], // // workaround ['SELECT'] only. https://github.com/barryvdh/laravel-debugbar/issues/888 ['SELECT', 'INSERT', 'UPDATE', 'DELETE']; for MySQL 5.6.3+
|
||||
'types' => ['SELECT'], // Deprecated setting, is always only SELECT
|
||||
],
|
||||
'hints' => true, // Show hints for common mistakes
|
||||
'show_copy' => true, // Show copy button next to the query
|
||||
'show_copy' => false, // Show copy button next to the query
|
||||
],
|
||||
'mail' => [
|
||||
'full_log' => false
|
||||
'full_log' => false,
|
||||
],
|
||||
'views' => [
|
||||
'timeline' => false, // Add the views to the timeline (Experimental)
|
||||
'data' => false, //Note: Can slow down the application, because the data can be quite large..
|
||||
],
|
||||
'route' => [
|
||||
'label' => true // show complete route on bar
|
||||
'label' => true, // show complete route on bar
|
||||
],
|
||||
'logs' => [
|
||||
'file' => null
|
||||
'file' => null,
|
||||
],
|
||||
'cache' => [
|
||||
'values' => true // collect cache values
|
||||
'values' => true, // collect cache values
|
||||
],
|
||||
],
|
||||
|
||||
@ -200,4 +252,24 @@ return [
|
||||
| To override default domain, specify it as a non-empty value.
|
||||
*/
|
||||
'route_domain' => null,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| DebugBar theme
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Switches between light and dark theme. If set to auto it will respect system preferences
|
||||
| Possible values: auto, light, dark
|
||||
*/
|
||||
'theme' => env('DEBUGBAR_THEME', 'auto'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Backtrace stack limit
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| By default, the DebugBar limits the number of frames returned by the 'debug_backtrace()' function.
|
||||
| If you need larger stacktraces, you can increase this number. Setting it to 0 will result in no limit.
|
||||
*/
|
||||
'debug_backtrace_limit' => 50,
|
||||
];
|
||||
|
@ -10,13 +10,13 @@ return [
|
||||
|
||||
'minor' => '0',
|
||||
|
||||
'patch' => '0',
|
||||
'patch' => '1',
|
||||
|
||||
'build' => '',
|
||||
|
||||
'status' => 'Stable',
|
||||
|
||||
'date' => '1-June-2022',
|
||||
'date' => '11-June-2022',
|
||||
|
||||
'time' => '10:00',
|
||||
|
||||
|
31
public/css/app.css
vendored
31
public/css/app.css
vendored
@ -46881,7 +46881,7 @@ input[type="date"]::-webkit-inner-spin-button,
|
||||
border-bottom-right-radius: 4px;
|
||||
cursor: pointer !important;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 0 !important;
|
||||
margin-bottom: -8px !important;
|
||||
}
|
||||
|
||||
.el-select__footer:hover {
|
||||
@ -46902,11 +46902,7 @@ input[type="date"]::-webkit-inner-spin-button,
|
||||
}
|
||||
|
||||
.el-select-dropdown__list {
|
||||
padding: 8px 0 0 0;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item:last-child {
|
||||
margin-bottom: 8px;
|
||||
padding: 8px 0 8px 0;
|
||||
}
|
||||
|
||||
.el-select .el-select__tags {
|
||||
@ -47119,6 +47115,29 @@ html[dir='rtl'] .el-input__suffix {
|
||||
}
|
||||
/* element-ui */
|
||||
|
||||
/* apex-chart */
|
||||
.apexcharts-donut-custom span.apexcharts-legend-text {
|
||||
display: -webkit-box !important;
|
||||
-webkit-line-clamp: 1 !important;
|
||||
-webkit-box-orient: vertical !important;
|
||||
overflow: hidden !important;
|
||||
height: 1rem !important;
|
||||
}
|
||||
|
||||
.apexcharts-donut-custom .apexcharts-legend-series {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
-webkit-box-align: center !important;
|
||||
-ms-flex-align: center !important;
|
||||
align-items: center !important;
|
||||
}
|
||||
|
||||
.apexcharts-donut-custom .apexcharts-legend {
|
||||
padding: 0 !important;
|
||||
}
|
||||
/* apex-chart */
|
||||
|
||||
/* collapse */
|
||||
.active-collapse{
|
||||
opacity: 1;
|
||||
|
@ -15,7 +15,7 @@
|
||||
ref="dropdownMenu"
|
||||
@click="openPalette"
|
||||
:class="`bg-${color}`"
|
||||
:style="{ backgroundColor: color }"
|
||||
:style="this.color.includes('#') ? `backgroundColor: ${color}` : `backgroundColor: #${color}`"
|
||||
></div>
|
||||
|
||||
<transition name="fade">
|
||||
@ -115,8 +115,6 @@ export default {
|
||||
return {
|
||||
isOpen: false,
|
||||
color: 'green-500',
|
||||
hexCode: null,
|
||||
|
||||
colors: [
|
||||
'gray',
|
||||
'red',
|
||||
@ -174,13 +172,11 @@ export default {
|
||||
setColor(event) {
|
||||
this.isOpen = false;
|
||||
this.color = event.target.getAttribute('colorid');
|
||||
this.hexCode = null;
|
||||
this.$refs.dropdownMenu.style = '';
|
||||
},
|
||||
|
||||
addColor() {
|
||||
let code = this.color;
|
||||
|
||||
this.hexCode = code.includes('#') ? code : '#' + code;
|
||||
},
|
||||
|
||||
closeIfClickedOutside(event) {
|
||||
|
27
resources/assets/sass/app.css
vendored
27
resources/assets/sass/app.css
vendored
@ -309,7 +309,7 @@
|
||||
border-bottom-right-radius: 4px;
|
||||
cursor: pointer !important;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 0 !important;
|
||||
margin-bottom: -8px !important;
|
||||
}
|
||||
|
||||
.el-select__footer:hover {
|
||||
@ -330,11 +330,7 @@
|
||||
}
|
||||
|
||||
.el-select-dropdown__list {
|
||||
padding: 8px 0 0 0;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item:last-child {
|
||||
margin-bottom: 8px;
|
||||
padding: 8px 0 8px 0;
|
||||
}
|
||||
|
||||
.el-select .el-select__tags {
|
||||
@ -456,6 +452,25 @@ html[dir='rtl'] .el-input__suffix {
|
||||
}
|
||||
/* element-ui */
|
||||
|
||||
/* apex-chart */
|
||||
.apexcharts-donut-custom span.apexcharts-legend-text {
|
||||
display: -webkit-box !important;
|
||||
-webkit-line-clamp: 1 !important;
|
||||
-webkit-box-orient: vertical !important;
|
||||
overflow: hidden !important;
|
||||
height: 1rem !important;
|
||||
}
|
||||
|
||||
.apexcharts-donut-custom .apexcharts-legend-series {
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
}
|
||||
|
||||
.apexcharts-donut-custom .apexcharts-legend {
|
||||
padding: 0 !important;
|
||||
}
|
||||
/* apex-chart */
|
||||
|
||||
/* collapse */
|
||||
.active-collapse {
|
||||
@apply opacity-100;
|
||||
|
@ -6,15 +6,20 @@ return [
|
||||
'items' => 'Article|Articles',
|
||||
'incomes' => 'Ingrés|Ingressos',
|
||||
'invoices' => 'Factura|Factures',
|
||||
'revenues' => 'Cobrament|Cobraments',
|
||||
'recurring_invoices' => 'Factura recurrent|Factures recurrents',
|
||||
'customers' => 'Client|Clients',
|
||||
'incomes' => 'Ingrés|Ingressos',
|
||||
'recurring_incomes' => 'Ingrés recurrent|Ingressos recurrents',
|
||||
'expenses' => 'Despesa|Despeses',
|
||||
'recurring_expenses' => 'Despesa recurrent|Despeses recurrents',
|
||||
'bills' => 'Factura|Factures',
|
||||
'payments' => 'Pagament|Pagaments',
|
||||
'recurring_bills' => 'Factura recurrent|Factures recurrents',
|
||||
'vendors' => 'Proveïdor|Proveïdors',
|
||||
'accounts' => 'Compte|Comptes',
|
||||
'transfers' => 'Transferència|Transferències',
|
||||
'transactions' => 'Transacció|Transaccions',
|
||||
'payments' => 'Pagament|Pagaments',
|
||||
'recurring_transactions'=> 'Transacció recurrent|Transaccions recurrents',
|
||||
'reports' => 'Informe|Informes',
|
||||
'settings' => 'Configuració|Configuració',
|
||||
'categories' => 'Categoria|Categories',
|
||||
@ -40,6 +45,7 @@ return [
|
||||
'statuses' => 'Estat|Estats',
|
||||
'others' => 'Altre|Altres',
|
||||
'contacts' => 'Contacte|Contactes',
|
||||
'documents' => 'Document|Documents',
|
||||
'reconciliations' => 'Conciliació|Conciliacions',
|
||||
'developers' => 'Desenvolupador|Desenvolupadors',
|
||||
'schedules' => 'Agenda|Agendes',
|
||||
@ -54,6 +60,16 @@ return [
|
||||
'notifications' => 'Notificació|Notificacions',
|
||||
'countries' => 'País|Països',
|
||||
'cities' => 'Població/Ciutat|Poblacions/Ciutats',
|
||||
'email_services' => 'Servei de correu|Serveis de correu',
|
||||
'email_templates' => 'Plantilla de correu|Plantilles de correu',
|
||||
'bank_transactions' => 'Transacció bancària|Transaccions bancàries',
|
||||
'recurring_templates' => 'Plantilla recurrent|Plantilles recurrents',
|
||||
'receipts' => 'Rebut|Rebuts',
|
||||
'products' => 'Producte|Productes',
|
||||
'services' => 'Servei|Serveis',
|
||||
'invitations' => 'Invitació|Invitacions',
|
||||
'attachments' => 'Adjunt|Adjunts',
|
||||
'histories' => 'Història|Històries',
|
||||
|
||||
'welcome' => 'Benvingut/da',
|
||||
'banking' => 'Bancs',
|
||||
@ -63,6 +79,7 @@ return [
|
||||
'amount' => 'Quantitat',
|
||||
'enabled' => 'Activat',
|
||||
'disabled' => 'Desactivat',
|
||||
'disabled_type' => 'Aquest :type s\'ha desactivat',
|
||||
'yes' => 'Sí',
|
||||
'no' => 'No',
|
||||
'na' => 'N/A',
|
||||
@ -77,11 +94,17 @@ return [
|
||||
'add_expense' => 'Afegeix despesa',
|
||||
'add_transfer' => 'Afegeix transferència',
|
||||
'show' => 'Mostra',
|
||||
'create' => 'Crea',
|
||||
'edit' => 'Edita',
|
||||
'delete' => 'Esborra',
|
||||
'send' => 'Envia',
|
||||
'send_to' => 'Envia a',
|
||||
'receive' => 'Rep',
|
||||
'share' => 'Comparteix',
|
||||
'share_link' => 'Comparteix l\'enllaç',
|
||||
'copy_link' => 'Copia l\'enllaç',
|
||||
'download' => 'Descarrega',
|
||||
'restore' => 'Restaura',
|
||||
'delete_confirm' => 'Confimes que vols esborrar :name :type?',
|
||||
'name' => 'Nom',
|
||||
'email' => 'Correu electrònic',
|
||||
@ -107,6 +130,8 @@ return [
|
||||
'loading' => 'Es carrega...',
|
||||
'from' => 'Des de',
|
||||
'to' => 'A',
|
||||
'subject' => 'Assumpte',
|
||||
'body' => 'Cos',
|
||||
'print' => 'Imprimeix',
|
||||
'download_pdf' => 'Descarrega PDF',
|
||||
'customize' => 'Personalitza',
|
||||
@ -162,12 +187,44 @@ return [
|
||||
'is' => 'és',
|
||||
'isnot' => 'no és',
|
||||
'recurring_and_more' => 'Recurrent i més...',
|
||||
'due_on' => 'Límit el',
|
||||
'due' => 'Venciment',
|
||||
'due_on' => 'Venç el',
|
||||
'amount_due' => 'Quantitat',
|
||||
'financial_year' => 'Any fiscal',
|
||||
'created' => 'Creat/da',
|
||||
'state' => 'Província/Estat',
|
||||
'zip_code' => 'Codi postal',
|
||||
'parent' => 'Pare/Mare',
|
||||
'split' => 'Divideix',
|
||||
'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',
|
||||
'client_portal' => 'Portal del client',
|
||||
'issue_date' => 'Data d\'emissió',
|
||||
'due_date' => 'Data de venciment',
|
||||
'open' => 'Obre',
|
||||
'invite' => 'Convida',
|
||||
'common' => 'Comuna',
|
||||
'api' => 'API',
|
||||
'admin_panel' => 'Tauler d\'administració',
|
||||
'special' => 'Especial',
|
||||
'distribution' => 'Distribució',
|
||||
'timeline' => 'Línia de temps',
|
||||
'incoming' => 'Entrant',
|
||||
'outgoing' => 'Sortint',
|
||||
'none' => 'Cap',
|
||||
'preferences' => 'Preferències',
|
||||
'resend' => 'Reenvia',
|
||||
'last_sent' => 'Últim enviament :date',
|
||||
'preview_in_window' => 'Previsualitza en una altra finestra',
|
||||
'copied' => 'S\'ha copiat',
|
||||
'preview_mode' => 'Mode de previsualització',
|
||||
'go_back' => 'Torna a :type',
|
||||
'validation_error' => 'Error de validació',
|
||||
|
||||
'card' => [
|
||||
'cards' => 'Tarjeta|Tarjetes',
|
||||
@ -179,6 +236,7 @@ return [
|
||||
],
|
||||
|
||||
'title' => [
|
||||
'show' => 'Mostra :type',
|
||||
'new' => 'Nou :type',
|
||||
'edit' => 'Edita :type',
|
||||
'delete' => 'Esborra :type',
|
||||
@ -187,6 +245,8 @@ return [
|
||||
'get' => 'Utilitza :type',
|
||||
'add' => 'Afegeix :type',
|
||||
'manage' => 'Gestiona :type',
|
||||
'invite' => 'Convida :type',
|
||||
'closed' => 'Tancat :type',
|
||||
],
|
||||
|
||||
'form' => [
|
||||
@ -215,11 +275,12 @@ return [
|
||||
],
|
||||
|
||||
'date_range' => [
|
||||
'today' => 'Avui',
|
||||
'yesterday' => 'Ahir',
|
||||
'last_days' => 'Últims :day dies',
|
||||
'this_month' => 'Aquest mes',
|
||||
'last_month' => 'Últim mes',
|
||||
'today' => 'Avui',
|
||||
'yesterday' => 'Ahir',
|
||||
'week_ago' => 'Fa una setmana',
|
||||
'last_days' => 'Últims :day dies',
|
||||
'this_month' => 'Aquest mes',
|
||||
'last_month' => 'Últim mes',
|
||||
],
|
||||
|
||||
'empty' => [
|
||||
@ -232,8 +293,15 @@ return [
|
||||
'payments' => 'Una despesa és una transacció de pagament. Pot ser un registre independent (per exemple un rebut) o anar lligat a una factura de proveïdor.',
|
||||
'vendors' => 'És necessari crear proveïdors per tal de poder crear factures a proveïdors. Pots veure el balanç del que deus i generar informes per proveïdor.',
|
||||
'transfers' => 'Les transferències permeten moure els diners d\'un compte a un altre, ja sigui en la mateixa moneda o una altra de diferent.',
|
||||
'transactions' => 'Les transaccions permeten crear registres dels ingressos o despeses. Els pagaments de factures/factures també es mostren aquí.',
|
||||
'taxes' => 'Els impostos s\'apliquen sobre l\'import de les factures. La teva comptabilitat dependrà de la legislació vigent per a cada impost.',
|
||||
'reconciliations' => 'La conciliació de moviments bancaris és un procés que permet assegurar que les dades entre la comptabilitat i els registres bancaris coincideixen.',
|
||||
'recurring_templates' => 'Plantilla recurrent pot ser ingrés o despesa',
|
||||
|
||||
'actions' => [
|
||||
'new' => 'Entra els detalls i crea el teu primer :type',
|
||||
'import' => 'Importa els/les :type existents amb un simple click',
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
|
@ -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',
|
||||
|
@ -12,7 +12,7 @@
|
||||
<div class="col-58">
|
||||
<div class="text">
|
||||
@stack('company_logo_start')
|
||||
@if (!$hideCompanyLogo)
|
||||
@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
|
||||
@ -31,19 +31,20 @@
|
||||
{{ $textDocumentSubheading }}
|
||||
</p>
|
||||
@endif
|
||||
@if (!$hideCompanyDetails)
|
||||
@if (!$hideCompanyName)
|
||||
|
||||
@if (! $hideCompanyDetails)
|
||||
@if (! $hideCompanyName)
|
||||
<p>{{ setting('company.name') }}</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyAddress)
|
||||
@if (! $hideCompanyAddress)
|
||||
<p>
|
||||
{!! nl2br(setting('company.address')) !!}
|
||||
{!! $document->company->location !!}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyTaxNumber)
|
||||
@if (! $hideCompanyTaxNumber)
|
||||
@if (setting('company.tax_number'))
|
||||
<p>
|
||||
<span class="text-medium text-default">
|
||||
@ -54,7 +55,7 @@
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyPhone)
|
||||
@if (! $hideCompanyPhone)
|
||||
@if (setting('company.phone'))
|
||||
<p>
|
||||
{{ setting('company.phone') }}
|
||||
@ -62,8 +63,10 @@
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyEmail)
|
||||
<p class="small-text">{{ setting('company.email') }}</p>
|
||||
@if (! $hideCompanyEmail)
|
||||
<p class="small-text">
|
||||
{{ setting('company.email') }}
|
||||
</p>
|
||||
@endif
|
||||
@endif
|
||||
@stack('company_details_end')
|
||||
@ -81,9 +84,14 @@
|
||||
<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)
|
||||
@if (! $hideDocumentNumber)
|
||||
<div class="text small-text text-semibold mt-classic">
|
||||
<span>{{ trans($textDocumentNumber) }}:</span><br>
|
||||
<span>
|
||||
{{ trans($textDocumentNumber) }}:
|
||||
</span>
|
||||
|
||||
<br>
|
||||
|
||||
{{ $document->document_number }}
|
||||
</div>
|
||||
@endif
|
||||
@ -102,17 +110,21 @@
|
||||
<div class="col-60">
|
||||
<div class="text p-index-left">
|
||||
@if (! $hideContactInfo)
|
||||
<p class="text-semibold mb-0">{{ trans($textContactInfo) }}</p>
|
||||
<p class="text-semibold mb-0">
|
||||
{{ trans($textContactInfo) }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@stack('name_input_start')
|
||||
@if (!$hideContactName)
|
||||
<p>{{ $document->contact_name }}</p>
|
||||
@if (! $hideContactName)
|
||||
<p>
|
||||
{{ $document->contact_name }}
|
||||
</p>
|
||||
@endif
|
||||
@stack('name_input_end')
|
||||
|
||||
@stack('address_input_start')
|
||||
@if (!$hideContactAddress)
|
||||
@if (! $hideContactAddress)
|
||||
<p>
|
||||
{!! nl2br($document->contact_address) !!}
|
||||
<br>
|
||||
@ -122,7 +134,7 @@
|
||||
@stack('address_input_end')
|
||||
|
||||
@stack('tax_number_input_start')
|
||||
@if (!$hideContactTaxNumber)
|
||||
@if (! $hideContactTaxNumber)
|
||||
@if ($document->contact_tax_number)
|
||||
<p>
|
||||
<span class="text-medium text-default">
|
||||
@ -135,7 +147,7 @@
|
||||
@stack('tax_number_input_end')
|
||||
|
||||
@stack('phone_input_start')
|
||||
@if (!$hideContactPhone)
|
||||
@if (! $hideContactPhone)
|
||||
@if ($document->contact_phone)
|
||||
<p>
|
||||
{{ $document->contact_phone }}
|
||||
@ -145,8 +157,10 @@
|
||||
@stack('phone_input_end')
|
||||
|
||||
@stack('email_start')
|
||||
@if (!$hideContactEmail)
|
||||
<p class="small-text">{{ $document->contact_email }}</p>
|
||||
@if (! $hideContactEmail)
|
||||
<p class="small-text">
|
||||
{{ $document->contact_email }}
|
||||
</p>
|
||||
@endif
|
||||
@stack('email_input_end')
|
||||
</div>
|
||||
@ -155,30 +169,45 @@
|
||||
<div class="col-40">
|
||||
<div class="text p-index-right">
|
||||
@stack('order_number_input_start')
|
||||
@if (!$hideOrderNumber)
|
||||
@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>
|
||||
<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)
|
||||
@if (! $hideIssuedAt)
|
||||
<p class="mb-0">
|
||||
<span class="text-semibold spacing">{{ trans($textIssuedAt) }}:</span>
|
||||
<span class="float-right spacing">@date($document->issued_at)</span>
|
||||
<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)
|
||||
@if (! $hideDueAt)
|
||||
<p class="mb-0">
|
||||
<span class="text-semibold spacing">{{ trans($textDueAt) }}:</span>
|
||||
<span class="float-right spacing">@date($document->due_at)</span>
|
||||
<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')
|
||||
@ -186,8 +215,13 @@
|
||||
@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>
|
||||
<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
|
||||
@ -195,7 +229,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!$hideItems)
|
||||
@if (! $hideItems)
|
||||
<div class="row">
|
||||
<div class="col-100">
|
||||
<div class="text extra-spacing">
|
||||
@ -203,34 +237,44 @@
|
||||
<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>
|
||||
@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>
|
||||
@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>
|
||||
@if (! $hidePrice)
|
||||
<th class="price text text-semibold text-alignment-right text-right">
|
||||
{{ trans($textPrice) }}
|
||||
</th>
|
||||
@endif
|
||||
@stack('price_th_end')
|
||||
|
||||
@if (!$hideDiscount)
|
||||
@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>
|
||||
<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>
|
||||
@if (! $hideAmount)
|
||||
<th class="total text text-semibold text-alignment-right text-right">
|
||||
{{ trans($textAmount) }}
|
||||
</th>
|
||||
@endif
|
||||
@stack('total_th_end')
|
||||
</tr>
|
||||
@ -270,9 +314,12 @@
|
||||
<div class="col-60">
|
||||
<div class="text p-index-right">
|
||||
@stack('notes_input_start')
|
||||
@if($hideNote)
|
||||
@if ($hideNote)
|
||||
@if ($document->notes)
|
||||
<strong>{{ trans_choice('general.notes', 2) }}</strong>
|
||||
<strong>
|
||||
{{ trans_choice('general.notes', 2) }}
|
||||
</strong>
|
||||
|
||||
{!! nl2br($document->notes) !!}
|
||||
@endif
|
||||
@endif
|
||||
@ -285,23 +332,39 @@
|
||||
@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>
|
||||
<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>
|
||||
<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>
|
||||
<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
|
||||
@ -309,12 +372,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!$hideFooter)
|
||||
@if (! $hideFooter)
|
||||
@if ($document->footer)
|
||||
<div class="row mt-1">
|
||||
<div class="col-100">
|
||||
<div class="text company">
|
||||
<strong>{!! nl2br($document->footer) !!}</strong>
|
||||
<strong>
|
||||
{!! nl2br($document->footer) !!}
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -12,8 +12,8 @@
|
||||
<div class="col-58">
|
||||
<div class="text">
|
||||
@stack('company_logo_start')
|
||||
@if (!$hideCompanyLogo)
|
||||
@if (!empty($document->contact->logo) && !empty($document->contact->logo->id))
|
||||
@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') }}"/>
|
||||
@ -31,19 +31,20 @@
|
||||
{{ $textDocumentSubheading }}
|
||||
</p>
|
||||
@endif
|
||||
@if (!$hideCompanyDetails)
|
||||
@if (!$hideCompanyName)
|
||||
|
||||
@if (! $hideCompanyDetails)
|
||||
@if (! $hideCompanyName)
|
||||
<p>{{ setting('company.name') }}</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyAddress)
|
||||
@if (! $hideCompanyAddress)
|
||||
<p>
|
||||
{!! nl2br(setting('company.address')) !!}
|
||||
{!! $document->company->location !!}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyTaxNumber)
|
||||
@if (! $hideCompanyTaxNumber)
|
||||
|
||||
@if (setting('company.tax_number'))
|
||||
<p>
|
||||
@ -53,17 +54,15 @@
|
||||
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyPhone)
|
||||
|
||||
@if (! $hideCompanyPhone)
|
||||
@if (setting('company.phone'))
|
||||
<p>
|
||||
{{ setting('company.phone') }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyEmail)
|
||||
@if (! $hideCompanyEmail)
|
||||
<p class="small-text">{{ setting('company.email') }}</p>
|
||||
@endif
|
||||
@endif
|
||||
@ -80,13 +79,13 @@
|
||||
@endif
|
||||
|
||||
@stack('name_input_start')
|
||||
@if (!$hideContactName)
|
||||
@if (! $hideContactName)
|
||||
<p>{{ $document->contact_name }}</p>
|
||||
@endif
|
||||
@stack('name_input_end')
|
||||
|
||||
@stack('address_input_start')
|
||||
@if (!$hideContactAddress)
|
||||
@if (! $hideContactAddress)
|
||||
<p>
|
||||
{!! nl2br($document->contact_address) !!}
|
||||
<br>
|
||||
@ -96,7 +95,7 @@
|
||||
@stack('address_input_end')
|
||||
|
||||
@stack('tax_number_input_start')
|
||||
@if (!$hideContactTaxNumber)
|
||||
@if (! $hideContactTaxNumber)
|
||||
@if ($document->contact_tax_number)
|
||||
<p>
|
||||
<span class="text-medium text-default">
|
||||
@ -109,7 +108,7 @@
|
||||
@stack('tax_number_input_end')
|
||||
|
||||
@stack('phone_input_start')
|
||||
@if (!$hideContactPhone)
|
||||
@if (! $hideContactPhone)
|
||||
@if ($document->contact_phone)
|
||||
<p>
|
||||
{{ $document->contact_phone }}
|
||||
@ -119,7 +118,7 @@
|
||||
@stack('phone_input_end')
|
||||
|
||||
@stack('email_start')
|
||||
@if (!$hideContactEmail)
|
||||
@if (! $hideContactEmail)
|
||||
<p class="small-text">
|
||||
{{ $document->contact_email }}
|
||||
</p>
|
||||
@ -131,48 +130,59 @@
|
||||
<div class="col-40">
|
||||
<div class="text p-index-right">
|
||||
@stack('document_number_input_start')
|
||||
@if (!$hideDocumentNumber)
|
||||
@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>
|
||||
|
||||
<span class="float-right spacing">
|
||||
{{ $document->document_number }}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@endif
|
||||
@stack('document_number_input_end')
|
||||
|
||||
@stack('order_number_input_start')
|
||||
@if (!$hideOrderNumber)
|
||||
@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>
|
||||
|
||||
<span class="float-right spacing">
|
||||
{{ $document->order_number }}
|
||||
</span>
|
||||
</p>
|
||||
@endif
|
||||
@endif
|
||||
@stack('order_number_input_end')
|
||||
|
||||
@stack('issued_at_input_start')
|
||||
@if (!$hideIssuedAt)
|
||||
@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>
|
||||
|
||||
<span class="float-right spacing">
|
||||
@date($document->issued_at)
|
||||
</span>
|
||||
</p>
|
||||
@endif
|
||||
@stack('issued_at_input_end')
|
||||
|
||||
@stack('due_at_input_start')
|
||||
@if (!$hideDueAt)
|
||||
@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>
|
||||
|
||||
<span class="float-right spacing">
|
||||
@date($document->due_at)
|
||||
</span>
|
||||
</p>
|
||||
@endif
|
||||
@stack('due_at_input_end')
|
||||
@ -180,7 +190,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!$hideItems)
|
||||
@if (! $hideItems)
|
||||
<div class="row">
|
||||
<div class="col-100">
|
||||
<div class="text extra-spacing">
|
||||
@ -188,38 +198,49 @@
|
||||
<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>
|
||||
@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>
|
||||
@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>
|
||||
@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 (! $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>
|
||||
<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>
|
||||
@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)
|
||||
@ -255,7 +276,10 @@
|
||||
<div class="text p-index-left">
|
||||
@stack('notes_input_start')
|
||||
@if ($document->notes)
|
||||
<p class="text-semibold">{{ trans_choice('general.notes', 2) }}</p>
|
||||
<p class="text-semibold">
|
||||
{{ trans_choice('general.notes', 2) }}
|
||||
</p>
|
||||
|
||||
{!! nl2br($document->notes) !!}
|
||||
@endif
|
||||
@stack('notes_input_end')
|
||||
@ -267,23 +291,39 @@
|
||||
@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>
|
||||
<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>
|
||||
<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>
|
||||
<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
|
||||
@ -291,12 +331,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!$hideFooter)
|
||||
@if (! $hideFooter)
|
||||
@if ($document->footer)
|
||||
<div class="row mt-4">
|
||||
<div class="col-100 text-left">
|
||||
<div class="text">
|
||||
<strong>{!! nl2br($document->footer) !!}</strong>
|
||||
<strong>
|
||||
{!! nl2br($document->footer) !!}
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -12,8 +12,8 @@
|
||||
<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))
|
||||
@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') }}" />
|
||||
@ -31,24 +31,29 @@
|
||||
{{ $textDocumentSubheading }}
|
||||
</p>
|
||||
@endif
|
||||
@if (!$hideCompanyName)
|
||||
<p class="text-white">{{ setting('company.name') }}</p>
|
||||
|
||||
@if (! $hideCompanyName)
|
||||
<p class="text-white">
|
||||
{{ setting('company.name') }}
|
||||
</p>
|
||||
@endif
|
||||
@if (!$hideCompanyDetails)
|
||||
@if (!$hideCompanyAddress)
|
||||
|
||||
@if (! $hideCompanyDetails)
|
||||
@if (! $hideCompanyAddress)
|
||||
<p class="text-white">
|
||||
{!! nl2br(setting('company.address')) !!}
|
||||
{!! $document->company->location !!}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyTaxNumber)
|
||||
@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') }}
|
||||
<span class="text-medium text-default">
|
||||
{{ trans('general.tax_number') }}:
|
||||
</span>
|
||||
|
||||
{{ setting('company.tax_number') }}
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
@ -62,7 +67,9 @@
|
||||
@endif
|
||||
|
||||
@if (!$hideCompanyEmail)
|
||||
<p class="small-text text-white">{{ setting('company.email') }}</p>
|
||||
<p class="small-text text-white">
|
||||
{{ setting('company.email') }}
|
||||
</p>
|
||||
@endif
|
||||
@endif
|
||||
@stack('company_details_end')
|
||||
@ -74,31 +81,37 @@
|
||||
<div class="col-50">
|
||||
<div class="text p-modern">
|
||||
@if (! $hideContactInfo)
|
||||
<p class="text-semibold mb-0">{{ trans($textContactInfo) }}</p>
|
||||
<p class="text-semibold mb-0">
|
||||
{{ trans($textContactInfo) }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@stack('name_input_start')
|
||||
@if (!$hideContactName)
|
||||
<p>{{ $document->contact_name }}</p>
|
||||
@if (! $hideContactName)
|
||||
<p>
|
||||
{{ $document->contact_name }}
|
||||
</p>
|
||||
@endif
|
||||
@stack('name_input_end')
|
||||
|
||||
@stack('address_input_start')
|
||||
@if (!$hideContactAddress)
|
||||
@if (! $hideContactAddress)
|
||||
<p>
|
||||
{!! nl2br($document->contact_address) !!} <br/>
|
||||
{!! nl2br($document->contact_address) !!}
|
||||
<br/>
|
||||
{!! $document->contact_location !!}
|
||||
</p>
|
||||
@endif
|
||||
@stack('address_input_end')
|
||||
|
||||
@stack('tax_number_input_start')
|
||||
@if (!$hideContactTaxNumber)
|
||||
@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
|
||||
@ -106,7 +119,7 @@
|
||||
@stack('tax_number_input_end')
|
||||
|
||||
@stack('phone_input_start')
|
||||
@if (!$hideContactPhone)
|
||||
@if (! $hideContactPhone)
|
||||
@if ($document->contact_phone)
|
||||
<p>
|
||||
{{ $document->contact_phone }}
|
||||
@ -116,9 +129,9 @@
|
||||
@stack('phone_input_end')
|
||||
|
||||
@stack('email_start')
|
||||
@if (!$hideContactEmail)
|
||||
@if (! $hideContactEmail)
|
||||
<p>
|
||||
{{ $document->contact_email }}
|
||||
{{ $document->contact_email }}
|
||||
</p>
|
||||
@endif
|
||||
@stack('email_input_end')
|
||||
@ -128,47 +141,67 @@
|
||||
<div class="col-50">
|
||||
<div class="text p-modern">
|
||||
@stack('order_number_input_start')
|
||||
@if (!$hideOrderNumber)
|
||||
@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>
|
||||
<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>
|
||||
@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>
|
||||
@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>
|
||||
@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)
|
||||
@if (! $hideItems)
|
||||
<div class="row">
|
||||
<div class="col-100">
|
||||
<div class="text extra-spacing">
|
||||
@ -176,38 +209,49 @@
|
||||
<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>
|
||||
@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>
|
||||
@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>
|
||||
@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 (! $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>
|
||||
<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>
|
||||
@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)
|
||||
@ -243,7 +287,10 @@
|
||||
<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>
|
||||
<p class="text-semibold">
|
||||
{{ trans_choice('general.notes', 2) }}
|
||||
</p>
|
||||
|
||||
{!! nl2br($document->notes) !!}
|
||||
@endif
|
||||
@stack('notes_input_end')
|
||||
@ -255,23 +302,39 @@
|
||||
@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>
|
||||
<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>
|
||||
<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>
|
||||
<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
|
||||
@ -279,12 +342,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!$hideFooter)
|
||||
@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>
|
||||
<strong class="text-white">
|
||||
{!! nl2br($document->footer) !!}
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -33,11 +33,7 @@
|
||||
|
||||
title="{!! $label !!}"
|
||||
|
||||
@if (isset($attributes['placeholder']))
|
||||
placeholder="{{ $attributes['placeholder'] }}"
|
||||
@else
|
||||
placeholder="{{ trans('general.form.select.field', ['field' => $label]) }}"
|
||||
@endif
|
||||
placeholder="{{ $placeholder }}"
|
||||
|
||||
name="{{ $name }}"
|
||||
|
||||
|
@ -33,11 +33,7 @@
|
||||
title="{{ $label }}"
|
||||
@endif
|
||||
|
||||
@if (isset($attributes['placeholder']))
|
||||
placeholder="{{ $attributes['placeholder'] }}"
|
||||
@else
|
||||
placeholder="{{ trans('general.form.select.field', ['field' => $label]) }}"
|
||||
@endif
|
||||
placeholder="{{ $placeholder }}"
|
||||
|
||||
name="{{ $name }}"
|
||||
|
||||
|
@ -63,15 +63,16 @@
|
||||
'flex items-center menu-button justify-center w-8 h-8 mb-2.5 relative cursor-pointer js-menu-toggles',
|
||||
'animate-vibrate' => $notification_count,
|
||||
])
|
||||
data-menu="notifications-menu">
|
||||
data-menu="notifications-menu"
|
||||
>
|
||||
<span id="menu-notification-icon" name="notifications" class="material-icons-outlined text-purple text-2xl">notifications</span>
|
||||
|
||||
@if ($notification_count)
|
||||
<span data-notification-count class="w-2 h-2 absolute top-2 right-2 inline-flex items-center justify-center p-2.5 text-xs text-white font-bold leading-none transform translate-x-1/2 -translate-y-1/2 bg-orange rounded-full">
|
||||
{{ $notification_count }}
|
||||
</span>
|
||||
@endif
|
||||
</button>
|
||||
|
||||
@if ($notification_count)
|
||||
<span data-notification-count class="w-2 h-2 absolute top-2 right-2 inline-flex items-center justify-center p-2.5 text-xs text-white font-bold leading-none transform translate-x-1/2 -translate-y-1/2 bg-orange rounded-full">
|
||||
{{ $notification_count }}
|
||||
</span>
|
||||
@endif
|
||||
</x-tooltip>
|
||||
@endcan
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
<body>
|
||||
<div class="max-w-7xl m-auto h-screen flex flex-col sm:flex-row items-center justify-center sm:justify-between">
|
||||
<div class="flex flex-col items-start gap-y-4 mb-10 sm:mb-0 sm:-mt-24">
|
||||
<span class="text-lg">
|
||||
{{ trans('maintenance.message') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<img src="{{ asset('public/img/empty_pages/transactions.png') }}" alt="{{ trans('maintenance.message') }}" />
|
||||
</div>
|
||||
</body>
|
||||
|
@ -11,9 +11,9 @@
|
||||
|
||||
<base href="{{ config('app.url') . '/' }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ asset('public/css/fonts/material-icons/style.css') }}" type="text/css">
|
||||
<link rel="stylesheet" href="{{ asset('public/vendor/quicksand/css/quicksand.css') }}" type="text/css">
|
||||
<link rel="stylesheet" href="{{ asset('public/css/apps.css') }}" type="text/css">
|
||||
<link rel="stylesheet" href="{{ asset('public/css/fonts/material-icons/style.css?v=' . version('short')) }}" type="text/css">
|
||||
<link rel="stylesheet" href="{{ asset('public/vendor/quicksand/css/quicksand.css?v=' . version('short')) }}" type="text/css">
|
||||
<link rel="stylesheet" href="{{ asset('public/css/app.css') }}" type="text/css">
|
||||
|
||||
@stack('css')
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
{!! $charts['bar']->container() !!}
|
||||
</div>
|
||||
|
||||
<div x-show="toggle === 'bar'">
|
||||
<div class="apexcharts-donut-custom apexcharts-donut-custom-report" x-show="toggle === 'bar'">
|
||||
{!! $charts['donut']->container() !!}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,8 +8,8 @@
|
||||
@endif
|
||||
|
||||
@if ($notifications)
|
||||
<div class="flex justify-end mt-1">
|
||||
<x-tooltip id="notification-all" placement="right" message="Mark as All Read">
|
||||
<div class="flex justify-end mt-1 mb-3">
|
||||
<x-tooltip id="notification-all" placement="top" message="Mark as All Read">
|
||||
<button type="button" wire:click="markReadAll()">
|
||||
<span id="menu-notification-read-all" class="material-icons text-lg text-purple">done_all</span>
|
||||
</button>
|
||||
@ -30,9 +30,11 @@
|
||||
</div>
|
||||
|
||||
@if ($notification->type != 'updates')
|
||||
<button type="button" wire:click="markRead('{{ $notification->id }}')">
|
||||
<span id="menu-notification-mark-read" class="material-icons text-lg text-purple">check_circle_outline</span>
|
||||
</button>
|
||||
<x-tooltip id="notification-{{ $notification->id }}" placement="top" message="Clear Notification">
|
||||
<button type="button" wire:click="markRead('{{ $notification->type }}', '{{ $notification->id }}')">
|
||||
<span id="menu-notification-mark-read" class="material-icons text-lg text-purple">check_circle_outline</span>
|
||||
</button>
|
||||
</x-tooltip>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
<x-form.group.editor name="body" label="{{ trans('settings.email.templates.body') }}" :value="$notification->getBody()" rows="5" data-toggle="quill" form-group-class="sm:col-span-6 mb-0" />
|
||||
|
||||
<x-form.group.checkbox name="user_email" :options="['1' => trans('general.email_send_me', ['email' => user()->email])]" />
|
||||
<x-form.group.checkbox name="user_email" :options="['1' => trans('general.email_send_me', ['email' => user()->email])]" checkbox-class="col-span-6" />
|
||||
|
||||
<x-form.input.hidden name="document_id" :value="$invoice->id" />
|
||||
</x-slot>
|
||||
|
@ -99,7 +99,7 @@
|
||||
</x-table.td>
|
||||
|
||||
<x-table.td class="w-2/12 relative">
|
||||
<span class="material-icons" class="text-3xl" style="color:{{ $category->color }};">circle</span>
|
||||
<span class="material-icons text-{{ $category->color }}" class="text-3xl" style="color:{{ $category->color }};">circle</span>
|
||||
</x-table.td>
|
||||
|
||||
<x-table.td kind="action">
|
||||
|
@ -39,7 +39,7 @@
|
||||
</x-table.td>
|
||||
|
||||
<x-table.td class="ltr:pr-6 rtl:pl-6 py-4 ltr:text-left rtl:text-right whitespace-nowrap text-sm font-normal text-black cursor-pointer w-2/12 relative">
|
||||
<span class="material-icons" class="text-3xl" style="color:{{ $sub_category->color }};">circle</span>
|
||||
<span class="material-icons text-3xl text-{{ $category->color }}" style="color:{{ $sub_category->color }};">circle</span>
|
||||
</x-table.td>
|
||||
|
||||
<x-table.td kind="action">
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }} my-8">
|
||||
<div id="widget-{{ $class->model->id }}" class="apexcharts-donut-custom {{ $class->model->settings->width }} my-8">
|
||||
@include($class->views['header'], ['header_class' => ''])
|
||||
|
||||
<div class="flex flex-col lg:flex-row mt-3" id="widget-donut-{{ $class->model->id }}">
|
||||
|
Loading…
x
Reference in New Issue
Block a user