akaunting 3.0 (the last dance)
This commit is contained in:
@ -1,21 +1,30 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-account',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'accounts.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form id="form-create-account" route="accounts.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.radio
|
||||
name="type"
|
||||
label="{{ trans_choice('general.types', 1) }}"
|
||||
:options="[
|
||||
'bank' => trans_choice('accounts.banks', 1),
|
||||
'credit_card' => trans_choice('accounts.credit_cards', 1),
|
||||
]"
|
||||
checked="bank"
|
||||
/>
|
||||
|
||||
{{ Form::textGroup('number', trans('accounts.number'), 'pencil-alt') }}
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'change' => 'onChangeCurrency']) }}
|
||||
<x-form.group.text name="number" label="{{ trans('accounts.number') }}" />
|
||||
|
||||
{{ Form::moneyGroup('opening_balance', trans('accounts.opening_balance'), 'balance-scale', ['required' => 'required', 'currency' => $currency, 'dynamic-currency' => 'currency'], 0.00) }}
|
||||
<x-form.group.currency without-add-new />
|
||||
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.group.money
|
||||
name="opening_balance"
|
||||
label="{{ trans('accounts.opening_balance') }}"
|
||||
value="0"
|
||||
autofocus="autofocus"
|
||||
:currency="$currency"
|
||||
dynamicCurrency="currency"
|
||||
/>
|
||||
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,31 +1,10 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-category',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'categories.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form id="form-create-category" route="categories.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
@stack('color_input_start')
|
||||
<div class="form-group col-md-6 required {{ $errors->has('color') ? 'has-error' : ''}}">
|
||||
{!! Form::label('color', trans('general.color'), ['class' => 'form-control-label']) !!}
|
||||
<div class="input-group input-group-merge" id="category-color-picker">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<el-color-picker v-model="color" size="mini" :predefine="predefineColors" @change="onChangeColor"></el-color-picker>
|
||||
</span>
|
||||
</div>
|
||||
{!! Form::text('color', '#55588b', ['v-model' => 'form.color', '@input' => 'onChangeColorInput', 'id' => 'color', 'class' => 'form-control color-hex', 'required' => 'required']) !!}
|
||||
</div>
|
||||
{!! $errors->first('color', '<p class="help-block">:message</p>') !!}
|
||||
</div>
|
||||
@stack('color_input_end')
|
||||
<x-form.group.color name="color" label="{{ trans('general.color') }}" small />
|
||||
|
||||
{!! Form::hidden('type', $type, []) !!}
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="type" :value="$type" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,27 +1,17 @@
|
||||
{!! Form::open([
|
||||
'id' => 'setting',
|
||||
'method' => 'PATCH',
|
||||
'route' => 'settings.update',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('settings.company.name'), 'building', ['required' => 'required'], setting('company.name')) }}
|
||||
<x-form id="setting" method="PATCH" route="settings.company.update">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5d">
|
||||
<x-form.group.text name="name" label="{{ trans('settings.company.name') }}" value="{{ setting('company.name') }}" />
|
||||
|
||||
{{ Form::textGroup('email', trans('settings.company.email'), 'envelope', ['required' => 'required'], setting('company.email')) }}
|
||||
<x-form.group.text name="email" label="{{ trans('settings.company.email') }}" value="{{ setting('company.email') }}" />
|
||||
|
||||
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', [], setting('company.tax_number')) }}
|
||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" value="{{ setting('company.tax_number') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('phone', trans('settings.company.phone'), 'phone', [], setting('company.phone')) }}
|
||||
<x-form.group.text name="phone" label="{{ trans('settings.company.phone') }}" value="{{ setting('company.phone') }}" not-required />
|
||||
|
||||
{{ Form::textareaGroup('address', trans('settings.company.address'), null, setting('company.address')) }}
|
||||
<x-form.group.textarea name="address" label="{{ trans('settings.company.address') }}" :value="setting('company.address')" />
|
||||
|
||||
{{ Form::selectGroup('country', trans_choice('general.countries', 1), 'globe-americas', trans('countries'), setting('company.country'), []) }}
|
||||
<x-form.group.country />
|
||||
|
||||
{!! Form::hidden('_prefix', 'company') !!}
|
||||
<x-form.input.hidden name="_prefix" value="company" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,21 +1,13 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-currency',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'modals.currencies.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'chart-bar') }}
|
||||
<x-form id="form-create-currency" route="modals.currencies.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes) }}
|
||||
<x-form.group.select name="code" label="{{ trans('currencies.code') }}" :options="$codes" />
|
||||
|
||||
{{ Form::textGroup('rate', trans('currencies.rate'), 'sliders-h', ['@input' => 'onChangeRate', 'required' => 'required']) }}
|
||||
<x-form.group.text name="rate" label="{{ trans('currencies.rate') }}" @input="onChangeRate" />
|
||||
|
||||
{!! Form::hidden('enabled', 1) !!}
|
||||
{!! Form::hidden('symbol_first', 1) !!}
|
||||
{!! Form::hidden('default_currency', 0) !!}
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
<x-form.input.hidden name="symbol_first" value="1" />
|
||||
<x-form.input.hidden name="default_currency" value="0" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,26 +1,18 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-customer',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'customers.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form id="form-create-customer" route="customers.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{{ Form::textGroup('email', trans('general.email'), 'envelope', []) }}
|
||||
<x-form.group.text name="email" label="{{ trans('general.email') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
|
||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
||||
|
||||
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency')) }}
|
||||
<x-form.group.currency without-add-new />
|
||||
|
||||
{{ Form::textareaGroup('address', trans('general.address')) }}
|
||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" />
|
||||
|
||||
{{ Form::selectGroup('country', trans_choice('general.countries', 1), 'globe-americas', trans('countries'), setting('company.country'), []) }}
|
||||
<x-form.group.country />
|
||||
|
||||
{{ Form::hidden('type', 'customer') }}
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="type" value="customer" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,29 +1,18 @@
|
||||
<x-form id="form-edit-customer" method="PATCH" :route="['customers.update', $customer->id]" :model="$customer">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{!! Form::model($customer, [
|
||||
'id' => 'form-edit-customer',
|
||||
'method' => 'PATCH',
|
||||
'route' => ['customers.update', $customer->id],
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form.group.text name="email" label="{{ trans('general.email') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('email', trans('general.email'), 'envelope', []) }}
|
||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', [], $customer->tax_number) }}
|
||||
<x-form.group.currency without-add-new />
|
||||
|
||||
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $customer->currency_code) }}
|
||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" />
|
||||
|
||||
{{ Form::textareaGroup('address', trans('general.address'), null, $customer->address) }}
|
||||
<x-form.group.country />
|
||||
|
||||
{{ Form::selectGroup('country', trans_choice('general.countries', 1), 'globe-americas', trans('countries'), $customer->country, []) }}
|
||||
|
||||
{{ Form::hidden('type', 'customer') }}
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="type" value="customer" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,31 +1,41 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-item-column',
|
||||
'method' => 'PATCH',
|
||||
'route' => 'modals.documents.item-columns.update',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'novalidate' => true,
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::invoice_text('item_name', trans('settings.invoice.item_name'), 'font', $item_names, $item_name, [], 'item_name_input', $item_name_input, 'col-md-12') }}
|
||||
<x-form id="form-item-column" method="PATCH" route="modals.documents.item-columns.update">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.invoice-text
|
||||
name="item_name"
|
||||
label="{{ trans('settings.invoice.item_name') }}"
|
||||
:options="$item_names"
|
||||
:selected="$item_name"
|
||||
input-name="item_name_input"
|
||||
:input-value="$item_name_input"
|
||||
form-group-class="sm:col-span-6 sm:gap-0"
|
||||
/>
|
||||
|
||||
{{ Form::invoice_text('price_name', trans('settings.invoice.price_name'), 'font', $price_names, $price_name, [], 'price_name_input', $price_name_input, 'col-md-12') }}
|
||||
<x-form.group.invoice-text
|
||||
name="price_name"
|
||||
label="{{ trans('settings.invoice.price_name') }}"
|
||||
:options="$price_names"
|
||||
:selected="$price_name"
|
||||
input-name="price_name_input"
|
||||
:input-value="$price_name_input"
|
||||
form-group-class="sm:col-span-6 sm:gap-0"
|
||||
/>
|
||||
|
||||
{{ Form::invoice_text('quantity_name', trans('settings.invoice.quantity_name'), 'font', $quantity_names, $quantity_name, [], 'quantity_name_input', $quantity_name_input, 'col-md-12') }}
|
||||
<x-form.group.invoice-text
|
||||
name="quantity_name"
|
||||
label="{{ trans('settings.invoice.quantity_name') }}"
|
||||
:options="$quantity_names"
|
||||
:selected="$quantity_name"
|
||||
input-name="quantity_name_input"
|
||||
:input-value="$quantity_name_input"
|
||||
form-group-class="sm:col-span-6 sm:gap-0"
|
||||
/>
|
||||
|
||||
{{ Form::radioGroup('hide_item_name', trans('settings.invoice.hide.item_name'), $hide_item_name) }}
|
||||
<x-form.group.toggle name="hide_item_description" label="{{ trans('settings.invoice.hide.item_description') }}" :value="$hide_item_description" />
|
||||
|
||||
{{ Form::radioGroup('hide_item_description', trans('settings.invoice.hide.item_description'), $hide_item_description) }}
|
||||
<x-form.group.toggle name="hide_quantity" label="{{ trans('settings.invoice.hide.quantity') }}" :value="$hide_quantity" />
|
||||
<x-form.group.toggle name="hide_amount" label="{{ trans('settings.invoice.hide.amount') }}" :value="$hide_amount" not-required form-group-class="sm:col-span-6" />
|
||||
|
||||
{{ Form::radioGroup('hide_quantity', trans('settings.invoice.hide.quantity'), $hide_quantity) }}
|
||||
|
||||
{{ Form::radioGroup('hide_price', trans('settings.invoice.hide.price'), $hide_price) }}
|
||||
|
||||
{{ Form::radioGroup('hide_amount', trans('settings.invoice.hide.amount'), $hide_amount) }}
|
||||
|
||||
{!! Form::hidden('type', $type) !!}
|
||||
<x-form.input.hidden name="type" :value="$type" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,35 +1,27 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-transaction',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => ['modals.documents.document.transactions.store', $document->id],
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<x-form id="form-transaction" :route="$route" :model="!empty($transaction) ? $transaction : false">
|
||||
<base-alert type="warning" v-if="typeof form.response !== 'undefined' && form.response.error" v-html="form.response.message"></base-alert>
|
||||
|
||||
<div class="row">
|
||||
{{ Form::dateGroup('paid_at', trans('general.date'), 'calendar', ['id' => 'paid_at', 'required' => 'required', 'show-date-format' => company_date_format(), 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], Date::now()->toDateString()) }}
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.date name="paid_at" label="{{ trans('general.date') }}" icon="calendar_today" value="{{ Date::now()->toDateString() }}" show-date-format="{{ company_date_format() }}" date-format="Y-m-d" autocomplete="off" />
|
||||
|
||||
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'autofocus' => 'autofocus', 'currency' => $currency, 'dynamic-currency' => 'currency'], $document->grand_total) }}
|
||||
<x-form.group.money name="amount" label="{{ trans('general.amount') }}" value="{{ $document->grand_total }}" autofocus="autofocus" :currency="$currency" dynamicCurrency="currency" />
|
||||
|
||||
{{ Form::selectGroup('account_id', trans_choice('general.accounts', 1), 'university', $accounts, setting('default.account'), ['required' => 'required', 'change' => 'onChangePaymentAccount']) }}
|
||||
<x-form.group.account change="onChangePaymentAccount" />
|
||||
|
||||
{{ Form::textGroup('currency', trans_choice('general.currencies', 1), 'exchange-alt', ['disabled' => 'true'], $currencies[$document->currency_code]) }}
|
||||
<x-form.group.text name="currency" label="{{ trans_choice('general.currencies', 1) }}" value="{{ $document->currency->name }}" not-required disabled />
|
||||
|
||||
{{ Form::textareaGroup('description', trans('general.description'), '', null, ['rows' => '3']) }}
|
||||
<x-form.group.textarea name="description" label="{{ trans('general.description') }}" rows="3" not-required />
|
||||
|
||||
{{ Form::selectGroup('payment_method', trans_choice('general.payment_methods', 1), 'credit-card', $payment_methods, setting('default.payment_method'), ['required' => 'requied']) }}
|
||||
<x-form.group.payment-method />
|
||||
|
||||
{{ Form::textGroup('reference', trans('general.reference'), 'fa fa-file', []) }}
|
||||
<x-form.group.text name="reference" label="{{ trans('general.reference') }}" not-required />
|
||||
|
||||
{!! Form::hidden('document_id', $document->id, ['id' => 'document_id', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
{!! Form::hidden('category_id', $document->category->id, ['id' => 'category_id', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
{!! Form::hidden('amount', $document->grand_total, ['id' => 'amount', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
{!! Form::hidden('currency_code', $document->currency_code, ['id' => 'currency_code', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
{!! Form::hidden('currency_rate', $document->currency_rate, ['id' => 'currency_rate', 'class' => 'form-control', 'required' => 'required']) !!}
|
||||
|
||||
{!! Form::hidden('type', config('type.' . $document->type . '.transaction_type')) !!}
|
||||
<x-form.input.hidden name="document_id" :value="$document->id" />
|
||||
<x-form.input.hidden name="category_id" :value="$document->category->id" />
|
||||
<x-form.input.hidden name="amount" :value="$document->grand_total" />
|
||||
<x-form.input.hidden name="currency_code" :value="$document->currency_code" />
|
||||
<x-form.input.hidden name="currency_rate" :value="$document->currency_rate" />
|
||||
<x-form.input.hidden name="number" :value="$number" />
|
||||
<x-form.input.hidden name="type" :value="config('type.document.' . $document->type . '.transaction_type')" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
15
resources/views/modals/invoices/email.blade.php
Normal file
15
resources/views/modals/invoices/email.blade.php
Normal file
@ -0,0 +1,15 @@
|
||||
<x-form id="form-email" :route="[$store_route, $invoice->id]">
|
||||
<x-form.section>
|
||||
<x-slot name="body">
|
||||
<x-form.group.text name="to" label="{{ trans('general.to') }}" value="{{ $invoice->contact->email }}" form-group-class="sm:col-span-6" />
|
||||
|
||||
<x-form.group.text name="subject" label="{{ trans('settings.email.templates.subject') }}" value="{{ $notification->getSubject() }}" form-group-class="sm:col-span-6" />
|
||||
|
||||
<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.input.hidden name="document_id" :value="$invoice->id" />
|
||||
</x-slot>
|
||||
</x-form.section>
|
||||
</x-form>
|
36
resources/views/modals/invoices/share.blade.php
Normal file
36
resources/views/modals/invoices/share.blade.php
Normal file
@ -0,0 +1,36 @@
|
||||
<x-form id="form-share">
|
||||
<div class="text-center">
|
||||
<div class="my-3">
|
||||
{{ trans('invoices.share.show_link') }} :
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
<x-form.input.text
|
||||
name="share"
|
||||
value="{{ $signedUrl }}"
|
||||
ref="clone"
|
||||
@click="onCopyLink()"
|
||||
class="bg-gray-100 appearance-none border-2 border-gray-100 rounded w-full py-2 px-4 text-gray-700 leading-tight cursor-pointer focus:outline-none focus:ring-transparent focus:border-transparent"
|
||||
/>
|
||||
<x-form.input.hidden name="hidden-share" value="{{ $signedUrl }}" />
|
||||
|
||||
<div data-copied class="hidden h-10 items-center justify-center">
|
||||
<span
|
||||
class="px-2.5 py-1 ltr:ml-2 rtl:mr-2 text-xs font-medium rounded-xl bg-orange-300 text-orange-700"
|
||||
>
|
||||
{{ trans('general.copied') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
{{ trans('invoices.share.copy_link') }}
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
<x-link href="{{ $previewUrl }}" class="flex items-center justify-center gap-x-2 text-purple" override="class" target="_blank">
|
||||
{{ trans('general.preview_in_window') }} <x-icon icon="open_in_new" />
|
||||
</x-link>
|
||||
</div>
|
||||
</div>
|
||||
</x-form>
|
@ -1,25 +1,17 @@
|
||||
{!! Form::open([
|
||||
'route' => 'items.store',
|
||||
'id' => 'item',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'tag') }}
|
||||
<x-form id="item" route="items.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{{ Form::multiSelectGroup('tax_ids', trans_choice('general.taxes', 1), 'percentage', $taxes, (setting('default.tax')) ? [setting('default.tax')] : null) }}
|
||||
<x-form.group.select multiple name="tax_ids" label="{{ trans_choice('general.taxes', 1) }}" :options="$taxes" :selected="(setting('default.tax')) ? [setting('default.tax')] : null" not-required />
|
||||
|
||||
{{ Form::textareaGroup('description', trans('general.description')) }}
|
||||
<x-form.group.textarea name="description" label="{{ trans('general.description') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('sale_price', trans('items.sales_price'), 'money-bill-wave') }}
|
||||
<x-form.group.text name="sale_price" label="{{ trans('items.sale_price') }}" />
|
||||
|
||||
{{ Form::textGroup('purchase_price', trans('items.purchase_price'), 'money-bill-wave-alt') }}
|
||||
<x-form.group.text name="purchase_price" label="{{ trans('items.purchase_price') }}" />
|
||||
|
||||
{{ Form::selectRemoteGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, null, ['remote_action' => route('categories.index'). '?search=type:item enabled:1']) }}
|
||||
<x-form.group.category type="item" not-required without-add-new />
|
||||
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
@ -1,65 +0,0 @@
|
||||
<div class="modal-body pb-0">
|
||||
{!! Form::open([
|
||||
'route' => 'modals.invoice-templates.update',
|
||||
'method' => 'PATCH',
|
||||
'id' => 'template',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'invoice_form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button mb-0',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
<div class="col-md-4 text-center">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="invoice_form.template='default'">
|
||||
<img src="{{ asset('public/img/invoice_templates/default.png') }}" class="mb-1 mt-3" height="200" alt="Default"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="default" v-model="invoice_form.template">
|
||||
{{ trans('settings.invoice.default') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-2">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="invoice_form.template='classic'">
|
||||
<img src="{{ asset('public/img/invoice_templates/classic.png') }}" class="mb-1 mt-3" height="200" alt="Classic"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="classic" v-model="invoice_form.template">
|
||||
{{ trans('settings.invoice.classic') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-0">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="invoice_form.template='modern'">
|
||||
<img src="{{ asset('public/img/invoice_templates/modern.png') }}" class="mb-1 mt-3" height="200" alt="Modern"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="modern" v-model="invoice_form.template">
|
||||
{{ trans('settings.invoice.modern') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-4">
|
||||
@stack('color_input_start')
|
||||
<div class="form-group col-md-12 {{ $errors->has('color') ? 'has-error' : ''}}">
|
||||
{!! Form::label('color', trans('general.color'), ['class' => 'form-control-label']) !!}
|
||||
<div class="input-group input-group-merge" id="invoice-color-picker">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<el-color-picker popper-class="template-color-picker" v-model="invoice_form.color" size="mini" :predefine="predefineColors" @change="onChangeColor"></el-color-picker>
|
||||
</span>
|
||||
</div>
|
||||
{!! Form::text('color', setting('invoice.color'), ['v-model' => 'invoice_form.color', '@input' => 'onChangeColorInput', 'id' => 'color', 'class' => 'form-control color-hex', 'required' => 'required']) !!}
|
||||
</div>
|
||||
{!! $errors->first('color', '<p class="help-block">:message</p>') !!}
|
||||
</div>
|
||||
@stack('color_input_end')
|
||||
</div>
|
||||
|
||||
{!! Form::hidden('_template', setting('invoice.template')) !!}
|
||||
{!! Form::hidden('_prefix', 'invoice') !!}
|
||||
{!! Form::close() !!}
|
||||
</div>
|
@ -1,19 +1,9 @@
|
||||
<div class="modal-body pb-0">
|
||||
{!! Form::open([
|
||||
'route' => 'modals.transfer-templates.update',
|
||||
'method' => 'PATCH',
|
||||
'id' => 'template',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'transfer_form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button mb-0',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-4 text-center">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='default'">
|
||||
<img src="{{ asset('public/img/transfer_templates/default.png') }}" class="mb-1 mt-3" height="200" alt="Default"/>
|
||||
<div class="py-1 px-5 bg-body">
|
||||
<x-form id="template" method="PATCH" route="modals.transfer-templates.update">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<div class="sm:col-span-2 bg-gray-100 rounded-lg cursor-pointer text-center py-2 px-2">
|
||||
<div @click="transfer_form.template='default'">
|
||||
<img src="{{ asset('public/img/transfer_templates/default.png') }}" class="h-72 m-auto" alt="Default"/>
|
||||
</br>
|
||||
<label style="font-size: initial;">
|
||||
<input type="radio" name="template" value="default" v-model="transfer_form.template">
|
||||
@ -22,9 +12,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-2">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='second'">
|
||||
<img src="{{ asset('public/img/transfer_templates/second.png') }}" class="mb-1 mt-3" height="200" alt="Second"/>
|
||||
<div class="sm:col-span-2 bg-gray-100 rounded-lg cursor-pointer text-center py-2 px-2">
|
||||
<div @click="transfer_form.template='second'">
|
||||
<img src="{{ asset('public/img/transfer_templates/second.png') }}" class="h-72 m-auto" alt="Second"/>
|
||||
</br>
|
||||
<label style="font-size: initial;">
|
||||
<input type="radio" name="template" value="second" v-model="transfer_form.template">
|
||||
@ -33,9 +23,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-0">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='third'">
|
||||
<img src="{{ asset('public/img/transfer_templates/third.png') }}" class="mb-1 mt-3" height="200" alt="Third"/>
|
||||
<div class="sm:col-span-2 bg-gray-100 rounded-lg cursor-pointer text-center py-2 px-2">
|
||||
<div @click="transfer_form.template='third'">
|
||||
<img src="{{ asset('public/img/transfer_templates/third.png') }}" class="h-72 m-auto" alt="Third"/>
|
||||
</br>
|
||||
<label style="font-size: initial;">
|
||||
<input type="radio" name="template" value="third" v-model="transfer_form.template">
|
||||
@ -45,8 +35,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! Form::hidden('transfer_id', $transfer->id) !!}
|
||||
{!! Form::hidden('_template', setting('transfer.template')) !!}
|
||||
{!! Form::hidden('_prefix', 'transfer') !!}
|
||||
{!! Form::close() !!}
|
||||
<x-form.input.hidden name="transfer_id" :value="$transfer->id" />
|
||||
<x-form.input.hidden name="_template" :value="setting('transfer.template')" />
|
||||
<x-form.input.hidden name="_prefix" value="transfer" />
|
||||
</x-form>
|
||||
</div>
|
||||
|
@ -1,18 +1,11 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-tax',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'taxes.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
|
||||
{{ Form::textGroup('rate', trans('taxes.rate'), 'percent') }}
|
||||
<x-form id="form-create-tax" route="taxes.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{!! Form::hidden('type', 'normal') !!}
|
||||
{!! Form::hidden('enabled', '1') !!}
|
||||
<x-form.group.text name="rate" label="{{ trans('taxes.rate') }}" />
|
||||
|
||||
<x-form.input.hidden name="type" value="normal" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
27
resources/views/modals/transactions/connect.blade.php
Normal file
27
resources/views/modals/transactions/connect.blade.php
Normal file
@ -0,0 +1,27 @@
|
||||
<x-form id="form-transaction" :route="$route" :model="!empty($transaction) ? $transaction : false">
|
||||
<base-alert type="warning" v-if="typeof form.response !== 'undefined' && form.response.error" v-html="form.response.message"></base-alert>
|
||||
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.date name="paid_at" label="{{ trans('general.date') }}" icon="calendar_today" value="{{ Date::now()->toDateString() }}" show-date-format="{{ company_date_format() }}" date-format="Y-m-d" autocomplete="off" />
|
||||
|
||||
<x-form.group.money name="amount" label="{{ trans('general.amount') }}" value="{{ $document->grand_total }}" autofocus="autofocus" :currency="$currency" dynamicCurrency="currency" />
|
||||
|
||||
<x-form.group.account change="onChangePaymentAccount" />
|
||||
|
||||
<x-form.group.text name="currency" label="{{ trans_choice('general.currencies', 1) }}" value="{{ $document->currency->name }}" not-required disabled />
|
||||
|
||||
<x-form.group.textarea name="description" label="{{ trans('general.description') }}" rows="3" not-required />
|
||||
|
||||
<x-form.group.payment-method />
|
||||
|
||||
<x-form.group.text name="reference" label="{{ trans('general.reference') }}" not-required />
|
||||
|
||||
<x-form.input.hidden name="document_id" :value="$document->id" />
|
||||
<x-form.input.hidden name="category_id" :value="$document->category->id" />
|
||||
<x-form.input.hidden name="amount" :value="$document->grand_total" />
|
||||
<x-form.input.hidden name="currency_code" :value="$document->currency_code" />
|
||||
<x-form.input.hidden name="currency_rate" :value="$document->currency_rate" />
|
||||
<x-form.input.hidden name="number" :value="$number" />
|
||||
<x-form.input.hidden name="type" :value="config('type.document.' . $document->type . '.transaction_type')" />
|
||||
</div>
|
||||
</x-form>
|
15
resources/views/modals/transactions/email.blade.php
Normal file
15
resources/views/modals/transactions/email.blade.php
Normal file
@ -0,0 +1,15 @@
|
||||
<x-form id="form-email" :route="[$store_route, $transaction->id]">
|
||||
<x-form.section>
|
||||
<x-slot name="body">
|
||||
<x-form.group.text name="to" label="{{ trans('general.to') }}" value="{{ $transaction->contact->email }}" form-group-class="sm:col-span-6" />
|
||||
|
||||
<x-form.group.text name="subject" label="{{ trans('settings.email.templates.subject') }}" value="{{ $notification->getSubject() }}" form-group-class="sm:col-span-6" />
|
||||
|
||||
<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.input.hidden name="transaction_id" :value="$transaction->id" />
|
||||
</x-slot>
|
||||
</x-form.section>
|
||||
</x-form>
|
36
resources/views/modals/transactions/share.blade.php
Normal file
36
resources/views/modals/transactions/share.blade.php
Normal file
@ -0,0 +1,36 @@
|
||||
<x-form id="form-share">
|
||||
<div class="text-center">
|
||||
<div class="my-3">
|
||||
{{ trans('transactions.share.' . $transaction->type . '.show_link') }} :
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
<x-form.input.text
|
||||
name="share"
|
||||
value="{{ $signedUrl }}"
|
||||
ref="clone"
|
||||
@click="onCopyLink()"
|
||||
class="bg-gray-100 appearance-none border-2 border-gray-100 rounded w-full py-2 px-4 text-gray-700 leading-tight cursor-pointer focus:outline-none focus:ring-transparent focus:border-transparent"
|
||||
/>
|
||||
<x-form.input.hidden name="hidden-share" value="{{ $signedUrl }}" />
|
||||
|
||||
<div data-copied class="hidden h-10 items-center justify-center">
|
||||
<span
|
||||
class="px-2.5 py-1 ltr:ml-2 rtl:mr-2 text-xs font-medium rounded-xl bg-orange-300 text-orange-700"
|
||||
>
|
||||
{{ trans('general.copied') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
{{ trans('transactions.share.' . $transaction->type . '.copy_link') }}
|
||||
</div>
|
||||
|
||||
<div class="my-3">
|
||||
<x-link href="{{ $previewUrl }}" class="flex items-center justify-center gap-x-2 text-purple" override="class" target="_blank">
|
||||
{{ trans('general.preview_in_window') }} <x-icon icon="open_in_new" />
|
||||
</x-link>
|
||||
</div>
|
||||
</div>
|
||||
</x-form>
|
30
resources/views/modals/vendors/create.blade.php
vendored
30
resources/views/modals/vendors/create.blade.php
vendored
@ -1,26 +1,18 @@
|
||||
{!! Form::open([
|
||||
'id' => 'form-create-vendor',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'route' => 'vendors.store',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form id="form-create-vendor" route="vendors.store">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{{ Form::textGroup('email', trans('general.email'), 'envelope', []) }}
|
||||
<x-form.group.text name="email" label="{{ trans('general.email') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
|
||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
||||
|
||||
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency')) }}
|
||||
<x-form.group.currency without-add-new />
|
||||
|
||||
{{ Form::textareaGroup('address', trans('general.address')) }}
|
||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" />
|
||||
|
||||
{{ Form::selectGroup('country', trans_choice('general.countries', 1), 'globe-americas', trans('countries'), setting('company.country'), []) }}
|
||||
<x-form.group.country />
|
||||
|
||||
{{ Form::hidden('type', 'vendor') }}
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="type" value="vendor" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
33
resources/views/modals/vendors/edit.blade.php
vendored
33
resources/views/modals/vendors/edit.blade.php
vendored
@ -1,29 +1,18 @@
|
||||
<x-form id="form-edit-vendor" method="PATCH" :route="['vendors.update', $vendor->id]" :model="$vendor">
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5">
|
||||
<x-form.group.text name="name" label="{{ trans('general.name') }}" />
|
||||
|
||||
{!! Form::model($vendor, [
|
||||
'id' => 'form-edit-vendor',
|
||||
'method' => 'PATCH',
|
||||
'route' => ['vendors.update', $vendor->id],
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
{{ Form::textGroup('name', trans('general.name'), 'font') }}
|
||||
<x-form.group.text name="email" label="{{ trans('general.email') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('email', trans('general.email'), 'envelope', []) }}
|
||||
<x-form.group.text name="tax_number" label="{{ trans('general.tax_number') }}" not-required />
|
||||
|
||||
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
|
||||
<x-form.group.currency without-add-new />
|
||||
|
||||
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $vendor->currency_code) }}
|
||||
<x-form.group.textarea name="address" label="{{ trans('general.address') }}" />
|
||||
|
||||
{{ Form::textareaGroup('address', trans('general.address'), null, $vendor->address) }}
|
||||
<x-form.group.country />
|
||||
|
||||
{{ Form::selectGroup('country', trans_choice('general.countries', 1), 'globe-americas', trans('countries'), $vendor->country, []) }}
|
||||
|
||||
{{ Form::hidden('type', 'vendor') }}
|
||||
{!! Form::hidden('enabled', '1', []) !!}
|
||||
<x-form.input.hidden name="type" value="vendor" />
|
||||
<x-form.input.hidden name="enabled" value="1" />
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</x-form>
|
||||
|
Reference in New Issue
Block a user