Merge branch 'master' of github.com:akaunting/akaunting into 2.1-dev

# Conflicts:
#	app/Http/Controllers/Common/Items.php
#	resources/views/modules/item/documentation.blade.php
#	resources/views/modules/item/show.blade.php
#	resources/views/partials/admin/header.blade.php
#	resources/views/purchases/bills/show.blade.php
#	resources/views/purchases/vendors/show.blade.php
#	resources/views/sales/customers/show.blade.php
#	resources/views/sales/invoices/show.blade.php
#	resources/views/wizard/companies/edit.blade.php
#	resources/views/wizard/currencies/index.blade.php
#	resources/views/wizard/finish/index.blade.php
#	resources/views/wizard/taxes/index.blade.php
This commit is contained in:
Cüneyt Şentürk
2020-08-28 19:24:26 +03:00
824 changed files with 14086 additions and 5612 deletions

View File

@ -5,50 +5,76 @@
@section('content')
<div class="row">
<div class="col-xl-3">
<div class="card">
<div class="card-header border-bottom-0 show-transaction-card-header">
<a class="text-sm font-weight-600">{{ trans_choice('general.invoices', 2) }}</a> <a class="float-right text-xs">{{ $counts['invoices'] }}</a>
</div>
<div class="card-footer show-transaction-card-footer">
<a class="text-sm font-weight-600">{{ trans_choice('general.transactions', 2) }}</a> <a class="float-right text-xs">{{ $counts['transactions'] }}</a>
</div>
</div>
<ul class="list-group mb-4">
@stack('customer_invoices_count_start')
<li class="list-group-item d-flex justify-content-between align-items-center border-0">
{{ trans_choice('general.invoices', 2) }}
<span class="badge badge-primary badge-pill">{{ $counts['invoices'] }}</span>
</li>
@stack('customer_invoices_count_end')
<div class="card">
<div class="card-header">
<h4 class="mb-0">{{ trans('auth.profile') }}</h4>
</div>
<div class="card-body d-grid">
<a class="text-sm font-weight-600">{{ trans('general.email') }}</a> <a class="text-xs long-texts">{{ $customer->email }}</a>
<div class="dropdown-divider"></div>
<a class="text-sm font-weight-600">{{ trans('general.phone') }}</a> <a class="text-xs long-texts">{{ $customer->phone }}</a>
<div class="dropdown-divider"></div>
<a class="text-sm font-weight-600">{{ trans('general.website') }}</a> <a class="text-xs long-texts">{{ $customer->website }}</a>
<div class="dropdown-divider"></div>
<a class="text-sm font-weight-600">{{ trans('general.tax_number') }}</a> <a class="text-xs long-texts">{{ $customer->tax_number }}</a>
@if ($customer->reference)
<div class="dropdown-divider"></div>
<a class="text-sm font-weight-600">{{ trans('general.reference') }}</a> <a class="text-xs long-texts">{{ $customer->reference }}</a>
@endif
</div>
</div>
@stack('customer_transactions_count_start')
<li class="list-group-item d-flex justify-content-between align-items-center border-0 border-top-1">
{{ trans_choice('general.transactions', 2) }}
<span class="badge badge-primary badge-pill">{{ $counts['transactions'] }}</span>
</li>
@stack('customer_transactions_count_end')
</ul>
<div class="card">
<div class="card-header">
<h4 class="mb-0">{{ trans('general.address') }}</h4>
</div>
<div class="card-body">
<a class="text-xs m-0">
{{ $customer->address }}
</a>
</div>
</div>
<ul class="list-group mb-4">
@stack('customer_email_start')
<li class="list-group-item border-0">
<div class="font-weight-600">{{ trans('general.email') }}</div>
<div><small class="long-texts" title="{{ $customer->email }}">{{ $customer->email }}</small></div>
</li>
@stack('customer_email_end')
@stack('customer_phone_start')
<li class="list-group-item border-0 border-top-1">
<div class="font-weight-600">{{ trans('general.phone') }}</div>
<div><small class="long-texts" title="{{ $customer->phone }}">{{ $customer->phone }}</small></div>
</li>
@stack('customer_phone_end')
@stack('customer_website_start')
<li class="list-group-item border-0 border-top-1">
<div class="font-weight-600">{{ trans('general.website') }}</div>
<div><small class="long-texts" title="{{ $customer->website }}">{{ $customer->website }}</small></div>
</li>
@stack('customer_website_end')
@stack('customer_tax_number_start')
<li class="list-group-item border-0 border-top-1">
<div class="font-weight-600">{{ trans('general.tax_number') }}</div>
<div><small class="long-texts" title="{{ $customer->tax_number }}">{{ $customer->tax_number }}</small></div>
</li>
@stack('customer_tax_number_end')
@stack('customer_address_start')
<li class="list-group-item border-0 border-top-1">
<div class="font-weight-600">{{ trans('general.address') }}</div>
<div><small>{{ $customer->address }}</small></div>
</li>
@stack('customer_address_end')
@if ($customer->reference)
@stack('customer_reference_start')
<li class="list-group-item border-0 border-top-1">
<div class="font-weight-600">{{ trans('general.reference') }}</div>
<div><small class="long-texts" title="{{ $customer->reference }}">{{ $customer->reference }}</small></div>
</li>
@stack('customer_reference_end')
@endif
</ul>
@stack('customer_edit_button_start')
<a href="{{ route('customers.edit', $customer->id) }}" class="btn btn-info btn-block edit-sv"><b>{{ trans('general.edit') }}</b></a>
@stack('customer_edit_button_end')
</div>
<div class="col-xl-9">
<div class="row mb--3">
@stack('customer_paid_card_start')
<div class="col-md-4">
<div class="card bg-gradient-success border-0">
<div class="card-body">
@ -62,7 +88,9 @@
</div>
</div>
</div>
@stack('customer_paid_card_end')
@stack('customer_open_card_start')
<div class="col-md-4">
<div class="card bg-gradient-warning border-0">
<div class="card-body">
@ -76,7 +104,9 @@
</div>
</div>
</div>
@stack('customer_open_card_end')
@stack('customer_overdue_card_start')
<div class="col-md-4">
<div class="card bg-gradient-danger border-0">
<div class="card-body">
@ -90,40 +120,47 @@
</div>
</div>
</div>
@stack('customer_overdue_card_end')
</div>
<div class="row">
<div class="col-md-12">
<div class="nav-wrapper">
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
@stack('customer_transactions_tab_start')
<li class="nav-item">
<a class="nav-link mb-sm-3 mb-md-0 active" id="tabs-header-transactions" data-toggle="tab" href="#tabs-content-transactions" role="tab" aria-controls="tabs-content-transactions" aria-selected="true">{{ trans_choice('general.transactions', 2) }}</a>
<a class="nav-link mb-sm-3 mb-md-0 active" id="transactions-tab" data-toggle="tab" href="#transactions-content" role="tab" aria-controls="transactions-content" aria-selected="true">{{ trans_choice('general.transactions', 2) }}</a>
</li>
@stack('customer_transactions_tab_end')
@stack('customer_invoices_tab_start')
<li class="nav-item">
<a class="nav-link mb-sm-3 mb-md-0" id="tabs-invoices" data-toggle="tab" href="#tabs-content-invoices" role="tab" aria-controls="tabs-content-invoices" aria-selected="false">{{ trans_choice('general.invoices', 2) }}</a>
<a class="nav-link mb-sm-3 mb-md-0" id="invoices-tab" data-toggle="tab" href="#invoices-content" role="tab" aria-controls="invoices-content" aria-selected="false">{{ trans_choice('general.invoices', 2) }}</a>
</li>
@stack('customer_invoices_tab_end')
</ul>
</div>
<div class="card">
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="tabs-content-transactions" role="tabpanel" aria-labelledby="tabs-header-transactions">
@stack('customer_transactions_content_start')
<div class="tab-pane fade show active" id="transactions-content" role="tabpanel" aria-labelledby="transactions-tab">
<div class="table-responsive">
<table class="table table-flush table-hover" id="tbl-transactions">
<thead class="thead-light">
<tr class="row table-head-line">
<th class="col-xs-6 col-sm-3">{{ trans('general.date') }}</th>
<th class="col-xs-6 col-sm-3 text-right">{{ trans('general.amount') }}</th>
<th class="col-sm-3 d-none d-sm-block">{{ trans_choice('general.categories', 1) }}</th>
<th class="col-sm-3 d-none d-sm-block">{{ trans_choice('general.accounts', 1) }}</th>
<th class="col-xs-6 col-sm-2">{{ trans('general.date') }}</th>
<th class="col-xs-6 col-sm-2 text-right">{{ trans('general.amount') }}</th>
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.categories', 1) }}</th>
<th class="col-sm-4 d-none d-sm-block">{{ trans_choice('general.accounts', 1) }}</th>
</tr>
</thead>
<tbody>
@foreach($transactions as $item)
<tr class="row align-items-center border-top-1 tr-py">
<td class="col-xs-6 col-sm-3">@date($item->paid_at)</td>
<td class="col-xs-6 col-sm-3 text-right">@money($item->amount, $item->currency_code, true)</td>
<td class="col-sm-3 d-none d-sm-block">{{ $item->category ? $item->category->name : trans('general.na') }}</td>
<td class="col-sm-3 d-none d-sm-block">{{ $item->account->name }}</td>
<td class="col-xs-6 col-sm-2">@date($item->paid_at)</td>
<td class="col-xs-6 col-sm-2 text-right">@money($item->amount, $item->currency_code, true)</td>
<td class="col-sm-4 d-none d-sm-block">{{ $item->category->name }}</td>
<td class="col-sm-4 d-none d-sm-block">{{ $item->account->name }}</td>
</tr>
@endforeach
</tbody>
@ -135,8 +172,10 @@
</div>
</div>
</div>
@stack('customer_transactions_content_end')
<div class="tab-pane fade" id="tabs-content-invoices" role="tabpanel" aria-labelledby="tabs-header-invoices">
@stack('customer_invoices_content_start')
<div class="tab-pane fade" id="invoices-content" role="tabpanel" aria-labelledby="invoices-tab">
<div class="table-responsive">
<table class="table table-flush table-hover" id="tbl-invoices">
<thead class="thead-light">
@ -167,6 +206,7 @@
</div>
</div>
</div>
@stack('customer_invoices_content_end')
</div>
</div>
</div>

