2014-07-03 21:31:32 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Firefly\Storage\TransactionJournal;
|
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
use Carbon\Carbon;
|
2014-07-03 21:31:32 +02:00
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* Interface TransactionJournalRepositoryInterface
|
|
|
|
*
|
|
|
|
* @package Firefly\Storage\TransactionJournal
|
|
|
|
*/
|
2014-07-06 15:18:11 +02:00
|
|
|
interface TransactionJournalRepositoryInterface
|
|
|
|
{
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @param \Account $from
|
|
|
|
* @param \Account $toAccount
|
|
|
|
* @param $description
|
|
|
|
* @param $amount
|
|
|
|
* @param Carbon $date
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function createSimpleJournal(\Account $from, \Account $toAccount, $description, $amount, Carbon $date);
|
2014-07-03 21:31:32 +02:00
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2014-07-06 21:07:52 +02:00
|
|
|
public function get();
|
|
|
|
|
2014-08-10 15:01:46 +02:00
|
|
|
/**
|
|
|
|
* @param $what
|
|
|
|
* @param $data
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2014-08-02 07:34:38 +02:00
|
|
|
public function store($what, $data);
|
|
|
|
|
2014-08-10 15:01:46 +02:00
|
|
|
/**
|
|
|
|
* @param \TransactionJournal $journal
|
|
|
|
* @param $data
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2014-08-02 07:34:38 +02:00
|
|
|
public function update(\TransactionJournal $journal, $data);
|
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @param $journalId
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2014-07-16 21:11:43 +02:00
|
|
|
public function find($journalId);
|
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @param \Account $account
|
|
|
|
* @param int $count
|
|
|
|
* @param Carbon $start
|
|
|
|
* @param Carbon $end
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function getByAccountInDateRange(\Account $account, $count = 25, Carbon $start, Carbon $end);
|
2014-07-06 21:07:52 +02:00
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @param \Account $account
|
|
|
|
* @param Carbon $date
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function getByAccountAndDate(\Account $account, Carbon $date);
|
2014-07-15 22:16:29 +02:00
|
|
|
|
2014-07-25 13:02:01 +02:00
|
|
|
/**
|
|
|
|
* @param int $count
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2014-08-23 10:01:40 +02:00
|
|
|
public function paginate($count = 25, Carbon $start = null, Carbon $end = null);
|
2014-07-25 07:17:56 +02:00
|
|
|
|
2014-07-06 21:07:52 +02:00
|
|
|
}
|