Limit loaded and less that 2 lakhs

This commit is contained in:
2025-10-31 13:17:31 +05:30
parent dfbdb3238d
commit 527111c1de

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:kmobile/api/services/limit_service.dart'; import 'package:kmobile/api/services/limit_service.dart';
import 'package:kmobile/app.dart';
import 'package:kmobile/di/injection.dart'; import 'package:kmobile/di/injection.dart';
import 'package:kmobile/l10n/app_localizations.dart'; import 'package:kmobile/l10n/app_localizations.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@@ -43,63 +42,74 @@ class _DailyLimitScreenState extends State<DailyLimitScreen> {
super.dispose(); super.dispose();
} }
Future<void> _showAddOrEditLimitDialog() async { Future<void> _showAddOrEditLimitDialog() async {
_limitController.text = _currentLimit?.toStringAsFixed(0) ?? ''; _limitController.text = _currentLimit?.toStringAsFixed(0) ?? '';
final newLimit = await showDialog<double>( final newLimit = await showDialog<double>(
context: context, context: context,
builder: (context) { builder: (dialogContext) {
final localizations = AppLocalizations.of(context); final localizations = AppLocalizations.of(dialogContext);
return AlertDialog( final theme = Theme.of(dialogContext);
title: Text( return AlertDialog(
_currentLimit == null title: Text(
? localizations.addLimit _currentLimit == null
: localizations.editLimit, ? localizations.addLimit
), : localizations.editLimit,
content: TextField( ),
controller: _limitController, content: TextField(
autofocus: true, controller: _limitController,
keyboardType: TextInputType.number, autofocus: true,
inputFormatters: [ keyboardType: TextInputType.number,
FilteringTextInputFormatter.allow(RegExp(r'^\d+')), inputFormatters: [
], FilteringTextInputFormatter.allow(RegExp(r'^\d+')),
decoration: InputDecoration(
labelText: localizations.limitAmount,
prefixText: '',
border: const OutlineInputBorder(),
),
),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(localizations.cancel),
),
ElevatedButton(
onPressed: () async {
final value = double.tryParse(_limitController.text);
if (value != null && value > 0) {
setState(() {
service.editLimit(value);
});
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const NavigationScaffold(),
),
);
}
},
child: Text(localizations.save),
),
], ],
); decoration: InputDecoration(
}, labelText: localizations.limitAmount,
prefixText: '',
border: const OutlineInputBorder(),
),
),
actions: [
TextButton(
onPressed: () => Navigator.of(dialogContext).pop(),
child: Text(localizations.cancel),
),
ElevatedButton(
onPressed: () {
final value = double.tryParse(_limitController.text);
if (value == null || value <= 0) return;
if (value > 200000) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: const Text("Limit To be Set must be less than 200000"),
behavior: SnackBarBehavior.floating,
backgroundColor: theme.colorScheme.error,
),
);
} else {
service.editLimit(value);
Navigator.of(dialogContext).pop(value);
}
},
child: Text(localizations.save),
),
],
);
},
);
if (newLimit != null) {
_loadlimits();
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text("Limit Updated"),
behavior: SnackBarBehavior.floating,
),
); );
if (newLimit != null) {
setState(() {
_currentLimit = newLimit;
});
}
} }
}
void _removeLimit() { void _removeLimit() {
setState(() { setState(() {