mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
A test to see if transfers and transactions and what-not can be related somehow.
This commit is contained in:
parent
6b39beecb4
commit
c8038e0774
@ -157,15 +157,25 @@ class ReportController extends BaseController
|
|||||||
/** @var \FireflyIII\Database\TransactionJournal $journalRepository */
|
/** @var \FireflyIII\Database\TransactionJournal $journalRepository */
|
||||||
$journalRepository = App::make('FireflyIII\Database\TransactionJournal');
|
$journalRepository = App::make('FireflyIII\Database\TransactionJournal');
|
||||||
|
|
||||||
$journals = $journalRepository->getInDateRange($start, $end);
|
$journals = $journalRepository->getInDateRange($start, $end);
|
||||||
$journals = $journals->filter(
|
$withdrawals = $journals->filter(
|
||||||
function (TransactionJournal $journal) {
|
function (TransactionJournal $journal) {
|
||||||
if ($journal->transactionType->type == 'Withdrawal' && count($journal->budgets) == 0) {
|
if ($journal->transactionType->type == 'Withdrawal' && count($journal->budgets) == 0) {
|
||||||
return $journal;
|
return $journal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
$journals->each(
|
|
||||||
|
// filter again for transfers
|
||||||
|
$transfers = $journals->filter(
|
||||||
|
function (TransactionJournal $journal) {
|
||||||
|
if ($journal->transactionType->type == 'Transfer') {
|
||||||
|
return $journal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$withdrawals->each(
|
||||||
function (TransactionJournal $journal) {
|
function (TransactionJournal $journal) {
|
||||||
$collection = new Collection;
|
$collection = new Collection;
|
||||||
/** @var Transaction $transaction */
|
/** @var Transaction $transaction */
|
||||||
@ -178,7 +188,7 @@ class ReportController extends BaseController
|
|||||||
->where('transaction_journals.description', 'LIKE', '%' . e($journal->description) . '%')
|
->where('transaction_journals.description', 'LIKE', '%' . e($journal->description) . '%')
|
||||||
->get(['transactions.*']);
|
->get(['transactions.*']);
|
||||||
/** @var Transaction $ct */
|
/** @var Transaction $ct */
|
||||||
foreach($counters as $ct) {
|
foreach ($counters as $ct) {
|
||||||
$collection->push($ct->transactionjournal);
|
$collection->push($ct->transactionjournal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -187,7 +197,32 @@ class ReportController extends BaseController
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return View::make('reports.unbalanced', compact('start', 'end', 'title', 'subTitle', 'subTitleIcon', 'mainTitleIcon', 'journals'));
|
// same for transfers but the other way around! Yay!
|
||||||
|
$transfers->each(
|
||||||
|
function (TransactionJournal $journal) {
|
||||||
|
$collection = new Collection;
|
||||||
|
/** @var Transaction $transaction */
|
||||||
|
foreach ($journal->transactions as $transaction) {
|
||||||
|
if (floatval($transaction->amount) < 0) {
|
||||||
|
$account = $transaction->account;
|
||||||
|
// TODO this has to be the most lame way of filtering ever.
|
||||||
|
$descr = trim(str_replace('Geld voor','',$journal->description));
|
||||||
|
// find counter transfer:
|
||||||
|
$counters = $account->transactions()->where('amount', floatval($transaction->amount))
|
||||||
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
|
->where('transaction_journals.description', 'LIKE', '%' . $descr . '%')
|
||||||
|
->get(['transactions.*']);
|
||||||
|
/** @var Transaction $ct */
|
||||||
|
foreach ($counters as $ct) {
|
||||||
|
$collection->push($ct->transactionjournal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$journal->counters = $collection;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return View::make('reports.unbalanced', compact('start','transfers', 'end', 'title', 'subTitle', 'subTitleIcon', 'mainTitleIcon', 'withdrawals'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
@extends('layouts.default')
|
@extends('layouts.default')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach($journals as $journal)
|
<div class="col-lg-4 col-md-4 col-sm-6">
|
||||||
|
<h3>Transactions</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
@foreach($withdrawals as $journal)
|
||||||
<div class="col-lg-4 col-md-4 col-sm-6">
|
<div class="col-lg-4 col-md-4 col-sm-6">
|
||||||
<div class="panel
|
<div class="panel
|
||||||
@if($journal->counters->count() > 0)
|
@if($journal->counters->count() > 0)
|
||||||
@ -35,6 +41,35 @@
|
|||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-4 col-md-4 col-sm-6">
|
||||||
|
<h3>Transfers</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
@foreach($transfers as $journal)
|
||||||
|
<div class="col-lg-4 col-md-4 col-sm-6">
|
||||||
|
<div class="panel
|
||||||
|
@if($journal->counters->count() > 0)
|
||||||
|
panel-default
|
||||||
|
@else
|
||||||
|
panel-danger
|
||||||
|
@endif
|
||||||
|
">
|
||||||
|
<div class="panel-heading">
|
||||||
|
{{{$journal->description}}}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
Bla bla?
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
Loading…
Reference in New Issue
Block a user