Merge branch 'release/3.3.5'

This commit is contained in:
James Cole 2015-03-29 08:43:54 +02:00
commit d5c39d54d8
98 changed files with 204 additions and 250 deletions

View File

@ -1,3 +1,3 @@
src_dir: .
coverage_clover: storage/coverage/clover.xml
json_path: storage/coverage/coveralls-upload.json
json_path: storage/coverage/coveralls-upload.json

4
.gitignore vendored
View File

@ -3,7 +3,6 @@
composer.phar
Thumbs.db
.idea/
.DS_Store
tests/_output/*
_ide_helper.php
/build/logs/clover.xml
@ -27,4 +26,5 @@ db.sqlite-journal
tests/_output/*
.env
clover.xml
node_modules/
node_modules/
addNewLines.php

View File

@ -1,4 +1,4 @@
Firefly III (v3.3.4)
Firefly III (v3.3.5)
===========
[![Build Status](https://travis-ci.org/JC5/firefly-iii.svg?branch=develop)](https://travis-ci.org/JC5/firefly-iii)

View File

@ -1,16 +1,18 @@
<?php namespace FireflyIII\Handlers\Events;
use FireflyIII\Events\JournalDeleted;
use Illuminate\Contracts\Queue\ShouldBeQueued;
use Illuminate\Queue\InteractsWithQueue;
/**
* Class JournalDeletedHandler
*
* @package FireflyIII\Handlers\Events
*/
class JournalDeletedHandler
{
/**
* Create the event handler.
*
* @return void
*/
public function __construct()
{

View File

@ -3,8 +3,12 @@
use FireflyIII\Events\JournalSaved;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
/**
* Class UpdateJournalConnection
*
* @package FireflyIII\Handlers\Events
*/
class UpdateJournalConnection
{

View File

@ -95,7 +95,6 @@ class ReminderHelper implements ReminderHelperInterface
if (!is_null($piggyBank->targetdate)) {
// count back until now.
// echo 'Count back!<br>';
$start = $piggyBank->targetdate;
$end = $piggyBank->startdate;
@ -143,4 +142,4 @@ class ReminderHelper implements ReminderHelperInterface
return 'Add ' . Amount::format($reminder->metadata->perReminder) . ' to fill this piggy bank on ' . $piggyBank->targetdate->format('jS F Y');
}
}
}

View File

@ -48,4 +48,4 @@ interface ReminderHelperInterface {
* @return Reminder
*/
public function createReminder(PiggyBank $piggyBank, Carbon $start, Carbon $end);
}
}

View File

@ -168,4 +168,4 @@ class ReportHelper implements ReportHelperInterface
return $report;
}
}
}

View File

@ -55,4 +55,4 @@ interface ReportHelperInterface
* @return array
*/
public function yearBalanceReport(Carbon $date, $showSharedReports = false);
}
}

View File

