Various code cleanup.

This commit is contained in:
James Cole 2018-03-02 16:31:02 +01:00
parent 91909a70d7
commit 139c2284b8
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
11 changed files with 42 additions and 51 deletions

View File

@ -228,7 +228,6 @@ class TransactionController extends Controller
/** @var JournalUpdateService $service */ /** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class); $service = app(JournalUpdateService::class);
$service->setUser(auth()->user());
$journal = $service->update($transaction->transactionJournal, $data); $journal = $service->update($transaction->transactionJournal, $data);
$manager = new Manager(); $manager = new Manager();

View File

@ -26,6 +26,7 @@ use Carbon\Carbon;
use Crypt; use Crypt;
use FireflyIII\Support\CacheProperties; use FireflyIII\Support\CacheProperties;
use FireflyIII\Support\Models\TransactionJournalTrait; use FireflyIII\Support\Models\TransactionJournalTrait;
use FireflyIII\User;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\BelongsToMany;
@ -38,6 +39,7 @@ use Watson\Validating\ValidatingTrait;
/** /**
* Class TransactionJournal. * Class TransactionJournal.
* @property User $user
*/ */
class TransactionJournal extends Model class TransactionJournal extends Model
{ {

View File

@ -23,8 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\Journal; namespace FireflyIII\Repositories\Journal;
use Carbon\Carbon; use Carbon\Carbon;
use Exception;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Factory\TransactionJournalFactory; use FireflyIII\Factory\TransactionJournalFactory;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType; use FireflyIII\Models\AccountType;
@ -585,13 +583,7 @@ class JournalRepository implements JournalRepositoryInterface
{ {
/** @var JournalUpdateService $service */ /** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class); $service = app(JournalUpdateService::class);
$service->setUser($this->user); $journal = $service->update($journal, $data);
try {
$journal = $service->update($journal, $data);
} catch (FireflyException | Exception $e) {
throw new FireflyException($e->getMessage());
}
return $journal; return $journal;
} }
@ -608,7 +600,6 @@ class JournalRepository implements JournalRepositoryInterface
{ {
/** @var JournalUpdateService $service */ /** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class); $service = app(JournalUpdateService::class);
$service->setUser($this->user);
return $service->updateBudget($journal, $budgetId); return $service->updateBudget($journal, $budgetId);
} }
@ -625,7 +616,6 @@ class JournalRepository implements JournalRepositoryInterface
{ {
/** @var JournalUpdateService $service */ /** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class); $service = app(JournalUpdateService::class);
$service->setUser($this->user);
return $service->updateCategory($journal, $category); return $service->updateCategory($journal, $category);
} }
@ -642,7 +632,6 @@ class JournalRepository implements JournalRepositoryInterface
{ {
/** @var JournalUpdateService $service */ /** @var JournalUpdateService $service */
$service = app(JournalUpdateService::class); $service = app(JournalUpdateService::class);
$service->setUser($this->user);
$service->connectTags($journal, $tags); $service->connectTags($journal, $tags);
return $journal; return $journal;

View File

@ -24,8 +24,10 @@ declare(strict_types=1);
namespace FireflyIII\Services\Internal\Destroy; namespace FireflyIII\Services\Internal\Destroy;
use DB; use DB;
use Exception;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use Log; use Log;
/** /**
@ -49,17 +51,19 @@ class AccountDestroyService
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($account->transactions()->get() as $transaction) { foreach ($account->transactions()->get() as $transaction) {
Log::debug('Now at transaction #' . $transaction->id); Log::debug('Now at transaction #' . $transaction->id);
/** @var TransactionJournal $journal */
$journal = $transaction->transactionJournal()->first(); $journal = $transaction->transactionJournal()->first();
if (null !== $journal) { if (null !== $journal) {
Log::debug('Call for deletion of journal #' . $journal->id); Log::debug('Call for deletion of journal #' . $journal->id);
$journal->delete(); /** @var JournalDestroyService $service */
$service = app(JournalDestroyService::class);
$service->destroy($journal);
} }
} }
try { try {
$account->delete(); $account->delete();
} catch (\Exception $e) { } catch (Exception $e) { // @codeCoverageIgnore
// don't care Log::error(sprintf('Could not delete account: %s',$e->getMessage())); // @codeCoverageIgnore
Log::error($e->getMessage());
} }
return true; return true;

View File

@ -25,8 +25,9 @@ namespace FireflyIII\Services\Internal\Destroy;
use Exception; use Exception;
use FireflyIII\Models\Bill; use FireflyIII\Models\Bill;
use Log;
/** /**
* @codeCoverageIgnore
* Class BillDestroyService * Class BillDestroyService
*/ */
class BillDestroyService class BillDestroyService
@ -38,8 +39,8 @@ class BillDestroyService
{ {
try { try {
$bill->delete(); $bill->delete();
} catch (Exception $e) { } catch (Exception $e) { // @codeCoverageIgnore
// don't care. Log::error(sprintf('Could not delete bill: %s',$e->getMessage())); // @codeCoverageIgnore
} }
} }

View File

@ -30,6 +30,7 @@ use FireflyIII\Models\TransactionJournalMeta;
use Log; use Log;
/** /**
* @codeCoverageIgnore
* Class JournalDestroyService * Class JournalDestroyService
*/ */
class JournalDestroyService class JournalDestroyService
@ -55,7 +56,7 @@ class JournalDestroyService
} }
$journal->delete(); $journal->delete();
} catch (Exception $e) { } catch (Exception $e) {
// don't care Log::error(sprintf('Could not delete bill: %s',$e->getMessage())); // @codeCoverageIgnore
} }
return; return;

