mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-13 18:19:03 +03:30
beta commit
This commit is contained in:
@@ -0,0 +1,274 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:cssd/models/my_item_model.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
import '../config/urls.dart';
|
||||
import '../config/user.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
class MyItemProvider extends ChangeNotifier {
|
||||
String searchBoxValue = '';
|
||||
bool filterOn = false;
|
||||
List<MyItemResultObject>? myItems;
|
||||
List<MyItemResultObject>? hospitalItems;
|
||||
|
||||
List<MyItemResultObject>? originalMyItems;
|
||||
List<MyItemResultObject>? originalHospitalItems;
|
||||
|
||||
List<MyItemResultObject>? originalMyItemsRequests;
|
||||
List<MyItemResultObject>? originalHospitalItemsRequests;
|
||||
|
||||
MyItemFilterObject? filters = MyItemFilterObject(
|
||||
id: '',
|
||||
name: '',
|
||||
udi: '',
|
||||
size: '',
|
||||
specific: '',
|
||||
);
|
||||
int pageNumber = 1;
|
||||
void resetPageNumber() => pageNumber = 1;
|
||||
bool isloading = false;
|
||||
void resetLoading() {
|
||||
isloading = false;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setLoading() {
|
||||
isloading = true;
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
void searchMyItems(String value) {
|
||||
myItems = [];
|
||||
searchBoxValue = value;
|
||||
originalMyItems!.forEach((result) {
|
||||
if (result.id.toString().contains(searchBoxValue)) {
|
||||
myItems!.add(result);
|
||||
}
|
||||
});
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void searchHospitalItems(String value) {
|
||||
hospitalItems = [];
|
||||
searchBoxValue = value;
|
||||
originalHospitalItems!.forEach((result) {
|
||||
if (result.id.toString().contains(searchBoxValue)) {
|
||||
hospitalItems!.add(result);
|
||||
}
|
||||
});
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setFilters(
|
||||
id,
|
||||
name,
|
||||
udi,
|
||||
size,
|
||||
specific,
|
||||
) {
|
||||
pageNumber = 1;
|
||||
filters = MyItemFilterObject(
|
||||
id: id,
|
||||
name: name,
|
||||
udi: udi,
|
||||
size: size,
|
||||
specific: specific,
|
||||
);
|
||||
if (filters!.id == '' &&
|
||||
filters!.name == '' &&
|
||||
filters!.size == '' &&
|
||||
filters!.specific != '' &&
|
||||
filters!.udi == '') {
|
||||
filterOn = false;
|
||||
} else {
|
||||
filterOn = true;
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> getMyItems() async {
|
||||
String url = Url.getMyItems(pageNumber);
|
||||
if (filterOn) {
|
||||
if (filters!.id != '') {
|
||||
url += '&item_id=${filters!.id}';
|
||||
}
|
||||
if (filters!.name != '') {
|
||||
url += '&name=${filters!.name}';
|
||||
}
|
||||
if (filters!.size != '') {
|
||||
url += '&size=${filters!.size}';
|
||||
}
|
||||
if (filters!.specific != '') {
|
||||
url += '&specific=${filters!.specific}';
|
||||
}
|
||||
if (filters!.udi != '') {
|
||||
url += '&udi=${filters!.udi}';
|
||||
}
|
||||
}
|
||||
var response = await http.get(
|
||||
Uri.parse(url),
|
||||
headers: {'Authorization': User.token, "Accept": "application/json"},
|
||||
);
|
||||
|
||||
var itemsData = json.decode(response.body);
|
||||
|
||||
if (pageNumber == 1) {
|
||||
originalMyItems = [];
|
||||
}
|
||||
|
||||
for (var item in itemsData['data']) {
|
||||
originalMyItems!.add(
|
||||
MyItemResultObject(
|
||||
name: item['name'],
|
||||
id: item['id'].toString(),
|
||||
size: item['size'].toString(),
|
||||
fromDate: item['transfers']['from_date'],
|
||||
toDate: item['transfers']['to_date'],
|
||||
),
|
||||
);
|
||||
}
|
||||
pageNumber += 1;
|
||||
searchMyItems('');
|
||||
}
|
||||
|
||||
Future<void> getHospitalItems() async {
|
||||
String url = Url.getHospitalItems(pageNumber);
|
||||
if (filterOn) {
|
||||
if (filters!.id != '') {
|
||||
url += '&item_id=${filters!.id}';
|
||||
}
|
||||
if (filters!.name != '') {
|
||||
url += '&name=${filters!.name}';
|
||||
}
|
||||
if (filters!.size != '') {
|
||||
url += '&size=${filters!.size}';
|
||||
}
|
||||
if (filters!.specific != '') {
|
||||
url += '&specific=${filters!.specific}';
|
||||
}
|
||||
if (filters!.udi != '') {
|
||||
url += '&udi=${filters!.udi}';
|
||||
}
|
||||
}
|
||||
var response = await http.get(
|
||||
Uri.parse(url),
|
||||
headers: {'Authorization': User.token, "Accept": "application/json"},
|
||||
);
|
||||
|
||||
print(response.body);
|
||||
print(response.statusCode);
|
||||
|
||||
var itemsData = json.decode(response.body);
|
||||
|
||||
if (pageNumber == 1) {
|
||||
originalHospitalItems = [];
|
||||
}
|
||||
|
||||
for (var item in itemsData['data']) {
|
||||
originalHospitalItems!.add(
|
||||
MyItemResultObject(
|
||||
name: item['name'],
|
||||
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'],
|
||||
),
|
||||
);
|
||||
}
|
||||
pageNumber += 1;
|
||||
searchHospitalItems('');
|
||||
}
|
||||
|
||||
Future<void> getMyItemRequests() async {
|
||||
String url = Url.getMyItemRequests;
|
||||
var response = await http.get(
|
||||
Uri.parse(url),
|
||||
headers: {'Authorization': User.token, "Accept": "application/json"},
|
||||
);
|
||||
|
||||
var itemsData = json.decode(response.body);
|
||||
|
||||
originalMyItemsRequests = [];
|
||||
|
||||
for (var item in itemsData['data']) {
|
||||
originalMyItemsRequests!.add(
|
||||
MyItemResultObject(
|
||||
name: item['name'],
|
||||
id: item['id'].toString(),
|
||||
size: item['size'].toString(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> getHospitalItemRequests() async {
|
||||
String url = Url.getHospitalItemRequests;
|
||||
var response = await http.get(
|
||||
Uri.parse(url),
|
||||
headers: {'Authorization': User.token, "Accept": "application/json"},
|
||||
);
|
||||
|
||||
var itemsData = json.decode(response.body);
|
||||
|
||||
originalHospitalItemsRequests = [];
|
||||
|
||||
for (var item in itemsData['data']) {
|
||||
originalHospitalItemsRequests!.add(
|
||||
MyItemResultObject(
|
||||
name: item['name'],
|
||||
id: item['id'].toString(),
|
||||
size: item['size'].toString(),
|
||||
userName: item['user'] != null ? item['user']['name'] : '',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> transferItems(String itemId, String userId) async {
|
||||
var response = await http.post(
|
||||
Uri.parse(Url.transferItems(itemId)),
|
||||
body: json.encode(
|
||||
{
|
||||
'user_id': userId,
|
||||
},
|
||||
),
|
||||
headers: {
|
||||
'Authorization': User.token,
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
"Content-Type": "application/json",
|
||||
"Accept": "application/json"
|
||||
},
|
||||
);
|
||||
|
||||
var itemData = json.decode(response.body);
|
||||
print(itemData);
|
||||
}
|
||||
|
||||
Future<bool> verifyItemRequests(String id, String value) async {
|
||||
var response = await http.post(
|
||||
Uri.parse(Url.verifyItemRequests(id, value)),
|
||||
body: json.encode({'status': value}),
|
||||
headers: {
|
||||
'Authorization': User.token,
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
"Content-Type": "application/json",
|
||||
"Accept": "application/json"
|
||||
},
|
||||
);
|
||||
|
||||
var itemData = json.decode(response.body);
|
||||
|
||||
try {
|
||||
if (itemData['data']['transfers']['status'] == 'approved') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user