@ -143,7 +143,7 @@ class ReportQuery implements ReportQueryInterface
)
->orderBy('accounts.name', 'ASC')
->where(
function (Builder $query) use ($showSharedReports) {
function (Builder $query) {
$query->where('account_meta.data', '!=', '"sharedAsset"');
$query->orWhereNull('account_meta.data');
@ -272,15 +272,15 @@ class ReportQuery implements ReportQueryInterface
// only get deposits not to a shared account
// and transfers to a shared account.
$query->where(
function ($query) {
function (Builder $query) {
$query->where(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Deposit');
$q->where('acm_to.data', '!=', '"sharedAsset"');
}
);
$query->orWhere(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Transfer');
$q->where('acm_from.data', '=', '"sharedAsset"');
}
@ -427,15 +427,15 @@ class ReportQuery implements ReportQueryInterface
// get all withdrawals not from a shared accounts
// and all transfers to a shared account
$query->where(
function ($query) {
function (Builder $query) {
$query->where(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Withdrawal');
$q->where('acm_from.data', '!=', '"sharedAsset"');
}
);
$query->orWhere(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Transfer');
$q->where('acm_to.data', '=', '"sharedAsset"');
}
@ -495,15 +495,15 @@ class ReportQuery implements ReportQueryInterface
// show queries where transfer type is deposit, and its not to a shared account
// or where its a transfer and its from a shared account (both count as incomes)
$query->where(
function ($query) {
function (Builder $query) {
$query->where(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Deposit');
$q->where('acm_to.data', '!=', '"sharedAsset"');
}
);
$query->orWhere(
function ($q) {
function (Builder $q) {
$q->where('transaction_types.type', 'Transfer');
$q->where('acm_from.data', '=', '"sharedAsset"');
}
@ -604,4 +604,4 @@ class ReportQuery implements ReportQueryInterface
);
}
}
}

View File

@ -163,4 +163,4 @@ interface ReportQueryInterface
* @return Collection
*/
public function sharedExpensesByCategory(Carbon $start, Carbon $end);
}
}

View File

@ -7,6 +7,7 @@ use FireflyIII\Http\Requests;
use FireflyIII\Http\Requests\AccountFormRequest;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Pagination\LengthAwarePaginator;
use Input;
use Redirect;
@ -124,7 +125,7 @@ class AccountController extends Controller
// move to repository:
$set = Auth::user()->accounts()->with(
['accountmeta' => function ($query) {
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
)->accountTypeIn($types)->take($size)->offset($offset)->orderBy('accounts.name', 'ASC')->get(['accounts.*']);

View File

@ -5,6 +5,7 @@ use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\Registrar;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Mail;
use Session;
@ -73,7 +74,7 @@ class AuthController extends Controller
// send email.
Mail::send(
'emails.registered', [], function ($message) use ($email) {
'emails.registered', [], function (Message $message) use ($email) {
$message->to($email, $email)->subject('Welcome to Firefly III!');
}
);

View File

@ -157,8 +157,6 @@ class BillController extends Controller
public function store(BillFormRequest $request, BillRepositoryInterface $repository)
{
var_dump($request->all());
$billData = [
'name' => $request->get('name'),
'match' => $request->get('match'),

View File

@ -170,6 +170,10 @@ class BudgetController extends Controller
Session::flash('success', 'New budget "' . $budget->name . '" stored!');
if (intval(Input::get('create_another')) === 1) {
return Redirect::route('budgets.create')->withInput();
}
return Redirect::route('budgets.index');
}

View File

@ -6,7 +6,6 @@ use Carbon\Carbon;
use DB;
use Exception;
use FireflyIII\Helpers\Report\ReportQueryInterface;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Account;
use FireflyIII\Models\Bill;
use FireflyIII\Models\Budget;

View File

@ -2,7 +2,6 @@
use Cache;
use ErrorException;
use FireflyIII\Http\Requests;
use League\CommonMark\CommonMarkConverter;
use Response;
use Route;
@ -33,7 +32,7 @@ class HelpController extends Controller
return Response::json($content);
}
if ($this->_inCache($route)) {
if ($this->inCache($route)) {
$content = [
'text' => Cache::get('help.' . $route . '.text'),
'title' => Cache::get('help.' . $route . '.title'),
@ -41,7 +40,7 @@ class HelpController extends Controller
return Response::json($content);
}
$content = $this->_getFromGithub($route);
$content = $this->getFromGithub($route);
Cache::put('help.' . $route . '.text', $content['text'], 10080); // a week.
@ -56,7 +55,7 @@ class HelpController extends Controller
*
* @return bool
*/
protected function _inCache($route)
protected function inCache($route)
{
return Cache::has('help.' . $route . '.title') && Cache::has('help.' . $route . '.text');
}
@ -66,7 +65,7 @@ class HelpController extends Controller
*
* @return array
*/
protected function _getFromGithub($route)
protected function getFromGithub($route)
{
$uri = 'https://raw.githubusercontent.com/JC5/firefly-iii-help/master/' . e($route) . '.md';
$content = [

View File

@ -3,15 +3,14 @@
use Amount;
use Auth;
use DB;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Bill;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use Input;
use Preferences;
use Response;
use Session;
use Config;
use FireflyIII\Models\TransactionType;
/**
* Class JsonController
*
@ -91,7 +90,6 @@ class JsonController extends Controller
$count = $bill->transactionjournals()->before($range['end'])->after($range['start'])->count();
if ($count != 0) {
$journal = $bill->transactionjournals()->with('transactions')->before($range['end'])->after($range['start'])->first();
$paid['items'][] = $journal->description;
$currentAmount = 0;
foreach ($journal->transactions as $t) {
if (floatval($t->amount) > 0) {
@ -182,16 +180,17 @@ class JsonController extends Controller
public function transactionJournals($what)
{
$descriptions = [];
$dbType = TransactionType::whereType($what)->first();
$journals = Auth::user()->transactionjournals()->where('transaction_type_id', $dbType->id)
->orderBy('id','DESC')->take(50)
->get();
foreach($journals as $j) {
$descriptions[] = $j->description;
}
$dbType = TransactionType::whereType($what)->first();
$journals = Auth::user()->transactionjournals()->where('transaction_type_id', $dbType->id)
->orderBy('id', 'DESC')->take(50)
->get();
foreach ($journals as $j) {
$descriptions[] = $j->description;
}
$descriptions = array_unique($descriptions);
sort($descriptions);
return Response::json($descriptions);

View File

@ -7,7 +7,6 @@ use Config;
use ExpandedForm;
use FireflyIII\Http\Requests;
use FireflyIII\Http\Requests\PiggyBankFormRequest;
use FireflyIII\Models\Account;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;

View File

@ -1,7 +1,6 @@
<?php namespace FireflyIII\Http\Controllers;
use Auth;
use FireflyIII\Http\Requests;
use Input;
use Preferences;
use Redirect;

View File

@ -45,7 +45,7 @@ class ProfileController extends Controller
return Redirect::route('change-password');
}
$result = $this->_validatePassword($request->get('current_password'), $request->get('new_password'), $request->get('new_password_confirmation'));
$result = $this->validatePassword($request->get('current_password'), $request->get('new_password'), $request->get('new_password_confirmation'));
if (!($result === true)) {
Session::flash('error', $result);
@ -70,7 +70,7 @@ class ProfileController extends Controller
*
* @return string|bool
*/
protected function _validatePassword($old, $new1, $new2)
protected function validatePassword($old, $new1, $new2)
{
if (strlen($new1) == 0 || strlen($new2) == 0) {
return 'Do fill in a password!';

View File

@ -1,7 +1,6 @@
<?php namespace FireflyIII\Http\Controllers;
use Auth;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;

View File

@ -3,7 +3,6 @@
use Auth;
use Carbon\Carbon;
use FireflyIII\Helpers\Reminders\ReminderHelperInterface;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Reminder;
use Redirect;
use Session;
@ -83,7 +82,7 @@ class ReminderController extends Controller
// inactive reminders
$inactive = $reminders->filter(
function (Reminder $reminder) use ($today) {
function (Reminder $reminder) {
if ($reminder->active === false) {
return $reminder;
}
@ -92,7 +91,7 @@ class ReminderController extends Controller
// dismissed reminders
$dismissed = $reminders->filter(
function (Reminder $reminder) use ($today) {
function (Reminder $reminder) {
if ($reminder->notnow === true) {
return $reminder;
}

View File

@ -5,7 +5,6 @@ use Carbon\Carbon;
use Exception;
use FireflyIII\Helpers\Report\ReportHelperInterface;
use FireflyIII\Helpers\Report\ReportQueryInterface;
use FireflyIII\Http\Requests;
use FireflyIII\Models\Account;
use FireflyIII\Models\TransactionJournal;
use Illuminate\Database\Query\JoinClause;
@ -382,8 +381,6 @@ class ReportController extends Controller
$groupedIncomes = $query->journalsByRevenueAccount($date, $end, $showSharedReports);
$groupedExpenses = $query->journalsByExpenseAccount($date, $end, $showSharedReports);
//$groupedExpenses = $helper-> expensesGroupedByAccount($date, $end, 15);
return view(
'reports.year', compact('date', 'groupedIncomes', 'groupedExpenses', 'year', 'balances', 'title', 'subTitle', 'subTitleIcon', 'mainTitleIcon')
);

View File

@ -1,6 +1,5 @@
<?php namespace FireflyIII\Http\Controllers;
use FireflyIII\Http\Requests;
use FireflyIII\Support\Search\SearchInterface;
use Input;

View File

@ -2,6 +2,7 @@
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;
/**
* Class Authenticate
@ -37,7 +38,7 @@ class Authenticate
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {

View File

@ -7,9 +7,9 @@ use Carbon\Carbon;
use Closure;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankRepetition;
use FireflyIII\Models\Reminder;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Navigation;
use Session;
@ -48,7 +48,7 @@ class PiggyBanks
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
if ($this->auth->check() && !$request->isXmlHttpRequest()) {
// get piggy banks without a repetition:
@ -91,7 +91,6 @@ class PiggyBanks
$start = clone $piggyBank->startdate;
$end = clone $piggyBank->targetdate;
$max = clone $piggyBank->targetdate;
$index = 0;
// first loop: start date to target date.
// then, continue looping until end is > today
@ -127,7 +126,6 @@ class PiggyBanks
$repetition->targetdate = is_null($piggyBank->targetdate) ? null : $piggyBank->targetdate;
$repetition->currentamount = 0;
// it might exist, catch:
//$repetition->save();
// then, loop from original target up to now.
}
@ -138,4 +136,4 @@ class PiggyBanks
return $next($request);
}
}
}

View File

@ -6,6 +6,7 @@ namespace FireflyIII\Http\Middleware;
use Carbon\Carbon;
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;
use Navigation;
use Preferences;
use Session;
@ -44,7 +45,7 @@ class Range
*
* @return mixed
*/
public function handle($request, Closure $theNext)
public function handle(Request $request, Closure $theNext)
{
if ($this->auth->check()) {
@ -84,4 +85,4 @@ class Range
}
}
}

View File

@ -3,6 +3,7 @@
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
/**
* Class RedirectIfAuthenticated
@ -38,7 +39,7 @@ class RedirectIfAuthenticated
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
if ($this->auth->check()) {
return new RedirectResponse(url('/'));

View File

@ -8,6 +8,7 @@ use Closure;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\Reminder;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;
use View;
/**
@ -43,7 +44,7 @@ class Reminders
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
if ($this->auth->check() && !$request->isXmlHttpRequest()) {
// do reminders stuff.
@ -87,4 +88,4 @@ class Reminders
return $next($request);
}
}
}

View File

@ -4,15 +4,15 @@ namespace FireflyIII\Http\Middleware;
use Closure;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Http\Request;
use Log;
/**
* Class ReplaceTestVars
*
* @package App\Http\Middleware
* @package FireflyIII\Http\Middleware
*/
class ReplaceTestVars implements Middleware
class ReplaceTestVars
{
/**
* The application implementation.
@ -40,7 +40,7 @@ class ReplaceTestVars implements Middleware
*
* @return mixed
*/
public function handle($request, Closure $next)
public function handle(Request $request, Closure $next)
{
if ('testing' === $this->app->environment() && $request->has('_token')) {
$input = $request->all();
@ -53,4 +53,4 @@ class ReplaceTestVars implements Middleware
return $next($request);
}
}
}

View File

@ -46,4 +46,4 @@ class BillFormRequest extends Request
return $rules;
}
}
}

View File

@ -37,4 +37,4 @@ class BudgetFormRequest extends Request
'name' => $nameRule,
];
}
}
}

View File

@ -37,4 +37,4 @@ class CategoryFormRequest extends Request
'name' => $nameRule,
];
}
}
}

View File

@ -42,4 +42,4 @@ class CurrencyFormRequest extends Request
return $rules;
}
}
}

View File

@ -3,9 +3,8 @@
namespace FireflyIII\Http\Requests;
use Auth;
use FireflyIII\Models\Account;
use Input;
use Exception;
/**
* Class JournalFormRequest
*
@ -24,6 +23,7 @@ class JournalFormRequest extends Request
/**
* @return array
* @throws Exception
*/
public function rules()
{
@ -62,7 +62,7 @@ class JournalFormRequest extends Request
$rules['category'] = 'between:1,255';
break;
default:
die('Cannot handle ' . $what);
throw new Exception('Cannot handle ' . $what);
break;
}
@ -70,4 +70,4 @@ class JournalFormRequest extends Request
}
}
}

View File

@ -4,7 +4,6 @@ namespace FireflyIII\Http\Requests;
use Auth;
use Carbon\Carbon;
use FireflyIII\Models\Account;
use Input;
use Navigation;
@ -66,4 +65,4 @@ class PiggyBankFormRequest extends Request
return $rules;
}
}
}

