You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/models/search_all_requests_model.dart

119 lines
4.1 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:test_sa/extensions/context_extension.dart';
class SearchAllRequestsModel {
SearchByRequestNumberModel? requestNumber; // Now nullable
SearchByAssetNameModel? assetName; // Now nullable
SearchByAssetNoModel? assetNo; // Now nullable
SearchByManufactureModel? manufacture; // Now nullable
SearchBySNModel? sn; // Now nullable
SearchByRequestModel? model; // Now nullable
SearchAllRequestsBaseModel? searchBySelectedValue; // Now nullable
List<int>? statuses; // Now nullable
List<int>? typeTransaction; // Now nullable
DateTime? startDate, endDate; // Now nullable
bool isArchived = false;
SearchAllRequestsModel({
this.requestNumber,
this.assetName,
this.assetNo,
this.manufacture,
this.sn,
this.model,
this.statuses,
this.typeTransaction,
this.startDate,
this.endDate,
this.isArchived = false,
});
//older function
// void resetSearchValues() {
// requestNumber?.controller?.text = "";
// assetName?.controller?.text = "";
// assetNo?.controller?.text = "";
// manufacture?.controller?.text = "";
// sn?.controller?.text = "";
// model?.controller?.text = "";
// isArchived = false;
// }
void resetSearchValuesAndController({String? except}) {
final field = except?.toLowerCase();
debugPrint("selected tag is $field");
if (field != 'requestnumber') {
requestNumber?.controller?.text = "";
requestNumber?.value = null;
}
if (field != 'assetname') {
assetName?.controller?.text = "";
assetName?.value = null;
}
if (field != 'assetno') {
assetNo?.controller?.text = "";
assetNo?.value = null;
}
if (field != 'manufacture') {
manufacture?.controller?.text = "";
manufacture?.value = null;
}
if (field != 'sn') {
sn?.controller?.text = "";
sn?.value = null;
}
if (field != 'model') {
model?.controller?.text = "";
model?.value = null;
}
isArchived = false;
}
}
abstract class SearchAllRequestsBaseModel {
String? label; // Now nullable
String? value; // Now nullable
BuildContext? context; // Now nullable
TextInputType inputType;
TextEditingController? controller; // Now nullable
SearchAllRequestsBaseModel(this.context, {this.controller, this.label, this.value, this.inputType = TextInputType.text});
}
class SearchByRequestNumberModel extends SearchAllRequestsBaseModel {
SearchByRequestNumberModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.woNumber, value: value);
}
class SearchByAssetNameModel extends SearchAllRequestsBaseModel {
SearchByAssetNameModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.assetName, value: value);
}
class SearchByAssetNoModel extends SearchAllRequestsBaseModel {
SearchByAssetNoModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.assetNo, value: value);
}
class SearchByManufactureModel extends SearchAllRequestsBaseModel {
SearchByManufactureModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.manufacture, value: value);
}
class SearchBySNModel extends SearchAllRequestsBaseModel {
SearchBySNModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.sn, value: value);
}
class SearchByRequestModel extends SearchAllRequestsBaseModel {
SearchByRequestModel(BuildContext context, {TextEditingController? controller, String? value}) // Parameters now nullable
: super(context, controller: controller, label: context.translation.model, value: value);
}