update allergies

merge-requests/452/head
Elham Rababah 4 years ago
parent 1330d680ab
commit df3b51b957

@ -24,7 +24,7 @@ import 'package:provider/provider.dart';
import '../custom_validation_error.dart';
class UpdateAllergiesWidget extends StatefulWidget {
final List<MySelectedAllergy> myAllergiesList;
List<MySelectedAllergy> myAllergiesList;
UpdateAllergiesWidget({Key key, this.myAllergiesList});
@ -36,6 +36,11 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
changeAllState() {
setState(() {
});
}
return Column(
children: [
@ -48,7 +53,7 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
fontSize: 13.5,
borderRadius: 12,
onTapTextFields: () {
openAllergiesList(context);
openAllergiesList(context, changeAllState);
},
readOnly: true,
suffixIcon: EvaIcons.plusCircleOutline,
@ -188,15 +193,23 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
print(allergy);
}
openAllergiesList(BuildContext context) {
openAllergiesList(BuildContext context, Function changeParentState) {
showModalBottomSheet(
backgroundColor: Colors.white,
isScrollControlled: true,
isDismissible: false,
context: context,
builder: (context) {
return AddAllergies(
myAllergiesList: widget.myAllergiesList,
addAllergiesFun: (){}
addAllergiesFun: (List<MySelectedAllergy> mySelectedAllergy){
setState(() {
widget.myAllergiesList = [...mySelectedAllergy];
});
changeParentState();
Navigator.of(context).pop();
}
);
});
}
@ -358,10 +371,11 @@ class _AddAllergiesState extends State<AddAllergies> {
addAllergy: (MySelectedAllergy mySelectedAllergy){
AddAllergyLocally(mySelectedAllergy);
},
addSelectedAllergy: (){
// widget.addSelectedHistories();
},
addSelectedAllergy: ()=>
widget.addAllergiesFun(myAllergiesListLocal)
,
isServiceSelected: (master) =>isServiceSelected(master),
getServiceSelectedAllergy: (master)=>getSelectedAllergy(master),
),
),
),
@ -564,17 +578,29 @@ class _AddAllergiesState extends State<AddAllergies> {
}
isServiceSelected(MasterKeyModel masterKey) {
Iterable<MySelectedAllergy> history =
Iterable<MySelectedAllergy> allergy =
myAllergiesListLocal.where((element) =>
masterKey.id == element.selectedAllergy.id &&
masterKey.typeId == element.selectedAllergy.typeId &&
element.isChecked);
if (history.length > 0) {
if (allergy.length > 0) {
return true;
}
return false;
}
MySelectedAllergy getSelectedAllergy(MasterKeyModel masterKey) {
Iterable<MySelectedAllergy> allergy =
myAllergiesListLocal.where((element) =>
masterKey.id == element.selectedAllergy.id &&
masterKey.typeId == element.selectedAllergy.typeId &&
element.isChecked);
if (allergy.length > 0) {
return allergy.first;
}
return null;
}
AddAllergyLocally(MySelectedAllergy mySelectedAllergy) {
if (
mySelectedAllergy.selectedAllergy == null) {

@ -16,10 +16,12 @@ import 'dialogs/master_key_dailog.dart';
class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget {
final SOAPViewModel model;
final Function addSelectedAllergy;
final Function () addSelectedAllergy;
final Function(MasterKeyModel) removeAllergy;
final Function(MySelectedAllergy mySelectedAllergy) addAllergy;
final bool Function(MasterKeyModel) isServiceSelected;
final MySelectedAllergy Function(MasterKeyModel) getServiceSelectedAllergy;
final List<MasterKeyModel> masterList;
final String buttonName;
final String hintSearchText;
@ -33,7 +35,8 @@ class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget {
this.addAllergy,
this.isServiceSelected,
this.buttonName,
this.hintSearchText})
this.hintSearchText,
this.getServiceSelectedAllergy})
: super(key: key);
@override
@ -89,13 +92,29 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
child: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
TextEditingController remarkController = TextEditingController(text: items[index].remarks);
TextEditingController severityController = TextEditingController(text: _selectedAllergySeverity!= null ?projectViewModel
.isArabic
? _selectedAllergySeverity
.nameAr
: _selectedAllergySeverity
.nameEn: null);
bool isSelected = widget.isServiceSelected(
items[index]);
MySelectedAllergy mySelectedAllergy;
if (isSelected) {
mySelectedAllergy = widget
.getServiceSelectedAllergy(
items[index]);
}
TextEditingController remarkController = TextEditingController(
text: isSelected ? mySelectedAllergy
.remark : null);
TextEditingController severityController = TextEditingController(
text: isSelected ? mySelectedAllergy
.selectedAllergySeverity != null
? projectViewModel
.isArabic
? mySelectedAllergy
.selectedAllergySeverity
.nameAr
: mySelectedAllergy
.selectedAllergySeverity
.nameEn
: null : null);
return Column(
children: [
InkWell(
@ -104,18 +123,22 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
if (widget.isServiceSelected(
items[index])) {
widget
.removeAllergy(items[index]);
.removeAllergy(
items[index]);
} else {
// TODO add Allergy
MySelectedAllergy
mySelectedAllergy =
new MySelectedAllergy(
selectedAllergy:
items[index],
selectedAllergySeverity:
_selectedAllergySeverity, remark: "fdfdf", isChecked: true);
widget.addAllergy(mySelectedAllergy);
mySelectedAllergy =
new MySelectedAllergy(
selectedAllergy:
items[index],
selectedAllergySeverity:
_selectedAllergySeverity,
remark: null,
isChecked: true);
widget.addAllergy(
mySelectedAllergy);
}
});
},
@ -184,16 +207,9 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
okFunction:
(selectedValue) {
setState(() {
_selectedAllergySeverity =
mySelectedAllergy
.selectedAllergySeverity =
selectedValue;
severityController
.text = projectViewModel
.isArabic
? _selectedAllergySeverity
.nameAr
: _selectedAllergySeverity
.nameEn;
});
},
);
@ -209,13 +225,15 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
}
: null,
hasLabelText:
severityController.text !=
''
mySelectedAllergy
.selectedAllergySeverity !=
null
? true
: false,
showLabelText: true,
hintText:
TranslationBase.of(context)
TranslationBase
.of(context)
.selectSeverity,
fontSize: 13.5,
readOnly: true,
@ -226,7 +244,8 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
controller: severityController,
validator: (value) {
if (value == null)
return TranslationBase.of(
return TranslationBase
.of(
context)
.emptyMessage;
else
@ -252,7 +271,8 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
? true
: false,
showLabelText: true,
hintText: TranslationBase.of(
hintText: TranslationBase
.of(
context)
.remarks,
fontSize: 13.5,
@ -260,10 +280,22 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
fontWeight: FontWeight.w600,
maxLines: 25,
minLines: 10,
controller: remarkController,
initialValue: isSelected
? mySelectedAllergy
.remark : '',
// controller: remarkControlle
onChanged: (value) {
if (isSelected) {
mySelectedAllergy
.remark = value;
};
},
validator: (value) {
if (value == null)
return TranslationBase.of(
return TranslationBase
.of(
context)
.emptyMessage;
else
@ -460,8 +492,7 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState
),
if (widget.model.state == ViewState.Idle)
AppButton(
title: widget.buttonName ??
TranslationBase.of(context).addSelectedHistories,
title: "Add Selected Allergy",
padding: 10,
color: Color(0xFF359846),
onPressed: () {

Loading…
Cancel
Save