View File

@ -3,7 +3,6 @@
namespace FireflyIII\Http\Requests;
use Auth;
use FireflyIII\Models\Account;
/**
* Class ProfileFormRequest
@ -32,4 +31,4 @@ class ProfileFormRequest extends Request
'new_password_confirmation' => 'required',
];
}
}
}

View File

@ -45,7 +45,6 @@ class PiggyBank extends Model
return $rep;
} else {
Log::error('Tried to work with a piggy bank with a repeats=1 value! (id is '.$this->id.')');
//App::abort(500);
}

View File

@ -1,8 +1,9 @@
<?php namespace FireflyIII\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Eloquent\Model;
/**
* Class PiggyBankRepetition
*
@ -27,27 +28,6 @@ class PiggyBankRepetition extends Model
return $this->belongsTo('FireflyIII\Models\PiggyBank');
}
/**
* @param EloquentBuilder $query
* @param Carbon $date
*
* @return mixed
*/
public function scopeRelevantOnDate(EloquentBuilder $query, Carbon $date)
{
return $query->where(
function($q) use ($date) {
$q->where('startdate', '<=', $date->format('Y-m-d 00:00:00'));
$q->orWhereNull('startdate');
})
->where(function($q) use ($date) {
$q->where('targetdate', '>=', $date->format('Y-m-d 00:00:00'));
$q->orWhereNull('targetdate');
});
}
/**
* @param EloquentBuilder $query
* @param Carbon $start
@ -57,7 +37,30 @@ class PiggyBankRepetition extends Model
*/
public function scopeOnDates(EloquentBuilder $query, Carbon $start, Carbon $target)
{
return $query->where('startdate',$start->format('Y-m-d'))->where('targetdate',$target->format('Y-m-d'));
return $query->where('startdate', $start->format('Y-m-d'))->where('targetdate', $target->format('Y-m-d'));
}
/**
* @param EloquentBuilder $query
* @param Carbon $date
*
* @return mixed
*/
public function scopeRelevantOnDate(EloquentBuilder $query, Carbon $date)
{
return $query->where(
function (EloquentBuilder $q) use ($date) {
$q->where('startdate', '<=', $date->format('Y-m-d 00:00:00'));
$q->orWhereNull('startdate');
}
)
->where(
function (EloquentBuilder $q) use ($date) {
$q->where('targetdate', '>=', $date->format('Y-m-d 00:00:00'));
$q->orWhereNull('targetdate');
}
);
}
}

