advance paymen
This commit is contained in:
parent
7a816ed26e
commit
fc72d3562d
@ -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),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user