View File

@ -160,7 +160,7 @@
@stack('notes_input_start')
@if ($invoice->notes)
<strong>{{ trans_choice('general.notes', 2) }}</strong><br><br>
{{ $invoice->notes }}
{!! nl2br($invoice->notes) !!}
@endif
@stack('notes_input_end')
</div>
@ -170,25 +170,27 @@
<div class="text company pr-2">
@foreach ($invoice->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_td_start')
<div class="border-top-dashed py-2">
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span>
</div>
@stack($total->code . '_td_end')
@stack($total->code . '_total_tr_start')
<div class="border-top-dashed py-2">
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($invoice->paid)
@stack('paid_total_tr_start')
<div class="border-top-dashed py-2">
<strong class="float-left">{{ trans('invoices.paid') }}:</strong>
<span>- @money($invoice->paid, $invoice->currency_code, true)</span>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_td_start')
<div class="border-top-dashed py-2">
<strong class="float-left">{{ trans($total->name) }}:</strong>
<span>@money($total->amount - $invoice->paid, $invoice->currency_code, true)</span>
</div>
@stack('grand_total_td_end')
@stack('grand_total_tr_start')
<div class="border-top-dashed py-2">
<strong class="float-left">{{ trans($total->name) }}:</strong>
<span>@money($total->amount - $invoice->paid, $invoice->currency_code, true)</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
@ -199,7 +201,7 @@
<div class="row mt-1">
<div class="col-100">
<div class="text company">
<strong>{!! $invoice->footer !!}</strong>
<strong>{!! nl2br($invoice->footer) !!}</strong>
</div>
</div>
</div>

View File

@ -148,7 +148,7 @@
@if ($invoice->notes)
<br>
<strong>{{ trans_choice('general.notes', 2) }}</strong><br><br>
{{ $invoice->notes }}
{!! nl2br($invoice->notes) !!}
@endif
@stack('notes_input_end')
</div>
@ -158,25 +158,27 @@
<div class="text company">
@foreach ($invoice->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_td_start')
<div class="border-top-1 py-2">
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span><br>
</div>
@stack($total->code . '_td_end')
@stack($total->code . '_total_tr_start')
<div class="border-top-1 py-2">
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span><br>
</div>
@stack($total->code . '_total_tr_end')
@else
@if ($invoice->paid)
@stack('paid_total_tr_start')
<div class="border-top-1 py-2">
<strong class="float-left">{{ trans('invoices.paid') }}:</strong>
<span>- @money($invoice->paid, $invoice->currency_code, true)</span><br>
</div>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_td_start')
<div class="border-top-1 py-2">
<strong class="float-left">{{ trans($total->name) }}:</strong>
<span>@money($total->amount - $invoice->paid, $invoice->currency_code, true)</span>
</div>
@stack('grand_total_td_end')
@stack('grand_total_tr_start')
<div class="border-top-1 py-2">
<strong class="float-left">{{ trans($total->name) }}:</strong>
<span>@money($total->amount - $invoice->paid, $invoice->currency_code, true)</span>
</div>
@stack('grand_total_tr_end')
@endif
@endforeach
</div>
@ -187,7 +189,7 @@
<div class="row mt-4">
<div class="col-100 text-left">
<div class="text company">
<strong>{!! $invoice->footer !!}<strong>
<strong>{!! nl2br($invoice->footer) !!}<strong>
</div>
</div>
</div>

View File

@ -129,7 +129,7 @@
@stack('notes_input_start')
@if ($invoice->notes)
<strong>{{ trans_choice('general.notes', 2) }}</strong><br><br>
{{ $invoice->notes }}
{!! nl2br($invoice->notes) !!}
@endif
@stack('notes_input_end')
</div>
@ -139,19 +139,21 @@
<div class="text company pr-2">
@foreach ($invoice->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_td_start')
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span><br><br>
@stack($total->code . '_td_end')
@stack($total->code . '_total_tr_start')
<strong class="float-left">{{ trans($total->title) }}:</strong>
<span>@money($total->amount, $invoice->currency_code, true)</span><br><br>
@stack($total->code . '_total_tr_end')
@else
@if ($invoice->paid)
@stack('paid_total_tr_start')
<strong class="float-left">{{ trans('invoices.paid') }}:</strong>
<span>- @money($invoice->paid, $invoice->currency_code, true)</span><br><br>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_td_start')
@stack('grand_total_tr_start')
<strong class="float-left">{{ trans($total->name) }}:</strong>
<span>@money($total->amount - $invoice->paid, $invoice->currency_code, true)</span>
@stack('grand_total_td_end')
@stack('grandtotal_tr_end')
@endif
@endforeach
</div>
@ -162,7 +164,7 @@
<div class="row mt-7">
<div class="col-100 py-2" style="background-color:{{ setting('invoice.color') }} !important; -webkit-print-color-adjust: exact;">
<div class="text pl-2">
<strong class="text-white">{!! $invoice->footer !!}</strong>
<strong class="text-white">{!! nl2br($invoice->footer) !!}</strong>
</div>
</div>
</div>

View File

@ -216,25 +216,27 @@
{{ setting('company.name') }}
</th>
</tr>
<tr>
<th>
{!! nl2br(setting('company.address')) !!}
</th>
</tr>
<tr>
<th>
@if (setting('company.tax_number'))
@if (setting('company.address'))
<tr>
<th>
{!! nl2br(setting('company.address')) !!}
</th>
</tr>
@endif
@if (setting('company.tax_number'))
<tr>
<th>
{{ trans('general.tax_number') }}: {{ setting('company.tax_number') }}
@endif
</th>
</tr>
<tr>
<th>
@if (setting('company.phone'))
</th>
</tr>
@endif
@if (setting('company.phone'))
<tr>
<th>
{{ setting('company.phone') }}
@endif
</th>
</tr>
</th>
</tr>
@endif
<tr>
<th>
{{ setting('company.email') }}
@ -261,38 +263,50 @@
@stack('name_input_end')
</th>
</tr>
<tr>
<th>
@stack('address_input_start')
{!! nl2br($invoice->contact_address) !!}
@stack('address_input_end')
</th>
</tr>
<tr>
<th>
@stack('tax_number_input_start')
@if ($invoice->contact_tax_number)
{{ trans('general.tax_number') }}: {{ $invoice->contact_tax_number }}
@endif
@stack('tax_number_input_end')
</th>
</tr>
<tr>
<th>
@stack('phone_input_start')
@if ($invoice->contact_phone)
{{ $invoice->contact_phone }}
@endif
@stack('phone_input_end')
</th>
</tr>
<tr>
<th>
@stack('email_start')
{{ $invoice->contact_email }}
@stack('email_input_end')
</th>
</tr>
@if ($invoice->contact_address || $__env->hasStack('address_input_start', 'address_input_end'))
<tr>
<th>
@stack('address_input_start')
@if ($invoice->contact_address)
{!! nl2br($invoice->contact_address) !!}
@endif
@stack('address_input_end')
</th>
</tr>
@endif
@if ($invoice->contact_tax_number || $__env->hasStack('tax_number_input_start', 'tax_number_input_end'))
<tr>
<th>
@stack('tax_number_input_start')
@if ($invoice->contact_tax_number)
{{ trans('general.tax_number') }}: {{ $invoice->contact_tax_number }}
@endif
@stack('tax_number_input_end')
</th>
</tr>
@endif
@if ($invoice->contact_phone || $__env->hasStack('phone_input_start', 'phone_input_end'))
<tr>
<th>
@stack('phone_input_start')
@if ($invoice->contact_phone)
{{ $invoice->contact_phone }}
@endif
@stack('phone_input_end')
</th>
</tr>
@endif
@if ($invoice->contact_email || $__env->hasStack('email_start', 'email_input_end'))
<tr>
<th>
@stack('email_start')
@if ($invoice->contact_email)
{{ $invoice->contact_email }}
@endif
@stack('email_input_end')
</th>
</tr>
@endif
</tbody>
</table>
</div>
@ -387,7 +401,7 @@
<tr>
<th>
<p class="form-control-label">{{ trans_choice('general.notes', 2) }}</p>
<p class="text-muted long-texts">{{ $invoice->notes }}</p>
<p class="text-muted long-texts">{!! nl2br($invoice->notes) !!}</p>
</th>
</tr>
@endif
@ -402,27 +416,29 @@
<tbody>
@foreach ($invoice->totals_sorted as $total)
@if ($total->code != 'total')
@stack($total->code . '_td_start')
<tr>
<th>{{ trans($total->title) }}:</th>
<td class="text-right">@money($total->amount, $invoice->currency_code, true)</td>
</tr>
@stack($total->code . '_td_end')
@stack($total->code . '_total_tr_start')
<tr>
<th>{{ trans($total->title) }}:</th>
<td class="text-right">@money($total->amount, $invoice->currency_code, true)</td>
</tr>
@stack($total->code . '_total_tr_end')
@else
@if ($invoice->paid)
@stack('paid_total_tr_start')
<tr>
<th class="text-success">
{{ trans('invoices.paid') }}:
</th>
<td class="text-success text-right">- @money($invoice->paid, $invoice->currency_code, true)</td>
</tr>
@stack('paid_total_tr_end')
@endif
@stack('grand_total_td_start')
<tr>
<th>{{ trans($total->name) }}:</th>
<td class="text-right">@money($total->amount - $invoice->paid, $invoice->currency_code, true)</td>
</tr>
@stack('grand_total_td_end')
@stack('grand_total_tr_start')
<tr>
<th>{{ trans($total->name) }}:</th>
<td class="text-right">@money($total->amount - $invoice->paid, $invoice->currency_code, true)</td>
</tr>
@stack('grand_total_tr_end')
@endif
@endforeach
</tbody>
@ -445,87 +461,93 @@
<div class="col-xs-12 col-sm-8 text-right">
@stack('button_edit_start')
@if(!$invoice->reconciled)
<a href="{{ route('invoices.edit', $invoice->id) }}" class="btn btn-info header-button-top">
{{ trans('general.edit') }}
</a>
@endif
@if(!$invoice->reconciled)
<a href="{{ route('invoices.edit', $invoice->id) }}" class="btn btn-info header-button-top">
{{ trans('general.edit') }}
</a>
@endif
@stack('button_edit_end')
@stack('button_print_start')
<a href="{{ route('invoices.print', $invoice->id) }}" target="_blank" class="btn btn-success header-button-top">
{{ trans('general.print') }}
</a>
<a href="{{ route('invoices.print', $invoice->id) }}" target="_blank" class="btn btn-success header-button-top">
{{ trans('general.print') }}
</a>
@stack('button_print_end')
@if ($invoice->status != 'cancelled')
@stack('button_share_start')
<a href="{{ $signed_url }}" target="_blank" class="btn btn-white header-button-top">
{{ trans('general.share') }}
</a>
@stack('button_share_end')
@stack('button_share_start')
<a href="{{ $signed_url }}" target="_blank" class="btn btn-white header-button-top">
{{ trans('general.share') }}
</a>
@stack('button_share_end')
@endif
@stack('button_group_start')
<div class="dropup header-drop-top">
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i>&nbsp; {{ trans('general.more_actions') }}</button>
<div class="dropdown-menu" role="menu">
@if ($invoice->status != 'cancelled')
<div class="dropup header-drop-top">
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i>&nbsp; {{ trans('general.more_actions') }}</button>
<div class="dropdown-menu" role="menu">
@stack('button_dropdown_start')
@if ($invoice->status != 'cancelled')
@if ($invoice->status != 'paid')
@stack('button_pay_start')
@if ($invoice->status != 'paid')
@permission('update-sales-invoices')
<a class="dropdown-item" href="{{ route('invoices.paid', $invoice->id) }}">{{ trans('invoices.mark_paid') }}</a>
@endpermission
@permission('update-sales-invoices')
<a class="dropdown-item" href="{{ route('invoices.paid', $invoice->id) }}">{{ trans('invoices.mark_paid') }}</a>
@endpermission
@if(empty($invoice->paid) || ($invoice->paid != $invoice->amount))
<button class="dropdown-item" id="button-payment" @click="onPayment">{{ trans('invoices.add_payment') }}</button>
@endif
<div class="dropdown-divider"></div>
@endif
@if (empty($invoice->paid) || ($invoice->paid != $invoice->amount))
<button class="dropdown-item" id="button-payment" @click="onPayment">{{ trans('invoices.add_payment') }}</button>
@endif
@stack('button_pay_end')
@stack('button_sent_start')
@permission('update-sales-invoices')
@if ($invoice->status == 'draft')
<a class="dropdown-item" href="{{ route('invoices.sent', $invoice->id) }}">{{ trans('invoices.mark_sent') }}</a>
@else
<button type="button" class="dropdown-item" disabled="disabled"><span class="text-disabled">{{ trans('invoices.mark_sent') }}</span></button>
@endif
@endpermission
@stack('button_sent_end')
@stack('button_email_start')
@if ($invoice->contact_email)
<a class="dropdown-item" href="{{ route('invoices.email', $invoice->id) }}">{{ trans('invoices.send_mail') }}</a>
@else
<button type="button" class="dropdown-item" disabled="disabled" data-toggle="tooltip" data-placement="right" title="{{ trans('invoices.messages.email_required') }}">
<span class="text-disabled">{{ trans('invoices.send_mail') }}</span>
</button>
@endif
@stack('button_email_end')
<div class="dropdown-divider"></div>
@endif
@stack('button_pdf_start')
<a class="dropdown-item" href="{{ route('invoices.pdf', $invoice->id) }}">{{ trans('invoices.download_pdf') }}</a>
@stack('button_pdf_end')
@stack('button_dropdown_divider_1')
@permission('update-sales-invoices')
@if ($invoice->status != 'cancelled')
@stack('button_cancelled_start')
<a class="dropdown-item" href="{{ route('invoices.cancelled', $invoice->id) }}">{{ trans('general.cancel') }}</a>
@stack('button_cancelled_end')
@stack('button_sent_start')
@if ($invoice->status == 'draft')
<a class="dropdown-item" href="{{ route('invoices.sent', $invoice->id) }}">{{ trans('invoices.mark_sent') }}</a>
@else
<button type="button" class="dropdown-item" disabled="disabled"><span class="text-disabled">{{ trans('invoices.mark_sent') }}</span></button>
@endif
@stack('button_sent_end')
@endpermission
@permission('delete-sales-invoices')
@if (!$invoice->reconciled)
@stack('button_delete_start')
{!! Form::deleteLink($invoice, 'sales/invoices') !!}
@stack('button_delete_end')
@endif
@endpermission
</div>
@stack('button_email_start')
@if ($invoice->contact_email)
<a class="dropdown-item" href="{{ route('invoices.email', $invoice->id) }}">{{ trans('invoices.send_mail') }}</a>
@else
<button type="button" class="dropdown-item" disabled="disabled" data-toggle="tooltip" data-placement="right" title="{{ trans('invoices.messages.email_required') }}">
<span class="text-disabled">{{ trans('invoices.send_mail') }}</span>
</button>
@endif
@stack('button_email_end')
@endif
@stack('button_pdf_start')
<a class="dropdown-item" href="{{ route('invoices.pdf', $invoice->id) }}">{{ trans('invoices.download_pdf') }}</a>
@stack('button_pdf_end')
@permission('update-sales-invoices')
@if ($invoice->status != 'cancelled')
@stack('button_cancelled_start')
<a class="dropdown-item" href="{{ route('invoices.cancelled', $invoice->id) }}">{{ trans('general.cancel') }}</a>
@stack('button_cancelled_end')
@endif
@endpermission
@stack('button_dropdown_divider_2')
@permission('delete-sales-invoices')
@if (!$invoice->reconciled)
@stack('button_delete_start')
{!! Form::deleteLink($invoice, 'sales/invoices') !!}
@stack('button_delete_end')
@endif
@endpermission
@stack('button_dropdown_end')
</div>
</div>
@stack('button_group_end')
</div>
</div>
@ -536,7 +558,7 @@
@stack('row_footer_start')
<div class="row">
@stack('row_footer_history_start')
@stack('row_footer_histories_start')
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<div class="accordion">
<div class="card">
@ -547,20 +569,28 @@
<div class="table-responsive">
<table class="table table-flush table-hover">
<thead class="thead-light">
@stack('row_footer_histories_head_tr_start')
<tr class="row table-head-line">
<th class="col-xs-4 col-sm-2">{{ trans('general.date') }}</th>
@stack('row_footer_histories_head_start')
<th class="col-xs-4 col-sm-3">{{ trans('general.date') }}</th>
<th class="col-xs-4 col-sm-3 text-left">{{ trans_choice('general.statuses', 1) }}</th>
<th class="col-xs-4 col-sm-7 text-left long-texts">{{ trans('general.description') }}</th>
<th class="col-xs-4 col-sm-6 text-left long-texts">{{ trans('general.description') }}</th>
@stack('row_footer_histories_head_end')
</tr>
@stack('row_footer_histories_head_tr_end')
</thead>
<tbody>
@stack('row_footer_histories_body_tr_start')
@foreach($invoice->histories as $history)
<tr class="row align-items-center border-top-1 tr-py">
<td class="col-xs-4 col-sm-2">@date($history->created_at)</td>
@stack('row_footer_histories_body_td_start')
<td class="col-xs-4 col-sm-3">@date($history->created_at)</td>
<td class="col-xs-4 col-sm-3 text-left">{{ trans('invoices.statuses.' . $history->status) }}</td>
<td class="col-xs-4 col-sm-7 text-left long-texts">{{ $history->description }}</td>
<td class="col-xs-4 col-sm-6 text-left long-texts">{{ $history->description }}</td>
@stack('row_footer_histories_body_td_end')
</tr>
@endforeach
@stack('row_footer_histories_body_tr_end')
</tbody>
</table>
</div>
@ -568,9 +598,9 @@
</div>
</div>
</div>
@stack('row_footer_history_end')
@stack('row_footer_histories_end')
@stack('row_footer_transaction_start')
@stack('row_footer_transactions_start')
<div class="col-sm-6 col-md-6 col-lg-6 col-xl-6">
<div class="accordion">
<div class="card">
@ -581,17 +611,23 @@
<div class="table-responsive">
<table class="table table-flush table-hover">
<thead class="thead-light">
@stack('row_footer_transactions_head_tr_start')
<tr class="row table-head-line">
@stack('row_footer_transactions_head_td_start')
<th class="col-xs-4 col-sm-3">{{ trans('general.date') }}</th>
<th class="col-xs-4 col-sm-3">{{ trans('general.amount') }}</th>
<th class="col-sm-3 d-none d-sm-block">{{ trans_choice('general.accounts', 1) }}</th>
<th class="col-xs-4 col-sm-3">{{ trans('general.actions') }}</th>
@stack('row_footer_transactions_head_td_end')
</tr>
@stack('row_footer_transactions_head_tr_end')
</thead>
<tbody>
@stack('row_footer_transactions_body_tr_start')
@if ($invoice->transactions->count())
@foreach($invoice->transactions as $transaction)
<tr class="row align-items-center border-top-1 tr-py">
@stack('row_footer_transactions_body_td_start')
<td class="col-xs-4 col-sm-3">@date($transaction->paid_at)</td>
<td class="col-xs-4 col-sm-3">@money($transaction->amount, $transaction->currency_code, true)</td>
<td class="col-sm-3 d-none d-sm-block">{{ $transaction->account->name }}</td>
@ -615,6 +651,7 @@
)) !!}
@endif
</td>
@stack('row_footer_transactions_body_td_end')
</tr>
@endforeach
@else
@ -626,6 +663,7 @@
</td>
</tr>
@endif
@stack('row_footer_transactions_body_tr_end')
</tbody>
</table>
</div>
@ -633,43 +671,13 @@
</div>
</div>
</div>
@stack('row_footer_transaction_end')
@stack('row_footer_transactions_end')
</div>
@stack('row_footer_end')
{{ Form::hidden('invoice_id', $invoice->id, ['id' => 'invoice_id']) }}
@endsection
@push('content_content_end')
<akaunting-modal
class="modal-payment"
:show="payment.modal"
@cancel="payment.modal = false"
:title="'{{ trans('general.title.new', ['type' => trans_choice('general.payments', 1)]) }}'"
:message="payment.html"
:button_cancel="'{{ trans('general.button.save') }}'"
:button_delete="'{{ trans('general.button.cancel') }}'">
<template #modal-body>
@include('modals.invoices.payment')
</template>
<template #card-footer>
<div class="float-right">
<button type="button" class="btn btn-outline-secondary" @click="closePayment">
{{ trans('general.cancel') }}
</button>
<a href="{{ route('apps.categories.show', 'payment-method') }}" class="btn btn-whitelong-texts">
{{ trans('invoices.accept_payments') }}
</a>
<button :disabled="form.loading" type="button" class="btn btn-success" @click="addPayment">
<span v-if="form.loading" class="btn-inner--icon"><i class="aka-loader"></i></span>
<span :class="[{'ml-0': form.loading}]" class="btn-inner--text">{{ trans('general.confirm') }}</span>
</button>
</div>
</template>
</akaunting-modal>
@endpush
@push('scripts_start')
<script src="{{ asset('public/js/sales/invoices.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -22,7 +22,7 @@
{!! Form::hidden('currency_code', $account_currency_code, ['id' => 'currency_code', 'class' => 'form-control', 'required' => 'required']) !!}
{!! Form::hidden('currency_rate', '1', ['id' => 'currency_rate']) !!}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'autofocus' => 'autofocus', 'currency' => $currency], 0) }}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'autofocus' => 'autofocus', 'currency' => $currency, 'dynamic-currency' => 'currency'], 0) }}
{{ Form::selectAddNewGroup('account_id', trans_choice('general.accounts', 1), 'university', $accounts, setting('default.account'), ['required' => 'required', 'path' => route('modals.accounts.create'), 'change' => 'onChangeAccount']) }}