View File

@ -1,8 +1,6 @@
<?php namespace FireflyIII\Providers;
use App;
use FireflyIII\Models\Account;
use FireflyIII\Models\Bill;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\LimitRepetition;
use FireflyIII\Models\PiggyBank;

View File

@ -71,4 +71,4 @@ class FireflyServiceProvider extends ServiceProvider
}
}
}

View File

@ -1,7 +1,6 @@
<?php namespace FireflyIII\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Routing\Router;
/**
@ -32,22 +31,6 @@ class RouteServiceProvider extends ServiceProvider
{
parent::boot($router);
$router->before(
function (Request $request) {
// put IP in session if not already there.
$reminders = [];
if ($request->user()) {
//Filter::setSessionDateRange();
//Reminders::updateReminders();
//Steam::removeEmptyBudgetLimits();
//$reminders = Reminders::getReminders();
}
// View::share('reminders', $reminders);
}
);
}
/**

View File

@ -25,4 +25,4 @@ class TestingServiceProvider extends ServiceProvider
}
}
}
}

View File

@ -118,7 +118,6 @@ class AccountRepository implements AccountRepositoryInterface
return $paginator;
//return Paginator::make($items, $count, 50);
}
@ -202,8 +201,8 @@ class AccountRepository implements AccountRepositoryInterface
*/
public function store(array $data)
{
$newAccount = $this->_store($data);
$this->_storeMetadata($newAccount, $data);
$newAccount = $this->storeAccount($data);
$this->storeMetadata($newAccount, $data);
// continue with the opposing account:
@ -215,8 +214,8 @@ class AccountRepository implements AccountRepositoryInterface
'name' => $data['name'] . ' initial balance',
'active' => false,
];
$opposing = $this->_store($opposingData);
$this->_storeInitialBalance($newAccount, $opposing, $data);
$opposing = $this->storeAccount($opposingData);
$this->storeInitialBalance($newAccount, $opposing, $data);
}
@ -236,7 +235,7 @@ class AccountRepository implements AccountRepositoryInterface
$account->save();
// update meta data:
$this->_updateMetadata($account, $data);
$this->updateMetadata($account, $data);
$openingBalance = $this->openingBalanceTransaction($account);
@ -245,7 +244,7 @@ class AccountRepository implements AccountRepositoryInterface
// if opening balance, do an update:
if ($openingBalance) {
// update existing opening balance.
$this->_updateInitialBalance($account, $openingBalance, $data);
$this->updateInitialBalance($account, $openingBalance, $data);
} else {
// create new opening balance.
$type = $data['openingBalance'] < 0 ? 'expense' : 'revenue';
@ -255,8 +254,8 @@ class AccountRepository implements AccountRepositoryInterface
'name' => $data['name'] . ' initial balance',
'active' => false,
];
$opposing = $this->_store($opposingData);
$this->_storeInitialBalance($account, $opposing, $data);
$opposing = $this->storeAccount($opposingData);
$this->storeInitialBalance($account, $opposing, $data);
}
} else {
@ -275,7 +274,7 @@ class AccountRepository implements AccountRepositoryInterface
*
* @return Account
*/
protected function _store(array $data)
protected function storeAccount(array $data)
{
$type = Config::get('firefly.accountTypeByIdentifier.' . $data['accountType']);
$accountType = AccountType::whereType($type)->first();
@ -307,7 +306,7 @@ class AccountRepository implements AccountRepositoryInterface
* @param Account $account
* @param array $data
*/
protected function _storeMetadata(Account $account, array $data)
protected function storeMetadata(Account $account, array $data)
{
$metaData = new AccountMeta(
[
@ -329,7 +328,7 @@ class AccountRepository implements AccountRepositoryInterface
*
* @return TransactionJournal
*/
protected function _storeInitialBalance(Account $account, Account $opposing, array $data)
protected function storeInitialBalance(Account $account, Account $opposing, array $data)
{
$type = $data['openingBalance'] < 0 ? 'Withdrawal' : 'Deposit';
$transactionType = TransactionType::whereType($type)->first();
@ -398,7 +397,7 @@ class AccountRepository implements AccountRepositoryInterface
* @param Account $account
* @param array $data
*/
protected function _updateMetadata(Account $account, array $data)
protected function updateMetadata(Account $account, array $data)
{
$metaEntries = $account->accountMeta()->get();
$updated = false;
@ -435,7 +434,7 @@ class AccountRepository implements AccountRepositoryInterface
*
* @return TransactionJournal
*/
protected function _updateInitialBalance(Account $account, TransactionJournal $journal, array $data)
protected function updateInitialBalance(Account $account, TransactionJournal $journal, array $data)
{
$journal->date = $data['openingBalanceDate'];
@ -453,4 +452,4 @@ class AccountRepository implements AccountRepositoryInterface
return $journal;
}
}
}

View File

@ -85,4 +85,4 @@ interface AccountRepositoryInterface
* @return Collection
*/
public function getSavingsAccounts();
}
}

View File

@ -51,16 +51,11 @@ class BillRepository implements BillRepositoryInterface
foreach ($billStarts as $dateEntry) {
if ($dateEntry['end'] > $start && $dateEntry['start'] < $end) {
// count transactions for bill in this range (not relevant yet!):
// $count = $bill->transactionjournals()->before($dateEntry['end'])->after($dateEntry['start'])->count();
// if ($count == 0) {
$validRanges[] = $dateEntry;
// }
}
}
return $validRanges;
// echo $bill->name;
// var_dump($validRanges);
}
/**

View File

@ -56,4 +56,4 @@ interface BillRepositoryInterface {
*/
public function scan(Bill $bill, TransactionJournal $journal);
}
}

