Fix some issue

This commit is contained in:
fhkhd
2024-02-13 17:17:42 +03:30
parent c448b695ec
commit d2b81bd4a6
9 changed files with 839 additions and 780 deletions
+35 -14
View File
@@ -36,6 +36,7 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
List<TextEditingController> labelsCTRL = [TextEditingController()]; List<TextEditingController> labelsCTRL = [TextEditingController()];
int curLabelVal = 1; int curLabelVal = 1;
@override @override
void initState() { void initState() {
descriptionCTRL.text = ''; descriptionCTRL.text = '';
@@ -73,8 +74,10 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5); // final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width; final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100; final double _deviceBlockSize = _devicewidth / 100;
return Consumer<CyclesProvider>(builder: (context, cyclesProvider, _) {
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
cyclesProvider.resetLoadingButton();
Navigator.pushReplacementNamed( Navigator.pushReplacementNamed(
context, context,
Routes.cycleResultScreen, Routes.cycleResultScreen,
@@ -89,7 +92,12 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: AppBar(
titleSpacing: -10, titleSpacing: -10,
title: Text('Cycles', style: TextStyle(color: Colors.white,),), title: Text(
'Cycles',
style: TextStyle(
color: Colors.white,
),
),
backgroundColor: Colors.black, backgroundColor: Colors.black,
leading: IconButton( leading: IconButton(
icon: Icon( icon: Icon(
@@ -97,8 +105,11 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
color: Colors.white, color: Colors.white,
size: 35, size: 35,
), ),
onPressed: () => Navigator.of(context) onPressed: () {
.pushReplacementNamed(Routes.cycleResultScreen), cyclesProvider.resetLoadingButton();
Navigator.of(context)
.pushReplacementNamed(Routes.cycleResultScreen);
},
), ),
), ),
body: Consumer<ConnectivityProvider>( body: Consumer<ConnectivityProvider>(
@@ -142,7 +153,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
controller: striizerIdCTRL, controller: striizerIdCTRL,
decoration: InputDecoration( decoration: InputDecoration(
icon: Icon( icon: Icon(
FontAwesomeIcons.sortNumericDown, FontAwesomeIcons
.sortNumericDown,
size: 7 * _deviceBlockSize, size: 7 * _deviceBlockSize,
), ),
labelStyle: TextStyle( labelStyle: TextStyle(
@@ -163,9 +175,11 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
), ),
keyboardType: keyboardType:
TextInputType.visiblePassword, TextInputType.visiblePassword,
textInputAction: TextInputAction.next, textInputAction:
TextInputAction.next,
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus( FocusScope.of(context)
.requestFocus(
_cycleNumberFocusNode); _cycleNumberFocusNode);
}, },
), ),
@@ -178,13 +192,16 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
(String result) { (String result) {
if (result == 'cancel') { if (result == 'cancel') {
print('cancel'); print('cancel');
} else if (result == 'error') { } else if (result ==
'error') {
print('error'); print('error');
} else if (result == 'access') { } else if (result ==
'access') {
print('access'); print('access');
} else { } else {
print(result); print(result);
striizerIdCTRL.text = result; striizerIdCTRL.text =
result;
} }
}, },
); );
@@ -238,8 +255,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
textInputAction: TextInputAction.next, textInputAction: TextInputAction.next,
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context) FocusScope.of(context).requestFocus(
.requestFocus(_descriptionFocosNode); _descriptionFocosNode);
}, },
), ),
SizedBox( SizedBox(
@@ -253,7 +270,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
height: 20.0, height: 20.0,
), ),
Container( Container(
margin: EdgeInsets.symmetric(vertical: 10), margin:
EdgeInsets.symmetric(vertical: 10),
child: Text( child: Text(
'Labels included', 'Labels included',
style: TextStyle( style: TextStyle(
@@ -268,7 +286,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
ListView.builder( ListView.builder(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (ctx, index) => AddLabelBox( itemBuilder: (ctx, index) =>
AddLabelBox(
text: 'Select Labels included', text: 'Select Labels included',
iconColor: kPinkSub, iconColor: kPinkSub,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
@@ -279,7 +298,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
cycleProvider.initialLabelValue, cycleProvider.initialLabelValue,
index: index, index: index,
hasRemoveButton: hasRemoveButton:
cycleProvider.labelValues.length > 1 cycleProvider.labelValues.length >
1
? true ? true
: false, : false,
), ),
@@ -344,5 +364,6 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
), ),
), ),
); );
});
} }
} }
+49 -21
View File
@@ -31,11 +31,13 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
final _form = GlobalKey<FormState>(); final _form = GlobalKey<FormState>();
bool isInit = true; bool isInit = true;
// String? packageId; // String? packageId;
// String? previousRoute; // String? previousRoute;
List<TextEditingController> labelsCTRL = [TextEditingController()]; List<TextEditingController> labelsCTRL = [TextEditingController()];
int curLabelVal = 1; int curLabelVal = 1;
@override @override
void initState() { void initState() {
sDateCTRL.text = DateEditor.DateFormat('y-M-d').format(DateTime.now()); sDateCTRL.text = DateEditor.DateFormat('y-M-d').format(DateTime.now());
@@ -72,8 +74,11 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
final double _devicewidth = _media.size.width; final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100; final double _deviceBlockSize = _devicewidth / 100;
// String initialLabelValue; // String initialLabelValue;
return Consumer<LabelsProvider>(
builder: (context, labelsProvider, _) {
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
labelsProvider.resetLoadingButton();
Navigator.pushReplacementNamed( Navigator.pushReplacementNamed(
context, context,
Routes.labelResultScreen, Routes.labelResultScreen,
@@ -88,7 +93,12 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: AppBar(
titleSpacing: -10, titleSpacing: -10,
title: Text('Labels', style: TextStyle(color: Colors.white,),), title: Text(
'Labels',
style: TextStyle(
color: Colors.white,
),
),
backgroundColor: Colors.black, backgroundColor: Colors.black,
leading: IconButton( leading: IconButton(
icon: Icon( icon: Icon(
@@ -96,8 +106,11 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
color: Colors.white, color: Colors.white,
size: 35, size: 35,
), ),
onPressed: () => Navigator.of(context) onPressed: () {
.pushReplacementNamed(Routes.labelResultScreen), labelsProvider.resetLoadingButton();
Navigator.of(context)
.pushReplacementNamed(Routes.labelResultScreen);
},
), ),
), ),
body: Consumer<ConnectivityProvider>( body: Consumer<ConnectivityProvider>(
@@ -154,10 +167,12 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
labelText: 'Strilizer ID', labelText: 'Strilizer ID',
contentPadding: contentPadding:
EdgeInsets.symmetric( EdgeInsets.symmetric(
vertical: 2, horizontal: 3), vertical: 2,
horizontal: 3),
labelStyle: TextStyle( labelStyle: TextStyle(
fontWeight: FontWeight.w100, fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize, fontSize:
4 * _deviceBlockSize,
), ),
), ),
style: TextStyle( style: TextStyle(
@@ -166,9 +181,11 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
), ),
keyboardType: keyboardType:
TextInputType.visiblePassword, TextInputType.visiblePassword,
textInputAction: TextInputAction.next, textInputAction:
TextInputAction.next,
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus( FocusScope.of(context)
.requestFocus(
_cycleNumberFocusNode); _cycleNumberFocusNode);
}, },
), ),
@@ -181,13 +198,16 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
(String result) { (String result) {
if (result == 'cancel') { if (result == 'cancel') {
print('cancel'); print('cancel');
} else if (result == 'error') { } else if (result ==
'error') {
print('error'); print('error');
} else if (result == 'access') { } else if (result ==
'access') {
print('access'); print('access');
} else { } else {
print(result); print(result);
striizerIdCTRL.text = result; striizerIdCTRL.text =
result;
} }
}, },
); );
@@ -216,7 +236,9 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
setState( setState(
() { () {
lotNumberCTRL.text = lotNumberCTRL.text =
striizerIdCTRL.text + ' - ' + val; striizerIdCTRL.text +
' - ' +
val;
}, },
); );
}, },
@@ -275,13 +297,15 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize, fontSize: 5 * _deviceBlockSize,
), ),
keyboardType: TextInputType.visiblePassword, keyboardType:
TextInputType.visiblePassword,
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
Container( Container(
margin: EdgeInsets.symmetric(vertical: 10), margin:
EdgeInsets.symmetric(vertical: 10),
child: Text( child: Text(
'Packages included', 'Packages included',
style: TextStyle( style: TextStyle(
@@ -294,22 +318,23 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
Consumer<LabelsProvider>( Consumer<LabelsProvider>(
builder: (ctx, labelProvider, _) { builder: (ctx, labelProvider, _) {
return ListView.builder( return ListView.builder(
physics: NeverScrollableScrollPhysics(), physics:
NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (ctx, index) => itemBuilder: (ctx, index) =>
AddPackageBox( AddPackageBox(
text: 'Package ID', text: 'Package ID',
iconColor: kLightBlueSub, iconColor: kLightBlueSub,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
values: values: labelProvider
labelProvider.packageValues[index], .packageValues[index],
vals: labelProvider.packageVals, vals: labelProvider.packageVals,
initialLabelValue: initialLabelValue: labelProvider
labelProvider.initialPackageValue, .initialPackageValue,
index: index, index: index,
), ),
itemCount: itemCount: labelProvider
labelProvider.packageValues.length, .packageValues.length,
); );
}), }),
SizedBox( SizedBox(
@@ -336,7 +361,8 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
lotNumberCTRL: lotNumberCTRL, lotNumberCTRL: lotNumberCTRL,
cycleNumberCTRL: cycleNumberCTRL, cycleNumberCTRL: cycleNumberCTRL,
sDateCTRL: sDateCTRL, sDateCTRL: sDateCTRL,
packageValue: Provider.of<LabelsProvider>( packageValue:
Provider.of<LabelsProvider>(
context, context,
listen: false, listen: false,
).packageValues, ).packageValues,
@@ -358,5 +384,7 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
), ),
), ),
); );
},
);
} }
} }
+28 -14
View File
@@ -21,6 +21,7 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
final _packageUdiFocusNode = FocusNode(); final _packageUdiFocusNode = FocusNode();
final _descriptionFocusNode = FocusNode(); final _descriptionFocusNode = FocusNode();
TextEditingController descriptionCTRL = new TextEditingController(); TextEditingController descriptionCTRL = new TextEditingController();
// TextEditingController udiCTRL = new TextEditingController(); // TextEditingController udiCTRL = new TextEditingController();
TextEditingController nameCTRL = new TextEditingController(); TextEditingController nameCTRL = new TextEditingController();
TextEditingController dateCTRL = new TextEditingController(); TextEditingController dateCTRL = new TextEditingController();
@@ -30,6 +31,7 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
PackageFilterObject? filters; PackageFilterObject? filters;
int curLabelVal = 1; int curLabelVal = 1;
@override @override
void initState() { void initState() {
descriptionCTRL.text = ''; descriptionCTRL.text = '';
@@ -62,8 +64,11 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
final _media = MediaQuery.of(context); final _media = MediaQuery.of(context);
final double _devicewidth = _media.size.width; final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100; final double _deviceBlockSize = _devicewidth / 100;
return Consumer<PackageProvider>(
builder: (context, packageProvider, _) {
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
packageProvider.resetLoadingButton();
Navigator.pushReplacementNamed( Navigator.pushReplacementNamed(
context, context,
Routes.packageResultScreen, Routes.packageResultScreen,
@@ -91,8 +96,11 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
color: Colors.white, color: Colors.white,
size: 35, size: 35,
), ),
onPressed: () => Navigator.of(context) onPressed: () {
.pushReplacementNamed(Routes.packageResultScreen), packageProvider.resetLoadingButton();
Navigator.of(context)
.pushReplacementNamed(Routes.packageResultScreen);
},
), ),
), ),
body: Consumer<ConnectivityProvider>( body: Consumer<ConnectivityProvider>(
@@ -152,8 +160,8 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
textInputAction: TextInputAction.next, textInputAction: TextInputAction.next,
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context) FocusScope.of(context).requestFocus(
.requestFocus(_packageUdiFocusNode); _packageUdiFocusNode);
}, },
), ),
SizedBox( SizedBox(
@@ -197,7 +205,8 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
// height: 20, // height: 20,
// ), // ),
Container( Container(
margin: EdgeInsets.symmetric(vertical: 5), margin:
EdgeInsets.symmetric(vertical: 5),
child: Text( child: Text(
'Items included', 'Items included',
style: TextStyle( style: TextStyle(
@@ -210,22 +219,24 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
Consumer<PackageProvider>( Consumer<PackageProvider>(
builder: (ctx, packageProvider, _) => builder: (ctx, packageProvider, _) =>
ListView.builder( ListView.builder(
physics: NeverScrollableScrollPhysics(), physics:
NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (ctx, index) => AddItemBox( itemBuilder: (ctx, index) =>
AddItemBox(
text: 'Select Items Included', text: 'Select Items Included',
iconColor: kPurpleSub, iconColor: kPurpleSub,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
values: values: packageProvider
packageProvider.itemValues[index], .itemValues[index],
vals: packageProvider.itemVals, vals: packageProvider.itemVals,
initialItemValue: initialItemValue: packageProvider
packageProvider.initialItemValue, .initialItemValue,
index: index, index: index,
// filteredItems: // filteredItems:
// packageProvider.filteredItems!, // packageProvider.filteredItems!,
hasRemoveButton: hasRemoveButton: packageProvider
packageProvider.itemValues.length > .itemValues.length >
1 1
? true ? true
: false, : false,
@@ -267,7 +278,8 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
), ),
PackageAddSaveButton( PackageAddSaveButton(
form: _form, form: _form,
itemValues: Provider.of<PackageProvider>( itemValues:
Provider.of<PackageProvider>(
context, context,
listen: false, listen: false,
).itemValues, ).itemValues,
@@ -291,5 +303,7 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
), ),
), ),
); );
},
);
} }
} }
+2 -1
View File
@@ -110,10 +110,11 @@ class CyclesProvider extends ChangeNotifier {
result.add(label['id'].toString()); result.add(label['id'].toString());
// print(hospital['name']); // print(hospital['name']);
} }
if (result.isEmpty) result.add("");
labelVals = result; labelVals = result;
initialLabelValue = labelVals[0]; initialLabelValue = labelVals[0];
TextEditingController newLbl = new TextEditingController(); TextEditingController newLbl = new TextEditingController();
newLbl.text = initialLabelValue; newLbl.text = "";
labelValues.add(newLbl); labelValues.add(newLbl);
notifyListeners(); notifyListeners();
return result; return result;
+8 -7
View File
@@ -103,16 +103,17 @@ class LabelsProvider extends ChangeNotifier {
// "${package['name']} - ${package['package_id'] != null ? package['package_id'] : ''}"); // "${package['name']} - ${package['package_id'] != null ? package['package_id'] : ''}");
result.add("${package['id'].toString()} - ${package['name'].toString()}"); result.add("${package['id'].toString()} - ${package['name'].toString()}");
} }
if (result.isEmpty) result.add("");
packageVals = result; packageVals = result;
initialPackageValue = packageId ?? packageVals[0]; initialPackageValue = packageId ?? packageVals[0];
TextEditingController newLbl = new TextEditingController(); TextEditingController newLbl = new TextEditingController();
newLbl.text = initialPackageValue; newLbl.text = "";
packageValues.add(newLbl); packageValues.add(newLbl);
notifyListeners(); notifyListeners();
return result; return result;
} }
Future<void> createLabelResult(lotNumber, cycleNumber, sterileDate, packages, Future<void> createLabelResult(lotNumber, cycleNumber, sterileDate, packageId,
expireDate, sterilizerId) async { expireDate, sterilizerId) async {
// List<Map<String, Object>> pkgs = []; // List<Map<String, Object>> pkgs = [];
// for (var package in packages) { // for (var package in packages) {
@@ -126,7 +127,7 @@ class LabelsProvider extends ChangeNotifier {
'sterilizer_id': sterilizerId, 'sterilizer_id': sterilizerId,
'cycle_number': cycleNumber, 'cycle_number': cycleNumber,
'lot_number': lotNumber, 'lot_number': lotNumber,
'package_id': packages, 'package_id': packageId,
}, },
), ),
headers: { headers: {
@@ -268,8 +269,8 @@ class LabelsProvider extends ChangeNotifier {
LabelResultObject( LabelResultObject(
expireDate: item['expire_date'], expireDate: item['expire_date'],
id: item['id'].toString(), id: item['id'].toString(),
package: item['package']['name'], package: item['package'] != null ? item['package']['name'].toString() : ' ',
packageId: item['package']['id'].toString(), packageId: item['package'] != null ? item['package']['id'].toString() : ' ',
), ),
); );
} }
@@ -303,8 +304,8 @@ class LabelsProvider extends ChangeNotifier {
print(data); print(data);
result = LabelDetailsObject( result = LabelDetailsObject(
id: data['id'].toString(), id: data['id'].toString(),
package: data['package']['name'] != null ? data['package']['name'] : '', package: data['package'] != null ? data['package']['name'] : '',
packageId: data['package']['id'].toString() != 'null' packageId: data['package'] != null
? data['package']['id'].toString() ? data['package']['id'].toString()
: '', : '',
hospitalName: data['user']['medical_center']['name'], hospitalName: data['user']['medical_center']['name'],
@@ -112,6 +112,12 @@ class AddLabelBox extends StatelessWidget {
const EdgeInsets.symmetric(horizontal: 0), const EdgeInsets.symmetric(horizontal: 0),
child: TextFormField( child: TextFormField(
controller: values, controller: values,
validator: (val) {
if (val!.isEmpty) {
return 'Label required!';
}
return null;
},
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: EdgeInsets.only( contentPadding: EdgeInsets.only(
bottom: 12, bottom: 12,
@@ -49,23 +49,6 @@ class CycleAddSaveButton extends StatelessWidget {
descriptionCTRL.text, descriptionCTRL.text,
striizerIdCTRL.text, striizerIdCTRL.text,
); );
showDialog(
context: context,
builder: (ctx) => AlertDialog(
content: Text('Cycle added.'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('Ok'),
)
],
),
).then((_) {
Navigator.of(context)
.pushReplacementNamed(Routes.cycleResultScreen);
});
Navigator.of(context).pushReplacementNamed(Routes.cycleResultScreen); Navigator.of(context).pushReplacementNamed(Routes.cycleResultScreen);
Fluttertoast.showToast( Fluttertoast.showToast(
msg: "Cycle added.", msg: "Cycle added.",
@@ -109,6 +109,12 @@ class AddPackageBox extends StatelessWidget {
const EdgeInsets.symmetric(horizontal: 0), const EdgeInsets.symmetric(horizontal: 0),
child: TextFormField( child: TextFormField(
controller: values, controller: values,
validator: (val) {
if (val!.isEmpty) {
return 'Package required!';
}
return null;
},
decoration: InputDecoration( decoration: InputDecoration(
contentPadding: EdgeInsets.only( contentPadding: EdgeInsets.only(
bottom: 12, bottom: 12,
@@ -39,10 +39,9 @@ class LabelAddSaveButton extends StatelessWidget {
if (!_form.currentState!.validate()) { if (!_form.currentState!.validate()) {
return; return;
} }
List<String> packages = []; int packageId;
for (TextEditingController package in packageValue) { var pacagecValues = packageValue[0].text.split(" ");
packages.add(package.text); packageId = int.parse(pacagecValues[0]);
}
await Provider.of<LabelsProvider>(context, listen: false) await Provider.of<LabelsProvider>(context, listen: false)
.createLabelResult( .createLabelResult(
lotNumberCTRL.text, lotNumberCTRL.text,
@@ -50,7 +49,7 @@ class LabelAddSaveButton extends StatelessWidget {
sDateCTRL.text, sDateCTRL.text,
// sDateValue, // sDateValue,
// {'id': packageValue[0], 'name': packageValue[1]}, // {'id': packageValue[0], 'name': packageValue[1]},
packages[0], packageId,
eDateCTRL.text, eDateCTRL.text,
// eDateValue, // eDateValue,
striizerIdCTRL.text, striizerIdCTRL.text,