View File

@ -41,7 +41,7 @@
{!! Form::hidden('currency_code', $revenue->currency_code, ['id' => 'currency_code', 'class' => 'form-control', 'required' => 'required']) !!}
{!! Form::hidden('currency_rate', null, ['id' => 'currency_rate']) !!}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'autofocus' => 'autofocus', 'currency' => $currency], $revenue->amount) }}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'autofocus' => 'autofocus', 'currency' => $currency, 'dynamic-currency' => 'currency'], $revenue->amount) }}
{{ Form::selectAddNewGroup('account_id', trans_choice('general.accounts', 1), 'university', $accounts, $revenue->account_id, ['required' => 'required', 'path' => route('modals.accounts.create'), 'change' => 'onChangeAccount']) }}

View File

@ -92,15 +92,17 @@
<a class="dropdown-item" href="{{ route('revenues.edit', $item->id) }}">{{ trans('general.edit') }}</a>
<div class="dropdown-divider"></div>
@endif
@if (empty($item->document_id))
@permission('create-sales-revenues')
<a class="dropdown-item" href="{{ route('revenues.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a>
<div class="dropdown-divider"></div>
@endpermission
@endif
@if (!$item->reconciled)
@permission('delete-sales-revenues')
@if (!$item->reconciled)
<div class="dropdown-divider"></div>
{!! Form::deleteLink($item, 'revenues.destroy') !!}
@endif
{!! Form::deleteLink($item, 'revenues.destroy') !!}
@endpermission
@endif
</div>
</div>
</td>