fix
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
// ignore_for_file: always_specify_types, depend_on_referenced_packages, dead_code, dead_null_aware_expression, unused_local_variable, unused_import, sort_constructors_first, prefer_final_fields, prefer_const_constructors, deprecated_member_use, implicit_call_tearoffs
|
import 'package:firebase_data_connect/firebase_data_connect.dart';
|
||||||
import 'package:firebase_data_connect/src/core/ref.dart';
|
|
||||||
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
|
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
|
||||||
import 'package:krow_domain/krow_domain.dart';
|
import 'package:krow_domain/krow_domain.dart';
|
||||||
import '../../domain/repositories/billing_connector_repository.dart';
|
import '../../domain/repositories/billing_connector_repository.dart';
|
||||||
@@ -131,7 +130,9 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository {
|
|||||||
|
|
||||||
final List<dc.ListShiftRolesByBusinessAndDatesSummaryShiftRoles>
|
final List<dc.ListShiftRolesByBusinessAndDatesSummaryShiftRoles>
|
||||||
shiftRoles = result.data.shiftRoles;
|
shiftRoles = result.data.shiftRoles;
|
||||||
if (shiftRoles.isEmpty) return <InvoiceItem>[];
|
if (shiftRoles.isEmpty) {
|
||||||
|
return <InvoiceItem>[];
|
||||||
|
}
|
||||||
|
|
||||||
final Map<String, _RoleSummary> summary = <String, _RoleSummary>{};
|
final Map<String, _RoleSummary> summary = <String, _RoleSummary>{};
|
||||||
for (final dc.ListShiftRolesByBusinessAndDatesSummaryShiftRoles role
|
for (final dc.ListShiftRolesByBusinessAndDatesSummaryShiftRoles role
|
||||||
@@ -272,16 +273,17 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository {
|
|||||||
int breakMin = 0;
|
int breakMin = 0;
|
||||||
final String? breakType = app.shiftRole?.breakType?.toString();
|
final String? breakType = app.shiftRole?.breakType?.toString();
|
||||||
if (breakType != null) {
|
if (breakType != null) {
|
||||||
if (breakType.contains('10'))
|
if (breakType.contains('10')) {
|
||||||
breakMin = 10;
|
breakMin = 10;
|
||||||
else if (breakType.contains('15'))
|
} else if (breakType.contains('15')) {
|
||||||
breakMin = 15;
|
breakMin = 15;
|
||||||
else if (breakType.contains('30'))
|
} else if (breakType.contains('30')) {
|
||||||
breakMin = 30;
|
breakMin = 30;
|
||||||
else if (breakType.contains('45'))
|
} else if (breakType.contains('45')) {
|
||||||
breakMin = 45;
|
breakMin = 45;
|
||||||
else if (breakType.contains('60'))
|
} else if (breakType.contains('60')) {
|
||||||
breakMin = 60;
|
breakMin = 60;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return InvoiceWorker(
|
return InvoiceWorker(
|
||||||
@@ -324,9 +326,11 @@ class BillingConnectorRepositoryImpl implements BillingConnectorRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double _calculateTotalHours(List<dynamic> roles) {
|
double _calculateTotalHours(List<dynamic> roles) {
|
||||||
return roles.fold<double>(0.0, (sum, role) {
|
return roles.fold<double>(0.0, (double sum, dynamic role) {
|
||||||
final hours = role['hours'] ?? role['workHours'] ?? role['totalHours'];
|
final dynamic hours = role['hours'] ?? role['workHours'] ?? role['totalHours'];
|
||||||
if (hours is num) return sum + hours.toDouble();
|
if (hours is num) {
|
||||||
|
return sum + hours.toDouble();
|
||||||
|
}
|
||||||
return sum;
|
return sum;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// ignore_for_file: always_specify_types, depend_on_referenced_packages, dead_code, dead_null_aware_expression, unused_local_variable, unused_import, sort_constructors_first, prefer_final_fields, prefer_const_constructors, deprecated_member_use, implicit_call_tearoffs, implementation_imports
|
|
||||||
import 'package:design_system/design_system.dart';
|
import 'package:design_system/design_system.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
@@ -30,27 +29,24 @@ class OtpInputField extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _OtpInputFieldState extends State<OtpInputField> {
|
class _OtpInputFieldState extends State<OtpInputField> {
|
||||||
final List<TextEditingController> _controllers = List.generate(
|
final List<TextEditingController> _controllers = List<TextEditingController>.generate(
|
||||||
6,
|
6,
|
||||||
(_) => TextEditingController(),
|
(int _) => TextEditingController(),
|
||||||
);
|
);
|
||||||
final List<FocusNode> _focusNodes = List.generate(6, (_) => FocusNode());
|
final List<FocusNode> _focusNodes = List<FocusNode>.generate(6, (int _) => FocusNode());
|
||||||
|
|
||||||
/// Hidden field for E2E: Maestro inputText sends full OTP in one call;
|
/// Hidden field for E2E: Maestro inputText sends full OTP in one call;
|
||||||
/// the 6 visible boxes have maxLength:1 and would truncate.
|
/// the 6 visible boxes have maxLength:1 and would truncate.
|
||||||
late final TextEditingController _hiddenController;
|
|
||||||
late final FocusNode _hiddenFocusNode;
|
late final FocusNode _hiddenFocusNode;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_hiddenController = TextEditingController();
|
|
||||||
_hiddenFocusNode = FocusNode();
|
_hiddenFocusNode = FocusNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_hiddenController.dispose();
|
|
||||||
_hiddenFocusNode.dispose();
|
_hiddenFocusNode.dispose();
|
||||||
for (final TextEditingController controller in _controllers) {
|
for (final TextEditingController controller in _controllers) {
|
||||||
controller.dispose();
|
controller.dispose();
|
||||||
@@ -111,7 +107,7 @@ class _OtpInputFieldState extends State<OtpInputField> {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: List.generate(6, (int index) {
|
children: List<Widget>.generate(6, (int index) {
|
||||||
final TextField field = TextField(
|
final TextField field = TextField(
|
||||||
controller: _controllers[index],
|
controller: _controllers[index],
|
||||||
focusNode: _focusNodes[index],
|
focusNode: _focusNodes[index],
|
||||||
@@ -157,7 +153,6 @@ class _OtpInputFieldState extends State<OtpInputField> {
|
|||||||
child: Opacity(
|
child: Opacity(
|
||||||
opacity: 0.01,
|
opacity: 0.01,
|
||||||
child: TextField(
|
child: TextField(
|
||||||
controller: _hiddenController,
|
|
||||||
focusNode: _hiddenFocusNode,
|
focusNode: _hiddenFocusNode,
|
||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
inputFormatters: <TextInputFormatter>[
|
inputFormatters: <TextInputFormatter>[
|
||||||
|
|||||||
Reference in New Issue
Block a user