mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
135 lines
2.6 KiB
PHP
135 lines
2.6 KiB
PHP
|
<?php
|
||
|
namespace FireflyIII\Database;
|
||
|
|
||
|
use Carbon\Carbon;
|
||
|
use Illuminate\Support\MessageBag;
|
||
|
use LaravelBook\Ardent\Ardent;
|
||
|
use Illuminate\Support\Collection;
|
||
|
use FireflyIII\Database\Ifaces\CommonDatabaseCalls;
|
||
|
use FireflyIII\Database\Ifaces\CUD;
|
||
|
use FireflyIII\Database\Ifaces\PiggybankInterface;
|
||
|
|
||
|
/**
|
||
|
* Class Piggybank
|
||
|
*
|
||
|
* @package FireflyIII\Database
|
||
|
*/
|
||
|
class Piggybank implements CUD, CommonDatabaseCalls, PiggybankInterface
|
||
|
{
|
||
|
use SwitchUser;
|
||
|
|
||
|
/**
|
||
|
* @param \Account $account
|
||
|
*
|
||
|
* @return float
|
||
|
*/
|
||
|
public function leftOnAccount(\Account $account)
|
||
|
{
|
||
|
$balance = $account->balance();
|
||
|
/** @var \Piggybank $p */
|
||
|
foreach ($account->piggybanks()->get() as $p) {
|
||
|
$balance -= $p->currentRelevantRep()->currentamount;
|
||
|
}
|
||
|
|
||
|
return $balance;
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
public function __construct()
|
||
|
{
|
||
|
$this->setUser(\Auth::user());
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param Ardent $model
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function destroy(Ardent $model)
|
||
|
{
|
||
|
// TODO: Implement destroy() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Validates a model. Returns an array containing MessageBags
|
||
|
* errors/warnings/successes.
|
||
|
*
|
||
|
* @param Ardent $model
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function validateObject(Ardent $model)
|
||
|
{
|
||
|
// TODO: Implement validateObject() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Validates an array. Returns an array containing MessageBags
|
||
|
* errors/warnings/successes.
|
||
|
*
|
||
|
* @param array $model
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function validate(array $model)
|
||
|
{
|
||
|
// TODO: Implement validate() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param array $data
|
||
|
*
|
||
|
* @return Ardent
|
||
|
*/
|
||
|
public function store(array $data)
|
||
|
{
|
||
|
// TODO: Implement store() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns an object with id $id.
|
||
|
*
|
||
|
* @param int $id
|
||
|
*
|
||
|
* @return Ardent
|
||
|
*/
|
||
|
public function find($id)
|
||
|
{
|
||
|
// TODO: Implement find() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns all objects.
|
||
|
*
|
||
|
* @return Collection
|
||
|
*/
|
||
|
public function get()
|
||
|
{
|
||
|
return $this->getUser()->piggybanks()->where('repeats', 0)->get();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param array $ids
|
||
|
*
|
||
|
* @return Collection
|
||
|
*/
|
||
|
public function getByIds(array $ids)
|
||
|
{
|
||
|
// TODO: Implement getByIds() method.
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Finds an account type using one of the "$what"'s: expense, asset, revenue, opening, etc.
|
||
|
*
|
||
|
* @param $what
|
||
|
*
|
||
|
* @return \AccountType|null
|
||
|
*/
|
||
|
public function findByWhat($what)
|
||
|
{
|
||
|
// TODO: Implement findByWhat() method.
|
||
|
}
|
||
|
}
|