update allergies

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

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

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

Loading…
Cancel
Save