View File

@ -142,4 +142,4 @@ class BudgetRepository implements BudgetRepositoryInterface
}
}
}

View File

@ -63,4 +63,4 @@ interface BudgetRepositoryInterface
*/
public function getJournals(Budget $budget, LimitRepetition $repetition = null, $take = 50);
}
}

View File

@ -58,4 +58,4 @@ class CategoryRepository implements CategoryRepositoryInterface
return $category;
}
}
}

View File

@ -33,4 +33,4 @@ interface CategoryRepositoryInterface
*/
public function update(Category $category, array $data);
}
}

View File

@ -11,7 +11,6 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use Illuminate\Support\Collection;
use Log;
/**
* Class JournalRepository
@ -275,7 +274,7 @@ class JournalRepository implements JournalRepositoryInterface
$transaction->save();
}
if (floatval($transaction->amount) > 0) {
$transaction->amount = $data['amount'];
$transaction->amount = $data['amount'];
$transaction->account_id = $to->id;
$transaction->save();
}
@ -287,4 +286,4 @@ class JournalRepository implements JournalRepositoryInterface
return $journal;
}
}
}

View File

@ -44,4 +44,4 @@ interface JournalRepositoryInterface
* @return mixed
*/
public function update(TransactionJournal $journal, array $data);
}
}

