mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
More CSV related updates.
This commit is contained in:
@@ -72,6 +72,27 @@ class BillRepository implements BillRepositoryInterface
|
||||
return $bill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a bill by name.
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return Bill
|
||||
*/
|
||||
public function findByName(string $name) : Bill
|
||||
{
|
||||
$bills = $this->user->bills()->get();
|
||||
|
||||
/** @var Bill $bill */
|
||||
foreach ($bills as $bill) {
|
||||
if ($bill->name === $name) {
|
||||
return $bill;
|
||||
}
|
||||
}
|
||||
|
||||
return new Bill;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
@@ -293,6 +314,28 @@ class BillRepository implements BillRepositoryInterface
|
||||
return $bill->transactionjournals()->before($end)->after($start)->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $bill
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getOverallAverage($bill): string
|
||||
{
|
||||
$journals = $bill->transactionjournals()->get();
|
||||
$sum = '0';
|
||||
$count = strval($journals->count());
|
||||
/** @var TransactionJournal $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$sum = bcadd($sum, TransactionJournal::amountPositive($journal));
|
||||
}
|
||||
$avg = '0';
|
||||
if ($journals->count() > 0) {
|
||||
$avg = bcdiv($sum, $count);
|
||||
}
|
||||
|
||||
return $avg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
*
|
||||
@@ -358,6 +401,32 @@ class BillRepository implements BillRepositoryInterface
|
||||
return $validRanges;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getYearAverage(Bill $bill, Carbon $date): string
|
||||
{
|
||||
$journals = $bill->transactionjournals()
|
||||
->where('date', '>=', $date->year . '-01-01')
|
||||
->where('date', '<=', $date->year . '-12-31')
|
||||
->get();
|
||||
$sum = '0';
|
||||
$count = strval($journals->count());
|
||||
/** @var TransactionJournal $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$sum = bcadd($sum, TransactionJournal::amountPositive($journal));
|
||||
}
|
||||
$avg = '0';
|
||||
if ($journals->count() > 0) {
|
||||
$avg = bcdiv($sum, $count);
|
||||
}
|
||||
|
||||
return $avg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
*
|
||||
@@ -557,52 +626,4 @@ class BillRepository implements BillRepositoryInterface
|
||||
|
||||
return $wordMatch;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getYearAverage(Bill $bill, Carbon $date): string
|
||||
{
|
||||
$journals = $bill->transactionjournals()
|
||||
->where('date', '>=', $date->year . '-01-01')
|
||||
->where('date', '<=', $date->year . '-12-31')
|
||||
->get();
|
||||
$sum = '0';
|
||||
$count = strval($journals->count());
|
||||
/** @var TransactionJournal $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$sum = bcadd($sum, TransactionJournal::amountPositive($journal));
|
||||
}
|
||||
$avg = '0';
|
||||
if ($journals->count() > 0) {
|
||||
$avg = bcdiv($sum, $count);
|
||||
}
|
||||
|
||||
return $avg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $bill
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getOverallAverage($bill): string
|
||||
{
|
||||
$journals = $bill->transactionjournals()->get();
|
||||
$sum = '0';
|
||||
$count = strval($journals->count());
|
||||
/** @var TransactionJournal $journal */
|
||||
foreach ($journals as $journal) {
|
||||
$sum = bcadd($sum, TransactionJournal::amountPositive($journal));
|
||||
}
|
||||
$avg = '0';
|
||||
if ($journals->count() > 0) {
|
||||
$avg = bcdiv($sum, $count);
|
||||
}
|
||||
|
||||
return $avg;
|
||||
}
|
||||
}
|
||||
|
@@ -32,21 +32,6 @@ interface BillRepositoryInterface
|
||||
*/
|
||||
public function destroy(Bill $bill): bool;
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getYearAverage(Bill $bill, Carbon $date): string;
|
||||
|
||||
/**
|
||||
* @param $bill
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getOverallAverage($bill): string;
|
||||
|
||||
/**
|
||||
* Find a bill by ID.
|
||||
*
|
||||
@@ -56,6 +41,15 @@ interface BillRepositoryInterface
|
||||
*/
|
||||
public function find(int $billId) : Bill;
|
||||
|
||||
/**
|
||||
* Find a bill by name.
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return Bill
|
||||
*/
|
||||
public function findByName(string $name) : Bill;
|
||||
|
||||
/**
|
||||
* @return Collection
|
||||
*/
|
||||
@@ -128,6 +122,13 @@ interface BillRepositoryInterface
|
||||
*/
|
||||
public function getJournalsInRange(Bill $bill, Carbon $start, Carbon $end): Collection;
|
||||
|
||||
/**
|
||||
* @param $bill
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getOverallAverage($bill): string;
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
*
|
||||
@@ -148,6 +149,14 @@ interface BillRepositoryInterface
|
||||
*/
|
||||
public function getRanges(Bill $bill, Carbon $start, Carbon $end): array;
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getYearAverage(Bill $bill, Carbon $date): string;
|
||||
|
||||
/**
|
||||
* @param Bill $bill
|
||||
*
|
||||
|
Reference in New Issue
Block a user