mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-14 08:11:20 +00:00
New converters for #180 (Category and some other stuff)
This commit is contained in:
@@ -29,7 +29,7 @@ class AssetAccountIban extends BasicConverter implements ConverterInterface
|
|||||||
|
|
||||||
return $account;
|
return $account;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($this->value) > 0) {
|
if (strlen($this->value) > 0) {
|
||||||
// find or create new account:
|
// find or create new account:
|
||||||
$set = $repository->getAccounts(['Default account', 'Asset account']);
|
$set = $repository->getAccounts(['Default account', 'Asset account']);
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
declare(strict_types = 1);
|
declare(strict_types = 1);
|
||||||
namespace FireflyIII\Helpers\Csv\Converter;
|
namespace FireflyIII\Helpers\Csv\Converter;
|
||||||
|
|
||||||
use Auth;
|
|
||||||
use FireflyIII\Models\Bill;
|
use FireflyIII\Models\Bill;
|
||||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||||
|
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
declare(strict_types = 1);
|
declare(strict_types = 1);
|
||||||
namespace FireflyIII\Helpers\Csv\Converter;
|
namespace FireflyIII\Helpers\Csv\Converter;
|
||||||
|
|
||||||
use Auth;
|
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||||
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
declare(strict_types = 1);
|
declare(strict_types = 1);
|
||||||
namespace FireflyIII\Helpers\Csv\Converter;
|
namespace FireflyIII\Helpers\Csv\Converter;
|
||||||
|
|
||||||
use Auth;
|
|
||||||
use FireflyIII\Models\Category;
|
use FireflyIII\Models\Category;
|
||||||
|
use FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CategoryId
|
* Class CategoryId
|
||||||
@@ -18,11 +18,14 @@ class CategoryId extends BasicConverter implements ConverterInterface
|
|||||||
*/
|
*/
|
||||||
public function convert()
|
public function convert()
|
||||||
{
|
{
|
||||||
|
/** @var SingleCategoryRepositoryInterface $repository */
|
||||||
|
$repository = app('FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface');
|
||||||
|
|
||||||
// is mapped? Then it's easy!
|
// is mapped? Then it's easy!
|
||||||
if (isset($this->mapped[$this->index][$this->value])) {
|
if (isset($this->mapped[$this->index][$this->value])) {
|
||||||
$category = Auth::user()->categories()->find($this->mapped[$this->index][$this->value]);
|
$category = $repository->find($this->mapped[$this->index][$this->value]);
|
||||||
} else {
|
} else {
|
||||||
$category = Auth::user()->categories()->find($this->value);
|
$category = $repository->find($this->value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $category;
|
return $category;
|
||||||
|
@@ -4,6 +4,7 @@ namespace FireflyIII\Helpers\Csv\Converter;
|
|||||||
|
|
||||||
use Auth;
|
use Auth;
|
||||||
use FireflyIII\Models\Category;
|
use FireflyIII\Models\Category;
|
||||||
|
use FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CategoryName
|
* Class CategoryName
|
||||||
@@ -18,16 +19,20 @@ class CategoryName extends BasicConverter implements ConverterInterface
|
|||||||
*/
|
*/
|
||||||
public function convert()
|
public function convert()
|
||||||
{
|
{
|
||||||
|
/** @var SingleCategoryRepositoryInterface $repository */
|
||||||
|
$repository = app('FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface');
|
||||||
|
|
||||||
// is mapped? Then it's easy!
|
// is mapped? Then it's easy!
|
||||||
if (isset($this->mapped[$this->index][$this->value])) {
|
if (isset($this->mapped[$this->index][$this->value])) {
|
||||||
$category = Auth::user()->categories()->find($this->mapped[$this->index][$this->value]);
|
$category = $repository->find($this->mapped[$this->index][$this->value]);
|
||||||
} else {
|
} else {
|
||||||
$category = Category::firstOrCreateEncrypted( // See issue #180
|
|
||||||
[
|
$data = [
|
||||||
'name' => $this->value,
|
'name' => $this->value,
|
||||||
'user_id' => Auth::user()->id,
|
'user' => Auth::user()->id,
|
||||||
]
|
];
|
||||||
);
|
|
||||||
|
$category = $repository->store($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $category;
|
return $category;
|
||||||
|
@@ -257,6 +257,7 @@ class ReportHelper implements ReportHelperInterface
|
|||||||
if ($set->count() === 0) {
|
if ($set->count() === 0) {
|
||||||
return $collection;
|
return $collection;
|
||||||
}
|
}
|
||||||
|
/** @var Tag $entry */
|
||||||
foreach ($set as $entry) {
|
foreach ($set as $entry) {
|
||||||
// less than zero? multiply to be above zero.
|
// less than zero? multiply to be above zero.
|
||||||
$amount = $entry->amount;
|
$amount = $entry->amount;
|
||||||
|
@@ -45,5 +45,21 @@ class CategoryServiceProvider extends ServiceProvider
|
|||||||
return app('FireflyIII\Repositories\Category\CategoryRepository', $arguments);
|
return app('FireflyIII\Repositories\Category\CategoryRepository', $arguments);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->app->bind(
|
||||||
|
'FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface',
|
||||||
|
function (Application $app, array $arguments) {
|
||||||
|
if (!isset($arguments[0]) && Auth::check()) {
|
||||||
|
return app('FireflyIII\Repositories\Category\SingleCategoryRepository', [Auth::user()]);
|
||||||
|
} else {
|
||||||
|
if (!isset($arguments[0]) && !Auth::check()) {
|
||||||
|
throw new FireflyException('There is no user present.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return app('FireflyIII\Repositories\Category\SingleCategoryRepository', $arguments);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -82,7 +82,7 @@ class FireflyServiceProvider extends ServiceProvider
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->app->bind('FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface', 'FireflyIII\Repositories\Category\SingleCategoryRepository');
|
|
||||||
$this->app->bind('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface', 'FireflyIII\Repositories\Currency\CurrencyRepository');
|
$this->app->bind('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface', 'FireflyIII\Repositories\Currency\CurrencyRepository');
|
||||||
$this->app->bind('FireflyIII\Support\Search\SearchInterface', 'FireflyIII\Support\Search\Search');
|
$this->app->bind('FireflyIII\Support\Search\SearchInterface', 'FireflyIII\Support\Search\Search');
|
||||||
$this->app->bind('FireflyIII\Repositories\User\UserRepositoryInterface', 'FireflyIII\Repositories\User\UserRepository');
|
$this->app->bind('FireflyIII\Repositories\User\UserRepositoryInterface', 'FireflyIII\Repositories\User\UserRepository');
|
||||||
|
@@ -9,6 +9,7 @@ use FireflyIII\Models\Category;
|
|||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\Repositories\Shared\ComponentRepository;
|
use FireflyIII\Repositories\Shared\ComponentRepository;
|
||||||
|
use FireflyIII\User;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,6 +19,19 @@ use Illuminate\Support\Collection;
|
|||||||
*/
|
*/
|
||||||
class SingleCategoryRepository extends ComponentRepository implements SingleCategoryRepositoryInterface
|
class SingleCategoryRepository extends ComponentRepository implements SingleCategoryRepositoryInterface
|
||||||
{
|
{
|
||||||
|
/** @var User */
|
||||||
|
private $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BillRepository constructor.
|
||||||
|
*
|
||||||
|
* @param User $user
|
||||||
|
*/
|
||||||
|
public function __construct(User $user)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
*
|
*
|
||||||
@@ -87,6 +101,23 @@ class SingleCategoryRepository extends ComponentRepository implements SingleCate
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a category
|
||||||
|
*
|
||||||
|
* @param int $categoryId
|
||||||
|
*
|
||||||
|
* @return Category
|
||||||
|
*/
|
||||||
|
public function find(int $categoryId) : Category
|
||||||
|
{
|
||||||
|
$category = $this->user->categories()->find($categoryId);
|
||||||
|
if (is_null($category)) {
|
||||||
|
$category = new Category;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $category;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
*
|
*
|
||||||
@@ -146,7 +177,6 @@ class SingleCategoryRepository extends ComponentRepository implements SingleCate
|
|||||||
->get(TransactionJournal::QUERYFIELDS);
|
->get(TransactionJournal::QUERYFIELDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
*
|
*
|
||||||
@@ -206,7 +236,7 @@ class SingleCategoryRepository extends ComponentRepository implements SingleCate
|
|||||||
*/
|
*/
|
||||||
public function store(array $data)
|
public function store(array $data)
|
||||||
{
|
{
|
||||||
$newCategory = new Category(
|
$newCategory = Category::firstOrCreateEncrypted(
|
||||||
[
|
[
|
||||||
'user_id' => $data['user'],
|
'user_id' => $data['user'],
|
||||||
'name' => $data['name'],
|
'name' => $data['name'],
|
||||||
@@ -231,6 +261,4 @@ class SingleCategoryRepository extends ComponentRepository implements SingleCate
|
|||||||
|
|
||||||
return $category;
|
return $category;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -14,6 +14,7 @@ use Illuminate\Support\Collection;
|
|||||||
*/
|
*/
|
||||||
interface SingleCategoryRepositoryInterface
|
interface SingleCategoryRepositoryInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
*
|
*
|
||||||
@@ -54,6 +55,14 @@ interface SingleCategoryRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function earnedPerDay(Category $category, Carbon $start, Carbon $end);
|
public function earnedPerDay(Category $category, Carbon $start, Carbon $end);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find a category
|
||||||
|
*
|
||||||
|
* @param int $categoryId
|
||||||
|
*
|
||||||
|
* @return Category
|
||||||
|
*/
|
||||||
|
public function find(int $categoryId) : Category;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
|
Reference in New Issue
Block a user