This commit is contained in:
HooDie
2023-11-11 19:57:09 +03:30
parent b567d4dac9
commit f43f5cc54f
41 changed files with 1181 additions and 399 deletions
BIN
View File
Binary file not shown.
+2
View File
@@ -42,9 +42,11 @@ class Routes {
static const myItemsDetailScreen = '/MyItemsDetailScreen'; static const myItemsDetailScreen = '/MyItemsDetailScreen';
static const itemsTransferScreen = '/ItemsTransferScreen'; static const itemsTransferScreen = '/ItemsTransferScreen';
static const myItemsHistoryScreen = '/MyItemsHistoryScreen'; static const myItemsHistoryScreen = '/MyItemsHistoryScreen';
static const myItemsScanScreen = '/MyItemsScanScreen';
static const myPackagesResultScreen = '/MyPackagesResultScreen'; static const myPackagesResultScreen = '/MyPackagesResultScreen';
static const myPackagesFilterScreen = '/MyPackagesFilterScreen'; static const myPackagesFilterScreen = '/MyPackagesFilterScreen';
static const myPackagesDetailScreen = '/MyPackagesDetailScreen'; static const myPackagesDetailScreen = '/MyPackagesDetailScreen';
static const packagesTransferScreen = '/PackagesTransferScreen'; static const packagesTransferScreen = '/PackagesTransferScreen';
static const myPackagesHistoryScreen = '/MyPackagesHistoryScreen'; static const myPackagesHistoryScreen = '/MyPackagesHistoryScreen';
static const myPackagesScanScreen = '/MyPackagesScanScreen';
} }
+4
View File
@@ -10,11 +10,13 @@ import 'package:cssd/pages/MyItemsPages/Result/my_items_result_screen.dart';
import 'package:cssd/pages/MyItemsPages/my_items_detail_screen.dart'; import 'package:cssd/pages/MyItemsPages/my_items_detail_screen.dart';
import 'package:cssd/pages/MyItemsPages/my_items_filter_screen.dart'; import 'package:cssd/pages/MyItemsPages/my_items_filter_screen.dart';
import 'package:cssd/pages/MyItemsPages/my_items_history_screen.dart'; import 'package:cssd/pages/MyItemsPages/my_items_history_screen.dart';
import 'package:cssd/pages/MyItemsPages/my_items_scan_screen.dart';
import 'package:cssd/pages/MyItemsPages/my_items_transfer_screen.dart'; import 'package:cssd/pages/MyItemsPages/my_items_transfer_screen.dart';
import 'package:cssd/pages/MyPackagesPages/Result/my_packages_result_screen.dart'; import 'package:cssd/pages/MyPackagesPages/Result/my_packages_result_screen.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_detail_screen.dart'; import 'package:cssd/pages/MyPackagesPages/my_packages_detail_screen.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_filter_screen.dart'; import 'package:cssd/pages/MyPackagesPages/my_packages_filter_screen.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_history_screen.dart'; import 'package:cssd/pages/MyPackagesPages/my_packages_history_screen.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_scan_screen.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_transfer_screen.dart'; import 'package:cssd/pages/MyPackagesPages/my_packages_transfer_screen.dart';
import 'package:cssd/pages/PackagePages/package_add_screen.dart'; import 'package:cssd/pages/PackagePages/package_add_screen.dart';
import 'package:cssd/pages/PackagePages/package_detail_screen.dart'; import 'package:cssd/pages/PackagePages/package_detail_screen.dart';
@@ -182,6 +184,7 @@ class MyApp extends StatelessWidget {
Routes.myItemsFilterScreen: (ctx) => MyItemsFilterScreen(), Routes.myItemsFilterScreen: (ctx) => MyItemsFilterScreen(),
Routes.myItemsDetailScreen: (ctx) => MyItemsDetailScreen(), Routes.myItemsDetailScreen: (ctx) => MyItemsDetailScreen(),
Routes.itemsTransferScreen: (ctx) => ItemsTransferScreen(), Routes.itemsTransferScreen: (ctx) => ItemsTransferScreen(),
Routes.myItemsScanScreen: (ctx) => MyItemsScanScreen(),
Routes.myItemsHistoryScreen: (ctx) => MyItemsHistoryScreen(), Routes.myItemsHistoryScreen: (ctx) => MyItemsHistoryScreen(),
Routes.myPackagesResultScreen: (ctx) => Routes.myPackagesResultScreen: (ctx) =>
MyPackagesResultScreen(), MyPackagesResultScreen(),
@@ -191,6 +194,7 @@ class MyApp extends StatelessWidget {
Routes.packagesTransferScreen: (ctx) => PackageTransferScreen(), Routes.packagesTransferScreen: (ctx) => PackageTransferScreen(),
Routes.myPackagesHistoryScreen: (ctx) => Routes.myPackagesHistoryScreen: (ctx) =>
MyPackagesHistoryScreen(), MyPackagesHistoryScreen(),
Routes.myPackagesScanScreen: (ctx) => MyPackagesScanScreen(),
}, },
); );
}, },
+3 -3
View File
@@ -40,12 +40,12 @@ class MyPackageResultObject extends Equatable {
class MyPackageFilterObject extends Equatable { class MyPackageFilterObject extends Equatable {
final String id; final String id;
final String name; final String name;
final String udi; // final String udi;
MyPackageFilterObject({ MyPackageFilterObject({
required this.id, required this.id,
required this.name, required this.name,
required this.udi, // required this.udi,
}); });
@override @override
@@ -53,7 +53,7 @@ class MyPackageFilterObject extends Equatable {
return [ return [
id, id,
name, name,
udi, // udi,
]; ];
} }
+6 -6
View File
@@ -29,7 +29,7 @@ class PackageDetailObject extends Equatable {
final String description; final String description;
final String createDate; final String createDate;
final String hospitalName; final String hospitalName;
final String udi; // final String udi;
final List<String> items; final List<String> items;
PackageDetailObject({ PackageDetailObject({
@@ -38,7 +38,7 @@ class PackageDetailObject extends Equatable {
required this.description, required this.description,
required this.createDate, required this.createDate,
required this.hospitalName, required this.hospitalName,
required this.udi, // required this.udi,
required this.items, required this.items,
}); });
@@ -50,7 +50,7 @@ class PackageDetailObject extends Equatable {
description, description,
createDate, createDate,
hospitalName, hospitalName,
udi, // udi,
items, items,
]; ];
} }
@@ -63,13 +63,13 @@ class PackageFilterObject extends Equatable {
final String id; final String id;
final String name; final String name;
final String hospital; final String hospital;
final String udi; // final String udi;
PackageFilterObject({ PackageFilterObject({
required this.id, required this.id,
required this.name, required this.name,
required this.hospital, required this.hospital,
required this.udi, // required this.udi,
}); });
@override @override
@@ -78,7 +78,7 @@ class PackageFilterObject extends Equatable {
id, id,
name, name,
hospital, hospital,
udi, // udi,
]; ];
} }
+1
View File
@@ -49,6 +49,7 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
void didChangeDependencies() async { void didChangeDependencies() async {
if (isInit) { if (isInit) {
var itemProviderObject = Provider.of<ItemProvider>(context); var itemProviderObject = Provider.of<ItemProvider>(context);
itemProviderObject.catchImages.clear();
itemProviderObject.getItemResults().then( itemProviderObject.getItemResults().then(
(result) { (result) {
setState( setState(
+1 -1
View File
@@ -286,7 +286,7 @@ class _ItemFilterScreenState extends State<ItemFilterScreen> {
print('access'); print('access');
} else { } else {
print(result); print(result);
idCTRL.text = result; udiCTRL.text = result;
} }
}, },
); );
+2 -2
View File
@@ -61,8 +61,8 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
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 SafeArea( return SafeArea(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
+26 -5
View File
@@ -34,6 +34,8 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
List<Map<String, String>> packageVals = []; List<Map<String, String>> packageVals = [];
List<String> packageValue = []; List<String> packageValue = [];
bool isInit = true; bool isInit = true;
// String? packageId;
// String? previousRoute;
List<TextEditingController> labelsCTRL = [TextEditingController()]; List<TextEditingController> labelsCTRL = [TextEditingController()];
int curLabelVal = 1; int curLabelVal = 1;
@@ -47,7 +49,15 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
@override @override
void didChangeDependencies() async { void didChangeDependencies() async {
if (isInit) { if (isInit) {
// final pastRoute = ModalRoute.of(context)!.settings.name;
// previousRoute = pastRoute;
// print(previousRoute);
var labelProviderObject = Provider.of<LabelsProvider>(context); var labelProviderObject = Provider.of<LabelsProvider>(context);
// var arguments = ModalRoute.of(context)!.settings.arguments;
// if (arguments != null && arguments is Map<dynamic, dynamic>) {
// packageId = arguments['id'];
// }
// print(packageId);
labelProviderObject.resetPackageVals(); labelProviderObject.resetPackageVals();
labelProviderObject.getPackageFilters().then( labelProviderObject.getPackageFilters().then(
(result) { (result) {
@@ -67,6 +77,7 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
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;
// String initialLabelValue;
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
Navigator.pushReplacementNamed( Navigator.pushReplacementNamed(
@@ -286,8 +297,15 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
), ),
), ),
Consumer<LabelsProvider>( Consumer<LabelsProvider>(
builder: (ctx, labelProvider, _) => builder: (ctx, labelProvider, _) {
ListView.builder( // if (previousRoute ==
// '/PackageDetailScreen') {
// initialLabelValue = packageId!;
// } else {
// initialLabelValue =
// labelProvider.initialPackageValue;
// }
return ListView.builder(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (ctx, index) => itemBuilder: (ctx, index) =>
@@ -304,8 +322,8 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
), ),
itemCount: itemCount:
labelProvider.packageValues.length, labelProvider.packageValues.length,
), );
), }),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
@@ -330,7 +348,10 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
lotNumberCTRL: lotNumberCTRL, lotNumberCTRL: lotNumberCTRL,
cycleNumberCTRL: cycleNumberCTRL, cycleNumberCTRL: cycleNumberCTRL,
sDateCTRL: sDateCTRL, sDateCTRL: sDateCTRL,
packageValue: packageValue, packageValue: Provider.of<LabelsProvider>(
context,
listen: false,
).packageValues,
eDateCTRL: eDateCTRL, eDateCTRL: eDateCTRL,
striizerIdCTRL: striizerIdCTRL, striizerIdCTRL: striizerIdCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
@@ -67,8 +67,9 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
}, },
child: Scaffold( child: Scaffold(
floatingActionButton: floatingActionButton: LabelFloatingButtons(
LabelFloatingButtons(deviceBlockSize: _deviceBlockSize), deviceBlockSize: _deviceBlockSize,
),
appBar: AppBar( appBar: AppBar(
titleSpacing: -10, titleSpacing: -10,
title: Text('Home'), title: Text('Home'),
+16 -17
View File
@@ -1,4 +1,3 @@
import 'package:cssd/widgets/LabelScreens/Add/selector_box.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart' as DateEditor; import 'package:intl/intl.dart' as DateEditor;
@@ -27,7 +26,7 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
TextEditingController striizerIdCTRL = new TextEditingController(); TextEditingController striizerIdCTRL = new TextEditingController();
TextEditingController sDateCTRL = new TextEditingController(); TextEditingController sDateCTRL = new TextEditingController();
TextEditingController eDateCTRL = new TextEditingController(); TextEditingController eDateCTRL = new TextEditingController();
TextEditingController packageCTRL = new TextEditingController(); // TextEditingController packageCTRL = new TextEditingController();
DateTime? dateTimeS; DateTime? dateTimeS;
// String sDateValue; // String sDateValue;
@@ -35,8 +34,8 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
final _form = GlobalKey<FormState>(); final _form = GlobalKey<FormState>();
List<Map<String, String>> packageVals = []; // List<Map<String, String>> packageVals = [];
List<String> packageValue = []; // List<String> packageValue = [];
bool isEmpty = false; bool isEmpty = false;
bool isInit = true; bool isInit = true;
LabelDetailsObject? datas; LabelDetailsObject? datas;
@@ -67,9 +66,9 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
striizerIdCTRL.text = datas!.sterileId; striizerIdCTRL.text = datas!.sterileId;
sDateCTRL.text = datas!.sterileDate; sDateCTRL.text = datas!.sterileDate;
eDateCTRL.text = datas!.expireDate; eDateCTRL.text = datas!.expireDate;
packageValue.add(datas!.packageId); // packageValue.add(datas!.packageId);
packageValue.add(datas!.package); // packageValue.add(datas!.package);
packageCTRL.text = datas!.package; // packageCTRL.text = datas!.package;
}, },
); );
}, },
@@ -256,15 +255,15 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
SizedBox( SizedBox(
height: 20, height: 20,
), ),
LabelAddSelectorBox( // LabelAddSelectorBox(
deviceBlockSize: _deviceBlockSize, // deviceBlockSize: _deviceBlockSize,
packageCTRL: packageCTRL, // packageCTRL: packageCTRL,
packageVals: packageVals, // packageVals: packageVals,
packageValue: packageValue, // packageValue: packageValue,
), // ),
SizedBox( // SizedBox(
height: 20, // height: 20,
), // ),
LabelAddDatePicker( LabelAddDatePicker(
dateCTRL: sDateCTRL, dateCTRL: sDateCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
@@ -287,7 +286,7 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
lotNumberCTRL: lotNumberCTRL, lotNumberCTRL: lotNumberCTRL,
cycleNumberCTRL: cycleNumberCTRL, cycleNumberCTRL: cycleNumberCTRL,
sDateCTRL: sDateCTRL, sDateCTRL: sDateCTRL,
packageValue: packageValue, // packageValue: packageValue,
eDateCTRL: eDateCTRL, eDateCTRL: eDateCTRL,
striizerIdCTRL: striizerIdCTRL, striizerIdCTRL: striizerIdCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
@@ -1,4 +1,5 @@
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:cssd/config/routes.dart';
import 'package:cssd/pages/MyItemsPages/Result/my_items_mine_screen.dart'; import 'package:cssd/pages/MyItemsPages/Result/my_items_mine_screen.dart';
import 'package:cssd/pages/MyItemsPages/Result/my_items_requests_screen.dart'; import 'package:cssd/pages/MyItemsPages/Result/my_items_requests_screen.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -28,6 +29,9 @@ class _MyItemsResultScreenState extends State<MyItemsResultScreen>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
final double _deviceWidth = _media.size.width;
final double _deviceBlockSize = _deviceWidth / 100;
return SafeArea( return SafeArea(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
@@ -60,6 +64,9 @@ class _MyItemsResultScreenState extends State<MyItemsResultScreen>
], ],
), ),
), ),
floatingActionButton: MyItemResultFloatingButton(
deviceBlockSize: _deviceBlockSize,
),
body: TabBarView( body: TabBarView(
controller: _tabController, controller: _tabController,
children: [ children: [
@@ -73,3 +80,35 @@ class _MyItemsResultScreenState extends State<MyItemsResultScreen>
); );
} }
} }
class MyItemResultFloatingButton extends StatelessWidget {
const MyItemResultFloatingButton({
Key? key,
required double deviceBlockSize,
}) : _deviceBlockSize = deviceBlockSize,
super(key: key);
final double _deviceBlockSize;
@override
Widget build(BuildContext context) {
return InkWell(
customBorder: CircleBorder(),
onTap: () {
Navigator.of(context).pushNamed(Routes.myItemsScanScreen);
},
child: Container(
padding: EdgeInsets.all(2.5 * _deviceBlockSize),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
),
child: Icon(
Icons.qr_code_scanner,
size: 7.1 * _deviceBlockSize,
color: Colors.white,
),
),
);
}
}
@@ -0,0 +1,195 @@
import 'package:cssd/config/colors.dart';
import 'package:cssd/utils/scan.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../providers/connectivity.dart';
import '../../widgets/Global/internet_error.dart';
class MyItemsScanScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyItemsScanScreenState();
}
}
class _MyItemsScanScreenState extends State<MyItemsScanScreen> {
TextEditingController idCTRL = new TextEditingController();
final _form = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _deviceWidth = _media.size.width;
final double _deviceBlockSize = _deviceWidth / 100;
return SafeArea(
child: GestureDetector(
onTap: () {
FocusManager.instance.primaryFocus?.unfocus();
},
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Items'),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
),
),
body: Consumer<ConnectivityProvider>(
builder: (ct, connection, _) {
return connection.conStatus != 'offline'
? ListView(
padding: EdgeInsets.symmetric(horizontal: 20),
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 30),
child: Text(
'Looking for a Item?',
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black,
fontSize: 5.5 * _deviceBlockSize,
fontWeight: FontWeight.w700,
letterSpacing: 3,
),
),
),
GestureDetector(
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 200,
decoration: BoxDecoration(border: Border.all()),
child: Center(
child: Text(
'Please Scan The Item Barcode',
style: TextStyle(
color: Colors.black,
fontSize: 5 * _deviceBlockSize,
fontWeight: FontWeight.w100,
letterSpacing: 3,
),
textAlign: TextAlign.center,
),
),
),
onTap: () {
scan().then(
(String result) {
if (result == 'cancel') {
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
launch(
'https://cssd-doc.com/Show/Item/$result',
);
// Navigator.of(context).pushNamed(
// Routes.cycleDetailScreen,
// arguments: result,
// );
}
},
);
},
),
SizedBox(
height: 10.0,
),
Form(
key: _form,
child: TextFormField(
validator: (val) {
if (val!.isEmpty) {
return 'Id required!!';
}
return null;
},
controller: idCTRL,
decoration: InputDecoration(
icon: Icon(
FontAwesomeIcons.sortNumericDown,
size: 6 * _deviceBlockSize,
),
labelStyle: TextStyle(
fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize,
),
isDense: true,
labelText: 'Or enter a Item ID',
contentPadding: EdgeInsets.symmetric(
vertical: 2,
horizontal: 3,
),
focusedBorder: UnderlineInputBorder(
// borderRadius: BorderRadius.only(Radius.circular(4)),
borderSide: BorderSide(
color: Colors.grey,
),
),
),
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
),
keyboardType: TextInputType.number,
),
),
SizedBox(
height: 70,
),
InkWell(
onTap: () {
if (!_form.currentState!.validate()) {
return;
}
launch(
'https://cssd-doc.com/Show/Item/${idCTRL.text}',
);
// Navigator.of(context).pushNamed(
// Routes.cycleDetailScreen,
// arguments: idCTRL.text,
// );
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [kDarkBlue, kDarkBlueSub],
),
borderRadius: BorderRadius.circular(7),
),
child: Align(
alignment: Alignment.center,
child: Text(
'Search',
style: TextStyle(
color: Colors.white,
fontSize: 5 * _deviceBlockSize,
),
),
),
),
),
],
)
: ConnectionErrorBox();
},
),
),
),
);
}
}
@@ -118,7 +118,7 @@ class _MyPackagesMineScreenState extends State<MyPackagesMineScreen> {
label: 'ID', label: 'ID',
id: '', id: '',
name: package.filters!.name, name: package.filters!.name,
udi: package.filters!.udi, // udi: package.filters!.udi,
) )
: Container(), : Container(),
package.filters!.name != '' package.filters!.name != ''
@@ -127,18 +127,18 @@ class _MyPackagesMineScreenState extends State<MyPackagesMineScreen> {
label: 'Package Name', label: 'Package Name',
id: package.filters!.id, id: package.filters!.id,
name: '', name: '',
udi: package.filters!.udi, // udi: package.filters!.udi,
)
: Container(),
package.filters!.udi != ''
? MyPackageFilterChip(
deviceBlockSize: _deviceBlockSize,
label: 'UDI',
id: package.filters!.id,
name: package.filters!.name,
udi: '',
) )
: Container(), : Container(),
// package.filters!.udi != ''
// ? MyPackageFilterChip(
// deviceBlockSize: _deviceBlockSize,
// label: 'UDI',
// id: package.filters!.id,
// name: package.filters!.name,
// udi: '',
// )
// : Container(),
], ],
), ),
); );
@@ -1,4 +1,5 @@
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:cssd/config/routes.dart';
import 'package:cssd/pages/MyPackagesPages/Result/my_packages_mine_screen.dart'; import 'package:cssd/pages/MyPackagesPages/Result/my_packages_mine_screen.dart';
import 'package:cssd/pages/MyPackagesPages/Result/my_packages_requests_screen.dart'; import 'package:cssd/pages/MyPackagesPages/Result/my_packages_requests_screen.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -28,6 +29,9 @@ class _MyPackagesResultScreenState extends State<MyPackagesResultScreen>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
final double _deviceWidth = _media.size.width;
final double _deviceBlockSize = _deviceWidth / 100;
return SafeArea( return SafeArea(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
@@ -60,6 +64,9 @@ class _MyPackagesResultScreenState extends State<MyPackagesResultScreen>
], ],
), ),
), ),
floatingActionButton: MyPackageResultFloatingButton(
deviceBlockSize: _deviceBlockSize,
),
body: TabBarView( body: TabBarView(
controller: _tabController, controller: _tabController,
children: [ children: [
@@ -73,3 +80,35 @@ class _MyPackagesResultScreenState extends State<MyPackagesResultScreen>
); );
} }
} }
class MyPackageResultFloatingButton extends StatelessWidget {
const MyPackageResultFloatingButton({
Key? key,
required double deviceBlockSize,
}) : _deviceBlockSize = deviceBlockSize,
super(key: key);
final double _deviceBlockSize;
@override
Widget build(BuildContext context) {
return InkWell(
customBorder: CircleBorder(),
onTap: () {
Navigator.of(context).pushNamed(Routes.myPackagesScanScreen);
},
child: Container(
padding: EdgeInsets.all(2.5 * _deviceBlockSize),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
),
child: Icon(
Icons.qr_code_scanner,
size: 7.1 * _deviceBlockSize,
color: Colors.white,
),
),
);
}
}
@@ -22,7 +22,7 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
TextEditingController idCTRL = new TextEditingController(); TextEditingController idCTRL = new TextEditingController();
TextEditingController hospitalCTRL = new TextEditingController(); TextEditingController hospitalCTRL = new TextEditingController();
TextEditingController nameCTRL = new TextEditingController(); TextEditingController nameCTRL = new TextEditingController();
TextEditingController udiCTRL = new TextEditingController(); // TextEditingController udiCTRL = new TextEditingController();
bool isInit = true; bool isInit = true;
PackageFilterObject? filters; PackageFilterObject? filters;
@@ -32,7 +32,7 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
idCTRL.text = filters!.id; idCTRL.text = filters!.id;
hospitalCTRL.text = filters!.hospital; hospitalCTRL.text = filters!.hospital;
nameCTRL.text = filters!.name; nameCTRL.text = filters!.name;
udiCTRL.text = filters!.udi; // udiCTRL.text = filters!.udi;
super.initState(); super.initState();
} }
@@ -203,82 +203,82 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
.requestFocus(_udiFocusNode); .requestFocus(_udiFocusNode);
}, },
), ),
SizedBox( // SizedBox(
height: 30, // height: 30,
), // ),
Row( // Row(
children: [ // children: [
Flexible( // Flexible(
flex: 8, // flex: 8,
child: TextFormField( // child: TextFormField(
controller: udiCTRL, // controller: udiCTRL,
decoration: InputDecoration( // decoration: InputDecoration(
icon: Icon( // icon: Icon(
FontAwesomeIcons.alignLeft, // FontAwesomeIcons.alignLeft,
size: 6 * _deviceBlockSize, // size: 6 * _deviceBlockSize,
), // ),
labelStyle: TextStyle( // labelStyle: TextStyle(
fontWeight: FontWeight.w100, // fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize, // fontSize: 4 * _deviceBlockSize,
), // ),
labelText: 'UDI', // labelText: 'UDI',
isDense: true, // isDense: true,
contentPadding: EdgeInsets.symmetric( // contentPadding: EdgeInsets.symmetric(
vertical: 2, // vertical: 2,
horizontal: 3, // horizontal: 3,
), // ),
), // ),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize, // fontSize: 5 * _deviceBlockSize,
), // ),
focusNode: _udiFocusNode, // focusNode: _udiFocusNode,
keyboardType: TextInputType.text, // keyboardType: TextInputType.text,
textInputAction: TextInputAction.next, // textInputAction: TextInputAction.next,
), // ),
), // ),
Flexible( // Flexible(
flex: 1, // flex: 1,
child: InkWell( // child: InkWell(
onTap: () { // onTap: () {
scan().then( // scan().then(
(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);
idCTRL.text = result; // idCTRL.text = result;
} // }
}, // },
); // );
}, // },
child: Container( // child: Container(
padding: EdgeInsets.all(8), // padding: EdgeInsets.all(8),
decoration: BoxDecoration( // decoration: BoxDecoration(
shape: BoxShape.circle, // shape: BoxShape.circle,
color: Colors.black, // color: Colors.black,
), // ),
child: Icon( // child: Icon(
Icons.qr_code_scanner, // Icons.qr_code_scanner,
size: 5 * _deviceBlockSize, // size: 5 * _deviceBlockSize,
color: Colors.white, // color: Colors.white,
), // ),
), // ),
), // ),
) // )
], // ],
), // ),
SizedBox( SizedBox(
height: 90, height: 90,
), ),
MyPackagesFilterSaveButton( MyPackagesFilterSaveButton(
idCTRL: idCTRL, idCTRL: idCTRL,
nameCTRL: nameCTRL, nameCTRL: nameCTRL,
udiCTRL: udiCTRL, // udiCTRL: udiCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
firstColor: kDarkPurple, firstColor: kDarkPurple,
secondColor: kDarkPurpleSub, secondColor: kDarkPurpleSub,
@@ -0,0 +1,195 @@
import 'package:cssd/config/colors.dart';
import 'package:cssd/utils/scan.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../providers/connectivity.dart';
import '../../widgets/Global/internet_error.dart';
class MyPackagesScanScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyPackagesScanScreenState();
}
}
class _MyPackagesScanScreenState extends State<MyPackagesScanScreen> {
TextEditingController idCTRL = new TextEditingController();
final _form = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _deviceWidth = _media.size.width;
final double _deviceBlockSize = _deviceWidth / 100;
return SafeArea(
child: GestureDetector(
onTap: () {
FocusManager.instance.primaryFocus?.unfocus();
},
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Packages'),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
),
),
body: Consumer<ConnectivityProvider>(
builder: (ct, connection, _) {
return connection.conStatus != 'offline'
? ListView(
padding: EdgeInsets.symmetric(horizontal: 20),
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 30),
child: Text(
'Looking for a Package?',
textAlign: TextAlign.left,
style: TextStyle(
color: Colors.black,
fontSize: 5.5 * _deviceBlockSize,
fontWeight: FontWeight.w700,
letterSpacing: 3,
),
),
),
GestureDetector(
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 200,
decoration: BoxDecoration(border: Border.all()),
child: Center(
child: Text(
'Please Scan The Package Barcode',
style: TextStyle(
color: Colors.black,
fontSize: 5 * _deviceBlockSize,
fontWeight: FontWeight.w100,
letterSpacing: 3,
),
textAlign: TextAlign.center,
),
),
),
onTap: () {
scan().then(
(String result) {
if (result == 'cancel') {
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
launch(
'https://cssd-doc.com/Show/Package/$result',
);
// Navigator.of(context).pushNamed(
// Routes.cycleDetailScreen,
// arguments: result,
// );
}
},
);
},
),
SizedBox(
height: 10.0,
),
Form(
key: _form,
child: TextFormField(
validator: (val) {
if (val!.isEmpty) {
return 'Id required!!';
}
return null;
},
controller: idCTRL,
decoration: InputDecoration(
icon: Icon(
FontAwesomeIcons.sortNumericDown,
size: 6 * _deviceBlockSize,
),
labelStyle: TextStyle(
fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize,
),
isDense: true,
labelText: 'Or enter a Package ID',
contentPadding: EdgeInsets.symmetric(
vertical: 2,
horizontal: 3,
),
focusedBorder: UnderlineInputBorder(
// borderRadius: BorderRadius.only(Radius.circular(4)),
borderSide: BorderSide(
color: Colors.grey,
),
),
),
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
),
keyboardType: TextInputType.number,
),
),
SizedBox(
height: 70,
),
InkWell(
onTap: () {
if (!_form.currentState!.validate()) {
return;
}
launch(
'https://cssd-doc.com/Show/Package/${idCTRL.text}',
);
// Navigator.of(context).pushNamed(
// Routes.cycleDetailScreen,
// arguments: idCTRL.text,
// );
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [kDarkPurple, kDarkPurpleSub],
),
borderRadius: BorderRadius.circular(7),
),
child: Align(
alignment: Alignment.center,
child: Text(
'Search',
style: TextStyle(
color: Colors.white,
fontSize: 5 * _deviceBlockSize,
),
),
),
),
),
],
)
: ConnectionErrorBox();
},
),
),
),
);
}
}
+43 -43
View File
@@ -1,6 +1,7 @@
import 'package:cssd/config/colors.dart'; import 'package:cssd/config/colors.dart';
import 'package:cssd/models/package_model.dart'; import 'package:cssd/models/package_model.dart';
import 'package:cssd/providers/packages.dart'; import 'package:cssd/providers/packages.dart';
import 'package:cssd/widgets/PackageScreens/Add/add_item_box.dart';
import 'package:cssd/widgets/PackageScreens/Add/package_save_button.dart'; import 'package:cssd/widgets/PackageScreens/Add/package_save_button.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -9,7 +10,6 @@ import 'package:provider/provider.dart';
import '../../config/routes.dart'; import '../../config/routes.dart';
import '../../providers/connectivity.dart'; import '../../providers/connectivity.dart';
import '../../widgets/CycleScreens/Add/add_label_box.dart';
import '../../widgets/Global/internet_error.dart'; import '../../widgets/Global/internet_error.dart';
class PackageAddScreen extends StatefulWidget { class PackageAddScreen extends StatefulWidget {
@@ -21,7 +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();
final _form = GlobalKey<FormState>(); final _form = GlobalKey<FormState>();
@@ -32,7 +32,7 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
@override @override
void initState() { void initState() {
descriptionCTRL.text = ''; descriptionCTRL.text = '';
udiCTRL.text = ''; // udiCTRL.text = '';
nameCTRL.text = ''; nameCTRL.text = '';
dateCTRL.text = DateFormat('y-M-d').format(DateTime.now()); dateCTRL.text = DateFormat('y-M-d').format(DateTime.now());
super.initState(); super.initState();
@@ -152,43 +152,43 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
SizedBox( SizedBox(
height: 30, height: 30,
), ),
TextFormField( // TextFormField(
validator: (val) { // validator: (val) {
if (val!.isEmpty) { // if (val!.isEmpty) {
return 'UDI required!'; // return 'UDI required!';
} // }
return null; // return null;
}, // },
controller: udiCTRL, // controller: udiCTRL,
decoration: InputDecoration( // decoration: InputDecoration(
icon: Icon( // icon: Icon(
FontAwesomeIcons.alignLeft, // FontAwesomeIcons.alignLeft,
size: 7 * _deviceBlockSize, // size: 7 * _deviceBlockSize,
), // ),
labelStyle: TextStyle( // labelStyle: TextStyle(
fontWeight: FontWeight.w100, // fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize, // fontSize: 4 * _deviceBlockSize,
), // ),
isDense: true, // isDense: true,
labelText: 'UDI', // labelText: 'UDI',
contentPadding: EdgeInsets.symmetric( // contentPadding: EdgeInsets.symmetric(
vertical: 2, horizontal: 3), // vertical: 2, horizontal: 3),
), // ),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize, // fontSize: 5 * _deviceBlockSize,
), // ),
focusNode: _packageUdiFocusNode, // focusNode: _packageUdiFocusNode,
keyboardType: TextInputType.visiblePassword, // keyboardType: TextInputType.visiblePassword,
textInputAction: TextInputAction.next, // textInputAction: TextInputAction.next,
onFieldSubmitted: (_) { // onFieldSubmitted: (_) {
FocusScope.of(context) // FocusScope.of(context)
.requestFocus(_descriptionFocusNode); // .requestFocus(_descriptionFocusNode);
}, // },
), // ),
SizedBox( // SizedBox(
height: 20, // height: 20,
), // ),
Container( Container(
margin: EdgeInsets.symmetric(vertical: 5), margin: EdgeInsets.symmetric(vertical: 5),
child: Text( child: Text(
@@ -205,14 +205,14 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
ListView.builder( ListView.builder(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (ctx, index) => AddLabelBox( itemBuilder: (ctx, index) => AddItemBox(
text: 'Select Items Included', text: 'Select Items Included',
iconColor: kPurpleSub, iconColor: kPurpleSub,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
values: values:
packageProvider.itemValues[index], packageProvider.itemValues[index],
vals: packageProvider.itemVals, vals: packageProvider.itemVals,
initialLabelValue: initialItemValue:
packageProvider.initialItemValue, packageProvider.initialItemValue,
index: index, index: index,
), ),
@@ -258,7 +258,7 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
listen: false, listen: false,
).itemValues, ).itemValues,
nameCTRL: nameCTRL, nameCTRL: nameCTRL,
udiCTRL: udiCTRL, // udiCTRL: udiCTRL,
dateValue: dateCTRL.text, dateValue: dateCTRL.text,
descriptionCTRL: descriptionCTRL, descriptionCTRL: descriptionCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
@@ -22,7 +22,7 @@ class _PackageFilterScreenState extends State<PackageFilterScreen> {
TextEditingController idCTRL = new TextEditingController(); TextEditingController idCTRL = new TextEditingController();
TextEditingController hospitalCTRL = new TextEditingController(); TextEditingController hospitalCTRL = new TextEditingController();
TextEditingController nameCTRL = new TextEditingController(); TextEditingController nameCTRL = new TextEditingController();
TextEditingController udiCTRL = new TextEditingController(); // TextEditingController udiCTRL = new TextEditingController();
List<Map<String, String>> hospitalVals = []; List<Map<String, String>> hospitalVals = [];
bool isInit = true; bool isInit = true;
@@ -33,7 +33,7 @@ class _PackageFilterScreenState extends State<PackageFilterScreen> {
idCTRL.text = filters!.id; idCTRL.text = filters!.id;
hospitalCTRL.text = filters!.hospital; hospitalCTRL.text = filters!.hospital;
nameCTRL.text = filters!.name; nameCTRL.text = filters!.name;
udiCTRL.text = filters!.udi; // udiCTRL.text = filters!.udi;
super.initState(); super.initState();
} }
@@ -233,35 +233,35 @@ class _PackageFilterScreenState extends State<PackageFilterScreen> {
SizedBox( SizedBox(
height: 30, height: 30,
), ),
TextFormField( // TextFormField(
controller: udiCTRL, // controller: udiCTRL,
decoration: InputDecoration( // decoration: InputDecoration(
icon: Icon( // icon: Icon(
FontAwesomeIcons.alignLeft, // FontAwesomeIcons.alignLeft,
size: 6 * _deviceBlockSize, // size: 6 * _deviceBlockSize,
), // ),
labelStyle: TextStyle( // labelStyle: TextStyle(
fontWeight: FontWeight.w100, // fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize, // fontSize: 4 * _deviceBlockSize,
), // ),
labelText: 'UDI', // labelText: 'UDI',
isDense: true, // isDense: true,
contentPadding: EdgeInsets.symmetric( // contentPadding: EdgeInsets.symmetric(
vertical: 2, // vertical: 2,
horizontal: 3, // horizontal: 3,
), // ),
), // ),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize, // fontSize: 5 * _deviceBlockSize,
), // ),
focusNode: _udiFocusNode, // focusNode: _udiFocusNode,
keyboardType: TextInputType.text, // keyboardType: TextInputType.text,
textInputAction: TextInputAction.next, // textInputAction: TextInputAction.next,
), // ),
SizedBox( // SizedBox(
height: 30.0, // height: 30.0,
), // ),
FilterHospitalBox( FilterHospitalBox(
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
hospitalCTRL: hospitalCTRL, hospitalCTRL: hospitalCTRL,
@@ -276,7 +276,7 @@ class _PackageFilterScreenState extends State<PackageFilterScreen> {
hospitalCTRL: hospitalCTRL, hospitalCTRL: hospitalCTRL,
idCTRL: idCTRL, idCTRL: idCTRL,
nameCTRL: nameCTRL, nameCTRL: nameCTRL,
udiCTRL: udiCTRL, // udiCTRL: udiCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
), ),
SizedBox( SizedBox(
@@ -116,7 +116,7 @@ class _PackageResultScreenState extends State<PackageResultScreen> {
id: '', id: '',
name: package.filters!.name, name: package.filters!.name,
hospital: package.filters!.hospital, hospital: package.filters!.hospital,
udi: package.filters!.udi, // udi: package.filters!.udi,
) )
: Container(), : Container(),
package.filters!.name != '' package.filters!.name != ''
@@ -125,7 +125,7 @@ class _PackageResultScreenState extends State<PackageResultScreen> {
label: 'Package Name', label: 'Package Name',
id: package.filters!.id, id: package.filters!.id,
name: '', name: '',
udi: package.filters!.udi, // udi: package.filters!.udi,
hospital: package.filters!.hospital, hospital: package.filters!.hospital,
) )
: Container(), : Container(),
@@ -135,20 +135,20 @@ class _PackageResultScreenState extends State<PackageResultScreen> {
label: 'Hospital', label: 'Hospital',
id: package.filters!.id, id: package.filters!.id,
name: package.filters!.name, name: package.filters!.name,
udi: package.filters!.udi, // udi: package.filters!.udi,
hospital: '', hospital: '',
) )
: Container(), : Container(),
package.filters!.udi != '' // package.filters!.udi != ''
? PackageFilterChip( // ? PackageFilterChip(
deviceBlockSize: _deviceBlockSize, // deviceBlockSize: _deviceBlockSize,
label: 'UDI', // label: 'UDI',
id: package.filters!.id, // id: package.filters!.id,
name: package.filters!.name, // name: package.filters!.name,
udi: '', // udi: '',
hospital: package.filters!.hospital, // hospital: package.filters!.hospital,
) // )
: Container(), // : Container(),
], ],
), ),
); );
@@ -17,7 +17,7 @@ class _PackageUpdateScreenState extends State<PackageUpdateScreen> {
final _udiFocusNode = FocusNode(); final _udiFocusNode = FocusNode();
final _descriptionFocusNode = FocusNode(); final _descriptionFocusNode = FocusNode();
TextEditingController nameCTRL = new TextEditingController(); TextEditingController nameCTRL = new TextEditingController();
TextEditingController udiCTRL = new TextEditingController(); // TextEditingController udiCTRL = new TextEditingController();
TextEditingController descriptionCTRL = new TextEditingController(); TextEditingController descriptionCTRL = new TextEditingController();
TextEditingController itemCTRL = new TextEditingController(); TextEditingController itemCTRL = new TextEditingController();
@@ -39,7 +39,7 @@ class _PackageUpdateScreenState extends State<PackageUpdateScreen> {
() { () {
datas = result; datas = result;
nameCTRL.text = datas!.name; nameCTRL.text = datas!.name;
udiCTRL.text = datas!.udi; // udiCTRL.text = datas!.udi;
descriptionCTRL.text = datas!.description; descriptionCTRL.text = datas!.description;
for (String item in datas!.items) { for (String item in datas!.items) {
itemCTRL.text = item; itemCTRL.text = item;
@@ -149,43 +149,43 @@ class _PackageUpdateScreenState extends State<PackageUpdateScreen> {
SizedBox( SizedBox(
height: 20, height: 20,
), ),
TextFormField( // TextFormField(
validator: (val) { // validator: (val) {
if (val!.isEmpty) { // if (val!.isEmpty) {
return 'UDI required!'; // return 'UDI required!';
} // }
return null; // return null;
}, // },
controller: udiCTRL, // controller: udiCTRL,
decoration: InputDecoration( // decoration: InputDecoration(
icon: Icon( // icon: Icon(
FontAwesomeIcons.alignLeft, // FontAwesomeIcons.alignLeft,
size: 7 * _deviceBlockSize, // size: 7 * _deviceBlockSize,
), // ),
labelStyle: TextStyle( // labelStyle: TextStyle(
fontWeight: FontWeight.w100, // fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize, // fontSize: 4 * _deviceBlockSize,
), // ),
isDense: true, // isDense: true,
labelText: 'UDI', // labelText: 'UDI',
contentPadding: EdgeInsets.symmetric( // contentPadding: EdgeInsets.symmetric(
vertical: 2, horizontal: 3), // vertical: 2, horizontal: 3),
), // ),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize, // fontSize: 5 * _deviceBlockSize,
), // ),
focusNode: _udiFocusNode, // focusNode: _udiFocusNode,
keyboardType: TextInputType.text, // keyboardType: TextInputType.text,
textInputAction: TextInputAction.done, // textInputAction: TextInputAction.done,
onFieldSubmitted: (_) { // onFieldSubmitted: (_) {
FocusScope.of(context) // FocusScope.of(context)
.requestFocus(_descriptionFocusNode); // .requestFocus(_descriptionFocusNode);
}, // },
), // ),
SizedBox( // SizedBox(
height: 20, // height: 20,
), // ),
TextFormField( TextFormField(
controller: descriptionCTRL, controller: descriptionCTRL,
decoration: InputDecoration( decoration: InputDecoration(
@@ -218,7 +218,7 @@ class _PackageUpdateScreenState extends State<PackageUpdateScreen> {
form: _form, form: _form,
id: datas!.id, id: datas!.id,
nameCTRL: nameCTRL, nameCTRL: nameCTRL,
udiCTRL: udiCTRL, // udiCTRL: udiCTRL,
itemCTRL: itemCTRL, itemCTRL: itemCTRL,
deviceBlockSize: _deviceBlockSize, deviceBlockSize: _deviceBlockSize,
descriptionCTRL: descriptionCTRL, descriptionCTRL: descriptionCTRL,
+2
View File
@@ -182,6 +182,8 @@ class ItemProvider extends ChangeNotifier {
'Authorization': User.token, 'Authorization': User.token,
}); });
print(response.body);
if (response.statusCode == 200) { if (response.statusCode == 200) {
items!.removeWhere((item) { items!.removeWhere((item) {
return item.id.toString() == id; return item.id.toString() == id;
+12 -9
View File
@@ -86,8 +86,9 @@ class LabelsProvider extends ChangeNotifier {
List<String> result = []; List<String> result = [];
var filterDatas = json.decode(response.body); var filterDatas = json.decode(response.body);
for (var package in filterDatas['data']) { for (var package in filterDatas['data']) {
result.add( // result.add(
"${package['name']} - ${package['udi'] != null ? package['udi'] : ''}"); // "${package['name']} - ${package['package_id'] != null ? package['package_id'] : ''}");
result.add(package['id'].toString());
} }
packageVals = result; packageVals = result;
initialPackageValue = packageVals[0]; initialPackageValue = packageVals[0];
@@ -98,9 +99,12 @@ class LabelsProvider extends ChangeNotifier {
return result; return result;
} }
Future<void> createLabelResult(lotNumber, cycleNumber, sterileDate, package, Future<void> createLabelResult(lotNumber, cycleNumber, sterileDate, packages,
expireDate, sterilizerId) async { expireDate, sterilizerId) async {
// print(labs); List<Map<String, Object>> pkgs = [];
for (var package in packages) {
pkgs.add({'name': '', 'id': package});
}
var response = await http.post(Uri.parse(Url.createLabelResult), var response = await http.post(Uri.parse(Url.createLabelResult),
body: json.encode( body: json.encode(
{ {
@@ -109,7 +113,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': package['id'] 'package_id': pkgs,
}, },
), ),
headers: { headers: {
@@ -118,7 +122,6 @@ class LabelsProvider extends ChangeNotifier {
"Content-Type": "application/json", "Content-Type": "application/json",
"Accept": "application/json" "Accept": "application/json"
}); });
print(response.body); print(response.body);
} }
@@ -127,7 +130,7 @@ class LabelsProvider extends ChangeNotifier {
lotNumber, lotNumber,
cycleNumber, cycleNumber,
sterileDate, sterileDate,
package, // package,
expireDate, expireDate,
sterilizerId, sterilizerId,
) async { ) async {
@@ -139,7 +142,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': package['id'], // 'package_id': package['id'],
}, },
); );
var response = await http.put(Uri.parse(Url.updateLabelResult(id)), var response = await http.put(Uri.parse(Url.updateLabelResult(id)),
@@ -150,7 +153,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': package['id'], // 'package_id': package['id'],
// 'package': { // 'package': {
// 'id': package['id'], // 'id': package['id'],
// 'name': package['name'], // 'name': package['name'],
+10 -10
View File
@@ -24,7 +24,7 @@ class MyPackageProvider extends ChangeNotifier {
MyPackageFilterObject? filters = MyPackageFilterObject( MyPackageFilterObject? filters = MyPackageFilterObject(
id: '', id: '',
name: '', name: '',
udi: '', // udi: '',
); );
int pageNumber = 1; int pageNumber = 1;
void resetPageNumber() => pageNumber = 1; void resetPageNumber() => pageNumber = 1;
@@ -64,15 +64,15 @@ class MyPackageProvider extends ChangeNotifier {
void setFilters( void setFilters(
id, id,
name, name,
udi, // udi,
) { ) {
pageNumber = 1; pageNumber = 1;
filters = MyPackageFilterObject( filters = MyPackageFilterObject(
id: id, id: id,
name: name, name: name,
udi: udi, // udi: udi,
); );
if (filters!.id == '' && filters!.name == '' && filters!.udi == '') { if (filters!.id == '' && filters!.name == '') {
filterOn = false; filterOn = false;
} else { } else {
filterOn = true; filterOn = true;
@@ -89,9 +89,9 @@ class MyPackageProvider extends ChangeNotifier {
if (filters!.name != '') { if (filters!.name != '') {
url += '&name=${filters!.name}'; url += '&name=${filters!.name}';
} }
if (filters!.udi != '') { // if (filters!.udi != '') {
url += '&udi=${filters!.udi}'; // url += '&package_id=${filters!.udi}';
} // }
} }
var response = await http.get( var response = await http.get(
Uri.parse(url), Uri.parse(url),
@@ -126,9 +126,9 @@ class MyPackageProvider extends ChangeNotifier {
if (filters!.name != '') { if (filters!.name != '') {
url += '&name=${filters!.name}'; url += '&name=${filters!.name}';
} }
if (filters!.udi != '') { // if (filters!.udi != '') {
url += '&udi=${filters!.udi}'; // url += '&package_id=${filters!.udi}';
} // }
} }
var response = await http.get( var response = await http.get(
Uri.parse(url), Uri.parse(url),
+18 -20
View File
@@ -44,7 +44,7 @@ class PackageProvider extends ChangeNotifier {
id: '', id: '',
hospital: '', hospital: '',
name: '', name: '',
udi: '', // udi: '',
); );
int pageNumber = 1; int pageNumber = 1;
void resetPageNumber() => pageNumber = 1; void resetPageNumber() => pageNumber = 1;
@@ -87,6 +87,7 @@ class PackageProvider extends ChangeNotifier {
List<String> result = []; List<String> result = [];
var filterData = json.decode(response.body); var filterData = json.decode(response.body);
for (var item in filterData['data']) { for (var item in filterData['data']) {
// result.add("${item['name']} - ${item['udi'] != null ? item['udi'] : ''}");
result.add(item['id'].toString()); result.add(item['id'].toString());
} }
itemVals = result; itemVals = result;
@@ -100,22 +101,22 @@ class PackageProvider extends ChangeNotifier {
Future<void> createPackageResult( Future<void> createPackageResult(
name, name,
udi, // udi,
items, items,
note, note,
) async { ) async {
List<Map<String, Object>> items = []; List<Map<String, Object>> itms = [];
for (var item in items) { for (var item in items) {
items.add({'name': '', 'id': item}); itms.add({'id': item});
} }
var response = await http.post( var response = await http.post(
Uri.parse(Url.createPackageResult), Uri.parse(Url.createPackageResult),
body: json.encode( body: json.encode(
{ {
'note': note, 'note': note,
'items': items, 'items': itms,
'name': name, 'name': name,
'udi': udi, // 'package_id': udi,
}, },
), ),
headers: { headers: {
@@ -132,7 +133,7 @@ class PackageProvider extends ChangeNotifier {
Future<void> updatePackageResult( Future<void> updatePackageResult(
id, id,
name, name,
udi, // udi,
description, description,
items, items,
) async { ) async {
@@ -143,14 +144,14 @@ class PackageProvider extends ChangeNotifier {
print({ print({
'note': description, 'note': description,
'name': name, 'name': name,
'udi': udi, // 'package_id': udi,
'items': items, 'items': items,
}); });
var response = await http.put(Uri.parse(Url.updatePackageResult(id)), var response = await http.put(Uri.parse(Url.updatePackageResult(id)),
body: json.encode( body: json.encode(
{ {
'name': name, 'name': name,
'udi': udi, // 'package_id': udi,
'note': description, 'note': description,
'items': items, 'items': items,
}, },
@@ -186,19 +187,16 @@ class PackageProvider extends ChangeNotifier {
id, id,
name, name,
hospital, hospital,
udi, // udi,
) { ) {
pageNumber = 1; pageNumber = 1;
filters = PackageFilterObject( filters = PackageFilterObject(
id: id, id: id,
name: name, name: name,
hospital: hospital, hospital: hospital,
udi: udi, // udi: udi,
); );
if (filters!.id == '' && if (filters!.id == '' && filters!.name == '' && filters!.hospital == '') {
filters!.name == '' &&
filters!.hospital == '' &&
filters!.udi != '') {
filterOn = false; filterOn = false;
} else { } else {
filterOn = true; filterOn = true;
@@ -229,9 +227,9 @@ class PackageProvider extends ChangeNotifier {
if (filters!.hospital != '') { if (filters!.hospital != '') {
url += '&medical_center_id=${filters!.hospital}'; url += '&medical_center_id=${filters!.hospital}';
} }
if (filters!.udi != '') { // if (filters!.udi != '') {
url += '&udi=${filters!.udi}'; // url += '&package_id=${filters!.udi}';
} // }
} }
var response = await http.get( var response = await http.get(
Uri.parse(url), Uri.parse(url),
@@ -270,7 +268,7 @@ class PackageProvider extends ChangeNotifier {
description: 'null', description: 'null',
createDate: '2020-07-14 13:50:42', createDate: '2020-07-14 13:50:42',
hospitalName: 'null', hospitalName: 'null',
udi: 'null', // udi: 'null',
items: [], items: [],
); );
} }
@@ -284,7 +282,7 @@ class PackageProvider extends ChangeNotifier {
id: data['id'].toString(), id: data['id'].toString(),
name: data['name'] != null ? data['name'] : '', name: data['name'] != null ? data['name'] : '',
description: data['note'] != null ? data['note'] : '', description: data['note'] != null ? data['note'] : '',
udi: data['udi'] != null ? data['udi'] : '', // udi: data['package_id'] != null ? data['package_id'] : '',
createDate: data['created_at'] != null ? data['created_at'] : '', createDate: data['created_at'] != null ? data['created_at'] : '',
hospitalName: hospitalName:
data['user'] != null ? data['user']['medical_center']['name'] : '', data['user'] != null ? data['user']['medical_center']['name'] : '',
@@ -190,7 +190,8 @@ class AddLabelBox extends StatelessWidget {
right: 0, right: 0,
child: InkWell( child: InkWell(
onTap: () { onTap: () {
Provider.of<CyclesProvider>(context).addLabelVal(); Provider.of<CyclesProvider>(context, listen: false)
.addLabelVal();
}, },
child: Container( child: Container(
padding: EdgeInsets.all(3), padding: EdgeInsets.all(3),
@@ -34,7 +34,6 @@ class CycleAddSaveButton extends StatelessWidget {
if (!_form.currentState!.validate()) { if (!_form.currentState!.validate()) {
return; return;
} }
List<String> labels = []; List<String> labels = [];
for (TextEditingController label in labelValues) { for (TextEditingController label in labelValues) {
labels.add(label.text); labels.add(label.text);
@@ -1,3 +1,4 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/items.dart'; import 'package:cssd/providers/items.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -51,6 +52,30 @@ class UploaderImage extends StatelessWidget {
), ),
), ),
), ),
SizedBox(
height: 10,
),
InkWell(
onTap: () async {
await Navigator.of(context)
.pushNamed(Routes.captureImageScreen);
// await captureImage(context);
},
child: Container(
width: MediaQuery.of(context).size.width - 40,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 30),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
color: Colors.black,
),
child: Text(
'+ Add an image from camera',
textDirection: TextDirection.ltr,
style: TextStyle(color: Colors.white),
textAlign: TextAlign.center,
),
),
),
], ],
), ),
), ),
@@ -120,16 +120,39 @@ class ItemItemBox extends StatelessWidget {
: InkWell( : InkWell(
customBorder: CircleBorder(), customBorder: CircleBorder(),
onTap: () { onTap: () {
Provider.of<ItemProvider>(context, showDialog(
listen: false) context: context,
.changeStatus(item!.id) builder: (context) {
.then( return AlertDialog(
(value) { title: Text(
if (value) { 'Do you want to change the status of the item?'),
print('true'); actions: <Widget>[
} TextButton(
Navigator.of(context).popAndPushNamed( onPressed: () {
Routes.itemResultScreen); Provider.of<ItemProvider>(context,
listen: false)
.changeStatus(item!.id)
.then(
(value) {
if (value) {
print('true');
}
Navigator.of(context)
.popAndPushNamed(Routes
.itemResultScreen);
},
);
},
child: Text('Yes'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('No'),
),
],
);
}, },
); );
}, },
@@ -185,26 +185,26 @@ class AddPackageBox extends StatelessWidget {
), ),
), ),
), ),
Positioned( // Positioned(
bottom: 15, // bottom: 15,
right: 0, // right: 0,
child: InkWell( // child: InkWell(
onTap: () { // onTap: () {
Provider.of<LabelsProvider>(context).addPackageVal(); // Provider.of<LabelsProvider>(context, listen: false).addPackageVal();
}, // },
child: Container( // child: Container(
padding: EdgeInsets.all(3), // padding: EdgeInsets.all(3),
decoration: BoxDecoration( // decoration: BoxDecoration(
shape: BoxShape.circle, // shape: BoxShape.circle,
color: iconColor, // color: iconColor,
), // ),
child: Icon( // child: Icon(
Icons.add, // Icons.add,
color: Colors.white, // color: Colors.white,
), // ),
), // ),
), // ),
), // ),
], ],
), ),
); );
@@ -24,7 +24,7 @@ class LabelAddSaveButton extends StatelessWidget {
final TextEditingController lotNumberCTRL; final TextEditingController lotNumberCTRL;
final TextEditingController cycleNumberCTRL; final TextEditingController cycleNumberCTRL;
final TextEditingController sDateCTRL; final TextEditingController sDateCTRL;
final List<String> packageValue; final List<TextEditingController> packageValue;
final TextEditingController eDateCTRL; final TextEditingController eDateCTRL;
final TextEditingController striizerIdCTRL; final TextEditingController striizerIdCTRL;
final double _deviceBlockSize; final double _deviceBlockSize;
@@ -36,12 +36,17 @@ class LabelAddSaveButton extends StatelessWidget {
if (!_form.currentState!.validate()) { if (!_form.currentState!.validate()) {
return; return;
} }
List<String> packages = [];
for (TextEditingController package in packageValue) {
packages.add(package.text);
}
Provider.of<LabelsProvider>(context, listen: false).createLabelResult( Provider.of<LabelsProvider>(context, listen: false).createLabelResult(
lotNumberCTRL.text, lotNumberCTRL.text,
cycleNumberCTRL.text, cycleNumberCTRL.text,
sDateCTRL.text, sDateCTRL.text,
// sDateValue, // sDateValue,
{'id': packageValue[0], 'name': packageValue[1]}, // {'id': packageValue[0], 'name': packageValue[1]},
packages,
eDateCTRL.text, eDateCTRL.text,
// eDateValue, // eDateValue,
striizerIdCTRL.text, striizerIdCTRL.text,
@@ -13,7 +13,7 @@ class LabelUpdateButton extends StatelessWidget {
required this.lotNumberCTRL, required this.lotNumberCTRL,
required this.cycleNumberCTRL, required this.cycleNumberCTRL,
required this.sDateCTRL, required this.sDateCTRL,
required this.packageValue, // required this.packageValue,
required this.eDateCTRL, required this.eDateCTRL,
required this.striizerIdCTRL, required this.striizerIdCTRL,
required double deviceBlockSize, required double deviceBlockSize,
@@ -26,7 +26,7 @@ class LabelUpdateButton extends StatelessWidget {
final TextEditingController lotNumberCTRL; final TextEditingController lotNumberCTRL;
final TextEditingController cycleNumberCTRL; final TextEditingController cycleNumberCTRL;
final TextEditingController sDateCTRL; final TextEditingController sDateCTRL;
final List<String> packageValue; // final List<String> packageValue;
final TextEditingController eDateCTRL; final TextEditingController eDateCTRL;
final TextEditingController striizerIdCTRL; final TextEditingController striizerIdCTRL;
final double _deviceBlockSize; final double _deviceBlockSize;
@@ -43,7 +43,7 @@ class LabelUpdateButton extends StatelessWidget {
lotNumberCTRL.text, lotNumberCTRL.text,
cycleNumberCTRL.text, cycleNumberCTRL.text,
sDateCTRL.text, sDateCTRL.text,
{'id': packageValue[0]}, // {'id': packageValue[0]},
eDateCTRL.text, eDateCTRL.text,
striizerIdCTRL.text, striizerIdCTRL.text,
); );
@@ -129,33 +129,33 @@ class MyPackageDetailsDataBox extends StatelessWidget {
), ),
], ],
), ),
Divider(), // Divider(),
SizedBox( // SizedBox(
height: 5, // height: 5,
), // ),
Row( // Row(
children: <Widget>[ // children: <Widget>[
Container( // Container(
width: 35 * _deviceBlockSize, // width: 35 * _deviceBlockSize,
child: Text( // child: Text(
'UDI', // 'UDI',
style: TextStyle( // style: TextStyle(
color: Colors.grey, // color: Colors.grey,
), // ),
), // ),
), // ),
Container( // Container(
width: 45 * _deviceBlockSize, // width: 45 * _deviceBlockSize,
child: Text( // child: Text(
datas.udi.toString(), // datas.udi.toString(),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
), // ),
overflow: TextOverflow.clip, // overflow: TextOverflow.clip,
), // ),
), // ),
], // ],
), // ),
Divider(), Divider(),
SizedBox( SizedBox(
height: 5, height: 5,
@@ -10,19 +10,19 @@ class MyPackageFilterChip extends StatelessWidget {
required String label, required String label,
required String id, required String id,
required String name, required String name,
required String udi, // required String udi,
}) : _deviceBlockSize = deviceBlockSize, }) : _deviceBlockSize = deviceBlockSize,
_label = label, _label = label,
_id = id, _id = id,
_name = name, _name = name,
_udi = udi, // _udi = udi,
super(key: key); super(key: key);
final double _deviceBlockSize; final double _deviceBlockSize;
final String _label; final String _label;
final String _id; final String _id;
final String _name; final String _name;
final String _udi; // final String _udi;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -50,7 +50,7 @@ class MyPackageFilterChip extends StatelessWidget {
packageProvider.setFilters( packageProvider.setFilters(
_id, _id,
_name, _name,
_udi, // _udi,
); );
packageProvider.setLoading(); packageProvider.setLoading();
if (userData['roles']?.contains('User')) { if (userData['roles']?.contains('User')) {
@@ -7,7 +7,7 @@ class MyPackagesFilterSaveButton extends StatelessWidget {
Key? key, Key? key,
required this.idCTRL, required this.idCTRL,
required this.nameCTRL, required this.nameCTRL,
required this.udiCTRL, // required this.udiCTRL,
required this.firstColor, required this.firstColor,
required this.secondColor, required this.secondColor,
required this.push, required this.push,
@@ -17,7 +17,7 @@ class MyPackagesFilterSaveButton extends StatelessWidget {
final TextEditingController idCTRL; final TextEditingController idCTRL;
final TextEditingController nameCTRL; final TextEditingController nameCTRL;
final TextEditingController udiCTRL; // final TextEditingController udiCTRL;
final Color firstColor; final Color firstColor;
final Color secondColor; final Color secondColor;
final String push; final String push;
@@ -30,7 +30,7 @@ class MyPackagesFilterSaveButton extends StatelessWidget {
Provider.of<MyPackageProvider>(context, listen: false).setFilters( Provider.of<MyPackageProvider>(context, listen: false).setFilters(
idCTRL.text, idCTRL.text,
nameCTRL.text, nameCTRL.text,
udiCTRL.text, // udiCTRL.text,
); );
showDialog( showDialog(
context: context, context: context,
@@ -0,0 +1,213 @@
import 'package:cssd/providers/packages.dart';
import 'package:cssd/utils/scan.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
class AddItemBox extends StatelessWidget {
const AddItemBox({
Key? key,
required double deviceBlockSize,
required this.values,
required this.vals,
required this.initialItemValue,
required this.index,
required this.text,
this.iconColor,
}) : _deviceBlockSize = deviceBlockSize,
super(key: key);
final double _deviceBlockSize;
final TextEditingController values;
final List<String> vals;
final String initialItemValue;
final int index;
final String text;
final Color? iconColor;
@override
Widget build(BuildContext context) {
return Container(
height: 150,
child: Stack(
children: <Widget>[
Container(
padding: EdgeInsets.only(
right: 10,
bottom: 25,
left: 10,
top: 10,
),
decoration: BoxDecoration(
border: Border(
left: BorderSide(color: Colors.black, width: 2),
right: BorderSide(color: Colors.grey),
bottom: BorderSide(color: Colors.grey),
top: BorderSide(color: Colors.grey),
),
),
height: 120,
child: Container(
padding: EdgeInsets.symmetric(vertical: 5),
// height: 65,
child: Row(
// width: double.infinity,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Icon(
FontAwesomeIcons.alignLeft,
color: Colors.grey,
size: 7 * _deviceBlockSize,
),
SizedBox(
width: 4 * _deviceBlockSize,
),
Expanded(
// width: MediaQuery.of(context).size.width - 70,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
SizedBox(
width: _deviceBlockSize,
),
Text(
text,
style: TextStyle(
fontSize: 3.5 * _deviceBlockSize,
color: Colors.grey,
fontWeight: FontWeight.w100,
),
),
],
),
Row(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width -
(40 * _deviceBlockSize),
// height: 30,
child: DropdownButtonFormField(
decoration: InputDecoration(
contentPadding: EdgeInsets.only(
left: _deviceBlockSize,
),
border: InputBorder.none,
),
iconSize: 7 * _deviceBlockSize,
icon: Icon(
FontAwesomeIcons.angleDown,
color: Colors.black,
),
isExpanded: true,
hint: Container(
// width: 100,
height: 70,
padding:
const EdgeInsets.symmetric(horizontal: 0),
child: TextFormField(
controller: values,
decoration: InputDecoration(
contentPadding: EdgeInsets.only(
bottom: 12,
),
isDense: true,
),
style: TextStyle(
fontWeight: FontWeight.w700,
color: Colors.black,
fontSize: 5 * _deviceBlockSize,
),
),
),
isDense: true,
items: vals.map((val) {
return new DropdownMenuItem<String>(
value: val,
child: Container(
child: Text(
val,
style: TextStyle(
fontSize: 4 * _deviceBlockSize,
),
),
),
);
}).toList(),
onChanged: (val) {
Provider.of<PackageProvider>(context,
listen: false)
.changeItemVal(val!, index);
},
),
),
Spacer(),
InkWell(
onTap: () {
scan().then(
(String result) {
if (result == 'cancel') {
print('cancel');
} else if (result == 'error') {
print('error');
} else if (result == 'access') {
print('access');
} else {
print(result);
Provider.of<PackageProvider>(context,
listen: false)
.changeItemVal(result, index);
}
},
);
},
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.black,
),
child: Icon(
Icons.qr_code_scanner,
size: 5 * _deviceBlockSize,
color: Colors.white,
),
),
)
],
),
],
),
),
],
),
),
),
Positioned(
bottom: 15,
right: 0,
child: InkWell(
onTap: () {
Provider.of<PackageProvider>(context, listen: false)
.addItemVal();
},
child: Container(
padding: EdgeInsets.all(3),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: iconColor,
),
child: Icon(
Icons.add,
color: Colors.white,
),
),
),
),
],
),
);
}
}
@@ -12,7 +12,7 @@ class PackageAddSaveButton extends StatelessWidget {
required this.itemValues, required this.itemValues,
required this.nameCTRL, required this.nameCTRL,
required this.descriptionCTRL, required this.descriptionCTRL,
required this.udiCTRL, // required this.udiCTRL,
required this.dateValue, required this.dateValue,
required double deviceBlockSize, required double deviceBlockSize,
}) : _form = form, }) : _form = form,
@@ -23,7 +23,7 @@ class PackageAddSaveButton extends StatelessWidget {
final List<TextEditingController> itemValues; final List<TextEditingController> itemValues;
final TextEditingController nameCTRL; final TextEditingController nameCTRL;
final TextEditingController descriptionCTRL; final TextEditingController descriptionCTRL;
final TextEditingController udiCTRL; // final TextEditingController udiCTRL;
final String dateValue; final String dateValue;
final double _deviceBlockSize; final double _deviceBlockSize;
@@ -34,7 +34,6 @@ class PackageAddSaveButton extends StatelessWidget {
if (!_form.currentState!.validate()) { if (!_form.currentState!.validate()) {
return; return;
} }
List<String> items = []; List<String> items = [];
for (TextEditingController item in itemValues) { for (TextEditingController item in itemValues) {
items.add(item.text); items.add(item.text);
@@ -42,7 +41,7 @@ class PackageAddSaveButton extends StatelessWidget {
Provider.of<PackageProvider>(context, listen: false) Provider.of<PackageProvider>(context, listen: false)
.createPackageResult( .createPackageResult(
nameCTRL.text, nameCTRL.text,
udiCTRL.text, // udiCTRL.text,
items, items,
descriptionCTRL.text, descriptionCTRL.text,
); );
@@ -12,7 +12,7 @@ class PackageUpdateButton extends StatelessWidget {
required this.id, required this.id,
required this.descriptionCTRL, required this.descriptionCTRL,
required this.nameCTRL, required this.nameCTRL,
required this.udiCTRL, // required this.udiCTRL,
required this.itemCTRL, required this.itemCTRL,
required double deviceBlockSize, required double deviceBlockSize,
}) : _form = form, }) : _form = form,
@@ -23,7 +23,7 @@ class PackageUpdateButton extends StatelessWidget {
final String id; final String id;
final TextEditingController descriptionCTRL; final TextEditingController descriptionCTRL;
final TextEditingController nameCTRL; final TextEditingController nameCTRL;
final TextEditingController udiCTRL; // final TextEditingController udiCTRL;
final TextEditingController itemCTRL; final TextEditingController itemCTRL;
final double _deviceBlockSize; final double _deviceBlockSize;
@@ -38,7 +38,7 @@ class PackageUpdateButton extends StatelessWidget {
.updatePackageResult( .updatePackageResult(
id, id,
nameCTRL.text, nameCTRL.text,
udiCTRL.text, // udiCTRL.text,
descriptionCTRL.text, descriptionCTRL.text,
int.parse(itemCTRL.text), int.parse(itemCTRL.text),
); );
@@ -129,33 +129,33 @@ class PackageDetailsDataBox extends StatelessWidget {
SizedBox( SizedBox(
height: 5, height: 5,
), ),
Row( // Row(
children: <Widget>[ // children: <Widget>[
Container( // Container(
width: 35 * _deviceBlockSize, // width: 35 * _deviceBlockSize,
child: Text( // child: Text(
'UDI', // 'UDI',
style: TextStyle( // style: TextStyle(
color: Colors.grey, // color: Colors.grey,
), // ),
), // ),
), // ),
Container( // Container(
width: 45 * _deviceBlockSize, // width: 45 * _deviceBlockSize,
child: Text( // child: Text(
datas.udi.toString(), // datas.udi.toString(),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
), // ),
overflow: TextOverflow.clip, // overflow: TextOverflow.clip,
), // ),
), // ),
], // ],
), // ),
Divider(), // Divider(),
SizedBox( // SizedBox(
height: 5, // height: 5,
), // ),
Row( Row(
children: <Widget>[ children: <Widget>[
Container( Container(
@@ -254,7 +254,25 @@ class PackageDetailsDataBox extends StatelessWidget {
), ),
SizedBox( SizedBox(
height: 50, height: 50,
) ),
// TransferDestroyButton(
// deviceBlockSize: _deviceBlockSize,
// firstColor: kPurple,
// secondColor: kPurpleSub,
// onTap: () {
// Navigator.pushNamed(
// context,
// Routes.labelAddScreen,
// arguments: {
// 'id': datas.id,
// },
// );
// },
// text: 'Make a Label For Package',
// ),
// SizedBox(
// height: 5.0,
// ),
], ],
), ),
), ),
@@ -12,7 +12,7 @@ class PackageFilterSaveButton extends StatelessWidget {
required this.hospitalCTRL, required this.hospitalCTRL,
required this.idCTRL, required this.idCTRL,
required this.nameCTRL, required this.nameCTRL,
required this.udiCTRL, // required this.udiCTRL,
required double deviceBlockSize, required double deviceBlockSize,
}) : _deviceBlockSize = deviceBlockSize, }) : _deviceBlockSize = deviceBlockSize,
super(key: key); super(key: key);
@@ -21,7 +21,7 @@ class PackageFilterSaveButton extends StatelessWidget {
final TextEditingController hospitalCTRL; final TextEditingController hospitalCTRL;
final TextEditingController idCTRL; final TextEditingController idCTRL;
final TextEditingController nameCTRL; final TextEditingController nameCTRL;
final TextEditingController udiCTRL; // final TextEditingController udiCTRL;
final double _deviceBlockSize; final double _deviceBlockSize;
@override @override
@@ -40,7 +40,7 @@ class PackageFilterSaveButton extends StatelessWidget {
idCTRL.text, idCTRL.text,
nameCTRL.text, nameCTRL.text,
hospitalID, hospitalID,
udiCTRL.text, // udiCTRL.text,
); );
showDialog( showDialog(
context: context, context: context,
@@ -10,13 +10,13 @@ class PackageFilterChip extends StatelessWidget {
required String id, required String id,
required String name, required String name,
required String hospital, required String hospital,
required String udi, // required String udi,
}) : _deviceBlockSize = deviceBlockSize, }) : _deviceBlockSize = deviceBlockSize,
_label = label, _label = label,
_id = id, _id = id,
_name = name, _name = name,
_hospital = hospital, _hospital = hospital,
_udi = udi, // _udi = udi,
super(key: key); super(key: key);
final double _deviceBlockSize; final double _deviceBlockSize;
@@ -24,7 +24,7 @@ class PackageFilterChip extends StatelessWidget {
final String _id; final String _id;
final String _name; final String _name;
final String _hospital; final String _hospital;
final String _udi; // final String _udi;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -52,7 +52,7 @@ class PackageFilterChip extends StatelessWidget {
_id, _id,
_name, _name,
_hospital, _hospital,
_udi, // _udi,
); );
packageProvider.setLoading(); packageProvider.setLoading();
packageProvider.getPackageResults().then( packageProvider.getPackageResults().then(