advance paymen

This commit is contained in:
Manish 2025-11-20 11:57:13 +05:30
parent 7a816ed26e
commit fc72d3562d

View File

@ -35,8 +35,8 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
} }
}); });
controller.searchQuery.listen((q) { _searchCtrl.addListener(() {
if (_searchCtrl.text != q) _searchCtrl.text = q; controller.searchQuery.value = _searchCtrl.text.trim();
}); });
} }
@ -58,19 +58,25 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
final bool isLandscape = final bool isLandscape =
constraints.maxWidth > constraints.maxHeight; constraints.maxWidth > constraints.maxHeight;
return GestureDetector( return RefreshIndicator(
onTap: () => FocusScope.of(context).unfocus(), onRefresh: () async {
child: RefreshIndicator( final emp = controller.selectedEmployee.value;
onRefresh: () async { if (emp != null) {
final emp = controller.selectedEmployee.value; await controller.fetchAdvancePayments(emp.id.toString());
if (emp != null) { }
await controller.fetchAdvancePayments(emp.id.toString()); },
color: Colors.white,
backgroundColor: contentTheme.primary,
strokeWidth: 2.5,
displacement: 60,
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
} }
}, },
color: Colors.white,
backgroundColor: contentTheme.primary,
strokeWidth: 2.5,
displacement: 60,
// ---------------- PORTRAIT (UNCHANGED) ---------------- // ---------------- PORTRAIT (UNCHANGED) ----------------
child: !isLandscape child: !isLandscape
@ -195,7 +201,13 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
child: TextField( child: TextField(
controller: _searchCtrl, controller: _searchCtrl,
focusNode: _searchFocus, focusNode: _searchFocus,
onChanged: (v) => controller.searchQuery.value = v.trim(), onTap: () {
Future.delayed(const Duration(milliseconds: 50), () {
if (mounted) {
FocusScope.of(context).requestFocus(_searchFocus);
}
});
},
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: contentPadding:
const EdgeInsets.symmetric(horizontal: 12, vertical: 0), const EdgeInsets.symmetric(horizontal: 12, vertical: 0),
@ -269,8 +281,12 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
return InkWell( return InkWell(
onTap: () { onTap: () {
controller.selectEmployee(e); controller.selectEmployee(e);
_searchCtrl.text = e.name; _searchCtrl
controller.searchQuery.value = e.name; ..text = e.name
..selection = TextSelection.fromPosition(
TextPosition(offset: e.name.length),
);
FocusScope.of(context).unfocus(); FocusScope.of(context).unfocus();
SystemChannels.textInput.invokeMethod('TextInput.hide'); SystemChannels.textInput.invokeMethod('TextInput.hide');
controller.employees.clear(); controller.employees.clear();
@ -397,8 +413,8 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
? DateFormat('dd MMM yyyy').format(parsedDate) ? DateFormat('dd MMM yyyy').format(parsedDate)
: (dateStr.isNotEmpty ? dateStr : ''); : (dateStr.isNotEmpty ? dateStr : '');
final formattedTime = // final formattedTime =
parsedDate != null ? DateFormat('hh:mm a').format(parsedDate) : ''; // parsedDate != null ? DateFormat('hh:mm a').format(parsedDate) : '';
final project = item.name ?? ''; final project = item.name ?? '';
final desc = item.title ?? ''; final desc = item.title ?? '';
@ -429,16 +445,16 @@ class _AdvancePaymentScreenState extends State<AdvancePaymentScreen>
style: style:
TextStyle(fontSize: 12, color: Colors.grey.shade600), TextStyle(fontSize: 12, color: Colors.grey.shade600),
), ),
if (formattedTime.isNotEmpty) ...[ // if (formattedTime.isNotEmpty) ...[
const SizedBox(width: 6), // const SizedBox(width: 6),
Text( // Text(
formattedTime, // formattedTime,
style: TextStyle( // style: TextStyle(
fontSize: 12, // fontSize: 12,
color: Colors.grey.shade500, // color: Colors.grey.shade500,
fontStyle: FontStyle.italic), // fontStyle: FontStyle.italic),
), // ),
] // ]
], ],
), ),
const SizedBox(height: 4), const SizedBox(height: 4),