Expand views to allow editing of currency decimals #506

This commit is contained in:
James Cole
2016-12-28 21:48:37 +01:00
parent bdbf434006
commit 9ae74b4278
9 changed files with 64 additions and 45 deletions

View File

@@ -39,6 +39,7 @@ class CurrencyFormRequest extends Request
'name' => $this->get('name'), 'name' => $this->get('name'),
'code' => $this->get('code'), 'code' => $this->get('code'),
'symbol' => $this->get('symbol'), 'symbol' => $this->get('symbol'),
'decimal_places' => intval($this->get('decimal_places')),
]; ];
} }
@@ -49,15 +50,17 @@ class CurrencyFormRequest extends Request
{ {
$rules = [ $rules = [
'code' => 'required|min:3|max:3|unique:transaction_currencies,code',
'name' => 'required|max:48|min:1|unique:transaction_currencies,name', 'name' => 'required|max:48|min:1|unique:transaction_currencies,name',
'code' => 'required|min:3|max:3|unique:transaction_currencies,code',
'symbol' => 'required|min:1|max:8|unique:transaction_currencies,symbol', 'symbol' => 'required|min:1|max:8|unique:transaction_currencies,symbol',
'decimal_places' => 'required|min:0|max:12|numeric',
]; ];
if (intval($this->get('id')) > 0) { if (intval($this->get('id')) > 0) {
$rules = [ $rules = [
'code' => 'required|min:3|max:3',
'name' => 'required|max:48|min:1', 'name' => 'required|max:48|min:1',
'code' => 'required|min:3|max:3',
'symbol' => 'required|min:1|max:8', 'symbol' => 'required|min:1|max:8',
'decimal_places' => 'required|min:0|max:12|numeric',
]; ];
} }

View File

@@ -27,9 +27,6 @@ class TransactionCurrency extends Model
{ {
use SoftDeletes, ValidatingTrait; use SoftDeletes, ValidatingTrait;
protected $dates = ['created_at', 'updated_at', 'deleted_at','date'];
protected $fillable = ['name', 'code', 'symbol'];
protected $rules = ['name' => 'required|between:1,200', 'code' => 'required|between:3,3', 'symbol' => 'required|between:1,12'];
/** /**
* The attributes that should be casted to native types. * The attributes that should be casted to native types.
* *
@@ -40,7 +37,18 @@ class TransactionCurrency extends Model
'created_at' => 'date', 'created_at' => 'date',
'updated_at' => 'date', 'updated_at' => 'date',
'deleted_at' => 'date', 'deleted_at' => 'date',
'decimal_places' => 'int',
]; ];
protected $dates = ['created_at', 'updated_at', 'deleted_at', 'date'];
protected $fillable = ['name', 'code', 'symbol', 'decimal_places'];
protected $rules
= [
'name' => 'required|between:1,48',
'code' => 'required|between:3,3',
'symbol' => 'required|between:1,8',
'decimal_places' => 'required|min:0|max:12|numeric',
];
/** /**
* @param TransactionCurrency $currency * @param TransactionCurrency $currency
* *

View File

@@ -200,6 +200,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
'name' => $data['name'], 'name' => $data['name'],
'code' => $data['code'], 'code' => $data['code'],
'symbol' => $data['symbol'], 'symbol' => $data['symbol'],
'decimal_places' => $data['decimal_places'],
] ]
); );
@@ -217,6 +218,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface
$currency->code = $data['code']; $currency->code = $data['code'];
$currency->symbol = $data['symbol']; $currency->symbol = $data['symbol'];
$currency->name = $data['name']; $currency->name = $data['name'];
$currency->decimal_places = $data['decimal_places'];
$currency->save(); $currency->save();
return $currency; return $currency;

View File

@@ -826,6 +826,7 @@ return [
'transaction_journal_information' => 'Transaction information', 'transaction_journal_information' => 'Transaction information',
'transaction_journal_meta' => 'Meta information', 'transaction_journal_meta' => 'Meta information',
'total_amount' => 'Total amount', 'total_amount' => 'Total amount',
'number_of_decimals' => 'Number of decimals',
// administration // administration
'administration' => 'Administration', 'administration' => 'Administration',

View File

@@ -63,6 +63,7 @@ return [
'description' => 'Description', 'description' => 'Description',
'expense_account' => 'Expense account', 'expense_account' => 'Expense account',
'revenue_account' => 'Revenue account', 'revenue_account' => 'Revenue account',
'decimal_places' => 'Decimal places',
'revenue_account_source' => 'Revenue account (source)', 'revenue_account_source' => 'Revenue account (source)',
'source_account_asset' => 'Source account (asset account)', 'source_account_asset' => 'Source account (asset account)',

View File

@@ -17,6 +17,7 @@
{{ ExpandedForm.text('name',null,{'maxlength' : 48}) }} {{ ExpandedForm.text('name',null,{'maxlength' : 48}) }}
{{ ExpandedForm.text('symbol',null,{'maxlength': 8}) }} {{ ExpandedForm.text('symbol',null,{'maxlength': 8}) }}
{{ ExpandedForm.text('code',null,{'maxlength' : 3}) }} {{ ExpandedForm.text('code',null,{'maxlength' : 3}) }}
{{ ExpandedForm.integer('decimal_places',3,{'maxlength' : 2,'min': 0,'max': 12}) }}
</div> </div>
</div> </div>

View File

@@ -18,6 +18,7 @@
{{ ExpandedForm.text('name',null,{'maxlength' : 48}) }} {{ ExpandedForm.text('name',null,{'maxlength' : 48}) }}
{{ ExpandedForm.text('symbol',null,{'maxlength' : 8}) }} {{ ExpandedForm.text('symbol',null,{'maxlength' : 8}) }}
{{ ExpandedForm.text('code',null,{'maxlength' : 3}) }} {{ ExpandedForm.text('code',null,{'maxlength' : 3}) }}
{{ ExpandedForm.integer('decimal_places',null,{'maxlength' : 2,'min': 0,'max': 12}) }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -20,7 +20,9 @@
<thead> <thead>
<tr> <tr>
<th>&nbsp;</th> <th>&nbsp;</th>
<th colspan="2">{{ 'currency'|_ }}</th> <th>{{ 'currency'|_ }}</th>
<th>{{ 'number_of_decimals'|_ }}</th>
<th>&nbsp;</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -33,6 +35,7 @@
</div> </div>
</td> </td>
<td>{{ currency.name }} ({{ currency.code }}) ({{ currency.symbol|raw }})</td> <td>{{ currency.name }} ({{ currency.code }}) ({{ currency.symbol|raw }})</td>
<td>{{ currency.decimal_places }}</td>
<td> <td>
{% if currency.id == defaultCurrency.id %} {% if currency.id == defaultCurrency.id %}
<span class="label label-success">{{ 'default_currency'|_ }}</span> <span class="label label-success">{{ 'default_currency'|_ }}</span>

View File

@@ -2,9 +2,8 @@
<label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label> <label for="{{ options.id }}" class="col-sm-4 control-label">{{ label }}</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group">
{{ Form.input('number', name, value, options) }} {{ Form.input('number', name, value, options) }}
{% include 'form/help' %}
{% include 'form/feedback' %} {% include 'form/feedback' %}
</div> </div>
</div>
</div> </div>