mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-10 19:28:56 +03:30
324 lines
8.1 KiB
Dart
Executable File
324 lines
8.1 KiB
Dart
Executable File
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;
|
|
|
|
List<ItemHistoryObject>? itemHistory;
|
|
|
|
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.udi.toString().contains(searchBoxValue)) {
|
|
myItems!.add(result);
|
|
}
|
|
});
|
|
notifyListeners();
|
|
}
|
|
|
|
void searchHospitalItems(String value) {
|
|
hospitalItems = [];
|
|
searchBoxValue = value;
|
|
originalHospitalItems!.forEach((result) {
|
|
if (result.udi.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']['data']) {
|
|
originalMyItems!.add(
|
|
MyItemResultObject(
|
|
name: item['name'],
|
|
id: item['id'].toString(),
|
|
size: item['size'].toString(),
|
|
udi: item['udi'],
|
|
),
|
|
);
|
|
}
|
|
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"},
|
|
);
|
|
|
|
var itemsData = json.decode(response.body);
|
|
|
|
if (pageNumber == 1) {
|
|
originalHospitalItems = [];
|
|
}
|
|
|
|
for (var item in itemsData['data']['data']) {
|
|
originalHospitalItems!.add(
|
|
MyItemResultObject(
|
|
name: item['name'],
|
|
id: item['id'].toString(),
|
|
size: item['size'].toString(),
|
|
userName: item['user'] != null ? item['user']['name'] : '',
|
|
udi: item['udi'],
|
|
),
|
|
);
|
|
}
|
|
pageNumber += 1;
|
|
searchHospitalItems('');
|
|
}
|
|
|
|
Future<void> 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'];
|
|
|
|
itemHistory = [];
|
|
|
|
for (var transfer in itemsData['transfers']) {
|
|
itemHistory!.add(
|
|
ItemHistoryObject(
|
|
fromDate: transfer['from_date'] != null
|
|
? transfer['from_date'].toString()
|
|
: '',
|
|
toDate: transfer['to_date'] != null
|
|
? transfer['to_date'].toString()
|
|
: 'Now',
|
|
userHistoryName: transfer['user']['name'].toString(),
|
|
userHistoryId: transfer['user']['id'].toString(),
|
|
userHistoryPhon: transfer['user']['cell_number'].toString(),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
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['transferable']['name'],
|
|
id: item['transferable']['id'].toString(),
|
|
size: item['transferable']['size'].toString(),
|
|
requestId: item['id'].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);
|
|
print(itemsData);
|
|
|
|
originalHospitalItemsRequests = [];
|
|
|
|
for (var item in itemsData['data']) {
|
|
originalHospitalItemsRequests!.add(
|
|
MyItemResultObject(
|
|
name: item['transferable']['name'].toString(),
|
|
id: item['transferable']['id'].toString(),
|
|
size: item['transferable']['size'].toString(),
|
|
userName: item['user'] != null ? item['user']['name'] : '',
|
|
requestId: item['id'].toString(),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
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<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)),
|
|
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);
|
|
print(response.statusCode);
|
|
print(itemData);
|
|
|
|
try {
|
|
if (itemData['data']['transfers']['status'] == 'approved') {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} catch (e) {
|
|
print(e);
|
|
return false;
|
|
}
|
|
}
|
|
}
|