Update meta files for new release.

This commit is contained in:
James Cole
2024-01-06 07:42:00 +01:00
parent 2e0d90c685
commit 8ad27e0eda
141 changed files with 2091 additions and 1980 deletions

View File

@@ -40,5 +40,4 @@ class ShowController extends Controller
return response()->api($this->jsonApiObject('transactions', $transactionGroup, $transformer))->header('Content-Type', self::CONTENT_TYPE);
}
}

View File

@@ -61,12 +61,12 @@ class GroupCollector implements GroupCollectorInterface
*/
public function __construct()
{
$this->postFilters = [];
$this->tags = [];
$this->user = null;
$this->userGroup = null;
$this->limit = null;
$this->page = null;
$this->postFilters = [];
$this->tags = [];
$this->user = null;
$this->userGroup = null;
$this->limit = null;
$this->page = null;
$this->hasAccountInfo = false;
$this->hasCatInformation = false;
@@ -108,7 +108,6 @@ class GroupCollector implements GroupCollectorInterface
'transaction_groups.created_at as group_created_at',
'transaction_groups.updated_at as group_updated_at',
// journal
'transaction_journals.id as transaction_journal_id',
'transaction_journals.transaction_type_id',
@@ -289,7 +288,7 @@ class GroupCollector implements GroupCollectorInterface
if (is_int($param)) {
$replace = (string) $param;
}
$pos = strpos($query, '?');
$pos = strpos($query, '?');
if (false !== $pos) {
$query = substr_replace($query, $replace, $pos, 1);
}
@@ -457,13 +456,13 @@ class GroupCollector implements GroupCollectorInterface
// add to query:
$this->query->orWhereIn('transaction_journals.transaction_group_id', $groupIds);
}
$result = $this->query->get($this->fields);
$result = $this->query->get($this->fields);
// now to parse this into an array.
$collection = $this->parseArray($result);
$collection = $this->parseArray($result);
// filter the array using all available post filters:
$collection = $this->postFilterCollection($collection);
$collection = $this->postFilterCollection($collection);
// count it and continue:
$this->total = $collection->count();
@@ -669,11 +668,12 @@ class GroupCollector implements GroupCollectorInterface
// include source + destination account name and type.
$this->withAccountInformation()
// include category ID + name (if any)
->withCategoryInformation()
->withCategoryInformation()
// include budget ID + name (if any)
->withBudgetInformation()
->withBudgetInformation()
// include bill ID + name (if any)
->withBillInformation();
->withBillInformation()
;
return $this;
}
@@ -692,12 +692,12 @@ class GroupCollector implements GroupCollectorInterface
/** @var TransactionJournal $augumentedJournal */
foreach ($collection as $augumentedJournal) {
$groupId = (int) $augumentedJournal->transaction_group_id;
$groupId = (int) $augumentedJournal->transaction_group_id;
if (!array_key_exists($groupId, $groups)) {
// make new array
$parsedGroup = $this->parseAugmentedJournal($augumentedJournal);
$groupArray = [
$parsedGroup = $this->parseAugmentedJournal($augumentedJournal);
$groupArray = [
'id' => (int) $augumentedJournal->transaction_group_id,
'user_id' => $augumentedJournal->user_id,
'user_group_id' => $augumentedJournal->user_group_id,
@@ -769,7 +769,7 @@ class GroupCollector implements GroupCollectorInterface
}
// try to process meta date value (if present)
$dates = ['interest_date', 'payment_date', 'invoice_date', 'book_date', 'due_date', 'process_date'];
$dates = ['interest_date', 'payment_date', 'invoice_date', 'book_date', 'due_date', 'process_date'];
if (array_key_exists('meta_name', $result) && in_array($result['meta_name'], $dates, true)) {
$name = $result['meta_name'];
if (array_key_exists('meta_data', $result) && '' !== (string) $result['meta_data']) {
@@ -778,15 +778,15 @@ class GroupCollector implements GroupCollectorInterface
}
// convert values to integers:
$result = $this->convertToInteger($result);
$result = $this->convertToInteger($result);
// convert back to strings because SQLite is dumb like that.
$result = $this->convertToStrings($result);
$result = $this->convertToStrings($result);
$result['reconciled'] = 1 === (int) $result['reconciled'];
$result['reconciled'] = 1 === (int) $result['reconciled'];
if (array_key_exists('tag_id', $result) && null !== $result['tag_id']) { // assume the other fields are present as well.
$tagId = (int) $augumentedJournal['tag_id'];
$tagDate = null;
$tagId = (int) $augumentedJournal['tag_id'];
$tagDate = null;
try {
$tagDate = Carbon::parse($augumentedJournal['tag_date']);
@@ -850,9 +850,9 @@ class GroupCollector implements GroupCollectorInterface
{
$newArray = $newJournal->toArray();
if (array_key_exists('tag_id', $newArray)) { // assume the other fields are present as well.
$tagId = (int) $newJournal['tag_id'];
$tagId = (int) $newJournal['tag_id'];
$tagDate = null;
$tagDate = null;
try {
$tagDate = Carbon::parse($newArray['tag_date']);
@@ -875,7 +875,7 @@ class GroupCollector implements GroupCollectorInterface
{
$newArray = $newJournal->toArray();
if (array_key_exists('attachment_id', $newArray)) {
$attachmentId = (int) $newJournal['attachment_id'];
$attachmentId = (int) $newJournal['attachment_id'];
$existingJournal['attachments'][$attachmentId] = [
'id' => $attachmentId,
@@ -894,7 +894,7 @@ class GroupCollector implements GroupCollectorInterface
foreach ($groups as $groudId => $group) {
/** @var array $transaction */
foreach ($group['transactions'] as $transaction) {
$currencyId = (int) $transaction['currency_id'];
$currencyId = (int) $transaction['currency_id'];
if (null === $transaction['amount']) {
throw new FireflyException(sprintf('Amount is NULL for a transaction in group #%d, please investigate.', $groudId));
}
@@ -910,7 +910,7 @@ class GroupCollector implements GroupCollectorInterface
$groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['amount']);
if (null !== $transaction['foreign_amount'] && null !== $transaction['foreign_currency_id']) {
$currencyId = (int) $transaction['foreign_currency_id'];
$currencyId = (int) $transaction['foreign_currency_id'];
// set default:
if (!array_key_exists($currencyId, $groups[$groudId]['sums'])) {
@@ -939,7 +939,7 @@ class GroupCollector implements GroupCollectorInterface
*/
foreach ($this->postFilters as $function) {
app('log')->debug('Applying filter...');
$nextCollection = new Collection();
$nextCollection = new Collection();
// loop everything in the current collection
// and save it (or not) in the new collection.
@@ -986,7 +986,8 @@ class GroupCollector implements GroupCollectorInterface
'transactions as source',
static function (JoinClause $join): void {
$join->on('source.transaction_journal_id', '=', 'transaction_journals.id')
->where('source.amount', '<', 0);
->where('source.amount', '<', 0)
;
}
)
// join destination transaction
@@ -994,7 +995,8 @@ class GroupCollector implements GroupCollectorInterface
'transactions as destination',
static function (JoinClause $join): void {
$join->on('destination.transaction_journal_id', '=', 'transaction_journals.id')
->where('destination.amount', '>', 0);
->where('destination.amount', '>', 0)
;
}
)
// left join transaction type.
@@ -1009,7 +1011,8 @@ class GroupCollector implements GroupCollectorInterface
->orderBy('transaction_journals.order', 'ASC')
->orderBy('transaction_journals.id', 'DESC')
->orderBy('transaction_journals.description', 'DESC')
->orderBy('source.amount', 'DESC');
->orderBy('source.amount', 'DESC')
;
}
/**
@@ -1027,7 +1030,8 @@ class GroupCollector implements GroupCollectorInterface
'transactions as source',
static function (JoinClause $join): void {
$join->on('source.transaction_journal_id', '=', 'transaction_journals.id')
->where('source.amount', '<', 0);
->where('source.amount', '<', 0)
;
}
)
// join destination transaction
@@ -1035,7 +1039,8 @@ class GroupCollector implements GroupCollectorInterface
'transactions as destination',
static function (JoinClause $join): void {
$join->on('destination.transaction_journal_id', '=', 'transaction_journals.id')
->where('destination.amount', '>', 0);
->where('destination.amount', '>', 0)
;
}
)
// left join transaction type.

View File

@@ -73,20 +73,20 @@ class EditController extends Controller
}
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$allowedOpposingTypes = config('firefly.allowed_opposing_types');
$accountToTypes = config('firefly.account_to_transaction');
$expectedSourceTypes = config('firefly.expected_source_types');
$allowedSourceDests = config('firefly.source_dests');
$title = $transactionGroup->transactionJournals()->count() > 1 ? $transactionGroup->title : $transactionGroup->transactionJournals()->first()->description;
$subTitle = (string) trans('firefly.edit_transaction_title', ['description' => $title]);
$subTitleIcon = 'fa-plus';
$defaultCurrency = app('amount')->getDefaultCurrency();
$cash = $repository->getCashAccount();
$previousUrl = $this->rememberPreviousUrl('transactions.edit.url');
$parts = parse_url($previousUrl);
$search = sprintf('?%s', $parts['query'] ?? '');
$previousUrl = str_replace($search, '', $previousUrl);
$repository = app(AccountRepositoryInterface::class);
$allowedOpposingTypes = config('firefly.allowed_opposing_types');
$accountToTypes = config('firefly.account_to_transaction');
$expectedSourceTypes = config('firefly.expected_source_types');
$allowedSourceDests = config('firefly.source_dests');
$title = $transactionGroup->transactionJournals()->count() > 1 ? $transactionGroup->title : $transactionGroup->transactionJournals()->first()->description;
$subTitle = (string) trans('firefly.edit_transaction_title', ['description' => $title]);
$subTitleIcon = 'fa-plus';
$defaultCurrency = app('amount')->getDefaultCurrency();
$cash = $repository->getCashAccount();
$previousUrl = $this->rememberPreviousUrl('transactions.edit.url');
$parts = parse_url($previousUrl);
$search = sprintf('?%s', $parts['query'] ?? '');
$previousUrl = str_replace($search, '', $previousUrl);
// settings necessary for v2
$optionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data;

View File

@@ -42,7 +42,8 @@ class UniqueAccountNumber implements ValidationRule
public function __construct(?Account $account, ?string $expectedType)
{
app('log')
->debug('Constructed UniqueAccountNumber');
->debug('Constructed UniqueAccountNumber')
;
$this->account = $account;
$this->expectedType = $expectedType;
// a very basic fix to make sure we get the correct account type:
@@ -126,11 +127,12 @@ class UniqueAccountNumber implements ValidationRule
private function countHits(string $type, string $accountNumber): int
{
$query = AccountMeta::leftJoin('accounts', 'accounts.id', '=', 'account_meta.account_id')
->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id')
->where('accounts.user_id', auth()->user()->id)
->where('account_types.type', $type)
->where('account_meta.name', '=', 'account_number')
->where('account_meta.data', json_encode($accountNumber));
->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id')
->where('accounts.user_id', auth()->user()->id)
->where('account_types.type', $type)
->where('account_meta.name', '=', 'account_number')
->where('account_meta.data', json_encode($accountNumber))
;
if (null !== $this->account) {
$query->where('accounts.id', '!=', $this->account->id);

View File

@@ -40,7 +40,7 @@ class UserGroupAccount implements BinderInterface
{
if (auth()->check()) {
/** @var User $user */
$user = auth()->user();
$user = auth()->user();
$account = Account::where('id', (int)$value)
->where('user_group_id', $user->user_group_id)
->first()

View File

@@ -39,8 +39,9 @@ class UserGroupTransaction implements BinderInterface
/** @var User $user */
$user = auth()->user();
$group = TransactionGroup::where('id', (int) $value)
->where('user_group_id', $user->user_group_id)
->first();
->where('user_group_id', $user->user_group_id)
->first()
;
if (null !== $group) {
return $group;
}

View File

@@ -54,19 +54,20 @@ class TransactionGroupTransformer extends AbstractTransformer
private ExchangeRateConverter $converter;
// private array $currencies = [];
// private array $transactionTypes = [];
// private array $meta = [];
// private array $notes = [];
// private array $locations = [];
// private array $tags = [];
// private array $amounts = [];
// private array $foreignAmounts = [];
// private array $journalCurrencies = [];
// private array $foreignCurrencies = [];
// private array $transactionTypes = [];
// private array $meta = [];
// private array $notes = [];
// private array $locations = [];
// private array $tags = [];
// private array $amounts = [];
// private array $foreignAmounts = [];
// private array $journalCurrencies = [];
// private array $foreignCurrencies = [];
public function collectMetaData(Collection $objects): void
{
$collectForObjects = false;
/** @var array $object */
foreach ($objects as $object) {
if (is_array($object)) {
@@ -78,8 +79,8 @@ class TransactionGroupTransformer extends AbstractTransformer
}
}
$this->default = app('amount')->getDefaultCurrency();
$this->converter = new ExchangeRateConverter();
$this->default = app('amount')->getDefaultCurrency();
$this->converter = new ExchangeRateConverter();
$this->collectAllMetaData();
$this->collectAllNotes();
@@ -87,16 +88,15 @@ class TransactionGroupTransformer extends AbstractTransformer
$this->collectAllTags();
if ($collectForObjects) {
$this->collectAllCurrencies();
// $this->collectAllAmounts();
// $this->collectTransactionTypes();
// $this->collectAccounts();
// $this->collectAllAmounts();
// $this->collectTransactionTypes();
// $this->collectAccounts();
// source accounts
// destination accounts
}
}
public function transform(array | TransactionGroup $group): array
public function transform(array|TransactionGroup $group): array
{
if (is_array($group)) {
$first = reset($group['transactions']);
@@ -117,6 +117,7 @@ class TransactionGroupTransformer extends AbstractTransformer
],
];
}
return [
'id' => (string) $group->id,
'created_at' => $group->created_at->toAtomString(),
@@ -137,18 +138,22 @@ class TransactionGroupTransformer extends AbstractTransformer
private function transformJournals(TransactionGroup $group): array
{
$return = [];
/** @var TransactionJournal $journal */
foreach ($group->transactionJournals as $journal) {
$return[] = $this->transformJournal($journal);
}
return $return;
}
private function transformJournal(TransactionJournal $journal): array
{
$id = $journal->id;
/** @var TransactionCurrency|null $foreignCurrency */
$foreignCurrency = null;
$id = $journal->id;
/** @var null|TransactionCurrency $foreignCurrency */
$foreignCurrency = null;
/** @var TransactionCurrency $currency */
$currency = $this->currencies[$this->journals[$id]['currency_id']];
$nativeForeignAmount = null;
@@ -162,11 +167,11 @@ class TransactionGroupTransformer extends AbstractTransformer
$nativeForeignAmount = $this->converter->convert($this->default, $foreignCurrency, $journal->date, $foreignAmount);
}
$nativeAmount = $this->converter->convert($this->default, $currency, $journal->date, $amount);
$nativeAmount = $this->converter->convert($this->default, $currency, $journal->date, $amount);
$longitude = null;
$latitude = null;
$zoomLevel = null;
$longitude = null;
$latitude = null;
$zoomLevel = null;
if (array_key_exists('location', $this->journals[$id])) {
$latitude = (string) $this->journals[$id]['location']['latitude'];
$longitude = (string) $this->journals[$id]['location']['longitude'];
@@ -204,53 +209,53 @@ class TransactionGroupTransformer extends AbstractTransformer
'foreign_currency_symbol' => $foreignCurrency?->symbol,
'foreign_currency_decimal_places' => $foreignCurrency?->decimal_places,
'description' => $journal->description,
'source_id' => (string) $this->journals[$id]['source_account_id'],
'source_name' => $this->journals[$id]['source_account_name'],
'source_iban' => $this->journals[$id]['source_account_iban'],
'source_type' => $this->journals[$id]['source_account_type'],
'description' => $journal->description,
'source_id' => (string) $this->journals[$id]['source_account_id'],
'source_name' => $this->journals[$id]['source_account_name'],
'source_iban' => $this->journals[$id]['source_account_iban'],
'source_type' => $this->journals[$id]['source_account_type'],
'destination_id' => (string) $this->journals[$id]['destination_account_id'],
'destination_name' => $this->journals[$id]['destination_account_name'],
'destination_iban' => $this->journals[$id]['destination_account_iban'],
'destination_type' => $this->journals[$id]['destination_account_type'],
'destination_id' => (string) $this->journals[$id]['destination_account_id'],
'destination_name' => $this->journals[$id]['destination_account_name'],
'destination_iban' => $this->journals[$id]['destination_account_iban'],
'destination_type' => $this->journals[$id]['destination_account_type'],
'budget_id' => $this->journals[$id]['budget_id'],
'budget_name' => $this->journals[$id]['budget_name'],
'category_id' => $this->journals[$id]['category_id'],
'category_name' => $this->journals[$id]['category_name'],
'bill_id' => $this->journals[$id]['bill_id'],
'bill_name' => $this->journals[$id]['bill_name'],
'reconciled' => $this->journals[$id]['reconciled'],
'notes' => $this->journals[$id]['notes'] ?? null,
'tags' => $this->journals[$id]['tags'] ?? [],
'internal_reference' => $meta['internal_reference'],
'external_id' => $meta['external_id'],
'original_source' => $meta['original_source'],
'recurrence_id' => $meta['recurrence_id'],
'recurrence_total' => $meta['recurrence_total'],
'recurrence_count' => $meta['recurrence_count'],
'external_url' => $meta['external_url'],
'import_hash_v2' => $meta['import_hash_v2'],
'sepa_cc' => $meta['sepa_cc'],
'sepa_ct_op' => $meta['sepa_ct_op'],
'sepa_ct_id' => $meta['sepa_ct_id'],
'sepa_db' => $meta['sepa_db'],
'sepa_country' => $meta['sepa_country'],
'sepa_ep' => $meta['sepa_ep'],
'sepa_ci' => $meta['sepa_ci'],
'sepa_batch_id' => $meta['sepa_batch_id'],
'interest_date' => $this->date($meta['interest_date']),
'book_date' => $this->date($meta['book_date']),
'process_date' => $this->date($meta['process_date']),
'due_date' => $this->date($meta['due_date']),
'payment_date' => $this->date($meta['payment_date']),
'invoice_date' => $this->date($meta['invoice_date']),
'budget_id' => $this->journals[$id]['budget_id'],
'budget_name' => $this->journals[$id]['budget_name'],
'category_id' => $this->journals[$id]['category_id'],
'category_name' => $this->journals[$id]['category_name'],
'bill_id' => $this->journals[$id]['bill_id'],
'bill_name' => $this->journals[$id]['bill_name'],
'reconciled' => $this->journals[$id]['reconciled'],
'notes' => $this->journals[$id]['notes'] ?? null,
'tags' => $this->journals[$id]['tags'] ?? [],
'internal_reference' => $meta['internal_reference'],
'external_id' => $meta['external_id'],
'original_source' => $meta['original_source'],
'recurrence_id' => $meta['recurrence_id'],
'recurrence_total' => $meta['recurrence_total'],
'recurrence_count' => $meta['recurrence_count'],
'external_url' => $meta['external_url'],
'import_hash_v2' => $meta['import_hash_v2'],
'sepa_cc' => $meta['sepa_cc'],
'sepa_ct_op' => $meta['sepa_ct_op'],
'sepa_ct_id' => $meta['sepa_ct_id'],
'sepa_db' => $meta['sepa_db'],
'sepa_country' => $meta['sepa_country'],
'sepa_ep' => $meta['sepa_ep'],
'sepa_ci' => $meta['sepa_ci'],
'sepa_batch_id' => $meta['sepa_batch_id'],
'interest_date' => $this->date($meta['interest_date']),
'book_date' => $this->date($meta['book_date']),
'process_date' => $this->date($meta['process_date']),
'due_date' => $this->date($meta['due_date']),
'payment_date' => $this->date($meta['payment_date']),
'invoice_date' => $this->date($meta['invoice_date']),
// location data
'longitude' => $longitude,
'latitude' => $latitude,
'zoom_level' => $zoomLevel,
'longitude' => $longitude,
'latitude' => $latitude,
'zoom_level' => $zoomLevel,
//
// 'has_attachments' => $this->hasAttachments((int) $row['transaction_journal_id']),
];
@@ -275,10 +280,10 @@ class TransactionGroupTransformer extends AbstractTransformer
*/
private function transformTransaction(array $transaction): array
{
$transaction = new NullArrayObject($transaction);
$type = $this->stringFromArray($transaction, 'transaction_type_type', TransactionType::WITHDRAWAL);
$journalId = (int) $transaction['transaction_journal_id'];
$meta = new NullArrayObject($this->meta[$journalId] ?? []);
$transaction = new NullArrayObject($transaction);
$type = $this->stringFromArray($transaction, 'transaction_type_type', TransactionType::WITHDRAWAL);
$journalId = (int) $transaction['transaction_journal_id'];
$meta = new NullArrayObject($this->meta[$journalId] ?? []);
/**
* Convert and use amount:
@@ -295,9 +300,9 @@ class TransactionGroupTransformer extends AbstractTransformer
}
$this->converter->summarize();
$longitude = null;
$latitude = null;
$zoomLevel = null;
$longitude = null;
$latitude = null;
$zoomLevel = null;
if (array_key_exists('location', $this->journals[$journalId])) {
$latitude = (string) $this->journals[$journalId]['location']['latitude'];
$longitude = (string) $this->journals[$journalId]['location']['longitude'];
@@ -469,7 +474,7 @@ class TransactionGroupTransformer extends AbstractTransformer
/** @var TransactionJournalMeta $entry */
foreach ($meta as $entry) {
$id = $entry->transaction_journal_id;
$this->journals[$id]['meta'] ??= [];
$this->journals[$id]['meta'] ??= [];
$this->journals[$id]['meta'][$entry->name] = $entry->data;
}
}
@@ -486,13 +491,11 @@ class TransactionGroupTransformer extends AbstractTransformer
}
}
/**
* @return void
*/
private function collectAllLocations(): void
{
// grab all locations for all journals:
$locations = Location::whereLocatableType(TransactionJournal::class)->whereIn('locatable_id', array_keys($this->journals))->get();
/** @var Location $location */
foreach ($locations as $location) {
$id = $location->locatable_id;
@@ -508,9 +511,10 @@ class TransactionGroupTransformer extends AbstractTransformer
{
// grab all tags for all journals:
$tags = DB::table('tag_transaction_journal')
->leftJoin('tags', 'tags.id', 'tag_transaction_journal.tag_id')
->whereIn('tag_transaction_journal.transaction_journal_id', array_keys($this->journals))
->get(['tag_transaction_journal.transaction_journal_id', 'tags.tag']);
->leftJoin('tags', 'tags.id', 'tag_transaction_journal.tag_id')
->whereIn('tag_transaction_journal.transaction_journal_id', array_keys($this->journals))
->get(['tag_transaction_journal.transaction_journal_id', 'tags.tag'])
;
/** @var \stdClass $tag */
foreach ($tags as $tag) {
@@ -546,16 +550,16 @@ class TransactionGroupTransformer extends AbstractTransformer
$this->journals[$id]['bill_name'] = null;
// collect budget:
/** @var Budget|null $budget */
$budget = $journal->budgets()->first();
/** @var null|Budget $budget */
$budget = $journal->budgets()->first();
if (null !== $budget) {
$this->journals[$id]['budget_id'] = (string) $budget->id;
$this->journals[$id]['budget_name'] = $budget->name;
}
// collect category:
/** @var Category|null $category */
$category = $journal->categories()->first();
/** @var null|Category $category */
$category = $journal->categories()->first();
if (null !== $category) {
$this->journals[$id]['category_id'] = (string) $category->id;
$this->journals[$id]['category_name'] = $category->name;
@@ -568,38 +572,38 @@ class TransactionGroupTransformer extends AbstractTransformer
$this->journals[$id]['bill_name'] = $bill->name;
}
/** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) {
if (-1 === bccomp($transaction->amount, '0')) {
// only collect source account info
$account = $transaction->account;
$account = $transaction->account;
$this->accountTypes[$account->account_type_id] ??= $account->accountType->type;
$this->journals[$id]['source_account_name'] = $account->name;
$this->journals[$id]['source_account_iban'] = $account->iban;
$this->journals[$id]['source_account_type'] = $this->accountTypes[$account->account_type_id];
$this->journals[$id]['source_account_id'] = $transaction->account_id;
$this->journals[$id]['reconciled'] = $transaction->reconciled;
$this->journals[$id]['source_account_name'] = $account->name;
$this->journals[$id]['source_account_iban'] = $account->iban;
$this->journals[$id]['source_account_type'] = $this->accountTypes[$account->account_type_id];
$this->journals[$id]['source_account_id'] = $transaction->account_id;
$this->journals[$id]['reconciled'] = $transaction->reconciled;
continue;
}
// add account
$account = $transaction->account;
$this->accountTypes[$account->account_type_id] ??= $account->accountType->type;
$this->accountTypes[$account->account_type_id] ??= $account->accountType->type;
$this->journals[$id]['destination_account_name'] = $account->name;
$this->journals[$id]['destination_account_iban'] = $account->iban;
$this->journals[$id]['destination_account_type'] = $this->accountTypes[$account->account_type_id];
$this->journals[$id]['destination_account_id'] = $transaction->account_id;
// find and set currency
$currencyId = $transaction->transaction_currency_id;
$this->currencies[$currencyId] ??= $transaction->transactionCurrency;
$this->journals[$id]['currency_id'] = $currencyId;
$this->journals[$id]['amount'] = $transaction->amount;
$currencyId = $transaction->transaction_currency_id;
$this->currencies[$currencyId] ??= $transaction->transactionCurrency;
$this->journals[$id]['currency_id'] = $currencyId;
$this->journals[$id]['amount'] = $transaction->amount;
// find and set foreign currency
if (null !== $transaction->foreign_currency_id) {
$foreignCurrencyId = $transaction->foreign_currency_id;
$this->currencies[$foreignCurrencyId] ??= $transaction->foreignCurrency;
$this->currencies[$foreignCurrencyId] ??= $transaction->foreignCurrency;
$this->journals[$id]['foreign_currency_id'] = $foreignCurrencyId;
$this->journals[$id]['foreign_amount'] = $transaction->foreign_amount;
}

View File

@@ -432,7 +432,7 @@ return [
'transfers' => 'fa-exchange',
],
'bindables' => [
'bindables' => [
// models
'account' => Account::class,
'attachment' => Attachment::class,
@@ -490,7 +490,7 @@ return [
'userGroupBill' => UserGroupBill::class,
'userGroup' => UserGroup::class,
],
'rule-actions' => [
'rule-actions' => [
'set_category' => SetCategory::class,
'clear_category' => ClearCategory::class,
'set_budget' => SetBudget::class,
@@ -521,7 +521,7 @@ return [
'set_source_to_cash' => SetSourceToCashAccount::class,
'set_destination_to_cash' => SetDestinationToCashAccount::class,
],
'context-rule-actions' => [
'context-rule-actions' => [
'set_category',
'set_budget',
'add_tag',
@@ -540,13 +540,13 @@ return [
'convert_transfer',
],
'test-triggers' => [
'test-triggers' => [
'limit' => 10,
'range' => 200,
],
// expected source types for each transaction type, in order of preference.
'expected_source_types' => [
'expected_source_types' => [
'source' => [
TransactionTypeModel::WITHDRAWAL => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
TransactionTypeEnum::DEPOSIT->value => [AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE, AccountType::REVENUE, AccountType::CASH],
@@ -591,7 +591,7 @@ return [
TransactionTypeModel::LIABILITY_CREDIT => [AccountType::LIABILITY_CREDIT, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
],
],
'allowed_opposing_types' => [
'allowed_opposing_types' => [
'source' => [
AccountType::ASSET => [
AccountType::ASSET,
@@ -681,7 +681,7 @@ return [
],
],
// depending on the account type, return the allowed transaction types:
'allowed_transaction_types' => [
'allowed_transaction_types' => [
'source' => [
AccountType::ASSET => [
TransactionTypeModel::WITHDRAWAL,
@@ -750,7 +750,7 @@ return [
],
// having the source + dest will tell you the transaction type.
'account_to_transaction' => [
'account_to_transaction' => [
AccountType::ASSET => [
AccountType::ASSET => TransactionTypeModel::TRANSFER,
AccountType::CASH => TransactionTypeModel::WITHDRAWAL,
@@ -815,7 +815,7 @@ return [
],
// allowed source -> destination accounts.
'source_dests' => [
'source_dests' => [
TransactionTypeModel::WITHDRAWAL => [
AccountType::ASSET => [AccountType::EXPENSE, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE, AccountType::CASH],
AccountType::LOAN => [AccountType::EXPENSE, AccountType::CASH],
@@ -854,7 +854,7 @@ return [
],
],
// if you add fields to this array, don't forget to update the export routine (ExportDataGenerator).
'journal_meta_fields' => [
'journal_meta_fields' => [
// sepa
'sepa_cc',
'sepa_ct_op',
@@ -888,28 +888,28 @@ return [
'recurrence_count',
'recurrence_date',
],
'webhooks' => [
'webhooks' => [
'max_attempts' => env('WEBHOOK_MAX_ATTEMPTS', 3),
],
'can_have_virtual_amounts' => [AccountType::ASSET],
'can_have_opening_balance' => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
'dynamic_creation_allowed' => [
'can_have_virtual_amounts' => [AccountType::ASSET],
'can_have_opening_balance' => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
'dynamic_creation_allowed' => [
AccountType::EXPENSE,
AccountType::REVENUE,
AccountType::INITIAL_BALANCE,
AccountType::RECONCILIATION,
AccountType::LIABILITY_CREDIT,
],
'valid_asset_fields' => ['account_role', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
'valid_cc_fields' => ['account_role', 'cc_monthly_payment_date', 'cc_type', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
'valid_account_fields' => ['account_number', 'currency_id', 'BIC', 'interest', 'interest_period', 'include_net_worth', 'liability_direction'],
'valid_asset_fields' => ['account_role', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
'valid_cc_fields' => ['account_role', 'cc_monthly_payment_date', 'cc_type', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
'valid_account_fields' => ['account_number', 'currency_id', 'BIC', 'interest', 'interest_period', 'include_net_worth', 'liability_direction'],
// dynamic date ranges are as follows:
'dynamic_date_ranges' => ['last7', 'last30', 'last90', 'last365', 'MTD', 'QTD', 'YTD'],
'dynamic_date_ranges' => ['last7', 'last30', 'last90', 'last365', 'MTD', 'QTD', 'YTD'],
// only used in v1
'allowed_sort_parameters' => ['order', 'name', 'iban'],
'allowed_sort_parameters' => ['order', 'name', 'iban'],
// preselected account lists possibilities:
'preselected_accounts' => ['all', 'assets', 'liabilities'],
'preselected_accounts' => ['all', 'assets', 'liabilities'],
];

26
package-lock.json generated
View File

@@ -443,12 +443,12 @@
"dev": true
},
"node_modules/axios": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.3.tgz",
"integrity": "sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==",
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
"integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.15.0",
"follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -578,9 +578,9 @@
}
},
"node_modules/date-fns": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.0.6.tgz",
"integrity": "sha512-W+G99rycpKMMF2/YD064b2lE7jJGUe+EjOES7Q8BIGY8sbNdbgcs9XFTZwvzc9Jx1f3k7LB7gZaZa7f8Agzljg==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.1.0.tgz",
"integrity": "sha512-ZO7yefXV/wCWzd3I9haCHmfzlfA3i1a2HHO7ZXjtJrRjXt8FULKJ2Vl8wji3XYF4dQ0ZJ/tokXDZeYlFvgms9Q==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/kossnocorp"
@@ -860,9 +860,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.32",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
"integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
"version": "8.4.33",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
"dev": true,
"funding": [
{
@@ -922,9 +922,9 @@
}
},
"node_modules/sass": {
"version": "1.69.6",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.69.6.tgz",
"integrity": "sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==",
"version": "1.69.7",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz",
"integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{d as l,g as i,l as r}from"./load-translations-9dfbf635.js";import{I as s}from"./vendor-97200597.js";let t,d=function(){return{entries:[],init(){Promise.all([i("language","en_US")]).then(e=>{t=new s;const o=e[0].replace("-","_");t.locale=o,r(t,o).then(()=>{})})}}},a={transactions:d,dates:l};function n(){Object.keys(a).forEach(e=>{console.log(`Loading page component "${e}"`);let o=a[e]();Alpine.data(e,()=>o)}),Alpine.start()}document.addEventListener("firefly-iii-bootstrapped",()=>{console.log("Loaded through event listener."),n()});window.bootstrapped&&(console.log("Loaded through window variable."),n());

View File

@@ -1 +0,0 @@
import{a as r}from"./load-translations-9dfbf635.js";function i(s,a){let t=window.__localeId__.replace("_","-");return Intl.NumberFormat(t,{style:"currency",currency:a}).format(s)}let p=class{list(a){return r.get("/api/v2/subscriptions",{params:a})}paid(a){return r.get("/api/v2/subscriptions/sum/paid",{params:a})}unpaid(a){return r.get("/api/v2/subscriptions/sum/unpaid",{params:a})}};class u{list(a){return r.get("/api/v2/piggy-banks",{params:a})}}export{p as G,u as a,i as f};

View File

@@ -0,0 +1 @@
import{a as s}from"./get-c53daca3.js";class p{list(a){return s.get("/api/v2/transactions",{params:a})}show(a,t){return s.get("/api/v2/transactions/"+a,{params:t})}}export{p as G};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +1,27 @@
{
"_get-35a1642f.js": {
"file": "assets/get-35a1642f.js",
"_autocomplete-functions-31caaca5.js": {
"file": "assets/autocomplete-functions-31caaca5.js",
"imports": [
"_load-translations-9dfbf635.js"
"_vendor-4332182f.js",
"_get-c53daca3.js"
],
"integrity": "sha384-BEa5VVZeih2xh4PjZUO97mCQa3xQaqfJcN7vbBdx7E7UXOQu8naa5/GTkpqhuIWb"
"integrity": "sha384-XSqMYy1ZuJi4MrbVS3qq8lNtYeDESCrJRNtodU3HQlN+B94B6pSwan9xj81fwEZD"
},
"_load-translations-9dfbf635.js": {
"file": "assets/load-translations-9dfbf635.js",
"_get-c2292133.js": {
"file": "assets/get-c2292133.js",
"imports": [
"_vendor-97200597.js"
"_get-c53daca3.js"
],
"integrity": "sha384-1Co07smilqsxPLnUynKQLLj4Wk+b19/DP6FWySWLQQaY27nZ1RtDoaCPUu4pY8Q/"
"integrity": "sha384-kCxtb7s0EQQXgZ6TI+31ryYT23opPhgsNrwBl0T6Ld7y1W5vVxW8IFrLmQA8GY8I"
},
"_vendor-97200597.js": {
"_get-c53daca3.js": {
"file": "assets/get-c53daca3.js",
"imports": [
"_vendor-4332182f.js"
],
"integrity": "sha384-+ZXBtVym7E3s32aGQsrUbEzOEVeoJvFIUWszqynPgtsTp1n4RS25ZVsSMLofTmbS"
},
"_vendor-4332182f.js": {
"assets": [
"assets/layers-1dbbe9d0.png",
"assets/layers-2x-066daca8.png",
@@ -22,8 +30,8 @@
"css": [
"assets/vendor-49001d3f.css"
],
"file": "assets/vendor-97200597.js",
"integrity": "sha384-p3/nuBVJT3mcAGf7EsH1MjtWO1bxn5euKI3XKEt5TjLKZ9q1uq82P2OAEASLhlCk"
"file": "assets/vendor-4332182f.js",
"integrity": "sha384-1G3LBT5kdVnTa5qV4iO6YynbY9sZ9UWTAvBbj2fpl2ukttB/5UZoWMvAKTuYC+w5"
},
"node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf": {
"file": "assets/fa-brands-400-5656d596.ttf",
@@ -71,36 +79,38 @@
"integrity": "sha384-wg83fCOXjBtqzFAWhTL9Sd9vmLUNhfEEzfmNUX9zwv2igKlz/YQbdapF4ObdxF+R"
},
"resources/assets/v2/pages/dashboard/dashboard.js": {
"file": "assets/dashboard-4afa5a98.js",
"file": "assets/dashboard-e693d6f4.js",
"imports": [
"_load-translations-9dfbf635.js",
"_get-35a1642f.js",
"_vendor-97200597.js"
"_get-c53daca3.js",
"_vendor-4332182f.js",
"_get-c2292133.js"
],
"isEntry": true,
"src": "resources/assets/v2/pages/dashboard/dashboard.js",
"integrity": "sha384-jTx6wOomQpWwYjVUUeE6u/LGq0/zFbYp0pgKXNkzhicFT48r7KCI+G9+9/4hL0Ps"
"integrity": "sha384-1wJD5hnD/2V8OfSEhqyxDhQXDjay4Pn0ivGYFrieirkRil1dAR1NHaMoZlx7zaKd"
},
"resources/assets/v2/pages/transactions/create.js": {
"file": "assets/create-409a9a86.js",
"file": "assets/create-d5d549ca.js",
"imports": [
"_load-translations-9dfbf635.js",
"_vendor-97200597.js",
"_get-35a1642f.js"
"_get-c53daca3.js",
"_autocomplete-functions-31caaca5.js",
"_vendor-4332182f.js"
],
"isEntry": true,
"src": "resources/assets/v2/pages/transactions/create.js",
"integrity": "sha384-hv2wsCs+Sl8+Uee2ivc9mBt9HCp5VuTuBBLOFrdde+Z63VMAcTnNDv2eUGYynBvI"
"integrity": "sha384-wA/Z8Z+hNOuOA5ZTX8ShykEkdtfxX6dBZFLmmYmanfuUYEeY427OaNi956vrN6cy"
},
"resources/assets/v2/pages/transactions/edit.js": {
"file": "assets/edit-81edf6b9.js",
"file": "assets/edit-6247ff45.js",
"imports": [
"_load-translations-9dfbf635.js",
"_vendor-97200597.js"
"_get-c53daca3.js",
"_vendor-4332182f.js",
"_get-c2292133.js",
"_autocomplete-functions-31caaca5.js"
],
"isEntry": true,
"src": "resources/assets/v2/pages/transactions/edit.js",
"integrity": "sha384-0S1UAURUA6sHltypKX30GvPla6lpIJdspvfdmXYu6mGO+D4XgdPhW7TI6BvD6aCs"
"integrity": "sha384-hJTbJsS4rExaV2BGHmiZ/J/nm8RicxSfwzr7TDUe/nwtYOm8gWtmNxrDrsmyzAqS"
},
"resources/assets/v2/sass/app.scss": {
"file": "assets/app-fb7b26ec.css",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -7,7 +7,7 @@
"spent": "\u041f\u043e\u0445\u0430\u0440\u0447\u0435\u043d\u0438",
"left": "\u041e\u0441\u0442\u0430\u043d\u0430\u043b\u0438",
"paid": "\u041f\u043b\u0430\u0442\u0435\u043d\u0438",
"errors_submission": "\u0418\u043c\u0430\u0448\u0435 \u043d\u0435\u0449\u043e \u043d\u0435\u0440\u0435\u0434\u043d\u043e \u0441 \u0432\u0430\u0448\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438. \u041c\u043e\u043b\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0433\u0440\u0435\u0448\u043a\u0438\u0442\u0435.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u041d\u0435\u043f\u043b\u0430\u0442\u0435\u043d\u0438",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Suscripciones en el grupo \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Gastat",
"left": "Queda",
"paid": "Pagat",
"errors_submission": "Ha hagut un error amb el teu enviament. Per favor, revisa els errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Pendent de pagament",
"default_group_title_name_plain": "no agrupades",
"subscriptions_in_group": "Subscripcions al grup \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Utraceno",
"left": "Zb\u00fdv\u00e1",
"paid": "Zaplaceno",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Nezaplaceno",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Spent",
"left": "Left",
"paid": "Paid",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Ubetalt",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Ausgegeben",
"left": "\u00dcbrig",
"paid": "Bezahlt",
"errors_submission": "Ihre \u00dcbermittlung ist fehlgeschlagen. Bitte \u00fcberpr\u00fcfen Sie die Fehler.",
"errors_submission": "Problem bei der \u00dcbermittlung. Bitte \u00fcberpr\u00fcfen Sie die nachfolgenden Fehler: %{errorMessage}",
"unpaid": "Unbezahlt",
"default_group_title_name_plain": "ungruppiert",
"subscriptions_in_group": "Abonnements in Gruppe \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "\u0394\u03b1\u03c0\u03b1\u03bd\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd",
"left": "\u0391\u03c0\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5\u03bd",
"paid": "\u03a0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03bd\u03bf",
"errors_submission": "\u03a5\u03c0\u03ae\u03c1\u03be\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03bb\u03ac\u03b8\u03bf\u03c2 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03c3\u03b1\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03b1.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u0391\u03c0\u03bb\u03ae\u03c1\u03c9\u03c4\u03bf",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Spent",
"left": "Left",
"paid": "Paid",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Unpaid",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Spent",
"left": "Left",
"paid": "Paid",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Unpaid",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Gastado",
"left": "Disponible",
"paid": "Pagado",
"errors_submission": "Hubo un problema con su env\u00edo. Por favor, compruebe los errores.",
"errors_submission": "Hubo un error en tu env\u00edo. Por favor, revisa los siguientes errores: %{errorMessage}",
"unpaid": "No pagado",
"default_group_title_name_plain": "sin agrupar",
"subscriptions_in_group": "Suscripciones en el grupo \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "K\u00e4ytetty",
"left": "J\u00e4ljell\u00e4",
"paid": "Maksettu",
"errors_submission": "Lomakkeen tiedoissa oli jotain vikaa. Ole hyv\u00e4 ja tarkista virheet.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Maksamatta",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "D\u00e9pens\u00e9",
"left": "Reste",
"paid": "Pay\u00e9",
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs.",
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs ci-dessous : %{errorMessage}",
"unpaid": "Impay\u00e9",
"default_group_title_name_plain": "non group\u00e9",
"subscriptions_in_group": "Abonnements dans le groupe \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Elk\u00f6lt\u00f6tt",
"left": "Maradv\u00e1ny",
"paid": "Kifizetve",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "Hiba t\u00f6rt\u00e9nt a bek\u00fcld\u00e9s sor\u00e1n. K\u00e9rlek jav\u00edtsd a k\u00f6vetkez\u0151 hib\u00e1kat: %{errorMessage}",
"unpaid": "Nincs fizetve",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Menghabiskan",
"left": "Kiri",
"paid": "Dibayar",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Tidak dibayar",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Speso",
"left": "Resto",
"paid": "Pagati",
"errors_submission": "Errore durante l'invio. Controlla gli errori segnalati qui sotto.",
"errors_submission": "Errore durante l'invio. Controlla gli errori segnalati qui sotto: %{errorMessage}",
"unpaid": "Da pagare",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Abbonamenti nel gruppo \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "\u652f\u51fa",
"left": "\u6b8b\u308a",
"paid": "\u652f\u6255\u3044\u6e08\u307f",
"errors_submission": "\u9001\u4fe1\u5185\u5bb9\u306b\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u30a8\u30e9\u30fc\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u672a\u6255\u3044",
"default_group_title_name_plain": "\u30b0\u30eb\u30fc\u30d7\u89e3\u9664",
"subscriptions_in_group": "\u30b0\u30eb\u30fc\u30d7\u300c%{title}\u300d\u306e\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3",

View File

@@ -7,7 +7,7 @@
"spent": "\uc9c0\ucd9c",
"left": "\ub0a8\uc74c",
"paid": "\uc9c0\ubd88\ub428",
"errors_submission": "\uc81c\ucd9c\ud55c \ub0b4\uc6a9\uc5d0 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc624\ub958\ub97c \ud655\uc778\ud574 \uc8fc\uc138\uc694.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\ubbf8\uc9c0\ubd88",
"default_group_title_name_plain": "\uadf8\ub8f9 \ud574\uc81c\ub428",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Brukt",
"left": "Gjenv\u00e6rende",
"paid": "Betalt",
"errors_submission": "Noe gikk galt med innleveringen. Vennligst sjekk ut feilene.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Ikke betalt",
"default_group_title_name_plain": "ikke gruppert",
"subscriptions_in_group": "Abonnementer i gruppe \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Uitgegeven",
"left": "Over",
"paid": "Betaald",
"errors_submission": "Er ging iets mis. Check de errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Niet betaald",
"default_group_title_name_plain": "ongegroepeerd",
"subscriptions_in_group": "Abonnementen in groep \"%{title}\"",
@@ -22,7 +22,7 @@
"unknown_dest_plain": "Onbekende doelrekening",
"unknown_any_plain": "Onbekende rekening",
"unknown_budget_plain": "Geen budget",
"stored_journal_js": "Successfully created new transaction \"%{description}\"",
"stored_journal_js": "Nieuw transactie \"%{description}\" opgeslagen",
"expense_account": "Crediteur",
"revenue_account": "Debiteur",
"budget": "Budget",

View File

@@ -7,7 +7,7 @@
"spent": "Brukt",
"left": "Att",
"paid": "Betalt",
"errors_submission": "Noko gjekk gale med innleveringa. Ver venleg \u00e5 sjekk feila.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Ikke betalt",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Abonnement i gruppa \u00ab%{title}\u00bb",

View File

@@ -7,7 +7,7 @@
"spent": "Wydano",
"left": "Pozosta\u0142o",
"paid": "Zap\u0142acone",
"errors_submission": "Co\u015b posz\u0142o nie tak w czasie zapisu. Prosz\u0119 sprawd\u017a b\u0142\u0119dy.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Niezap\u0142acone",
"default_group_title_name_plain": "bez grupy",
"subscriptions_in_group": "Subskrypcje w grupie \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Gasto",
"left": "Restante",
"paid": "Pago",
"errors_submission": "H\u00e1 algo de errado com o seu envio. Por favor, verifique os erros abaixo.",
"errors_submission": "Alguma coisa deu errado com seu envio. Por favor, verifique os erros abaixo: %{errorMessage}",
"unpaid": "N\u00e3o pago",
"default_group_title_name_plain": "sem grupo",
"subscriptions_in_group": "Assinaturas no grupo \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Gasto",
"left": "Em falta",
"paid": "Pago",
"errors_submission": "Aconteceu algo errado com a sua submiss\u00e3o. Por favor, verifique os erros.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Por pagar",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Cheltuit",
"left": "R\u0103mas",
"paid": "Pl\u0103tit",
"errors_submission": "A fost ceva \u00een neregul\u0103 cu depunerea ta. Te rug\u0103m s\u0103 verifici erorile.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Nepl\u0103tit",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "\u0420\u0430\u0441\u0445\u043e\u0434",
"left": "\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c",
"paid": "\u041e\u043f\u043b\u0430\u0447\u0435\u043d\u043e",
"errors_submission": "\u041f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0438\u0436\u0435.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u041d\u0435 \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043e",
"default_group_title_name_plain": "\u0431\u0435\u0437 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438",
"subscriptions_in_group": "\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0438 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Utraten\u00e9",
"left": "Zost\u00e1va",
"paid": "Uhraden\u00e9",
"errors_submission": "Pri odosielan\u00ed sa nie\u010do nepodarilo. Skontrolujte pros\u00edm chyby.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Neuhraden\u00e9",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Porabljeno",
"left": "Preostalo",
"paid": "Pla\u010dano",
"errors_submission": "Nekaj je bilo narobe z va\u0161o predlo\u017eitvijo. Preverite napake.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Nepla\u010dano",
"default_group_title_name_plain": "nezdru\u017eeno",
"subscriptions_in_group": "Naro\u010dnine v skupini \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Spenderat",
"left": "\u00c5terst\u00e5r",
"paid": "Betald",
"errors_submission": "N\u00e5got fel uppstod med inskickningen. V\u00e4nligen kontrollera felen nedan.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Obetald",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Harcanan",
"left": "Ayr\u0131ld\u0131",
"paid": "\u00d6dendi",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u00d6denmedi",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "Spent",
"left": "Left",
"paid": "Paid",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Unpaid",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "\u0110\u00e3 chi",
"left": "C\u00f2n l\u1ea1i",
"paid": "\u0110\u00e3 thanh to\u00e1n",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "Ch\u01b0a thanh to\u00e1n",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -7,7 +7,7 @@
"spent": "\u652f\u51fa",
"left": "\u5269\u4f59",
"paid": "\u5df2\u4ed8\u6b3e",
"errors_submission": "\u60a8\u63d0\u4ea4\u7684\u5185\u5bb9\u6709\u8bef\uff0c\u8bf7\u68c0\u67e5\u9519\u8bef\u4fe1\u606f\u3002",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u672a\u4ed8\u6b3e",
"default_group_title_name_plain": "\u672a\u5206\u7ec4",
"subscriptions_in_group": "\u5206\u7ec4\u201c%{title}\u201d\u8ba2\u9605",

View File

@@ -7,7 +7,7 @@
"spent": "\u652f\u51fa",
"left": "\u5269\u9918",
"paid": "\u5df2\u4ed8\u6b3e",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"unpaid": "\u672a\u4ed8\u6b3e",
"default_group_title_name_plain": "ungrouped",
"subscriptions_in_group": "Subscriptions in group \"%{title}\"",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u0423\u0441\u043f\u0435\u0445!",
"close": "\u0417\u0430\u0442\u0432\u043e\u0440\u0438",
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
"errors_submission": "\u0418\u043c\u0430\u0448\u0435 \u043d\u0435\u0449\u043e \u043d\u0435\u0440\u0435\u0434\u043d\u043e \u0441 \u0432\u0430\u0448\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0438. \u041c\u043e\u043b\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u0433\u0440\u0435\u0448\u043a\u0438\u0442\u0435.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438",
"single_split": "\u0420\u0430\u0437\u0434\u0435\u043b",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}(\"{title}\")<\/a> \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u00c8xit!",
"close": "Tancar",
"split_transaction_title": "Descripci\u00f3 de la transacci\u00f3 dividida",
"errors_submission": "Ha hagut un error amb el teu enviament. Per favor, revisa els errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Dividir",
"single_split": "Divisi\u00f3",
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">Transacci\u00f3 #{ID} (\"{title}\")<\/a> s'ha desat.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u00dasp\u011b\u0161n\u011b dokon\u010deno!",
"close": "Zav\u0159\u00edt",
"split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Rozd\u011blit",
"single_split": "Rozd\u011blit",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Succes!",
"close": "Luk",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Opdel",
"single_split": "Opdel",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Geschafft!",
"close": "Schlie\u00dfen",
"split_transaction_title": "Beschreibung der Splittbuchung",
"errors_submission": "Ihre \u00dcbermittlung ist fehlgeschlagen. Bitte \u00fcberpr\u00fcfen Sie die Fehler.",
"errors_submission": "Problem bei der \u00dcbermittlung. Bitte \u00fcberpr\u00fcfen Sie die nachfolgenden Fehler: %{errorMessage}",
"split": "Teilen",
"single_split": "Teilen",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Buchung #{ID} (\"{title}\")<\/a> wurde gespeichert.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1!",
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
"split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc",
"errors_submission": "\u03a5\u03c0\u03ae\u03c1\u03be\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03bb\u03ac\u03b8\u03bf\u03c2 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae \u03c3\u03b1\u03c2. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1\u03c4\u03b1.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
"single_split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID} (\"{title}\")<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Success!",
"close": "Close",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Split",
"single_split": "Split",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Success!",
"close": "Close",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Split",
"single_split": "Split",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u00a1Operaci\u00f3n correcta!",
"close": "Cerrar",
"split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida",
"errors_submission": "Hubo un problema con su env\u00edo. Por favor, compruebe los errores.",
"errors_submission": "Hubo un error en tu env\u00edo. Por favor, revisa los siguientes errores: %{errorMessage}",
"split": "Separar",
"single_split": "Divisi\u00f3n",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">La transacci\u00f3n #{ID} (\"{title}\")<\/a> ha sido almacenada.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Valmista tuli!",
"close": "Sulje",
"split_transaction_title": "Jaetun tapahtuman kuvaus",
"errors_submission": "Lomakkeen tiedoissa oli jotain vikaa. Ole hyv\u00e4 ja tarkista virheet.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Jaa",
"single_split": "Jako",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Tapahtuma #{ID} (\"{title}\")<\/a> on tallennettu.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Super !",
"close": "Fermer",
"split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e",
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs.",
"errors_submission": "Certaines informations ne sont pas correctes dans votre formulaire. Veuillez v\u00e9rifier les erreurs ci-dessous : %{errorMessage}",
"split": "Ventiler",
"single_split": "Ventilation",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Siker!",
"close": "Bez\u00e1r\u00e1s",
"split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "Hiba t\u00f6rt\u00e9nt a bek\u00fcld\u00e9s sor\u00e1n. K\u00e9rlek jav\u00edtsd a k\u00f6vetkez\u0151 hib\u00e1kat: %{errorMessage}",
"split": "Feloszt\u00e1s",
"single_split": "Feloszt\u00e1s",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> mentve.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Keberhasilan!",
"close": "Dekat",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Pisah",
"single_split": "Pisah",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Successo!",
"close": "Chiudi",
"split_transaction_title": "Descrizione della transazione suddivisa",
"errors_submission": "Errore durante l'invio. Controlla gli errori segnalati qui sotto.",
"errors_submission": "Errore durante l'invio. Controlla gli errori segnalati qui sotto: %{errorMessage}",
"split": "Dividi",
"single_split": "Divisione",
"transaction_stored_link": "La <a href=\"transactions\/show\/{ID}\">transazione #{ID} (\"{title}\")<\/a> \u00e8 stata salvata.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u6210\u529f\u3057\u307e\u3057\u305f\uff01",
"close": "\u9589\u3058\u308b",
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u6982\u8981",
"errors_submission": "\u9001\u4fe1\u5185\u5bb9\u306b\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u30a8\u30e9\u30fc\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u5206\u5272",
"single_split": "\u5206\u5272",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u53d6\u5f15 #{ID}\u300c{title}\u300d<\/a> \u304c\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f\u3002",

View File

@@ -6,7 +6,7 @@
"flash_success": "\uc131\uacf5!",
"close": "\ub2eb\uae30",
"split_transaction_title": "\ubd84\ud560 \uac70\ub798\uc5d0 \ub300\ud55c \uc124\uba85",
"errors_submission": "\uc81c\ucd9c\ud55c \ub0b4\uc6a9\uc5d0 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc624\ub958\ub97c \ud655\uc778\ud574 \uc8fc\uc138\uc694.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\ub098\ub204\uae30",
"single_split": "\ub098\ub204\uae30",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\uac70\ub798 #{ID} (\"{title}\")<\/a>\uac00 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Suksess!",
"close": "Lukk",
"split_transaction_title": "Beskrivelse av den splittende transaksjon",
"errors_submission": "Noe gikk galt med innleveringen. Vennligst sjekk ut feilene.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Del opp",
"single_split": "Del opp",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaksjon #{ID} (\"{title}\")<\/a> har blitt lagret.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Gelukt!",
"close": "Sluiten",
"split_transaction_title": "Beschrijving van de gesplitste transactie",
"errors_submission": "Er ging iets mis. Check de errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Splitsen",
"single_split": "Split",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transactie #{ID} (\"{title}\")<\/a> is opgeslagen.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Suksess!",
"close": "Lukk",
"split_transaction_title": "Beskrivinga av den splitta transaksjonen",
"errors_submission": "Noko gjekk gale med innleveringa. Ver venleg \u00e5 sjekk feila.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Del opp",
"single_split": "Del opp",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaksjon #{ID} (\"{title}\")<\/a> har vorte lagra.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Sukces!",
"close": "Zamknij",
"split_transaction_title": "Opis podzielonej transakcji",
"errors_submission": "Co\u015b posz\u0142o nie tak w czasie zapisu. Prosz\u0119 sprawd\u017a b\u0142\u0119dy.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Podziel",
"single_split": "Podzia\u0142",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcja #{ID} (\"{title}\")<\/a> zosta\u0142a zapisana.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Sucesso!",
"close": "Fechar",
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
"errors_submission": "H\u00e1 algo de errado com o seu envio. Por favor, verifique os erros abaixo.",
"errors_submission": "Alguma coisa deu errado com seu envio. Por favor, verifique os erros abaixo: %{errorMessage}",
"split": "Dividir",
"single_split": "Divis\u00e3o",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi salva.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Sucesso!",
"close": "Fechar",
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
"errors_submission": "Aconteceu algo errado com a sua submiss\u00e3o. Por favor, verifique os erros.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Dividir",
"single_split": "Divis\u00e3o",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">A transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Succes!",
"close": "\u00cenchide",
"split_transaction_title": "Descrierea tranzac\u021biei divizate",
"errors_submission": "A fost ceva \u00een neregul\u0103 cu depunerea ta. Te rug\u0103m s\u0103 verifici erorile.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u00cemparte",
"single_split": "\u00cemparte",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Tranzac\u021bia #{ID} (\"{title}\")<\/a> a fost stocat\u0103.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
"close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
"errors_submission": "\u041f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0438\u0436\u0435.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c",
"single_split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID} (\"{title}\")<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Hotovo!",
"close": "Zavrie\u0165",
"split_transaction_title": "Popis roz\u00fa\u010dtovania",
"errors_submission": "Pri odosielan\u00ed sa nie\u010do nepodarilo. Skontrolujte pros\u00edm chyby.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Roz\u00fa\u010dtova\u0165",
"single_split": "Roz\u00fa\u010dtova\u0165",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcia #{ID} (\"{title}\")<\/a> bola ulo\u017een\u00e1.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Uspelo je!",
"close": "Zapri",
"split_transaction_title": "Opis razdeljene transakcije",
"errors_submission": "Nekaj je bilo narobe z va\u0161o predlo\u017eitvijo. Preverite napake.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Razdeli",
"single_split": "Razdeli",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transakcija \u0161t. #{ID} (\"{title}\")<\/a> je bila shranjena.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Slutf\u00f6rd!",
"close": "St\u00e4ng",
"split_transaction_title": "Beskrivning av delad transaktion",
"errors_submission": "N\u00e5got fel uppstod med inskickningen. V\u00e4nligen kontrollera felen nedan.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Dela",
"single_split": "Dela",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaktion #{ID} (\"{title}\")<\/a> sparades.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Ba\u015far\u0131l\u0131!",
"close": "Kapat",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "B\u00f6l",
"single_split": "B\u00f6l",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0130\u015flem #{ID} (\"{title}\")<\/a> sakl\u0131 olmu\u015ftur.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u0423\u0441\u043f\u0456\u0448\u043d\u043e!",
"close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
"split_transaction_title": "Description of the split transaction",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
"single_split": "\u0420\u043e\u0437\u0434\u0456\u043b\u0438\u0442\u0438",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -6,7 +6,7 @@
"flash_success": "Th\u00e0nh c\u00f4ng!",
"close": "\u0110\u00f3ng",
"split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "Chia ra",
"single_split": "Chia ra",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Giao d\u1ecbch #{ID} (\"{title}\")<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef.",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u6210\u529f\uff01",
"close": "\u5173\u95ed",
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
"errors_submission": "\u60a8\u63d0\u4ea4\u7684\u5185\u5bb9\u6709\u8bef\uff0c\u8bf7\u68c0\u67e5\u9519\u8bef\u4fe1\u606f\u3002",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u62c6\u5206",
"single_split": "\u62c6\u5206",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID} (\u201c{title}\u201d)<\/a> \u5df2\u4fdd\u5b58\u3002",

View File

@@ -6,7 +6,7 @@
"flash_success": "\u6210\u529f\uff01",
"close": "\u95dc\u9589",
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "There was something wrong with your submission. Please check out the errors below: %{errorMessage}",
"split": "\u5206\u5272",
"single_split": "Split",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",

View File

@@ -24,9 +24,6 @@ export default class Preferences {
getByName(name) {
return api.get('/api/v1/preferences/' + name);
}
getByNameNow(name) {
return api.get('/api/v1/preferences/' + name);
}

View File

@@ -46,10 +46,6 @@ import {processAttachments} from "./shared/process-attachments.js";
import {spliceErrorsIntoTransactions} from "./shared/splice-errors-into-transactions.js";
import Tags from "bootstrap5-tags";
import {addLocation} from "./shared/manage-locations.js";
// TODO upload attachments to other file
// TODO fix two maps, perhaps disconnect from entries entirely.
// TODO group title

View File

@@ -1299,6 +1299,7 @@ return [
'no_location_set' => 'Не е зададено местоположение.',
'meta_data' => 'Мета данни',
'location' => 'Местоположение',
'location_first_split' => 'The location for this transaction can be set on the first split of this transaction.',
'without_date' => 'Без дата',
'result' => 'Резултат',
'sums_apply_to_range' => 'Всички суми се отнасят към избрания диапазон',
@@ -1950,6 +1951,7 @@ return [
*/
// transactions:
'wait_loading_transaction' => 'Please wait for the form to load',
'wait_attachments' => 'Please wait for the attachments to upload.',
'errors_upload' => 'The upload has failed. Please check your browser console for the error.',
'amount_foreign_if' => 'Amount in foreign currency, if any',
@@ -2339,6 +2341,7 @@ return [
'average' => 'Средно',
'balanceFor' => 'Салдо за :name',
'no_tags' => '(без етикети)',
'nothing_found' => '(nothing found)',
// piggy banks:
'event_history' => 'Event history',

View File

@@ -1299,6 +1299,7 @@ return [
'no_location_set' => 'Ubicació no establerta.',
'meta_data' => 'Meta dades',
'location' => 'Ubicació',
'location_first_split' => 'The location for this transaction can be set on the first split of this transaction.',
'without_date' => 'Sense data',
'result' => 'Resultat',
'sums_apply_to_range' => 'Totes les sumes s\'apliquen al rang seleccionat',
@@ -1950,6 +1951,7 @@ return [
*/
// transactions:
'wait_loading_transaction' => 'Please wait for the form to load',
'wait_attachments' => 'Please wait for the attachments to upload.',
'errors_upload' => 'The upload has failed. Please check your browser console for the error.',
'amount_foreign_if' => 'Amount in foreign currency, if any',
@@ -2339,6 +2341,7 @@ return [
'average' => 'Mitjana',
'balanceFor' => 'Saldo per a :name',
'no_tags' => '(cap etiqueta)',
'nothing_found' => '(nothing found)',
// piggy banks:
'event_history' => 'Historial d\'esdeveniments',

View File

@@ -1299,6 +1299,7 @@ return [
'no_location_set' => 'Není nastaveno žádné umístění.',
'meta_data' => 'Metadata',
'location' => 'Umístění',
'location_first_split' => 'The location for this transaction can be set on the first split of this transaction.',
'without_date' => 'Bez data',
'result' => 'Výsledek',
'sums_apply_to_range' => 'Všechny součty se vztahují na vybraný rozsah',
@@ -1950,6 +1951,7 @@ return [
*/
// transactions:
'wait_loading_transaction' => 'Please wait for the form to load',
'wait_attachments' => 'Please wait for the attachments to upload.',
'errors_upload' => 'The upload has failed. Please check your browser console for the error.',
'amount_foreign_if' => 'Amount in foreign currency, if any',
@@ -2339,6 +2341,7 @@ return [
'average' => 'Průměr',
'balanceFor' => 'Zůstatek na :name',
'no_tags' => '(žádné štítky)',
'nothing_found' => '(nothing found)',
// piggy banks:
'event_history' => 'Event history',

View File

@@ -1299,6 +1299,7 @@ return [
'no_location_set' => 'Ingen stedangivelse.',
'meta_data' => 'Meta data',
'location' => 'Sted',
'location_first_split' => 'The location for this transaction can be set on the first split of this transaction.',
'without_date' => 'Uden dato',
'result' => 'Resultat',
'sums_apply_to_range' => 'Alle beløb gælder for det valgte interval',
@@ -1950,6 +1951,7 @@ return [
*/
// transactions:
'wait_loading_transaction' => 'Please wait for the form to load',
'wait_attachments' => 'Please wait for the attachments to upload.',
'errors_upload' => 'The upload has failed. Please check your browser console for the error.',
'amount_foreign_if' => 'Amount in foreign currency, if any',
@@ -2339,6 +2341,7 @@ return [
'average' => 'Gennemsnitlig',
'balanceFor' => 'Saldo for :name',
'no_tags' => '(ingen mærker)',
'nothing_found' => '(nothing found)',
// piggy banks:
'event_history' => 'Event history',

View File

@@ -143,7 +143,7 @@ return [
'error_github_text' => 'Wenn Sie es bevorzugen, können Sie auch einen Fehlerbericht auf https://github.com/firefly-iii/firefly-iii/issues eröffnen.',
'error_stacktrace_below' => 'Der vollständige Stacktrace ist unten:',
'error_headers' => 'Die folgenden Kopfzeilen können ebenfalls von Bedeutung sein:',
'error_post' => 'This was submitted by the user:',
'error_post' => 'Dies wurde vom Benutzer eingereicht:',
/*
* PLEASE DO NOT EDIT THIS FILE DIRECTLY.

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