View File

@ -6,7 +6,6 @@ use Auth;
use DB;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankRepetition;
use FireflyIII\Models\Reminder;
use Illuminate\Support\Collection;
use Navigation;
@ -98,7 +97,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.id')
->where('accounts.user_id', Auth::user()->id)
->update(['order' => 0, 'piggy_banks.updated_at' => DB::Raw('NOW()')]);
//Auth::user()->piggyBanks()->update(['order' => 0]);
}
/**
@ -164,4 +162,4 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
return $piggyBank;
}
}
}

View File

@ -4,9 +4,7 @@ namespace FireflyIII\Repositories\PiggyBank;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankRepetition;
use FireflyIII\Models\Reminder;
use Illuminate\Support\Collection;
use Carbon\Carbon;
/**
* Interface PiggyBankRepositoryInterface
@ -39,6 +37,7 @@ interface PiggyBankRepositoryInterface
/**
* Set all piggy banks to order 0.
*
* @return void
*/
public function reset();
@ -55,7 +54,6 @@ interface PiggyBankRepositoryInterface
public function setOrder($id, $order);
/**
* @param array $data
*
@ -70,4 +68,4 @@ interface PiggyBankRepositoryInterface
* @return PiggyBank
*/
public function update(PiggyBank $piggyBank, array $data);
}
}

View File

@ -166,4 +166,4 @@ class Amount
return $currency;
}
}
}

View File

@ -314,4 +314,4 @@ class ExpandedForm
return $html;
}
}
}

View File

@ -21,4 +21,4 @@ class Amount extends Facade
return 'amount';
}
}
}

View File

@ -21,4 +21,4 @@ class ExpandedForm extends Facade
return 'expandedform';
}
}
}

View File

@ -21,4 +21,4 @@ class Navigation extends Facade
return 'navigation';
}
}
}

View File

@ -21,4 +21,4 @@ class Preferences extends Facade
return 'preferences';
}
}
}

View File

@ -21,4 +21,4 @@ class Steam extends Facade
return 'steam';
}
}
}

View File

@ -457,4 +457,4 @@ class Navigation
}
}
}

View File

@ -55,4 +55,4 @@ class Preferences
return $pref;
}
}
}

View File

@ -45,4 +45,4 @@ interface SearchInterface {
* @return Collection
*/
public function searchTransactions(array $words);
}
}

View File

@ -198,4 +198,4 @@ class Steam
return $array;
}
}
}

View File

