Tasks on dashboard
This commit is contained in:
parent
66114aec80
commit
7a00c67166
|
|
@ -86,11 +86,15 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
|
||||||
bool get isRunning => endDate == null;
|
bool get isRunning => endDate == null;
|
||||||
|
|
||||||
Map<String, Duration> getParts(int timezoneOffset) {
|
Map<String, Duration> getParts(int timezoneOffset) {
|
||||||
print('getParts');
|
print('start date: $startDate');
|
||||||
final startSqlDate = convertDateTimeToSqlDate(startDate);
|
print('end date: $endDate');
|
||||||
final endSqlDate = convertDateTimeToSqlDate(endDate);
|
final localStartDate = startDate.toLocal();
|
||||||
|
final localEndDate = endDate.toLocal();
|
||||||
|
final startSqlDate = convertDateTimeToSqlDate(localStartDate);
|
||||||
|
final endSqlDate = convertDateTimeToSqlDate(localEndDate);
|
||||||
|
|
||||||
if (startSqlDate == endSqlDate) {
|
if (startSqlDate == endSqlDate) {
|
||||||
|
print('start eq end');
|
||||||
return {startSqlDate: duration};
|
return {startSqlDate: duration};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,23 +102,23 @@ abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
|
||||||
DateTime nextDate;
|
DateTime nextDate;
|
||||||
final Map<String, Duration> dates = {
|
final Map<String, Duration> dates = {
|
||||||
startSqlDate:
|
startSqlDate:
|
||||||
DateTime(startDate.year, startDate.month, startDate.day)
|
DateTime(localStartDate.year, localStartDate.month, localStartDate.day)
|
||||||
.add(Duration(days: offset)).difference(startDate)
|
.add(Duration(days: offset)).difference(localStartDate)
|
||||||
};
|
};
|
||||||
|
|
||||||
do {
|
do {
|
||||||
nextDate = DateTime(startDate.year, startDate.month, startDate.day)
|
nextDate = DateTime(localStartDate.year, localStartDate.month, localStartDate.day)
|
||||||
.add(Duration(days: offset));
|
.add(Duration(days: offset));
|
||||||
print('Next Date: $nextDate');
|
print('Next Date: $nextDate');
|
||||||
offset++;
|
offset++;
|
||||||
|
|
||||||
Duration duration = endDate.difference(nextDate);
|
Duration duration = localEndDate.difference(nextDate);
|
||||||
if (duration.inHours > 24) {
|
if (duration.inHours > 24) {
|
||||||
duration = Duration(hours: 24);
|
duration = Duration(hours: 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
dates[convertDateTimeToSqlDate(nextDate)] = duration;
|
dates[convertDateTimeToSqlDate(nextDate)] = duration;
|
||||||
} while (nextDate.isBefore(endDate.subtract(Duration(days: 1))));
|
} while (nextDate.isBefore(localEndDate.subtract(Duration(days: 1))));
|
||||||
|
|
||||||
print('returning: $dates');
|
print('returning: $dates');
|
||||||
return dates;
|
return dates;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:charts_common/common.dart';
|
import 'package:charts_common/common.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_state.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:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:memoize/memoize.dart';
|
import 'package:memoize/memoize.dart';
|
||||||
import 'package:built_collection/built_collection.dart';
|
import 'package:built_collection/built_collection.dart';
|
||||||
|
|
@ -376,12 +377,16 @@ List<ChartDataGroup> chartTasks(
|
||||||
print('Task: $task');
|
print('Task: $task');
|
||||||
print('Task - date: $date');
|
print('Task - date: $date');
|
||||||
|
|
||||||
|
final taskRate = taskRateSelector(
|
||||||
|
company: company, project: project, client: client);
|
||||||
|
final double amount = taskRate * round(duration.inSeconds / 3600, 3);
|
||||||
|
|
||||||
if (false) {
|
if (false) {
|
||||||
totals[STATUS_PAID][date] += 0;
|
totals[STATUS_PAID][date] += amount;
|
||||||
} else if (task.isInvoiced) {
|
} else if (task.isInvoiced) {
|
||||||
totals[STATUS_INVOICED][date] += 0;
|
totals[STATUS_INVOICED][date] += amount;
|
||||||
} else {
|
} else {
|
||||||
totals[STATUS_LOGGED][date] += duration.inHours;
|
totals[STATUS_LOGGED][date] += amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
counts[STATUS_LOGGED]++;
|
counts[STATUS_LOGGED]++;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue