mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Update code for reconciliation.
This commit is contained in:
@@ -27,7 +27,9 @@ use FireflyIII\Helpers\Collector\JournalCollectorInterface;
|
||||
use FireflyIII\Http\Controllers\Controller;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
|
||||
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Navigation;
|
||||
@@ -68,16 +70,38 @@ class ReconcileController extends Controller
|
||||
*/
|
||||
public function overview(Request $request, Account $account, Carbon $start, Carbon $end)
|
||||
{
|
||||
$startBalance = $request->get('startBalance');
|
||||
$endBalance = $request->get('endBalance');
|
||||
$transactions = $request->get('transactions');
|
||||
$startBalance = $request->get('startBalance');
|
||||
$endBalance = $request->get('endBalance');
|
||||
$transactionIds = $request->get('transactions') ?? [];
|
||||
$clearedIds = $request->get('cleared') ?? [];
|
||||
$amount = '0';
|
||||
$clearedAmount = '0';
|
||||
$route = route('accounts.reconcile.submit', [$account->id, $start->format('Ymd'), $end->format('Ymd')]);
|
||||
// get sum of transaction amounts:
|
||||
/** @var JournalRepositoryInterface $repository */
|
||||
$repository = app(JournalRepositoryInterface::class);
|
||||
$transactions = $repository->getTransactionsById($transactionIds);
|
||||
$cleared = $repository->getTransactionsById($clearedIds);
|
||||
|
||||
/** @var Transaction $transaction */
|
||||
foreach ($transactions as $transaction) {
|
||||
$amount = bcadd($amount, $transaction->amount);
|
||||
}
|
||||
|
||||
/** @var Transaction $transaction */
|
||||
foreach ($cleared as $transaction) {
|
||||
$clearedAmount = bcadd($clearedAmount, $transaction->amount);
|
||||
}
|
||||
|
||||
$return = [
|
||||
'is_zero' => false,
|
||||
'post_uri' => route('accounts.reconcile.submit', [$account->id, $start->format('Ymd'), $end->format('Ymd')]),
|
||||
'post_uri' => $route,
|
||||
'html' => '',
|
||||
];
|
||||
$return['html'] = view('accounts.reconcile.overview', compact('account', 'start', 'end'))->render();
|
||||
$return['html'] = view(
|
||||
'accounts.reconcile.overview',
|
||||
compact('account', 'start', 'end', 'clearedIds', 'transactionIds', 'clearedAmount', 'startBalance', 'endBalance', 'amount', 'route')
|
||||
)->render();
|
||||
|
||||
return Response::json($return);
|
||||
}
|
||||
@@ -175,4 +199,13 @@ class ReconcileController extends Controller
|
||||
|
||||
return Response::json(['html' => $html]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Account $account
|
||||
* @param Carbon $start
|
||||
* @param Carbon $end
|
||||
*/
|
||||
public function submit(Request $request, Account $account, Carbon $start, Carbon $end) {
|
||||
var_dump($request->all());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ class Amount implements ConverterInterface
|
||||
Log::debug(sprintf('No decimal character found. Converted amount from "%s" to "%s".', $oldValue, $value));
|
||||
}
|
||||
|
||||
$number = strval(number_format(round(floatval($value), 12), 12));
|
||||
$number = strval(number_format(round(floatval($value), 12), 12,'',''));
|
||||
return $number;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,6 +177,23 @@ class JournalRepository implements JournalRepositoryInterface
|
||||
return TransactionType::orderBy('type', 'ASC')->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $transactionIds
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getTransactionsById(array $transactionIds): Collection
|
||||
{
|
||||
$set = Transaction::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||
->whereIn('transactions.id', $transactionIds)
|
||||
->where('transaction_journals.user_id', $this->user->id)
|
||||
->whereNull('transaction_journals.deleted_at')
|
||||
->whereNull('transactions.deleted_at')
|
||||
->get( ['transactions.*']);
|
||||
|
||||
return $set;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
*
|
||||
|
||||
@@ -35,6 +35,15 @@ use Illuminate\Support\MessageBag;
|
||||
*/
|
||||
interface JournalRepositoryInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* @param array $transactionIds
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
public function getTransactionsById(array $transactionIds): Collection;
|
||||
|
||||
|
||||
/**
|
||||
* @param TransactionJournal $journal
|
||||
* @param TransactionType $type
|
||||
|
||||
Reference in New Issue
Block a user