@ -11,10 +11,8 @@
|
*/
use FireflyIII\Validation\FireflyValidator;
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
realpath(__DIR__ . '/../')
);
/*
@ -29,18 +27,18 @@ $app = new Illuminate\Foundation\Application(
*/
$app->singleton(
'Illuminate\Contracts\Http\Kernel',
'FireflyIII\Http\Kernel'
'Illuminate\Contracts\Http\Kernel',
'FireflyIII\Http\Kernel'
);
$app->singleton(
'Illuminate\Contracts\Console\Kernel',
'FireflyIII\Console\Kernel'
'Illuminate\Contracts\Console\Kernel',
'FireflyIII\Console\Kernel'
);
$app->singleton(
'Illuminate\Contracts\Debug\ExceptionHandler',
'FireflyIII\Exceptions\Handler'
'Illuminate\Contracts\Debug\ExceptionHandler',
'FireflyIII\Exceptions\Handler'
);
/*

View File

@ -22,8 +22,8 @@
"require": {
"laravel/framework": "5.0.*",
"davejamesmiller/laravel-breadcrumbs": "~3.0",
"grumpydictator/gchart": "dev-master",
"watson/validating": "dev-master",
"grumpydictator/gchart": "~1",
"watson/validating": "~1.0",
"doctrine/dbal": "~2.5",
"illuminate/html": "~5.0",
"league/commonmark": "0.7.*"

18
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "34e0c28c0f8f4c04b545b2cbb0f2f24b",
"hash": "b77b9f717b25e1e193bdc6edb18ad492",
"packages": [
{
"name": "classpreloader/classpreloader",
@ -682,7 +682,7 @@
},
{
"name": "grumpydictator/gchart",
"version": "dev-master",
"version": "1.0.8",
"source": {
"type": "git",
"url": "https://github.com/JC5/gchart.git",
@ -950,16 +950,16 @@
},
{
"name": "laravel/framework",
"version": "v5.0.22",
"version": "v5.0.23",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "388289de68ba912746bd1adb20a8b1cd0f846ea1"
"reference": "59219f7afb60be05d74ce01fcb5d2440f7a1b13d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/388289de68ba912746bd1adb20a8b1cd0f846ea1",
"reference": "388289de68ba912746bd1adb20a8b1cd0f846ea1",
"url": "https://api.github.com/repos/laravel/framework/zipball/59219f7afb60be05d74ce01fcb5d2440f7a1b13d",
"reference": "59219f7afb60be05d74ce01fcb5d2440f7a1b13d",
"shasum": ""
},
"require": {
@ -1072,7 +1072,7 @@
"framework",
"laravel"
],
"time": "2015-03-27 14:49:51"
"time": "2015-03-28 16:56:59"
},
{
"name": "league/commonmark",
@ -2351,7 +2351,7 @@
},
{
"name": "watson/validating",
"version": "dev-master",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/dwightwatson/validating.git",
@ -3962,8 +3962,6 @@
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"grumpydictator/gchart": 20,
"watson/validating": 20,
"barryvdh/laravel-debugbar": 0
},
"prefer-stable": false,

View File

@ -9,8 +9,6 @@ use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\Category;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\PiggyBankRepetition;
use FireflyIII\Models\Reminder;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionGroup;
@ -137,12 +135,9 @@ class TestDataSeeder extends Seeder
$acc_c = Account::create(['user_id' => $user->id, 'account_type_id' => $assetType->id, 'name' => 'Delete me', 'active' => 1]);
// create account meta:
$meta_a = AccountMeta::create(['account_id' => $acc_a->id, 'name' => 'accountRole', 'data' => 'defaultAsset']);
$meta_b = AccountMeta::create(['account_id' => $acc_b->id, 'name' => 'accountRole', 'data' => 'savingAsset']);
$meta_c = AccountMeta::create(['account_id' => $acc_c->id, 'name' => 'accountRole', 'data' => 'defaultAsset']);
// var_dump($meta_a->toArray());
// var_dump($meta_b->toArray());
// var_dump($meta_c->toArray());
AccountMeta::create(['account_id' => $acc_a->id, 'name' => 'accountRole', 'data' => 'defaultAsset']);
AccountMeta::create(['account_id' => $acc_b->id, 'name' => 'accountRole', 'data' => 'savingAsset']);
AccountMeta::create(['account_id' => $acc_c->id, 'name' => 'accountRole', 'data' => 'defaultAsset']);
$acc_d = Account::create(['user_id' => $user->id, 'account_type_id' => $ibType->id, 'name' => 'Checking account initial balance', 'active' => 0]);
$acc_e = Account::create(['user_id' => $user->id, 'account_type_id' => $ibType->id, 'name' => 'Savings account initial balance', 'active' => 0]);
@ -211,20 +206,17 @@ class TestDataSeeder extends Seeder
$bills = Budget::create(['user_id' => $user->id, 'name' => 'Bills']);
$deleteMe = Budget::create(['user_id' => $user->id, 'name' => 'Delete me']);
Budget::create(['user_id' => $user->id, 'name' => 'Budget without repetition']);
$groceriesLimit = BudgetLimit::create(
BudgetLimit::create(
['startdate' => $this->som, 'amount' => 201, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $groceries->id]
);
$billsLimit = BudgetLimit::create(
BudgetLimit::create(
['startdate' => $this->som, 'amount' => 202, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $bills->id]
);
$deleteMeLimit = BudgetLimit::create(
BudgetLimit::create(
['startdate' => $this->som, 'amount' => 203, 'repeats' => 0, 'repeat_freq' => 'monthly', 'budget_id' => $deleteMe->id]
);
// and because we have no filters, some repetitions:
// LimitRepetition::create(['budget_limit_id' => $groceriesLimit->id, 'startdate' => $this->som, 'enddate' => $this->eom, 'amount' => 201]);
// LimitRepetition::create(['budget_limit_id' => $billsLimit->id, 'startdate' => $this->som, 'enddate' => $this->eom, 'amount' => 202]);
// LimitRepetition::create(['budget_limit_id' => $deleteMeLimit->id, 'startdate' => $this->som, 'enddate' => $this->eom, 'amount' => 203]);
}
/**
@ -255,7 +247,6 @@ class TestDataSeeder extends Seeder
$endDate->addMonths(4);
$nextYear->addYear()->subDay();
$next = $nextYear->format('Y-m-d');
$end = $endDate->format('Y-m-d');
// piggy bank
@ -351,8 +342,6 @@ class TestDataSeeder extends Seeder
*/
public function createReminders()
{
$user = User::whereEmail('thegrumpydictator@gmail.com')->first();
// for weekly piggy bank (clothes)
}
@ -604,4 +593,4 @@ class TestDataSeeder extends Seeder
}
}
}

