test commit

This commit is contained in:
HooDie
2023-10-27 20:50:17 +03:30
parent 11f910bb1c
commit eab99539d5
22 changed files with 504 additions and 288 deletions
+26
View File
@@ -95,15 +95,33 @@ class Url {
return '$baseUrl/transfer-items?page=$id';
}
static String getMyPackages(int id) {
return '$baseUrl/transfer-my-packages?page=$id';
}
static String getHospitalPackages(int id) {
return '$baseUrl/transfer-packages?page=$id';
}
static String getMyItemRequests = '$baseUrl/my-suspended-transfer-items';
static const String getHospitalItemRequests =
'$baseUrl/suspended-transfer-items';
static String getMyPackageRequests =
'$baseUrl/my-suspended-transfer-packages';
static const String getHospitalPackageRequests =
'$baseUrl/suspended-transfer-packages';
static String transferItems(String id) {
return '$baseUrl/transfer-items/$id';
}
static String transferPackages(String id) {
return '$baseUrl/transfer-packages/$id';
}
static String testResultVerification(String id, String value) {
return '$baseUrl/TestResults/Verify/$id/$value';
}
@@ -112,6 +130,10 @@ class Url {
return '$baseUrl/transfer-items/ChangeStatus/$id';
}
static String verifyPackageRequests(String id, String value) {
return '$baseUrl/transfer-packages/ChangeStatus/$id';
}
static String updateLabelResult(String id) {
return '$baseUrl/Labels/$id';
}
@@ -160,6 +182,10 @@ class Url {
return '$baseUrl/Items/ChangeStatus/$id';
}
static String repairItems(String id) {
return '$baseUrl/transfer-items/ChangeRepair/$id';
}
static String getUsers(String id) {
return '$baseUrl/Users?medicalCenter_id=$id';
}
+3
View File
@@ -3,6 +3,7 @@ import 'package:equatable/equatable.dart';
class MyPackageResultObject extends Equatable {
final String id;
final String name;
final List<String>? items;
final String? userName;
final String? fromDate;
final String? toDate;
@@ -13,12 +14,14 @@ class MyPackageResultObject extends Equatable {
this.userName,
this.fromDate,
this.toDate,
this.items,
});
@override
List<Object> get props => [
id,
name,
items!,
userName!,
fromDate!,
toDate!,
@@ -1,6 +1,5 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:cssd/config/routes.dart';
import 'package:cssd/pages/MyItemsPages/my_items_history_screen.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/my_items.dart';
@@ -206,16 +205,10 @@ class _MyItemsMineScreenState extends State<MyItemsMineScreen> {
isAdmin: false,
items: itemResults.myItems?[index],
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: ((context) =>
MyItemsHistoryScreen(
items: itemResults
.myItems?[index],
)),
),
);
Navigator.pushNamed(context,
Routes.myItemsHistoryScreen,
arguments:
itemResults.myItems?[index]);
},
);
} else {
@@ -225,16 +218,10 @@ class _MyItemsMineScreenState extends State<MyItemsMineScreen> {
items:
itemResults.hospitalItems?[index],
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: ((context) =>
MyItemsHistoryScreen(
items: itemResults
.myItems?[index],
)),
),
);
Navigator.pushNamed(context,
Routes.myItemsHistoryScreen,
arguments: itemResults
.hospitalItems?[index]);
},
);
}
@@ -1,5 +1,5 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/item_model.dart';
import 'package:cssd/pages/MyItemsPages/my_items_transfer_screen.dart';
import 'package:cssd/providers/items.dart';
import 'package:cssd/widgets/MyItemsScreens/Detail/my_items_detail_box_widget.dart';
import 'package:flutter/material.dart';
@@ -82,14 +82,9 @@ class _MyItemsDetailScreenState extends State<MyItemsDetailScreen> {
datas: datas!,
deviceBlockSize: _deviceBlockSize,
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ItemsTransferScreen(
items: datas,
),
),
);
Navigator.pushNamed(
context, Routes.itemsTransferScreen,
arguments: datas);
},
)
: ConnectionErrorBox();
@@ -39,6 +39,14 @@ class _MyItemsFilterScreenState extends State<MyItemsFilterScreen> {
super.initState();
}
@override
void didChangeDependencies() {
if (isInit) {
isInit = false;
}
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
@@ -26,6 +26,7 @@ class MyItemsHistoryScreen extends StatefulWidget {
class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
bool _isInit = true;
ScrollController? sc;
MyItemResultObject? itemData;
@override
void initState() {
@@ -34,13 +35,15 @@ class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
}
@override
void didChangeDependencies() {
void didChangeDependencies() async {
if (_isInit) {
itemData =
ModalRoute.of(context)!.settings.arguments as MyItemResultObject?;
var userResults = Provider.of<UsersProvider>(context);
userResults.setLoading();
userResults
.getUsers(userResults.getUserMedicalCenter() as String)
.then((_) {
String medicalCenterId =
await userResults.getUserMedicalCenter() as String;
userResults.getUsers(medicalCenterId).then((_) {
userResults.resetLoading();
sc?.addListener(
() {
@@ -49,8 +52,7 @@ class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
context,
listen: false,
);
userResults
.getUsers(userResults.getUserMedicalCenter() as String);
userResults.getUsers(medicalCenterId);
}
},
);
@@ -105,20 +107,13 @@ class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
MyItemsItemDataBox(
deviceBlockSize: _deviceBlockSize,
hasHistoryBtn: false,
items: MyItemsHistoryScreen().items!,
items: itemData,
isAdmin: userData['roles']?.contains('User')
? false
: true,
),
SizedBox(
height: 10.0,
),
Divider(
color: Colors.grey,
height: 2.0,
),
SizedBox(
height: 10.0,
height: 20.0,
),
Expanded(
child: Consumer<UsersProvider>(
@@ -136,8 +131,7 @@ class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
children: [
ItemHistoryDate(
deviceBlockSize: _deviceBlockSize,
items:
MyItemsHistoryScreen().items!,
items: itemData!,
),
SizedBox(
height: 20.0,
@@ -30,19 +30,26 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
bool _isInit = true;
ScrollController? sc;
TextEditingController searchCTRL = new TextEditingController();
ItemDetailObject? itemData;
@override
void initState() {
sc = new ScrollController();
print(itemData);
super.initState();
}
@override
void didChangeDependencies() {
void didChangeDependencies() async {
if (_isInit) {
itemData =
ModalRoute.of(context)!.settings.arguments as ItemDetailObject?;
var userResults = Provider.of<UsersProvider>(context);
userResults.setLoading();
userResults.getUsers(userResults.getUserMedicalCenter() as String).then(
String medicalCenterId =
await userResults.getUserMedicalCenter() as String;
print(medicalCenterId);
userResults.getUsers(medicalCenterId).then(
(_) {
userResults.resetLoading();
sc!.addListener(
@@ -53,8 +60,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
context,
listen: false,
);
userResults
.getUsers(userResults.getUserMedicalCenter() as String);
userResults.getUsers(medicalCenterId);
}
},
);
@@ -113,7 +119,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
ResultSearchBox(
searchCTRL: searchCTRL,
text: 'user',
text2: 'name',
text2: 'name or ID',
deviceBlockSize: _deviceBlockSize,
onChanged: (value) {
Provider.of<UsersProvider>(context, listen: false)
@@ -138,6 +144,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
return TransferDataBox(
deviceBlockSize: _deviceBlockSize,
user: userResults.usersBox?[index],
clickColor: kDarkBlue,
isClicked:
userResults.selectedUserIndex ==
index,
@@ -148,8 +155,14 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
).selectUser(index);
print(userId);
Provider.of<UsersProvider>(
context)
context,
listen: false)
.saveUserId = userId;
Provider.of<UsersProvider>(
context,
listen: false)
.selectedUserForItems =
userResults.usersBox?[index];
},
);
},
@@ -176,7 +189,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
),
content: SizedBox(
width: _deviceBlockSize,
height: 280,
height: 300,
child: Column(
children: [
Text(
@@ -188,7 +201,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
SizedBox(
height: 10.0,
),
ItemCard(_deviceBlockSize),
ItemCard(_deviceBlockSize, itemData!),
SizedBox(
height: 5.0,
),
@@ -199,7 +212,14 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
SizedBox(
width: 5.0,
),
ItemCard(_deviceBlockSize),
TransferDataBox(
deviceBlockSize:
_deviceBlockSize,
user:
Provider.of<UsersProvider>(
context)
.selectedUserForItems,
)
],
),
SizedBox(
@@ -214,11 +234,16 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
context,
listen: false,
).transferItems(
ItemsTransferScreen().items!.id,
itemData!.id,
Provider.of<UsersProvider>(
context,
).saveUserId!,
context,
listen: false)
.saveUserId!,
);
Navigator.of(context).pop();
Navigator.of(context)
.popAndPushNamed(Routes
.myItemsResultScreen);
},
text: 'Transfer',
),
@@ -252,7 +277,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
);
}
Container ItemCard(double _deviceBlockSize) {
Container ItemCard(double _deviceBlockSize, ItemDetailObject item) {
return Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.grey),
@@ -262,9 +287,9 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
padding: const EdgeInsets.all(6.0),
padding: const EdgeInsets.all(10.0),
child: Text(
ItemsTransferScreen().items!.id,
item.id,
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
@@ -281,7 +306,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
Container(
width: 40 * _deviceBlockSize,
child: Text(
ItemsTransferScreen().items!.name,
item.name,
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
fontWeight: FontWeight.w700,
@@ -301,7 +326,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
),
),
Text(
ItemsTransferScreen().items!.size,
item.size,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.w700,
@@ -323,7 +348,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
),
),
Text(
ItemsTransferScreen().items!.userName,
item.userName,
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
fontWeight: FontWeight.w700,
@@ -1,6 +1,5 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:cssd/config/routes.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_history_screen.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/my_packages.dart';
@@ -49,11 +48,11 @@ class _MyPackagesMineScreenState extends State<MyPackagesMineScreen> {
() {
if (sc!.position.pixels == sc!.position.maxScrollExtent &&
searchCTRL.text == '') {
var myItemResults = Provider.of<MyPackageProvider>(
var myPackageResults = Provider.of<MyPackageProvider>(
context,
listen: false,
);
myItemResults.getMyPackages();
myPackageResults.getMyPackages();
}
},
);
@@ -181,16 +180,10 @@ class _MyPackagesMineScreenState extends State<MyPackagesMineScreen> {
packages:
packageResults.myPackages?[index],
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: ((context) =>
MyPackagesHistoryScreen(
packages: packageResults
.myPackages?[index],
)),
),
);
Navigator.pushNamed(context,
Routes.myItemsHistoryScreen,
arguments: packageResults
.myPackages?[index]);
},
);
} else {
@@ -200,16 +193,10 @@ class _MyPackagesMineScreenState extends State<MyPackagesMineScreen> {
packages: packageResults
.hospitalPackages?[index],
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: ((context) =>
MyPackagesHistoryScreen(
packages: packageResults
.myPackages?[index],
)),
),
);
Navigator.pushNamed(context,
Routes.myItemsHistoryScreen,
arguments: packageResults
.hospitalPackages?[index]);
},
);
}
@@ -1,5 +1,5 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/package_model.dart';
import 'package:cssd/pages/MyPackagesPages/my_packages_transfer_screen.dart';
import 'package:cssd/providers/packages.dart';
import 'package:cssd/widgets/MyPackagesScreens/Detail/my_packages_detail_box_widget.dart';
import 'package:flutter/material.dart';
@@ -82,14 +82,9 @@ class _MyPackagesDetailScreenState extends State<MyPackagesDetailScreen> {
datas: datas!,
deviceBlockSize: _deviceBlockSize,
push: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PackageTransferScreen(
packages: datas,
),
),
);
Navigator.pushNamed(
context, Routes.packagesTransferScreen,
arguments: datas);
},
)
: ConnectionErrorBox();
@@ -36,6 +36,14 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
super.initState();
}
@override
void didChangeDependencies() {
if (isInit) {
isInit = false;
}
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
final _media = MediaQuery.of(context);
@@ -198,31 +206,71 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
SizedBox(
height: 30,
),
TextFormField(
controller: udiCTRL,
decoration: InputDecoration(
icon: Icon(
FontAwesomeIcons.alignLeft,
size: 6 * _deviceBlockSize,
Row(
children: [
Flexible(
flex: 8,
child: TextFormField(
controller: udiCTRL,
decoration: InputDecoration(
icon: Icon(
FontAwesomeIcons.alignLeft,
size: 6 * _deviceBlockSize,
),
labelStyle: TextStyle(
fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize,
),
labelText: 'UDI',
isDense: true,
contentPadding: EdgeInsets.symmetric(
vertical: 2,
horizontal: 3,
),
),
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
),
focusNode: _udiFocusNode,
keyboardType: TextInputType.text,
textInputAction: TextInputAction.next,
),
),
labelStyle: TextStyle(
fontWeight: FontWeight.w100,
fontSize: 4 * _deviceBlockSize,
),
labelText: 'UDI',
isDense: true,
contentPadding: EdgeInsets.symmetric(
vertical: 2,
horizontal: 3,
),
),
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
),
focusNode: _udiFocusNode,
keyboardType: TextInputType.text,
textInputAction: TextInputAction.next,
Flexible(
flex: 1,
child: 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);
idCTRL.text = result;
}
},
);
},
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,
),
),
),
)
],
),
SizedBox(
height: 90,
@@ -15,9 +15,9 @@ import 'package:provider/provider.dart';
class MyPackagesHistoryScreen extends StatefulWidget {
final bool? isAdmin;
final MyPackageResultObject? packages;
final MyPackageResultObject? items;
MyPackagesHistoryScreen({this.isAdmin, this.packages});
MyPackagesHistoryScreen({this.isAdmin, this.items});
@override
_MyPackagesHistoryScreenState createState() =>
@@ -27,6 +27,7 @@ class MyPackagesHistoryScreen extends StatefulWidget {
class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
bool _isInit = true;
ScrollController? sc;
MyPackageResultObject? packageData;
@override
void initState() {
@@ -35,13 +36,15 @@ class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
}
@override
void didChangeDependencies() {
void didChangeDependencies() async {
if (_isInit) {
packageData =
ModalRoute.of(context)!.settings.arguments as MyPackageResultObject?;
var userResults = Provider.of<UsersProvider>(context);
userResults.setLoading();
userResults
.getUsers(userResults.getUserMedicalCenter() as String)
.then((_) {
String medicalCenterId =
await userResults.getUserMedicalCenter() as String;
userResults.getUsers(medicalCenterId).then((_) {
userResults.resetLoading();
sc?.addListener(
() {
@@ -50,8 +53,7 @@ class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
context,
listen: false,
);
userResults
.getUsers(userResults.getUserMedicalCenter() as String);
userResults.getUsers(medicalCenterId);
}
},
);
@@ -106,20 +108,13 @@ class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
MyPackagesItemDataBox(
deviceBlockSize: _deviceBlockSize,
hasHistoryBtn: false,
packages: MyPackagesHistoryScreen().packages!,
packages: packageData,
isAdmin: userData['roles']?.contains('User')
? false
: true,
),
SizedBox(
height: 10.0,
),
Divider(
color: Colors.grey,
height: 2.0,
),
SizedBox(
height: 10.0,
height: 20.0,
),
Expanded(
child: Consumer<UsersProvider>(
@@ -137,9 +132,7 @@ class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
children: [
PackageHistoryDate(
deviceBlockSize: _deviceBlockSize,
packages:
MyPackagesHistoryScreen()
.packages!,
packages: packageData!,
),
SizedBox(
height: 20.0,
@@ -30,6 +30,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
bool _isInit = true;
ScrollController? sc;
TextEditingController searchCTRL = new TextEditingController();
PackageDetailObject? packageData;
@override
void initState() {
@@ -38,13 +39,15 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
}
@override
void didChangeDependencies() {
void didChangeDependencies() async {
if (_isInit) {
packageData =
ModalRoute.of(context)!.settings.arguments as PackageDetailObject?;
var userResults = Provider.of<UsersProvider>(context);
userResults.setLoading();
userResults
.getUsers(userResults.getUserMedicalCenter() as String)
.then((_) {
String medicalCenterId =
await userResults.getUserMedicalCenter() as String;
userResults.getUsers(medicalCenterId).then((_) {
userResults.resetLoading();
sc!.addListener(
() {
@@ -54,8 +57,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
context,
listen: false,
);
userResults
.getUsers(userResults.getUserMedicalCenter() as String);
userResults.getUsers(medicalCenterId);
}
},
);
@@ -138,6 +140,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
return TransferDataBox(
deviceBlockSize: _deviceBlockSize,
user: userResults.usersBox?[index],
clickColor: kDarkPurple,
isClicked:
userResults.selectedUserIndex ==
index,
@@ -148,8 +151,14 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
).selectUser(index);
print(userId);
Provider.of<UsersProvider>(
context)
context,
listen: false)
.saveUserId = userId;
Provider.of<UsersProvider>(
context,
listen: false)
.selectedUserForPackages =
userResults.usersBox?[index];
},
);
},
@@ -188,7 +197,8 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
SizedBox(
height: 10.0,
),
PackageCard(_deviceBlockSize),
PackageCard(
_deviceBlockSize, packageData!),
SizedBox(
height: 5.0,
),
@@ -199,7 +209,13 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
SizedBox(
width: 5.0,
),
PackageCard(_deviceBlockSize),
TransferDataBox(
deviceBlockSize:
_deviceBlockSize,
user: Provider.of<
UsersProvider>(context)
.selectedUserForPackages,
)
],
),
SizedBox(
@@ -207,20 +223,23 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
),
TransferDestroyButton(
deviceBlockSize: _deviceBlockSize,
firstColor: kDarkBlue,
secondColor: kDarkBlueSub,
firstColor: kDarkPurple,
secondColor: kDarkPurpleSub,
onTap: () {
Provider.of<MyPackageProvider>(
context,
listen: false,
).transferPackage(
PackageTransferScreen()
.packages!
.id,
packageData!.id,
Provider.of<UsersProvider>(
context,
).saveUserId!,
context,
listen: false)
.saveUserId!,
);
Navigator.of(context).pop();
Navigator.of(context)
.popAndPushNamed(Routes
.myPackagesResultScreen);
},
text: 'Transfer',
),
@@ -254,7 +273,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
);
}
Container PackageCard(double _deviceBlockSize) {
Container PackageCard(double _deviceBlockSize, PackageDetailObject package) {
return Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.grey),
@@ -266,7 +285,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
Container(
padding: const EdgeInsets.all(6.0),
child: Text(
PackageTransferScreen().packages!.id,
package.id,
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 5 * _deviceBlockSize,
@@ -283,7 +302,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
Container(
width: 40 * _deviceBlockSize,
child: Text(
PackageTransferScreen().packages!.name,
package.name,
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
fontWeight: FontWeight.w700,
+42 -11
View File
@@ -92,6 +92,7 @@ class MyItemProvider extends ChangeNotifier {
String url = Url.getMyItems(pageNumber);
if (filterOn) {
if (filters!.id != '') {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Modify this. Filter Items by ID dos'nt work!!!!
url += '&item_id=${filters!.id}';
}
if (filters!.name != '') {
@@ -124,8 +125,12 @@ class MyItemProvider extends ChangeNotifier {
name: item['name'],
id: item['id'].toString(),
size: item['size'].toString(),
fromDate: item['transfers']['from_date'],
toDate: item['transfers']['to_date'],
fromDate: item['transfers'].isNotEmpty
? item['transfers']['from_date'].toString()
: '',
toDate: item['transfers'].isNotEmpty
? item['transfers']['to_date'].toString()
: '',
),
);
}
@@ -137,6 +142,7 @@ class MyItemProvider extends ChangeNotifier {
String url = Url.getHospitalItems(pageNumber);
if (filterOn) {
if (filters!.id != '') {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Modify this. Filter Items by ID dos'nt work!!!!
url += '&item_id=${filters!.id}';
}
if (filters!.name != '') {
@@ -158,7 +164,6 @@ class MyItemProvider extends ChangeNotifier {
);
print(response.body);
print(response.statusCode);
var itemsData = json.decode(response.body);
@@ -173,8 +178,12 @@ class MyItemProvider extends ChangeNotifier {
id: item['id'].toString(),
size: item['size'].toString(),
userName: item['user'] != null ? item['user']['name'] : '',
// fromDate: item['transfers']['from_date'],
// toDate: item['transfers']['to_date'],
fromDate: item['transfers'].isNotEmpty
? item['transfers']['from_date'].toString()
: '',
toDate: item['transfers'].isNotEmpty
? item['transfers']['to_date'].toString()
: '',
),
);
}
@@ -196,9 +205,9 @@ class MyItemProvider extends ChangeNotifier {
for (var item in itemsData['data']) {
originalMyItemsRequests!.add(
MyItemResultObject(
name: item['name'],
id: item['id'].toString(),
size: item['size'].toString(),
name: item['transferable']['name'],
id: item['transferable']['id'].toString(),
size: item['transferable']['size'].toString(),
),
);
}
@@ -212,15 +221,16 @@ class MyItemProvider extends ChangeNotifier {
);
var itemsData = json.decode(response.body);
print(itemsData);
originalHospitalItemsRequests = [];
for (var item in itemsData['data']) {
originalHospitalItemsRequests!.add(
MyItemResultObject(
name: item['name'],
id: item['id'].toString(),
size: item['size'].toString(),
name: item['transferable']['name'].toString(),
id: item['transferable']['id'].toString(),
size: item['transferable']['size'].toString(),
userName: item['user'] != null ? item['user']['name'] : '',
),
);
@@ -247,6 +257,24 @@ class MyItemProvider extends ChangeNotifier {
print(itemData);
}
Future<void> repairItems(String itemId, String value) async {
var response = await http.post(
Uri.parse(Url.repairItems(itemId)),
body: json.encode(
{
'status': value,
},
),
headers: {
'Authorization': User.token,
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json",
"Accept": "application/json"
},
);
print(response.statusCode);
}
Future<bool> verifyItemRequests(String id, String value) async {
var response = await http.post(
Uri.parse(Url.verifyItemRequests(id, value)),
@@ -260,6 +288,8 @@ class MyItemProvider extends ChangeNotifier {
);
var itemData = json.decode(response.body);
print(response.statusCode);
print(itemData);
try {
if (itemData['data']['transfers']['status'] == 'approved') {
@@ -268,6 +298,7 @@ class MyItemProvider extends ChangeNotifier {
return false;
}
} catch (e) {
print(e);
return false;
}
}
+22 -14
View File
@@ -79,7 +79,7 @@ class MyPackageProvider extends ChangeNotifier {
}
Future<void> getMyPackages() async {
String url = Url.getMyItems(pageNumber);
String url = Url.getMyPackages(pageNumber);
if (filterOn) {
if (filters!.id != '') {
url += '&package_id=${filters!.id}';
@@ -107,8 +107,12 @@ class MyPackageProvider extends ChangeNotifier {
MyPackageResultObject(
name: package['name'],
id: package['id'].toString(),
fromDate: package['transfers']['from_date'],
toDate: package['transfers']['to_date'],
// fromDate: package['transfers'].isNotEmpty
// ? package['transfers']['from_date'].toString()
// : '',
// toDate: package['transfers'].isNotEmpty
// ? package['transfers']['to_date'].toString()
// : '',
),
);
}
@@ -117,7 +121,7 @@ class MyPackageProvider extends ChangeNotifier {
}
Future<void> getHospitalPackages() async {
String url = Url.getHospitalItems(pageNumber);
String url = Url.getHospitalPackages(pageNumber);
if (filterOn) {
if (filters!.id != '') {
url += '&package_id=${filters!.id}';
@@ -146,8 +150,12 @@ class MyPackageProvider extends ChangeNotifier {
name: package['name'],
id: package['id'].toString(),
userName: package['user'] != null ? package['user']['name'] : '',
fromDate: package['transfers']['from_date'],
toDate: package['transfers']['to_date'],
// fromDate: package['transfers'].isNotEmpty
// ? package['transfers']['from_date'].toString()
// : '',
// toDate: package['transfers'].isNotEmpty
// ? package['transfers']['to_date'].toString()
// : '',
),
);
}
@@ -156,7 +164,7 @@ class MyPackageProvider extends ChangeNotifier {
}
Future<void> getMyPackageRequests() async {
String url = Url.getMyItemRequests;
String url = Url.getMyPackageRequests;
var response = await http.get(
Uri.parse(url),
headers: {'Authorization': User.token, "Accept": "application/json"},
@@ -169,15 +177,15 @@ class MyPackageProvider extends ChangeNotifier {
for (var package in packagesData['data']) {
originalMyPackagesRequests!.add(
MyPackageResultObject(
name: package['name'],
id: package['id'].toString(),
name: package['transferable']['name'],
id: package['transferable']['id'].toString(),
),
);
}
}
Future<void> getHospitalPackageRequests() async {
String url = Url.getHospitalItemRequests;
String url = Url.getHospitalPackageRequests;
var response = await http.get(
Uri.parse(url),
headers: {'Authorization': User.token, "Accept": "application/json"},
@@ -190,8 +198,8 @@ class MyPackageProvider extends ChangeNotifier {
for (var package in packagesData['data']) {
originalHospitalPackagesRequests!.add(
MyPackageResultObject(
name: package['name'],
id: package['id'].toString(),
name: package['transferable']['name'],
id: package['transferable']['id'].toString(),
userName: package['user'] != null ? package['user']['name'] : '',
),
);
@@ -200,7 +208,7 @@ class MyPackageProvider extends ChangeNotifier {
Future<void> transferPackage(String packageId, String userId) async {
var response = await http.post(
Uri.parse(Url.transferItems(packageId)),
Uri.parse(Url.transferPackages(packageId)),
body: json.encode(
{
'user_id': userId,
@@ -220,7 +228,7 @@ class MyPackageProvider extends ChangeNotifier {
Future<bool> verifyPackageRequests(String id, String value) async {
var response = await http.post(
Uri.parse(Url.verifyItemRequests(id, value)),
Uri.parse(Url.verifyPackageRequests(id, value)),
body: json.encode({'status': value}),
headers: {
'Authorization': User.token,
+3
View File
@@ -16,6 +16,8 @@ class UsersProvider extends ChangeNotifier {
String? medicalCenterId;
int? selectedUserIndex;
Users? selectedUserForItems;
Users? selectedUserForPackages;
String? saveUserId;
@@ -66,6 +68,7 @@ class UsersProvider extends ChangeNotifier {
),
);
}
searchUsers('');
}
Future<String?> getUserMedicalCenter() async {
@@ -3,6 +3,7 @@ import 'package:cssd/config/routes.dart';
import 'package:cssd/models/item_model.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/items.dart';
import 'package:cssd/providers/my_items.dart';
import 'package:cssd/widgets/MyItemsScreens/Detail/cancel_transfer_button.dart';
import 'package:cssd/widgets/MyItemsScreens/Detail/transfer_destroy_button.dart';
import 'package:flutter/material.dart';
@@ -417,6 +418,83 @@ class MyItemsDetailsDataBox extends StatelessWidget {
);
},
),
SizedBox(
height: 10.0,
),
userData['roles']?.contains('User') ?? false
? Container()
: TransferDestroyButton(
deviceBlockSize: _deviceBlockSize,
firstColor: Colors.black,
secondColor: Colors.black87,
text: 'Repair',
onTap: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
'Are you sure to repair this Item?',
style: TextStyle(
fontSize: 4 * _deviceBlockSize,
),
),
content: SizedBox(
width: _deviceBlockSize,
height: 220,
child: Column(
children: [
Text(
'By approving, your item will be set in repair mode and it can be use anymore unless you disable repair mode.',
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
),
),
SizedBox(
height: 10.0,
),
ItemCard(_deviceBlockSize),
SizedBox(
height: 20.0,
),
TransferDestroyButton(
deviceBlockSize: _deviceBlockSize,
firstColor: Colors.black,
secondColor: Colors.black87,
onTap: () {
Provider.of<MyItemProvider>(context,
listen: false)
.repairItems(datas.id, 'approved')
.then(
(value) {
Navigator.of(context).pop();
Navigator.pushReplacementNamed(
context,
Routes.myItemsResultScreen,
);
},
);
},
text: 'Repair',
),
SizedBox(
height: 5.0,
),
CancelTransferButton(
deviceBlockSize: _deviceBlockSize,
color: kDarkBlue,
onTap: () {
Navigator.pop(context);
},
),
],
),
),
);
},
);
},
),
SizedBox(
height: 20.0,
),
@@ -1,4 +1,3 @@
import 'package:cssd/config/colors.dart';
import 'package:cssd/models/users_model.dart';
import 'package:flutter/material.dart';
@@ -6,12 +5,14 @@ class TransferDataBox extends StatelessWidget {
final Users? user;
final Function(String)? onTap;
final bool isClicked;
final Color? clickColor;
const TransferDataBox({
Key? key,
required double deviceBlockSize,
this.user,
this.onTap,
this.clickColor,
this.isClicked = false,
}) : _deviceBlockSize = deviceBlockSize,
super(key: key);
@@ -32,7 +33,7 @@ class TransferDataBox extends StatelessWidget {
borderRadius: BorderRadius.all(
Radius.circular(10),
),
border: Border.all(color: kDarkBlue, width: 2.0),
border: Border.all(color: clickColor!, width: 2.0),
)
: BoxDecoration(),
padding: EdgeInsets.all(8),
@@ -1,3 +1,4 @@
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/my_items.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -31,6 +32,7 @@ class MyItemFilterChip extends StatelessWidget {
@override
Widget build(BuildContext context) {
final userData = Provider.of<Auth>(context, listen: false).user;
return Row(
children: <Widget>[
SizedBox(
@@ -59,11 +61,19 @@ class MyItemFilterChip extends StatelessWidget {
_specific,
);
itemProvider.setLoading();
itemProvider.getMyItems().then(
(_) {
itemProvider.resetLoading();
},
);
if (userData['roles']?.contains('User')) {
itemProvider.getMyItems().then(
(_) {
itemProvider.resetLoading();
},
);
} else {
itemProvider.getHospitalItems().then(
(_) {
itemProvider.resetLoading();
},
);
}
},
),
],
@@ -1,13 +1,8 @@
import 'package:cssd/config/colors.dart';
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/package_model.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/packages.dart';
import 'package:cssd/widgets/MyItemsScreens/Detail/cancel_transfer_button.dart';
import 'package:cssd/widgets/MyItemsScreens/Detail/transfer_destroy_button.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class MyPackageDetailsDataBox extends StatelessWidget {
@@ -25,7 +20,7 @@ class MyPackageDetailsDataBox extends StatelessWidget {
@override
Widget build(BuildContext context) {
final userData = Provider.of<Auth>(context, listen: false).user;
// final userData = Provider.of<Auth>(context, listen: false).user;
return Padding(
padding: EdgeInsets.all(20),
child: ListView(
@@ -276,83 +271,83 @@ class MyPackageDetailsDataBox extends StatelessWidget {
push();
},
),
SizedBox(
height: 10.0,
),
userData['roles']?.contains('User') ?? false
? Container()
: TransferDestroyButton(
deviceBlockSize: _deviceBlockSize,
firstColor: kPink,
secondColor: kPinkSub,
text: 'Destroy',
onTap: () {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text(
'Are you sure to destroy this Package?',
style: TextStyle(
fontSize: 4 * _deviceBlockSize,
),
),
content: SizedBox(
width: _deviceBlockSize,
height: 220,
child: Column(
children: [
Text(
'By approving, your package will be removed and it can not be used any more.',
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
),
),
SizedBox(
height: 10.0,
),
PackageCard(_deviceBlockSize),
SizedBox(
height: 20.0,
),
TransferDestroyButton(
deviceBlockSize: _deviceBlockSize,
firstColor: kPink,
secondColor: kPinkSub,
onTap: () {
Provider.of<PackageProvider>(context,
listen: false)
.removePackages(datas.id)
.then(
(value) {
Navigator.of(context).pop();
Navigator.pushReplacementNamed(
context,
Routes.myPackagesResultScreen,
);
},
);
},
text: 'Destroy',
),
SizedBox(
height: 5.0,
),
CancelTransferButton(
deviceBlockSize: _deviceBlockSize,
color: kDarkPurple,
onTap: () {
Navigator.pop(context);
},
),
],
),
),
);
},
);
},
),
// SizedBox(
// height: 10.0,
// ),
// userData['roles']?.contains('User') ?? false
// ? Container()
// : TransferDestroyButton(
// deviceBlockSize: _deviceBlockSize,
// firstColor: kPink,
// secondColor: kPinkSub,
// text: 'Destroy',
// onTap: () {
// showDialog(
// context: context,
// builder: (context) {
// return AlertDialog(
// title: Text(
// 'Are you sure to destroy this Package?',
// style: TextStyle(
// fontSize: 4 * _deviceBlockSize,
// ),
// ),
// content: SizedBox(
// width: _deviceBlockSize,
// height: 220,
// child: Column(
// children: [
// Text(
// 'By approving, your package will be removed and it can not be used any more.',
// style: TextStyle(
// fontSize: 3 * _deviceBlockSize,
// ),
// ),
// SizedBox(
// height: 10.0,
// ),
// PackageCard(_deviceBlockSize),
// SizedBox(
// height: 20.0,
// ),
// TransferDestroyButton(
// deviceBlockSize: _deviceBlockSize,
// firstColor: kPink,
// secondColor: kPinkSub,
// onTap: () {
// Provider.of<PackageProvider>(context,
// listen: false)
// .removePackages(datas.id)
// .then(
// (value) {
// Navigator.of(context).pop();
// Navigator.pushReplacementNamed(
// context,
// Routes.myPackagesResultScreen,
// );
// },
// );
// },
// text: 'Destroy',
// ),
// SizedBox(
// height: 5.0,
// ),
// CancelTransferButton(
// deviceBlockSize: _deviceBlockSize,
// color: kDarkPurple,
// onTap: () {
// Navigator.pop(context);
// },
// ),
// ],
// ),
// ),
// );
// },
// );
// },
// ),
SizedBox(
height: 20,
),
@@ -1,3 +1,4 @@
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/my_packages.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -25,6 +26,7 @@ class MyPackageFilterChip extends StatelessWidget {
@override
Widget build(BuildContext context) {
final userData = Provider.of<Auth>(context, listen: false).user;
return Row(
children: <Widget>[
SizedBox(
@@ -51,11 +53,19 @@ class MyPackageFilterChip extends StatelessWidget {
_udi,
);
packageProvider.setLoading();
packageProvider.getMyPackages().then(
(_) {
packageProvider.resetLoading();
},
);
if (userData['roles']?.contains('User')) {
packageProvider.getMyPackages().then(
(_) {
packageProvider.resetLoading();
},
);
} else {
packageProvider.getHospitalPackages().then(
(_) {
packageProvider.resetLoading();
},
);
}
},
),
],
@@ -106,7 +106,7 @@ class MyPackagesItemDataBox extends StatelessWidget {
width: 9 * _deviceBlockSize,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: kDarkBlue,
color: kDarkPurple,
),
child: Icon(
FontAwesomeIcons.history,
@@ -1,6 +1,6 @@
import 'package:cssd/config/colors.dart';
import 'package:cssd/models/my_package_model.dart';
import 'package:cssd/providers/my_items.dart';
import 'package:cssd/providers/my_packages.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -104,9 +104,9 @@ class PackageRequestsDataBox extends StatelessWidget {
actions: <Widget>[
TextButton(
onPressed: () async {
Provider.of<MyItemProvider>(context,
Provider.of<MyPackageProvider>(context,
listen: false)
.verifyItemRequests(
.verifyPackageRequests(
package!.id, 'approved')
.then((result) {
if (result) {
@@ -114,7 +114,7 @@ class PackageRequestsDataBox extends StatelessWidget {
}
Navigator.of(ctx).pop();
Navigator.of(context).popAndPushNamed(
Routes.myItemsResultScreen);
Routes.myPackagesResultScreen);
});
},
child: Text('Yes'),
@@ -158,9 +158,9 @@ class PackageRequestsDataBox extends StatelessWidget {
actions: <Widget>[
TextButton(
onPressed: () async {
Provider.of<MyItemProvider>(context,
Provider.of<MyPackageProvider>(context,
listen: false)
.verifyItemRequests(
.verifyPackageRequests(
package!.id, 'rejected')
.then((result) {
if (result) {
@@ -168,7 +168,7 @@ class PackageRequestsDataBox extends StatelessWidget {
}
Navigator.of(ctx).pop();
Navigator.of(context).popAndPushNamed(
Routes.myItemsResultScreen);
Routes.myPackagesResultScreen);
});
},
child: Text('Yes'),