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