|
|
|
|
@ -6,11 +6,11 @@ import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/search_all_requests_model.dart';
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
|
|
|
|
|
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
|
|
|
|
|
import 'package:test_sa/new_views/pages/land_page/widgets/static_filter_buttons.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../../controllers/providers/api/all_requests_provider.dart';
|
|
|
|
|
import '../../../app_style/app_color.dart';
|
|
|
|
|
import '../../../common_widgets/app_lazy_loading.dart';
|
|
|
|
|
|
|
|
|
|
class AllRequestsFilterPage extends StatefulWidget {
|
|
|
|
|
@ -29,11 +29,30 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
search = widget.data;
|
|
|
|
|
if (search != null) {
|
|
|
|
|
search.requestNumber.controller.text = search.requestNumber.value;
|
|
|
|
|
search.assetName.controller.text = search.assetName.value;
|
|
|
|
|
search.assetNo.controller.text = search.assetNo.value;
|
|
|
|
|
search.manufacture.controller.text = search.manufacture.value;
|
|
|
|
|
search.sn.controller.text = search.sn.value;
|
|
|
|
|
search.model.controller.text = search.model.value;
|
|
|
|
|
}
|
|
|
|
|
super.initState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
if (search == null) {
|
|
|
|
|
search = SearchAllRequestsModel(
|
|
|
|
|
requestNumber: SearchByRequestNumberModel(context, controller: TextEditingController()),
|
|
|
|
|
assetName: SearchByAssetNameModel(context, controller: TextEditingController()),
|
|
|
|
|
assetNo: SearchByAssetNoModel(context, controller: TextEditingController()),
|
|
|
|
|
manufacture: SearchByManufactureModel(context, controller: TextEditingController()),
|
|
|
|
|
sn: SearchBySNModel(context, controller: TextEditingController()),
|
|
|
|
|
model: SearchByRequestModel(context, controller: TextEditingController()),
|
|
|
|
|
);
|
|
|
|
|
search.searchBySelectedValue = search.requestNumber;
|
|
|
|
|
}
|
|
|
|
|
final types = {
|
|
|
|
|
context.translation.serviceRequest: 1,
|
|
|
|
|
context.translation.preventiveMaintenance: 4,
|
|
|
|
|
@ -46,49 +65,27 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
|
|
|
|
|
context.translation.completed: 4,
|
|
|
|
|
context.translation.closed: 3,
|
|
|
|
|
};
|
|
|
|
|
if (search == null) {
|
|
|
|
|
search = SearchAllRequestsModel(
|
|
|
|
|
requestNumber: SearchByRequestNumberModel(context),
|
|
|
|
|
assetName: SearchByAssetNameModel(context),
|
|
|
|
|
assetNo: SearchByAssetNoModel(context),
|
|
|
|
|
manufacture: SearchByManufactureModel(context),
|
|
|
|
|
sn: SearchBySNModel(context),
|
|
|
|
|
model: SearchByRequestModel(context),
|
|
|
|
|
);
|
|
|
|
|
search.searchBySelectedValue = search.requestNumber;
|
|
|
|
|
}
|
|
|
|
|
return Scaffold(
|
|
|
|
|
appBar: AppBar(
|
|
|
|
|
automaticallyImplyLeading: false,
|
|
|
|
|
titleSpacing: 16,
|
|
|
|
|
title: Row(
|
|
|
|
|
children: [
|
|
|
|
|
const Icon(Icons.arrow_back_ios).onPress(() {
|
|
|
|
|
Navigator.of(context).pop();
|
|
|
|
|
}),
|
|
|
|
|
Text(
|
|
|
|
|
context.translation.filter,
|
|
|
|
|
style: AppTextStyles.heading3?.copyWith(fontWeight: FontWeight.w600, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
|
|
|
).expanded,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
appBar: DefaultAppBar(
|
|
|
|
|
title: context.translation.filter,
|
|
|
|
|
actions: [
|
|
|
|
|
Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
Text(
|
|
|
|
|
context.translation.reset,
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: const Color(0xFF4A8DB7)),
|
|
|
|
|
).paddingAll(8).onPress(() {
|
|
|
|
|
setState(() {
|
|
|
|
|
search.statuses.clear();
|
|
|
|
|
search.typeTransaction.clear();
|
|
|
|
|
search.startDate = null;
|
|
|
|
|
search.endDate = null;
|
|
|
|
|
});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
if (_showResetButton())
|
|
|
|
|
Row(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
Text(
|
|
|
|
|
context.translation.reset,
|
|
|
|
|
style: AppTextStyles.bodyText2.copyWith(color: const Color(0xFF4A8DB7)),
|
|
|
|
|
).paddingAll(8).onPress(() {
|
|
|
|
|
setState(() {
|
|
|
|
|
search.statuses?.clear();
|
|
|
|
|
search.typeTransaction?.clear();
|
|
|
|
|
search.startDate = null;
|
|
|
|
|
search.endDate = null;
|
|
|
|
|
});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
body: Column(
|
|
|
|
|
@ -104,16 +101,13 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
|
|
|
|
|
items: statuses,
|
|
|
|
|
onSelect: (value) {
|
|
|
|
|
if (value.isNotEmpty && value.last == 0) {
|
|
|
|
|
setState(() {
|
|
|
|
|
search.statuses = [0];
|
|
|
|
|
});
|
|
|
|
|
search.statuses = [0];
|
|
|
|
|
} else if (value.contains(0)) {
|
|
|
|
|
setState(() {
|
|
|
|
|
search.statuses.remove(0);
|
|
|
|
|
});
|
|
|
|
|
search.statuses.remove(0);
|
|
|
|
|
} else {
|
|
|
|
|
search.statuses = value;
|
|
|
|
|
}
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
16.height,
|
|
|
|
|
@ -124,6 +118,7 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
|
|
|
|
|
items: types,
|
|
|
|
|
onSelect: (value) {
|
|
|
|
|
search.typeTransaction = value;
|
|
|
|
|
setState(() {});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
16.height,
|
|
|
|
|
@ -171,4 +166,8 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
Navigator.of(context).pop(search);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool _showResetButton() {
|
|
|
|
|
return (search.statuses?.isNotEmpty ?? false) || (search.typeTransaction?.isNotEmpty ?? false) || (search.startDate != null) || (search.endDate != null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|