mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-11-04 05:15:39 +00:00 
			
		
		
		
	Update piggy bank repository / provider.
This commit is contained in:
		@@ -84,7 +84,6 @@ class FireflyServiceProvider extends ServiceProvider
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $this->app->bind('FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface', 'FireflyIII\Repositories\Category\SingleCategoryRepository');
 | 
			
		||||
        $this->app->bind('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface', 'FireflyIII\Repositories\PiggyBank\PiggyBankRepository');
 | 
			
		||||
        $this->app->bind('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface', 'FireflyIII\Repositories\Currency\CurrencyRepository');
 | 
			
		||||
        $this->app->bind('FireflyIII\Repositories\Tag\TagRepositoryInterface', 'FireflyIII\Repositories\Tag\TagRepository');
 | 
			
		||||
        $this->app->bind('FireflyIII\Repositories\Rule\RuleRepositoryInterface', 'FireflyIII\Repositories\Rule\RuleRepository');
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								app/Providers/PiggyBankServiceProvider.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								app/Providers/PiggyBankServiceProvider.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace FireflyIII\Providers;
 | 
			
		||||
 | 
			
		||||
use Auth;
 | 
			
		||||
use FireflyIII\Exceptions\FireflyException;
 | 
			
		||||
use Illuminate\Foundation\Application;
 | 
			
		||||
use Illuminate\Support\ServiceProvider;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Class PiggyBankServiceProvider
 | 
			
		||||
 *
 | 
			
		||||
 * @package FireflyIII\Providers
 | 
			
		||||
 */
 | 
			
		||||
class PiggyBankServiceProvider extends ServiceProvider
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Bootstrap the application services.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function boot()
 | 
			
		||||
    {
 | 
			
		||||
        //
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Register the application services.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function register()
 | 
			
		||||
    {
 | 
			
		||||
        $this->app->bind(
 | 
			
		||||
            'FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface',
 | 
			
		||||
            function (Application $app, array $arguments) {
 | 
			
		||||
                if (!isset($arguments[0]) && Auth::check()) {
 | 
			
		||||
                    return app('FireflyIII\Repositories\PiggyBank\PiggyBankRepository', [Auth::user()]);
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (!isset($arguments[0]) && !Auth::check()) {
 | 
			
		||||
                        throw new FireflyException('There is no user present.');
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                return app('FireflyIII\Repositories\PiggyBank\PiggyBankRepository', $arguments);
 | 
			
		||||
            }
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,12 +3,13 @@ declare(strict_types = 1);
 | 
			
		||||
 | 
			
		||||
namespace FireflyIII\Repositories\PiggyBank;
 | 
			
		||||
 | 
			
		||||
use Auth;
 | 
			
		||||
use Carbon\Carbon;
 | 
			
		||||
use DB;
 | 
			
		||||
use FireflyIII\Models\PiggyBank;
 | 
			
		||||
use FireflyIII\Models\PiggyBankEvent;
 | 
			
		||||
use FireflyIII\User;
 | 
			
		||||
use Illuminate\Support\Collection;
 | 
			
		||||
use Log;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Class PiggyBankRepository
 | 
			
		||||
@@ -18,6 +19,20 @@ use Illuminate\Support\Collection;
 | 
			
		||||
class PiggyBankRepository implements PiggyBankRepositoryInterface
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    /** @var User */
 | 
			
		||||
    private $user;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * BillRepository constructor.
 | 
			
		||||
     *
 | 
			
		||||
     * @param User $user
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct(User $user)
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('Constructed piggy bank repository for user #' . $user->id . ' (' . $user->email . ')');
 | 
			
		||||
        $this->user = $user;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param PiggyBank $piggyBank
 | 
			
		||||
     * @param string    $amount
 | 
			
		||||
@@ -66,7 +81,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
 | 
			
		||||
     */
 | 
			
		||||
    public function getMaxOrder()
 | 
			
		||||
    {
 | 
			
		||||
        return intval(Auth::user()->piggyBanks()->max('order'));
 | 
			
		||||
        return intval($this->user->piggyBanks()->max('order'));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -75,7 +90,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
 | 
			
		||||
    public function getPiggyBanks()
 | 
			
		||||
    {
 | 
			
		||||
        /** @var Collection $set */
 | 
			
		||||
        $set = Auth::user()->piggyBanks()->orderBy('order', 'ASC')->get();
 | 
			
		||||
        $set = $this->user->piggyBanks()->orderBy('order', 'ASC')->get();
 | 
			
		||||
 | 
			
		||||
        return $set;
 | 
			
		||||
    }
 | 
			
		||||
@@ -90,7 +105,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
 | 
			
		||||
        // split query to make it work in sqlite:
 | 
			
		||||
        $set = PiggyBank::
 | 
			
		||||
        leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.id')
 | 
			
		||||
                        ->where('accounts.user_id', Auth::user()->id)->get(['piggy_banks.*']);
 | 
			
		||||
                        ->where('accounts.user_id', $this->user->id)->get(['piggy_banks.*']);
 | 
			
		||||
        foreach ($set as $e) {
 | 
			
		||||
            $e->order = 0;
 | 
			
		||||
            $e->save();
 | 
			
		||||
@@ -110,7 +125,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
 | 
			
		||||
     */
 | 
			
		||||
    public function setOrder(int $piggyBankId, int $order)
 | 
			
		||||
    {
 | 
			
		||||
        $piggyBank = PiggyBank::leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', Auth::user()->id)
 | 
			
		||||
        $piggyBank = PiggyBank::leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', $this->user->id)
 | 
			
		||||
                              ->where('piggy_banks.id', $piggyBankId)->first(['piggy_banks.*']);
 | 
			
		||||
        if ($piggyBank) {
 | 
			
		||||
            $piggyBank->order = $order;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user