Tasks
This commit is contained in:
parent
e2923ef7d5
commit
0d390c221e
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/data/models/company_model.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
part 'task_model.g.dart';
|
part 'task_model.g.dart';
|
||||||
|
|
||||||
|
|
@ -87,6 +88,30 @@ abstract class TaskEntity extends Object
|
||||||
|
|
||||||
int get duration;
|
int get duration;
|
||||||
|
|
||||||
|
List<List <int>> get timeDetails {
|
||||||
|
final List<List <int>> details = [];
|
||||||
|
|
||||||
|
final List<dynamic> log = jsonDecode(timeLog);
|
||||||
|
log.forEach((dynamic detail) {
|
||||||
|
details.add([
|
||||||
|
(detail as List)[0],
|
||||||
|
(detail as List)[1],
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
return details;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get calculateDuration {
|
||||||
|
int duration = 0;
|
||||||
|
|
||||||
|
timeDetails.forEach((detail) {
|
||||||
|
duration += detail[1] - detail[0];
|
||||||
|
});
|
||||||
|
|
||||||
|
return duration;
|
||||||
|
}
|
||||||
|
|
||||||
@nullable
|
@nullable
|
||||||
@BuiltValueField(wireName: 'invoice_id')
|
@BuiltValueField(wireName: 'invoice_id')
|
||||||
int get invoiceId;
|
int get invoiceId;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/icon_message.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/one_value_header.dart';
|
import 'package:invoiceninja_flutter/ui/app/one_value_header.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/task/view/task_view_vm.dart';
|
import 'package:invoiceninja_flutter/ui/task/view/task_view_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
|
|
@ -49,7 +50,7 @@ class _TaskViewState extends State<TaskView> {
|
||||||
final widgets = <Widget>[
|
final widgets = <Widget>[
|
||||||
OneValueHeader(
|
OneValueHeader(
|
||||||
label: localization.duration,
|
label: localization.duration,
|
||||||
value: '',
|
value: task.calculateDuration.toString(),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue