Various code cleanup.

This commit is contained in:
James Cole
2017-11-05 19:49:20 +01:00
parent 33d89d52c2
commit d2ab03061f
37 changed files with 95 additions and 247 deletions

View File

@@ -23,12 +23,9 @@ declare(strict_types=1);
namespace FireflyIII\Support\Twig;
use FireflyIII\Models\Transaction as TransactionModel;
use FireflyIII\Support\Twig\Extension\Transaction as TransactionExtension;
use Steam;
use Twig_Extension;
use Twig_SimpleFilter;
use Twig_SimpleFunction;
/**
* Class Transaction
@@ -46,6 +43,7 @@ class Transaction extends Twig_Extension
new Twig_SimpleFilter('transactionIcon', [TransactionExtension::class, 'icon'], ['is_safe' => ['html']]),
new Twig_SimpleFilter('transactionDescription', [TransactionExtension::class, 'description']),
new Twig_SimpleFilter('transactionIsSplit', [TransactionExtension::class, 'isSplit'], ['is_safe' => ['html']]),
new Twig_SimpleFilter('transactionReconciled', [TransactionExtension::class, 'isReconciled'], ['is_safe' => ['html']]),
new Twig_SimpleFilter('transactionHasAtt', [TransactionExtension::class, 'hasAttachments'], ['is_safe' => ['html']]),
new Twig_SimpleFilter('transactionAmount', [TransactionExtension::class, 'amount'], ['is_safe' => ['html']]),
new Twig_SimpleFilter('transactionArrayAmount', [TransactionExtension::class, 'amountArray'], ['is_safe' => ['html']]),
@@ -58,19 +56,6 @@ class Transaction extends Twig_Extension
return $filters;
}
/**
* @return array
*/
public function getFunctions(): array
{
$functions = [
$this->transactionIdBudgets(),
$this->transactionIdCategories(),
];
return $functions;
}
/**
* Returns the name of the extension.
*
@@ -80,110 +65,4 @@ class Transaction extends Twig_Extension
{
return 'transaction';
}
/**
* @return Twig_SimpleFunction
*/
public function transactionIdBudgets(): Twig_SimpleFunction
{
return new Twig_SimpleFunction(
'transactionIdBudgets', function (int $transactionId): string {
$transaction = TransactionModel::find($transactionId);
return $this->getTransactionBudgets($transaction);
}, ['is_safe' => ['html']]
);
}
/**
* @return Twig_SimpleFunction
*/
public function transactionIdCategories(): Twig_SimpleFunction
{
return new Twig_SimpleFunction(
'transactionIdCategories', function (int $transactionId): string {
$transaction = TransactionModel::find($transactionId);
return $this->getTransactionCategories($transaction);
}, ['is_safe' => ['html']]
);
}
/**
* @param TransactionModel $transaction
*
* @return string
*/
private function getTransactionBudgets(TransactionModel $transaction): string
{
// journal has a budget:
if (isset($transaction->transaction_journal_budget_id)) {
$name = Steam::decrypt(intval($transaction->transaction_journal_budget_encrypted), $transaction->transaction_journal_budget_name);
return sprintf('<a href="%s" title="%s">%s</a>', route('budgets.show', [$transaction->transaction_journal_budget_id]), $name, $name);
}
// transaction has a budget
if (isset($transaction->transaction_budget_id)) {
$name = Steam::decrypt(intval($transaction->transaction_budget_encrypted), $transaction->transaction_budget_name);
return sprintf('<a href="%s" title="%s">%s</a>', route('budgets.show', [$transaction->transaction_budget_id]), $name, $name);
}
// see if the transaction has a budget:
$budgets = $transaction->budgets()->get();
if ($budgets->count() === 0) {
$budgets = $transaction->transactionJournal()->first()->budgets()->get();
}
if ($budgets->count() > 0) {
$str = [];
foreach ($budgets as $budget) {
$str[] = sprintf('<a href="%s" title="%s">%s</a>', route('budgets.show', [$budget->id]), $budget->name, $budget->name);
}
return join(', ', $str);
}
return '';
}
/**
* @param TransactionModel $transaction
*
* @return string
*/
private function getTransactionCategories(TransactionModel $transaction): string
{
// journal has a category:
if (isset($transaction->transaction_journal_category_id)) {
$name = Steam::decrypt(intval($transaction->transaction_journal_category_encrypted), $transaction->transaction_journal_category_name);
return sprintf('<a href="%s" title="%s">%s</a>', route('categories.show', [$transaction->transaction_journal_category_id]), $name, $name);
}
// transaction has a category:
if (isset($transaction->transaction_category_id)) {
$name = Steam::decrypt(intval($transaction->transaction_category_encrypted), $transaction->transaction_category_name);
return sprintf('<a href="%s" title="%s">%s</a>', route('categories.show', [$transaction->transaction_category_id]), $name, $name);
}
// see if the transaction has a category:
$categories = $transaction->categories()->get();
if ($categories->count() === 0) {
$categories = $transaction->transactionJournal()->first()->categories()->get();
}
if ($categories->count() > 0) {
$str = [];
foreach ($categories as $category) {
$str[] = sprintf('<a href="%s" title="%s">%s</a>', route('categories.show', [$category->id]), $category->name, $category->name);
}
return join(', ', $str);
}
return '';
}
}