diff --git a/app/Transformers/RecurrenceTransformer.php b/app/Transformers/RecurrenceTransformer.php index c534eba253..ea363ae513 100644 --- a/app/Transformers/RecurrenceTransformer.php +++ b/app/Transformers/RecurrenceTransformer.php @@ -206,15 +206,45 @@ class RecurrenceTransformer extends AbstractTransformer /** * @param RecurrenceTransaction $transaction - * @param array $array + * @param array $array * * @return array + * @throws FireflyException */ private function getTransactionMeta(RecurrenceTransaction $transaction, array $array): array { + $array['tags'] = []; + $array['bill_id'] = null; + $array['bill_name'] = null; + $array['category_id'] = null; + $array['category_name'] = null; + $array['budget_id'] = null; + $array['budget_name'] = null; + $array['piggy_bank_id'] = null; + $array['piggy_bank_name'] = null; + /** @var RecurrenceTransactionMeta $transactionMeta */ foreach ($transaction->recurrenceTransactionMeta as $transactionMeta) { switch ($transactionMeta->name) { + default: + throw new FireflyException(sprintf('Recurrence transformer cant handle field "%s"', $transactionMeta->name)); + case 'tags': + $array['tags'] = explode(',', $transactionMeta->value); + break; + case 'bill_id': + $bill = $this->billRepos->find((int)$transactionMeta->value); + if (null !== $bill) { + $array['bill_id'] = $bill->id; + $array['bill_name'] = $bill->name; + } + break; + case 'piggy_bank_id': + $piggy = $this->piggyRepos->findNull((int)$transactionMeta->value); + if (null !== $piggy) { + $array['piggy_bank_id'] = $piggy->id; + $array['piggy_bank_name'] = $piggy->name; + } + break; case 'category_name': $category = $this->factory->findOrCreate(null, $transactionMeta->value); if (null !== $category) { diff --git a/resources/views/v1/recurring/edit.twig b/resources/views/v1/recurring/edit.twig index 8090ba55ae..7fdb36ba2d 100644 --- a/resources/views/v1/recurring/edit.twig +++ b/resources/views/v1/recurring/edit.twig @@ -20,11 +20,11 @@ {{ ExpandedForm.text('title') }} {{ ExpandedForm.date('first_date',array.first_date, {helpText: trans('firefly.help_first_date_no_past')}) }} {{ ExpandedForm.select('repetition_type', [], null, {helpText: trans('firefly.change_date_other_options')}) }} - {{ ExpandedForm.number('skip', array.recurrence_repetitions[0].skip) }} - {{ ExpandedForm.select('weekend', weekendResponses, array.recurrence_repetitions[0].weekend, {helpText: trans('firefly.help_weekend')}) }} + {{ ExpandedForm.number('skip', array.repetitions[0].skip) }} + {{ ExpandedForm.select('weekend', weekendResponses, array.repetitions[0].weekend, {helpText: trans('firefly.help_weekend')}) }} {{ ExpandedForm.select('repetition_end', repetitionEnds, repetitionEnd) }} {{ ExpandedForm.date('repeat_until',array.repeat_until) }} - {{ ExpandedForm.number('repetitions', array.repetitions) }} + {{ ExpandedForm.number('repetitions', array.nr_of_repetitions) }} {# calendar in popup #}