View File

@ -35,6 +35,7 @@ use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
use FireflyIII\User; use FireflyIII\User;
use Log; use Log;
use Validator; use Validator;
@ -66,11 +67,9 @@ trait AccountServiceTrait
// opening balance data? update it! // opening balance data? update it!
if (null !== $openingBalance) { if (null !== $openingBalance) {
Log::debug('Opening balance journal found, delete journal.'); Log::debug('Opening balance journal found, delete journal.');
try { /** @var JournalDestroyService $service */
$openingBalance->delete(); $service = app(JournalDestroyService::class);
} catch (Exception $e) { $service->destroy($openingBalance);
Log::error(sprintf('Could not delete opening balance: %s', $e->getMessage()));
}
return true; return true;
} }
@ -277,11 +276,9 @@ trait AccountServiceTrait
Log::debug(sprintf('Submitted amount for opening balance to update is "%s"', $amount)); Log::debug(sprintf('Submitted amount for opening balance to update is "%s"', $amount));
if (0 === bccomp($amount, '0')) { if (0 === bccomp($amount, '0')) {
Log::notice(sprintf('Amount "%s" is zero, delete opening balance.', $amount)); Log::notice(sprintf('Amount "%s" is zero, delete opening balance.', $amount));
try { /** @var JournalDestroyService $service */
$journal->delete(); $service = app(JournalDestroyService::class);
} catch (Exception $e) { $service->destroy($journal);
Log::error(sprintf('Could not delete opening balance: %s', $e->getMessage()));
}
return true; return true;

View File

@ -47,7 +47,7 @@ trait JournalServiceTrait
{ {
/** @var BillFactory $factory */ /** @var BillFactory $factory */
$factory = app(BillFactory::class); $factory = app(BillFactory::class);
$factory->setUser($this->user); $factory->setUser($journal->user);
$bill = $factory->find($data['bill_id'], $data['bill_name']); $bill = $factory->find($data['bill_id'], $data['bill_name']);
if (!is_null($bill)) { if (!is_null($bill)) {

View File

@ -48,8 +48,6 @@ class AccountUpdateService
* @param array $data * @param array $data
* *
* @return Account * @return Account
* @throws FireflyException
* @throws Exception
*/ */
public function update(Account $account, array $data): Account public function update(Account $account, array $data): Account
{ {

View File

@ -27,6 +27,7 @@ use FireflyIII\Models\Bill;
use FireflyIII\Services\Internal\Support\BillServiceTrait; use FireflyIII\Services\Internal\Support\BillServiceTrait;
/** /**
* @codeCoverageIgnore
* Class BillUpdateService * Class BillUpdateService
*/ */
class BillUpdateService class BillUpdateService
@ -36,6 +37,8 @@ class BillUpdateService
/** /**
* @param Bill $bill * @param Bill $bill
* @param array $data * @param array $data
*
* @return Bill
*/ */
public function update(Bill $bill, array $data): Bill public function update(Bill $bill, array $data): Bill
{ {

View File

@ -27,8 +27,8 @@ use FireflyIII\Factory\TransactionFactory;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Services\Internal\Support\JournalServiceTrait; use FireflyIII\Services\Internal\Support\JournalServiceTrait;
use FireflyIII\User;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Log;
/** /**
* Class to centralise code that updates a journal given the input by system. * Class to centralise code that updates a journal given the input by system.
@ -38,24 +38,12 @@ use Illuminate\Support\Collection;
class JournalUpdateService class JournalUpdateService
{ {
use JournalServiceTrait; use JournalServiceTrait;
/** @var User */
private $user;
/**
* @param User $user
*/
public function setUser(User $user): void
{
$this->user = $user;
}
/** /**
* @param TransactionJournal $journal * @param TransactionJournal $journal
* @param array $data * @param array $data
* *
* @return TransactionJournal * @return TransactionJournal
* @throws \FireflyIII\Exceptions\FireflyException
* @throws \Exception
*/ */
public function update(TransactionJournal $journal, array $data): TransactionJournal public function update(TransactionJournal $journal, array $data): TransactionJournal
{ {
@ -67,12 +55,14 @@ class JournalUpdateService
// update transactions: // update transactions:
/** @var TransactionUpdateService $service */ /** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class); $service = app(TransactionUpdateService::class);
$service->setUser($this->user); $service->setUser($journal->user);
// create transactions // create transactions
/** @var TransactionFactory $factory */ /** @var TransactionFactory $factory */
$factory = app(TransactionFactory::class); $factory = app(TransactionFactory::class);
$factory->setUser($this->user); $factory->setUser($journal->user);
Log::debug(sprintf('Found %d rows in array (should result in %d transactions', count($data['transactions']), count($data['transactions']) * 2));
/** /**
* @var int $identifier * @var int $identifier
@ -82,25 +72,32 @@ class JournalUpdateService
// exists transaction(s) with this identifier? update! // exists transaction(s) with this identifier? update!
/** @var Collection $existing */ /** @var Collection $existing */
$existing = $journal->transactions()->where('identifier', $identifier)->get(); $existing = $journal->transactions()->where('identifier', $identifier)->get();
Log::debug(sprintf('Found %d transactions with identifier %d', $existing->count(), $identifier));
if ($existing->count() > 0) { if ($existing->count() > 0) {
$existing->each( $existing->each(
function (Transaction $transaction) use ($service, $trData) { function (Transaction $transaction) use ($service, $trData) {
Log::debug(sprintf('Update transaction #%d (identifier %d)', $transaction->id, $trData['identifier']));
$service->update($transaction, $trData); $service->update($transaction, $trData);
} }
); );
continue; continue;
} }
Log::debug('Found none, so create a pair.');
// otherwise, create! // otherwise, create!
$factory->createPair($journal, $trData); $factory->createPair($journal, $trData);
} }
// could be that journal has more transactions than submitted (remove split) // could be that journal has more transactions than submitted (remove split)
$transactions = $journal->transactions()->where('amount', '>', 0)->get(); $transactions = $journal->transactions()->where('amount', '>', 0)->get();
Log::debug(sprintf('Journal #%d has %d transactions', $journal->id, $transactions->count()));
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($transactions as $transaction) { foreach ($transactions as $transaction) {
Log::debug(sprintf('Now at transaction %d with identifier %d', $transaction->id, $transaction->identifier));
if (!isset($data['transactions'][$transaction->identifier])) { if (!isset($data['transactions'][$transaction->identifier])) {
Log::debug('No such entry in array, delete this set of transactions.');
$journal->transactions()->where('identifier', $transaction->identifier)->delete(); $journal->transactions()->where('identifier', $transaction->identifier)->delete();
} }
} }
Log::debug(sprintf('New count is %d, transactions array held %d items', $journal->transactions()->count(), count($data['transactions'])));
// connect bill: // connect bill:
$this->connectBill($journal, $data); $this->connectBill($journal, $data);
@ -137,7 +134,7 @@ class JournalUpdateService
{ {
/** @var TransactionUpdateService $service */ /** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class); $service = app(TransactionUpdateService::class);
$service->setUser($this->user); $service->setUser($journal->user);
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) { foreach ($journal->transactions as $transaction) {
@ -159,7 +156,7 @@ class JournalUpdateService
{ {
/** @var TransactionUpdateService $service */ /** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class); $service = app(TransactionUpdateService::class);
$service->setUser($this->user); $service->setUser($journal->user);
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) { foreach ($journal->transactions as $transaction) {