From 92d6024cb1362af6fa40e437372e308f2d11486c Mon Sep 17 00:00:00 2001 From: Odein Date: Sat, 28 Oct 2023 15:25:31 +0430 Subject: [PATCH] testing --- lib/config/urls.dart | 2 +- lib/models/my_item_model.dart | 6 ++ lib/models/my_package_model.dart | 12 +++- .../MyItemsPages/my_items_history_screen.dart | 55 +++++++++---------- lib/providers/my_items.dart | 52 +++++++++++++----- lib/providers/my_packages.dart | 54 ++++++++++++++---- lib/widgets/Global/drawer.dart | 3 +- .../History/my_items_history_date_widget.dart | 4 +- .../Result/item_requests_data_box.dart | 4 +- .../Result/my_packages_data_box_widget.dart | 25 +++++++++ .../Result/package_requests_data_box.dart | 29 +++++++++- 11 files changed, 181 insertions(+), 65 deletions(-) diff --git a/lib/config/urls.dart b/lib/config/urls.dart index 28f9751..b564718 100644 --- a/lib/config/urls.dart +++ b/lib/config/urls.dart @@ -187,6 +187,6 @@ class Url { } static String getUsers(String id) { - return '$baseUrl/Users?medicalCenter_id=$id'; + return '$baseUrl/Users?medical_center_id=$id'; } } diff --git a/lib/models/my_item_model.dart b/lib/models/my_item_model.dart index fffa481..c44addc 100644 --- a/lib/models/my_item_model.dart +++ b/lib/models/my_item_model.dart @@ -7,6 +7,8 @@ class MyItemResultObject extends Equatable { final String? userName; final String? fromDate; final String? toDate; + final String? requestId; + final String? userHistory; MyItemResultObject({ required this.id, @@ -15,6 +17,8 @@ class MyItemResultObject extends Equatable { this.userName, this.fromDate, this.toDate, + this.requestId, + this.userHistory, }); @override @@ -25,6 +29,8 @@ class MyItemResultObject extends Equatable { userName!, fromDate!, toDate!, + requestId!, + userHistory!, ]; @override diff --git a/lib/models/my_package_model.dart b/lib/models/my_package_model.dart index 2117de1..45f7ced 100644 --- a/lib/models/my_package_model.dart +++ b/lib/models/my_package_model.dart @@ -3,28 +3,34 @@ import 'package:equatable/equatable.dart'; class MyPackageResultObject extends Equatable { final String id; final String name; - final List? items; + final String createdAt; final String? userName; final String? fromDate; final String? toDate; + final String? requestId; + final String? userHistory; MyPackageResultObject({ required this.id, required this.name, + required this.createdAt, this.userName, this.fromDate, this.toDate, - this.items, + this.requestId, + this.userHistory, }); @override List get props => [ id, name, - items!, + createdAt, userName!, fromDate!, toDate!, + requestId!, + userHistory!, ]; @override diff --git a/lib/pages/MyItemsPages/my_items_history_screen.dart b/lib/pages/MyItemsPages/my_items_history_screen.dart index 5068b67..3225af4 100644 --- a/lib/pages/MyItemsPages/my_items_history_screen.dart +++ b/lib/pages/MyItemsPages/my_items_history_screen.dart @@ -1,7 +1,6 @@ import 'package:cssd/models/my_item_model.dart'; import 'package:cssd/providers/auth.dart'; -import 'package:cssd/providers/users.dart'; -import 'package:cssd/widgets/MyItemsScreens/Detail/transfer_data_box.dart'; +import 'package:cssd/providers/my_items.dart'; import 'package:cssd/widgets/MyItemsScreens/History/my_items_history_date_widget.dart'; import 'package:cssd/widgets/MyItemsScreens/Result/my_items_data_box_widget.dart'; @@ -35,28 +34,29 @@ class _MyItemsHistoryScreenState extends State { } @override - void didChangeDependencies() async { + void didChangeDependencies() { if (_isInit) { itemData = ModalRoute.of(context)!.settings.arguments as MyItemResultObject?; - var userResults = Provider.of(context); - userResults.setLoading(); - String medicalCenterId = - await userResults.getUserMedicalCenter() as String; - userResults.getUsers(medicalCenterId).then((_) { - userResults.resetLoading(); - sc?.addListener( - () { - if (sc!.position.pixels == sc!.position.maxScrollExtent) { - var userResults = Provider.of( - context, - listen: false, - ); - userResults.getUsers(medicalCenterId); - } - }, - ); - }); + var _id = itemData!.id; + var myItemResults = Provider.of(context); + myItemResults.setLoading(); + myItemResults.getItemsHistory(_id).then( + (_) { + myItemResults.resetLoading(); + sc!.addListener( + () { + if (sc!.position.pixels == sc!.position.maxScrollExtent) { + var myItemResults = Provider.of( + context, + listen: false, + ); + myItemResults.getItemsHistory(_id); + } + }, + ); + }, + ); } _isInit = false; super.didChangeDependencies(); @@ -116,9 +116,9 @@ class _MyItemsHistoryScreenState extends State { height: 20.0, ), Expanded( - child: Consumer( + child: Consumer( builder: (context, userResults, child) { - return userResults.isLoading + return userResults.isloading ? Center( child: CircularProgressIndicator( color: Colors.black, @@ -136,15 +136,14 @@ class _MyItemsHistoryScreenState extends State { SizedBox( height: 20.0, ), - TransferDataBox( - deviceBlockSize: _deviceBlockSize, - user: - userResults.usersBox?[index], + Text( + itemData!.userHistory.toString(), ), ], ); }, - itemCount: userResults.usersBox?.length, + itemCount: userResults + .originalItemHistory?.length, shrinkWrap: true, ); }, diff --git a/lib/providers/my_items.dart b/lib/providers/my_items.dart index 6c5253d..25f1910 100644 --- a/lib/providers/my_items.dart +++ b/lib/providers/my_items.dart @@ -19,6 +19,8 @@ class MyItemProvider extends ChangeNotifier { List? originalMyItemsRequests; List? originalHospitalItemsRequests; + List? originalItemHistory; + MyItemFilterObject? filters = MyItemFilterObject( id: '', name: '', @@ -92,7 +94,6 @@ 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 != '') { @@ -125,12 +126,6 @@ class MyItemProvider extends ChangeNotifier { name: item['name'], id: item['id'].toString(), size: item['size'].toString(), - fromDate: item['transfers'].isNotEmpty - ? item['transfers']['from_date'].toString() - : '', - toDate: item['transfers'].isNotEmpty - ? item['transfers']['to_date'].toString() - : '', ), ); } @@ -142,7 +137,6 @@ 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 != '') { @@ -178,12 +172,6 @@ class MyItemProvider extends ChangeNotifier { id: item['id'].toString(), size: item['size'].toString(), userName: item['user'] != null ? item['user']['name'] : '', - fromDate: item['transfers'].isNotEmpty - ? item['transfers']['from_date'].toString() - : '', - toDate: item['transfers'].isNotEmpty - ? item['transfers']['to_date'].toString() - : '', ), ); } @@ -191,6 +179,40 @@ class MyItemProvider extends ChangeNotifier { searchHospitalItems(''); } + Future getItemsHistory(String id) async { + String url = Url.getItemResult(id); + var response = await http.get( + Uri.parse(url), + headers: {'Authorization': User.token, "Accept": "application/json"}, + ); + + var itemsData = json.decode(response.body)['data']; + + String fromDate = ''; + String toDate = ''; + String userHistory = ''; + for (var transfer in itemsData['transfers']) { + fromDate = + transfer['from_date'] != null ? transfer['from_date'].toString() : ''; + toDate = + transfer['to_date'] != null ? transfer['to_date'].toString() : ''; + userHistory = transfer['user']['name'].toString(); + } + if (itemsData.isNotEmpty) { + originalItemHistory!.add( + MyItemResultObject( + name: itemsData['name'], + id: itemsData['id'].toString(), + size: itemsData['size'].toString(), + fromDate: fromDate, + toDate: toDate, + userHistory: userHistory, + ), + ); + originalItemHistory!.reversed.toList(); + } + } + Future getMyItemRequests() async { String url = Url.getMyItemRequests; var response = await http.get( @@ -208,6 +230,7 @@ class MyItemProvider extends ChangeNotifier { name: item['transferable']['name'], id: item['transferable']['id'].toString(), size: item['transferable']['size'].toString(), + requestId: item['id'].toString(), ), ); } @@ -232,6 +255,7 @@ class MyItemProvider extends ChangeNotifier { id: item['transferable']['id'].toString(), size: item['transferable']['size'].toString(), userName: item['user'] != null ? item['user']['name'] : '', + requestId: item['id'].toString(), ), ); } diff --git a/lib/providers/my_packages.dart b/lib/providers/my_packages.dart index 6a5e200..f6810ab 100644 --- a/lib/providers/my_packages.dart +++ b/lib/providers/my_packages.dart @@ -102,17 +102,30 @@ class MyPackageProvider extends ChangeNotifier { originalMyPackages = []; } + String fromDate = ''; + String toDate = ''; + String userHistory = ''; + + for (var package in packagesData['data']) { + for (var transfer in package['transfers']) { + fromDate = transfer['from_date'] != null + ? transfer['from_date'].toString() + : ''; + toDate = + transfer['to_date'] != null ? transfer['to_date'].toString() : ''; + userHistory = transfer['user']['name'].toString(); + } + } + for (var package in packagesData['data']) { originalMyPackages!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), - // fromDate: package['transfers'].isNotEmpty - // ? package['transfers']['from_date'].toString() - // : '', - // toDate: package['transfers'].isNotEmpty - // ? package['transfers']['to_date'].toString() - // : '', + createdAt: package['created_at'].toString(), + fromDate: fromDate, + toDate: toDate, + userName: userHistory, ), ); } @@ -144,18 +157,31 @@ class MyPackageProvider extends ChangeNotifier { originalHospitalPackages = []; } + String fromDate = ''; + String toDate = ''; + String userHistory = ''; + + for (var package in packagesData['data']) { + for (var transfer in package['transfers']) { + fromDate = transfer['from_date'] != null + ? transfer['from_date'].toString() + : ''; + toDate = + transfer['to_date'] != null ? transfer['to_date'].toString() : ''; + userHistory = transfer['user']['name'].toString(); + } + } + for (var package in packagesData['data']) { originalHospitalPackages!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), + createdAt: package['created_at'].toString(), userName: package['user'] != null ? package['user']['name'] : '', - // fromDate: package['transfers'].isNotEmpty - // ? package['transfers']['from_date'].toString() - // : '', - // toDate: package['transfers'].isNotEmpty - // ? package['transfers']['to_date'].toString() - // : '', + fromDate: fromDate, + toDate: toDate, + userHistory: userHistory, ), ); } @@ -179,6 +205,8 @@ class MyPackageProvider extends ChangeNotifier { MyPackageResultObject( name: package['transferable']['name'], id: package['transferable']['id'].toString(), + createdAt: package['created_at'].toString(), + requestId: package['id'].toString(), ), ); } @@ -200,7 +228,9 @@ class MyPackageProvider extends ChangeNotifier { MyPackageResultObject( name: package['transferable']['name'], id: package['transferable']['id'].toString(), + createdAt: package['created_at'].toString(), userName: package['user'] != null ? package['user']['name'] : '', + requestId: package['id'].toString(), ), ); } diff --git a/lib/widgets/Global/drawer.dart b/lib/widgets/Global/drawer.dart index fe7b3b8..0fedd62 100644 --- a/lib/widgets/Global/drawer.dart +++ b/lib/widgets/Global/drawer.dart @@ -223,7 +223,8 @@ class _AppDrawerState extends State { ), InkWell( onTap: () { - Navigator.of(context).pushNamed(Routes.myItemsResultScreen); + Navigator.of(context) + .pushNamed(Routes.myPackagesResultScreen); }, child: Container( padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), diff --git a/lib/widgets/MyItemsScreens/History/my_items_history_date_widget.dart b/lib/widgets/MyItemsScreens/History/my_items_history_date_widget.dart index a52dae2..5ac30d4 100644 --- a/lib/widgets/MyItemsScreens/History/my_items_history_date_widget.dart +++ b/lib/widgets/MyItemsScreens/History/my_items_history_date_widget.dart @@ -26,7 +26,7 @@ class ItemHistoryDate extends StatelessWidget { width: 6.0, ), Text( - items.fromDate!.toString(), + items.fromDate.toString(), style: TextStyle( fontSize: 4 * _deviceBlockSize, fontWeight: FontWeight.w700, @@ -49,7 +49,7 @@ class ItemHistoryDate extends StatelessWidget { width: 6.0, ), Text( - items.toDate!.toString(), + items.toDate.toString(), style: TextStyle( fontSize: 4 * _deviceBlockSize, fontWeight: FontWeight.w700, diff --git a/lib/widgets/MyItemsScreens/Result/item_requests_data_box.dart b/lib/widgets/MyItemsScreens/Result/item_requests_data_box.dart index a8d32cc..8b65970 100644 --- a/lib/widgets/MyItemsScreens/Result/item_requests_data_box.dart +++ b/lib/widgets/MyItemsScreens/Result/item_requests_data_box.dart @@ -130,7 +130,7 @@ class RequestsDataBox extends StatelessWidget { Provider.of(context, listen: false) .verifyItemRequests( - item!.id, 'approved') + item!.requestId!, 'approved') .then((result) { if (result) { print('true'); @@ -184,7 +184,7 @@ class RequestsDataBox extends StatelessWidget { Provider.of(context, listen: false) .verifyItemRequests( - item!.id, 'rejected') + item!.requestId!, 'rejected') .then((result) { if (result) { print('false'); diff --git a/lib/widgets/MyPackagesScreens/Result/my_packages_data_box_widget.dart b/lib/widgets/MyPackagesScreens/Result/my_packages_data_box_widget.dart index 5a34e67..f6f80c3 100644 --- a/lib/widgets/MyPackagesScreens/Result/my_packages_data_box_widget.dart +++ b/lib/widgets/MyPackagesScreens/Result/my_packages_data_box_widget.dart @@ -2,6 +2,7 @@ import 'package:cssd/config/colors.dart'; import 'package:cssd/models/my_package_model.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:intl/intl.dart'; import '../../../../config/routes.dart'; @@ -64,6 +65,30 @@ class MyPackagesItemDataBox extends StatelessWidget { ), ), ), + Container( + width: 30 * _deviceBlockSize, + child: Row( + children: [ + Text( + 'Date:', + style: TextStyle( + color: Colors.grey, + fontSize: 3 * _deviceBlockSize, + ), + ), + Text( + DateFormat('y-M-d').format( + DateTime.parse( + packages!.createdAt, + ), + ), + style: TextStyle( + fontSize: 3 * _deviceBlockSize, + ), + ), + ], + ), + ), if (isAdmin) Container( width: 30 * _deviceBlockSize, diff --git a/lib/widgets/MyPackagesScreens/Result/package_requests_data_box.dart b/lib/widgets/MyPackagesScreens/Result/package_requests_data_box.dart index 3b65e27..612014c 100644 --- a/lib/widgets/MyPackagesScreens/Result/package_requests_data_box.dart +++ b/lib/widgets/MyPackagesScreens/Result/package_requests_data_box.dart @@ -2,6 +2,7 @@ import 'package:cssd/config/colors.dart'; import 'package:cssd/models/my_package_model.dart'; import 'package:cssd/providers/my_packages.dart'; import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; import '../../../config/routes.dart'; @@ -61,6 +62,30 @@ class PackageRequestsDataBox extends StatelessWidget { ), ), ), + Container( + width: 30 * _deviceBlockSize, + child: Row( + children: [ + Text( + 'Date:', + style: TextStyle( + color: Colors.grey, + fontSize: 3 * _deviceBlockSize, + ), + ), + Text( + DateFormat('y-M-d').format( + DateTime.parse( + package!.createdAt, + ), + ), + style: TextStyle( + fontSize: 3 * _deviceBlockSize, + ), + ), + ], + ), + ), if (isAdmin) Container( width: 30 * _deviceBlockSize, @@ -107,7 +132,7 @@ class PackageRequestsDataBox extends StatelessWidget { Provider.of(context, listen: false) .verifyPackageRequests( - package!.id, 'approved') + package!.requestId!, 'approved') .then((result) { if (result) { print('true'); @@ -161,7 +186,7 @@ class PackageRequestsDataBox extends StatelessWidget { Provider.of(context, listen: false) .verifyPackageRequests( - package!.id, 'rejected') + package!.requestId!, 'rejected') .then((result) { if (result) { print('false');