mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-23 20:00:33 -04:00
Adding charts to reports
This commit is contained in:
parent
9d8f2f1ebf
commit
339c7f920b
@ -137,4 +137,71 @@ class Activity extends Eloquent
|
||||
|
||||
return trans("texts.activity_{$activityTypeId}", $data);
|
||||
}
|
||||
|
||||
public function relatedEntityType()
|
||||
{
|
||||
switch ($this->activity_type_id) {
|
||||
case ACTIVITY_TYPE_CREATE_CLIENT:
|
||||
case ACTIVITY_TYPE_ARCHIVE_CLIENT:
|
||||
case ACTIVITY_TYPE_DELETE_CLIENT:
|
||||
case ACTIVITY_TYPE_RESTORE_CLIENT:
|
||||
case ACTIVITY_TYPE_CREATE_CREDIT:
|
||||
case ACTIVITY_TYPE_ARCHIVE_CREDIT:
|
||||
case ACTIVITY_TYPE_DELETE_CREDIT:
|
||||
case ACTIVITY_TYPE_RESTORE_CREDIT:
|
||||
return ENTITY_CLIENT;
|
||||
break;
|
||||
|
||||
case ACTIVITY_TYPE_CREATE_INVOICE:
|
||||
case ACTIVITY_TYPE_UPDATE_INVOICE:
|
||||
case ACTIVITY_TYPE_EMAIL_INVOICE:
|
||||
case ACTIVITY_TYPE_VIEW_INVOICE:
|
||||
case ACTIVITY_TYPE_ARCHIVE_INVOICE:
|
||||
case ACTIVITY_TYPE_DELETE_INVOICE:
|
||||
case ACTIVITY_TYPE_RESTORE_INVOICE:
|
||||
return ENTITY_INVOICE;
|
||||
break;
|
||||
|
||||
case ACTIVITY_TYPE_CREATE_PAYMENT:
|
||||
case ACTIVITY_TYPE_ARCHIVE_PAYMENT:
|
||||
case ACTIVITY_TYPE_DELETE_PAYMENT:
|
||||
case ACTIVITY_TYPE_RESTORE_PAYMENT:
|
||||
case ACTIVITY_TYPE_VOIDED_PAYMENT:
|
||||
case ACTIVITY_TYPE_REFUNDED_PAYMENT:
|
||||
case ACTIVITY_TYPE_FAILED_PAYMENT:
|
||||
return ENTITY_PAYMENT;
|
||||
break;
|
||||
|
||||
case ACTIVITY_TYPE_CREATE_QUOTE:
|
||||
case ACTIVITY_TYPE_UPDATE_QUOTE:
|
||||
case ACTIVITY_TYPE_EMAIL_QUOTE:
|
||||
case ACTIVITY_TYPE_VIEW_QUOTE:
|
||||
case ACTIVITY_TYPE_ARCHIVE_QUOTE:
|
||||
case ACTIVITY_TYPE_DELETE_QUOTE:
|
||||
case ACTIVITY_TYPE_RESTORE_QUOTE:
|
||||
case ACTIVITY_TYPE_APPROVE_QUOTE:
|
||||
return ENTITY_QUOTE;
|
||||
break;
|
||||
|
||||
case ACTIVITY_TYPE_CREATE_VENDOR:
|
||||
case ACTIVITY_TYPE_ARCHIVE_VENDOR:
|
||||
case ACTIVITY_TYPE_DELETE_VENDOR:
|
||||
case ACTIVITY_TYPE_RESTORE_VENDOR:
|
||||
case ACTIVITY_TYPE_CREATE_EXPENSE:
|
||||
case ACTIVITY_TYPE_ARCHIVE_EXPENSE:
|
||||
case ACTIVITY_TYPE_DELETE_EXPENSE:
|
||||
case ACTIVITY_TYPE_RESTORE_EXPENSE:
|
||||
case ACTIVITY_TYPE_UPDATE_EXPENSE:
|
||||
return ENTITY_EXPENSE;
|
||||
break;
|
||||
|
||||
case ACTIVITY_TYPE_CREATE_TASK:
|
||||
case ACTIVITY_TYPE_UPDATE_TASK:
|
||||
case ACTIVITY_TYPE_ARCHIVE_TASK:
|
||||
case ACTIVITY_TYPE_DELETE_TASK:
|
||||
case ACTIVITY_TYPE_RESTORE_TASK:
|
||||
return ENTITY_TASK;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -146,6 +146,21 @@ class AbstractReport
|
||||
return join('', $reportParts);
|
||||
}
|
||||
|
||||
protected function getDimension($entity)
|
||||
{
|
||||
$subgroup = $this->options['subgroup'];
|
||||
|
||||
if ($subgroup == 'user') {
|
||||
return $entity->user->getDisplayName();
|
||||
} elseif ($subgroup == 'client') {
|
||||
if ($entity->client) {
|
||||
return $entity->client->getDisplayName();
|
||||
} else {
|
||||
return trans('texts.unset');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function addChartData($dimension, $date, $amount)
|
||||
{
|
||||
if (! isset($this->chartData[$dimension])) {
|
||||
|
@ -23,6 +23,7 @@ class ActivityReport extends AbstractReport
|
||||
|
||||
$startDate = $this->startDate;;
|
||||
$endDate = $this->endDate;
|
||||
$subgroup = $this->options['subgroup'];
|
||||
|
||||
$activities = Activity::scope()
|
||||
->with('client.contacts', 'user', 'invoice', 'payment', 'credit', 'task', 'expense', 'account')
|
||||
@ -38,7 +39,13 @@ class ActivityReport extends AbstractReport
|
||||
$this->isExport ? strip_tags($activity->getMessage()) : $activity->getMessage(),
|
||||
];
|
||||
|
||||
$this->addChartData(ENTITY_ACTIVITY, $activity->created_at, 1);
|
||||
if ($subgroup == 'category') {
|
||||
$dimension = trans('texts.' . $activity->relatedEntityType());
|
||||
} else {
|
||||
$dimension = $this->getDimension($activity);
|
||||
}
|
||||
|
||||
$this->addChartData($dimension, $activity->created_at, 1);
|
||||
}
|
||||
|
||||
//dd($this->getChartData());
|
||||
|
@ -2766,6 +2766,7 @@ $LANG = array(
|
||||
'webmail' => 'Webmail',
|
||||
'group' => 'Group',
|
||||
'subgroup' => 'Subgroup',
|
||||
'unset' => 'Unset',
|
||||
|
||||
);
|
||||
|
||||
|
@ -105,7 +105,6 @@ function loadPieChart(data) {
|
||||
$(function() {
|
||||
var lineChartData = {!! json_encode($report->getLineChartData()) !!};
|
||||
loadLineChart(lineChartData);
|
||||
//console.log(chartData);
|
||||
|
||||
var pieChartData = {!! json_encode($report->getPieChartData()) !!};
|
||||
if (pieChartData) {
|
||||
|
@ -471,14 +471,13 @@
|
||||
|
||||
$subgroup.append(new Option("{{ trans('texts.user') }}", 'user'));
|
||||
|
||||
if (['activity', 'expense'].indexOf(reportType) >= 0) {
|
||||
if (reportType == 'activity') {
|
||||
$subgroup.append(new Option("{{ trans('texts.category') }}", 'category'));
|
||||
}
|
||||
|
||||
if (reportType == 'aging') {
|
||||
} else if (reportType == 'aging') {
|
||||
$subgroup.append(new Option("{{ trans('texts.age') }}", 'age'));
|
||||
} else if (reportType == 'expense') {
|
||||
$subgroup.append(new Option("{{ trans('texts.vendor') }}", 'vendor'));
|
||||
$subgroup.append(new Option("{{ trans('texts.category') }}", 'category'));
|
||||
} else if (reportType == 'payment') {
|
||||
$subgroup.append(new Option("{{ trans('texts.method') }}", 'method'));
|
||||
} else if (reportType == 'profit_and_loss') {
|
||||
@ -486,6 +485,13 @@
|
||||
} else if (reportType == 'task') {
|
||||
$subgroup.append(new Option("{{ trans('texts.project') }}", 'project'));
|
||||
}
|
||||
|
||||
if (isStorageSupported()) {
|
||||
var lastSubgroup = localStorage.getItem('last:report_subgroup');
|
||||
if (lastSubgroup) {
|
||||
$('#subgroup').val(lastSubgroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sumColumns = [];
|
||||
@ -542,6 +548,12 @@
|
||||
}
|
||||
});
|
||||
|
||||
$('#subgroup').change(function() {
|
||||
if (isStorageSupported()) {
|
||||
localStorage.setItem('last:report_subgroup', $('#subgroup').val());
|
||||
}
|
||||
});
|
||||
|
||||
// parse 1,000.00 or 1.000,00
|
||||
function convertStringToNumber(str) {
|
||||
str = str + '' || '';
|
||||
@ -643,6 +655,10 @@
|
||||
if (lastGroup) {
|
||||
$('#group').val(lastGroup);
|
||||
}
|
||||
var lastSubgroup = localStorage.getItem('last:report_subgroup');
|
||||
if (lastSubgroup) {
|
||||
$('#subgroup').val(lastSubgroup);
|
||||
}
|
||||
var lastDocumentFilter = localStorage.getItem('last:document_filter');
|
||||
if (lastDocumentFilter) {
|
||||
$('#document_filter').val(lastDocumentFilter);
|
||||
|
Loading…
x
Reference in New Issue
Block a user