import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart'; import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/prescription/prescription_checkout_screen.dart'; import 'package:doctor_app_flutter/screens/procedures/entity_list_fav_procedure.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:flutter/material.dart'; class AddFavPrescription extends StatefulWidget { final PrescriptionViewModel model; final PatiantInformtion patient; final String categoryID; const AddFavPrescription({Key key, this.model, this.patient, this.categoryID}) : super(key: key); @override _AddFavPrescriptionState createState() => _AddFavPrescriptionState(); } class _AddFavPrescriptionState extends State { MedicineViewModel model; PatiantInformtion patient; List entityList = List(); ProcedureTempleteDetailsModel groupProcedures; @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getProcedureTemplate(categoryID: widget.categoryID), builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold( isShowAppBar: false, baseViewModel: model, body: Column( children: [ Container( height: MediaQuery.of(context).size.height * 0.070, ), if (model.templateList.length != 0) Expanded( child: NetworkBaseView( baseViewModel: model, child: EntityListCheckboxSearchFavProceduresWidget( isProcedure: false, model: model, removeFavProcedure: (item) { setState(() { entityList.remove(item); }); }, addFavProcedure: (history) { setState(() { entityList.add(history); }); }, isEntityFavListSelected: (master) => isEntityListSelected(master), groupProcedures: groupProcedures, selectProcedures: (valasd) { setState(() { groupProcedures = valasd; }); }, ), ), ), Container( margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), child: Wrap( alignment: WrapAlignment.center, children: [ AppButton( title: 'Add Selected Prescription', color: Color(0xff359846), fontWeight: FontWeight.w700, onPressed: () { if (groupProcedures == null) { DrAppToastMsg.showErrorToast( 'Please Select item ', ); return; } Navigator.push( context, MaterialPageRoute( builder: (context) => PrescriptionCheckOutScreen( patient: widget.patient, model: widget.model, groupProcedures: groupProcedures, ), ), ); }, ), ], ), ), ], ), ), ); } bool isEntityListSelected(ProcedureTempleteDetailsModel masterKey) { Iterable history = entityList.where( (element) => masterKey.templateID == element.templateID && masterKey.procedureName == element.procedureName); if (history.length > 0) { return true; } return false; } }