View File

@ -2,4 +2,4 @@ suites:
main:
namespace: FireflyIII
psr4_prefix: FireflyIII
src_path: app
src_path: app

View File

@ -31,4 +31,4 @@
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
</phpunit>
</phpunit>

View File

@ -2,4 +2,4 @@ Hey there!
Welkome to Firefly III. Your registration has made it, and this email is here to confirm it.
Thanks for using Firefly!
Thanks for using Firefly!

View File

@ -19,4 +19,4 @@
@include('form.feedback')
</div>
{!! Form::input('hidden','amount_currency_id',$defaultCurrency->id) !!}
</div>
</div>

View File

@ -19,4 +19,4 @@
</div>
{!! Form::input('hidden','balance_currency_id',$defaultCurrency->id) !!}
</div>
</div>

View File

@ -8,4 +8,4 @@
</div>
@include('form.feedback')
</div>
</div>
</div>

View File

@ -4,4 +4,4 @@
{!! Form::input('date', $name, $value, $options) !!}
@include('form.feedback')
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
@if($errors->has($name))
<span class="form-control-feedback"><i class="fa fa-fw fa-remove"></i></span>
<p class="text-danger">{{{$errors->first($name)}}}</p>
@endif
@endif

View File

@ -6,4 +6,4 @@
@include('form.feedback')
</div>
</div>
</div>
</div>

View File

@ -70,4 +70,4 @@
</div>
</div>
</div>
@endif
@endif

View File

@ -5,4 +5,4 @@
@include('form.feedback')
</div>
</div>
</div>

View File

@ -4,4 +4,4 @@
{!! Form::input('text', $name, $value, $options) !!}
@include('form.feedback')
</div>
</div>
</div>

View File

@ -4,4 +4,4 @@
{!! Form::input('text', $name, $value, $options) !!}
@include('form.feedback')
</div>
</div>
</div>

View File

@ -56,4 +56,4 @@
</table>
@if(is_object($accounts) && method_exists($accounts, 'render'))
{!! $accounts->render() !!}
@endif
@endif

View File

@ -42,4 +42,4 @@
</p>
</div>
@endif
</div>
</div>

View File

@ -89,4 +89,4 @@
</div>
</div>
</div>
<!-- /.row -->
<!-- /.row -->

View File

@ -28,4 +28,4 @@
</div>
</div>
</div>
--}}
--}}

View File

@ -60,4 +60,4 @@
</table>
@else
<p><em>No related transactions</em></p>
@endif
@endif

View File

@ -36,4 +36,4 @@
</table>
@else
<p><em>No results</em></p>
@endif
@endif

View File

@ -35,4 +35,4 @@
</div>
</div>
</div>
@stop
@stop

View File

@ -70,4 +70,4 @@
@stop
@section('scripts')
<script type="text/javascript" src="js/reports.js"></script>
@stop
@stop

View File

@ -21,4 +21,4 @@
<script src="js/jquery-ui.min.js" type="text/javascript"></script>
<script src="js/transactions.js" type="text/javascript"></script>
@stop
@stop

View File

@ -7,15 +7,14 @@
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' and file_exists(__DIR__.'/public'.$uri))
{
return false;
if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) {
return false;
}
require_once __DIR__.'/public/index.php';
require_once __DIR__ . '/public/index.php';

2
storage/.gitignore vendored
View File

@ -1 +1 @@
laravel.log
laravel.log

View File

@ -1,2 +1,2 @@
*
!.gitignore
!.gitignore

View File

@ -1,2 +1,2 @@
*
!.gitignore
!.gitignore

View File

@ -1,2 +1,2 @@
*
!.gitignore
!.gitignore