new language strings and updated code

This commit is contained in:
James Cole
2018-07-28 06:27:30 +02:00
parent 0ccc1271a6
commit 07ae64693e
49 changed files with 298 additions and 269 deletions

View File

@@ -45,15 +45,6 @@ use Log;
*/
trait RecurringTransactionTrait
{
/**
* @param null|string $expectedType
* @param int|null $accountId
* @param null|string $accountName
*
* @return Account|null
*/
abstract public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account;
/**
* @param Recurrence $recurrence
* @param array $repetitions
@@ -76,8 +67,12 @@ trait RecurringTransactionTrait
}
/**
* Store transactions of a recurring transactions. It's complex but readable.
*
* @param Recurrence $recurrence
* @param array $transactions
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function createTransactions(Recurrence $recurrence, array $transactions): void
{
@@ -103,9 +98,8 @@ trait RecurringTransactionTrait
$factory = app(TransactionCurrencyFactory::class);
$currency = $factory->find($array['currency_id'], $array['currency_code']);
$foreignCurrency = $factory->find($array['foreign_currency_id'], $array['foreign_currency_code']);
$defaultCurrency = app('amount')->getDefaultCurrencyByUser($recurrence->user);
if (null === $currency) {
$currency = $defaultCurrency;
$currency = app('amount')->getDefaultCurrencyByUser($recurrence->user);
}
$transaction = new RecurrenceTransaction(
[
@@ -178,6 +172,17 @@ trait RecurringTransactionTrait
}
/**
* @param null|string $expectedType
* @param int|null $accountId
* @param null|string $accountName
*
* @return Account|null
*/
abstract public function findAccount(?string $expectedType, ?int $accountId, ?string $accountName): ?Account;
/**
* Update meta data for recurring transaction.
*
* @param Recurrence $recurrence
* @param array $data
*/
@@ -186,6 +191,22 @@ trait RecurringTransactionTrait
// only two special meta fields right now. Let's just hard code them.
$piggyId = (int)($data['meta']['piggy_bank_id'] ?? 0.0);
$piggyName = $data['meta']['piggy_bank_name'] ?? '';
$this->updatePiggyBank($recurrence, $piggyId, $piggyName);
$tags = $data['meta']['tags'] ?? [];
$this->updateTags($recurrence, $tags);
}
/**
* @param Recurrence $recurrence
* @param int $piggyId
* @param string $piggyName
*/
protected function updatePiggyBank(Recurrence $recurrence, int $piggyId, string $piggyName): void
{
/** @var PiggyBankFactory $factory */
$factory = app(PiggyBankFactory::class);
$factory->setUser($recurrence->user);
@@ -203,9 +224,14 @@ trait RecurringTransactionTrait
// delete if present
$recurrence->recurrenceMeta()->where('name', 'piggy_bank_id')->delete();
}
}
$tags = $data['meta']['tags'] ?? [];
/**
* @param Recurrence $recurrence
* @param array $tagst
*/
protected function updateTags(Recurrence $recurrence, array $tags): void
{
if (\count($tags) > 0) {
/** @var RecurrenceMeta $entry */
$entry = $recurrence->recurrenceMeta()->where('name', 'tags')->first();