Tasks on dashboard

This commit is contained in:
Hillel Coren 2019-01-28 17:49:04 +02:00
parent 66114aec80
commit 7a00c67166
2 changed files with 20 additions and 11 deletions

View File

@ -86,11 +86,15 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
bool get isRunning => endDate == null;
Map<String, Duration> getParts(int timezoneOffset) {
print('getParts');
final startSqlDate = convertDateTimeToSqlDate(startDate);
final endSqlDate = convertDateTimeToSqlDate(endDate);
print('start date: $startDate');
print('end date: $endDate');
final localStartDate = startDate.toLocal();
final localEndDate = endDate.toLocal();
final startSqlDate = convertDateTimeToSqlDate(localStartDate);
final endSqlDate = convertDateTimeToSqlDate(localEndDate);
if (startSqlDate == endSqlDate) {
print('start eq end');
return {startSqlDate: duration};
}
@ -98,23 +102,23 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
DateTime nextDate;
final Map<String, Duration> dates = {
startSqlDate:
DateTime(startDate.year, startDate.month, startDate.day)
.add(Duration(days: offset)).difference(startDate)
DateTime(localStartDate.year, localStartDate.month, localStartDate.day)
.add(Duration(days: offset)).difference(localStartDate)
};
do {
nextDate = DateTime(startDate.year, startDate.month, startDate.day)
nextDate = DateTime(localStartDate.year, localStartDate.month, localStartDate.day)
.add(Duration(days: offset));
print('Next Date: $nextDate');
offset++;
Duration duration = endDate.difference(nextDate);
Duration duration = localEndDate.difference(nextDate);
if (duration.inHours > 24) {
duration = Duration(hours: 24);
}
dates[convertDateTimeToSqlDate(nextDate)] = duration;
} while (nextDate.isBefore(endDate.subtract(Duration(days: 1))));
} while (nextDate.isBefore(localEndDate.subtract(Duration(days: 1))));
print('returning: $dates');
return dates;

View File

@ -1,5 +1,6 @@
import 'package:charts_common/common.dart';
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_state.dart';
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:memoize/memoize.dart';
import 'package:built_collection/built_collection.dart';
@ -376,12 +377,16 @@ List<ChartDataGroup> chartTasks(
print('Task: $task');
print('Task - date: $date');
final taskRate = taskRateSelector(
company: company, project: project, client: client);
final double amount = taskRate * round(duration.inSeconds / 3600, 3);
if (false) {
totals[STATUS_PAID][date] += 0;
totals[STATUS_PAID][date] += amount;
} else if (task.isInvoiced) {
totals[STATUS_INVOICED][date] += 0;
totals[STATUS_INVOICED][date] += amount;
} else {
totals[STATUS_LOGGED][date] += duration.inHours;
totals[STATUS_LOGGED][date] += amount;
}
counts[STATUS_LOGGED]++;