Skip to content

Commit e6ba88b

Browse files
committed
Merge branch 'develop'
2 parents ad955c0 + cfe8f1b commit e6ba88b

File tree

3 files changed

+49
-4
lines changed

3 files changed

+49
-4
lines changed

lib/ui/app/forms/date_picker.dart

+11-2
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,19 @@ class _DatePickerState extends State<DatePicker> {
143143
value = value.replaceAll(RegExp(r'[^0-9]'), '');
144144

145145
if (value.length <= 2) {
146+
if (value.length == 1) {
147+
value = '0$value';
148+
}
149+
146150
firstPart = value;
147151
} else if (value.length == 3) {
148-
firstPart = '0' + value.substring(0, 1);
149-
secondPart = value.substring(1, 3);
152+
if (value.substring(0, 1) == '0') {
153+
firstPart = value.substring(0, 2);
154+
secondPart = '0' + value.substring(2, 3);
155+
} else {
156+
firstPart = '0' + value.substring(0, 1);
157+
secondPart = value.substring(1, 3);
158+
}
150159
} else {
151160
if (value.length == 5) {
152161
value = '0$value';

lib/ui/task/edit/task_edit_desktop.dart

+19-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
33
import 'package:invoiceninja_flutter/constants.dart';
44
import 'package:invoiceninja_flutter/data/models/models.dart';
5+
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
56
import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart';
67
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
78
import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
@@ -111,11 +112,27 @@ class _TaskEditDesktopState extends State<TaskEditDesktop> {
111112
final task = viewModel.task;
112113
final state = viewModel.state;
113114

115+
final company = state.company;
116+
final client = state.clientState.get(task.clientId);
114117
final taskTimes = task.getTaskTimes(sort: false);
115118
if (!taskTimes.any((taskTime) => taskTime.isEmpty)) {
116119
taskTimes.add(TaskTime().rebuild((b) => b..startDate = null));
117120
}
118121

122+
final rateLabel = localization.rate +
123+
' • ' +
124+
formatNumber(
125+
taskRateSelector(
126+
company: company,
127+
task: TaskEntity(),
128+
client: client,
129+
project: state.projectState.get(task.projectId),
130+
),
131+
context,
132+
currencyId: (client.currencyId ?? '').isNotEmpty
133+
? client.currencyId
134+
: company.currencyId);
135+
119136
return ListView(
120137
children: [
121138
Row(
@@ -201,8 +218,9 @@ class _TaskEditDesktopState extends State<TaskEditDesktop> {
201218
autocorrect: false,
202219
),
203220
DecoratedFormField(
221+
key: ValueKey('__rate__'),
204222
controller: _rateController,
205-
label: localization.rate,
223+
label: rateLabel,
206224
keyboardType: TextInputType.number,
207225
),
208226
DynamicSelector(

lib/ui/task/edit/task_edit_details.dart

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/foundation.dart';
22
import 'package:flutter/material.dart';
33
import 'package:invoiceninja_flutter/data/models/models.dart';
4+
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
45
import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart';
56
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
67
import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
@@ -100,6 +101,22 @@ class _TaskEditDetailsState extends State<TaskEditDetails> {
100101
final task = viewModel.task;
101102
final state = viewModel.state;
102103

104+
final company = state.company;
105+
final client = state.clientState.get(task.clientId);
106+
final rateLabel = localization.rate +
107+
' • ' +
108+
formatNumber(
109+
taskRateSelector(
110+
company: company,
111+
task: TaskEntity(),
112+
client: client,
113+
project: state.projectState.get(task.projectId),
114+
),
115+
context,
116+
currencyId: (client.currencyId ?? '').isNotEmpty
117+
? client.currencyId
118+
: company.currencyId);
119+
103120
return ListView(
104121
children: <Widget>[
105122
FormCard(
@@ -152,8 +169,9 @@ class _TaskEditDetailsState extends State<TaskEditDetails> {
152169
autocorrect: false,
153170
),
154171
DecoratedFormField(
172+
key: ValueKey('__rate__'),
155173
controller: _rateController,
156-
label: localization.rate,
174+
label: rateLabel,
157175
keyboardType: TextInputType.number,
158176
),
159177
DynamicSelector(

0 commit comments

Comments
 (0)