mirror of
https://git.meshkee.com/applications/cssd.git
synced 2026-10-10 19:48:56 +03:30
284 lines
7.5 KiB
Dart
284 lines
7.5 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:cssd/models/my_package_model.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
import '../config/urls.dart';
|
|
import '../config/user.dart';
|
|
import 'package:http/http.dart' as http;
|
|
|
|
class MyPackageProvider extends ChangeNotifier {
|
|
String searchBoxValue = '';
|
|
bool filterOn = false;
|
|
List<MyPackageResultObject>? myPackages;
|
|
List<MyPackageResultObject>? hospitalPackages;
|
|
|
|
List<MyPackageResultObject>? originalMyPackages;
|
|
List<MyPackageResultObject>? originalHospitalPackages;
|
|
|
|
List<MyPackageResultObject>? originalMyPackagesRequests;
|
|
List<MyPackageResultObject>? originalHospitalPackagesRequests;
|
|
|
|
List<MyPackageResultObject>? originalPackageHistory;
|
|
|
|
MyPackageFilterObject? filters = MyPackageFilterObject(
|
|
id: '',
|
|
name: '',
|
|
// udi: '',
|
|
);
|
|
int pageNumber = 1;
|
|
void resetPageNumber() => pageNumber = 1;
|
|
bool isloading = false;
|
|
void resetLoading() {
|
|
isloading = false;
|
|
notifyListeners();
|
|
}
|
|
|
|
void setLoading() {
|
|
isloading = true;
|
|
// notifyListeners();
|
|
}
|
|
|
|
void searchMyPackages(String value) {
|
|
myPackages = [];
|
|
searchBoxValue = value;
|
|
originalMyPackages!.forEach((result) {
|
|
if (result.id.toString().contains(searchBoxValue)) {
|
|
myPackages!.add(result);
|
|
}
|
|
});
|
|
notifyListeners();
|
|
}
|
|
|
|
void searchHospitalPackages(String value) {
|
|
hospitalPackages = [];
|
|
searchBoxValue = value;
|
|
originalHospitalPackages!.forEach((result) {
|
|
if (result.id.toString().contains(searchBoxValue)) {
|
|
hospitalPackages!.add(result);
|
|
}
|
|
});
|
|
notifyListeners();
|
|
}
|
|
|
|
void setFilters(
|
|
id,
|
|
name,
|
|
// udi,
|
|
) {
|
|
pageNumber = 1;
|
|
filters = MyPackageFilterObject(
|
|
id: id,
|
|
name: name,
|
|
// udi: udi,
|
|
);
|
|
if (filters!.id == '' && filters!.name == '') {
|
|
filterOn = false;
|
|
} else {
|
|
filterOn = true;
|
|
}
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> getMyPackages() async {
|
|
String url = Url.getMyPackages(pageNumber);
|
|
if (filterOn) {
|
|
if (filters!.id != '') {
|
|
url += '&package_id=${filters!.id}';
|
|
}
|
|
if (filters!.name != '') {
|
|
url += '&name=${filters!.name}';
|
|
}
|
|
// if (filters!.udi != '') {
|
|
// url += '&package_id=${filters!.udi}';
|
|
// }
|
|
}
|
|
var response = await http.get(
|
|
Uri.parse(url),
|
|
headers: {'Authorization': User.token, "Accept": "application/json"},
|
|
);
|
|
|
|
var packagesData = json.decode(response.body);
|
|
|
|
if (pageNumber == 1) {
|
|
originalMyPackages = [];
|
|
}
|
|
|
|
for (var package in packagesData['data']) {
|
|
originalMyPackages!.add(
|
|
MyPackageResultObject(
|
|
name: package['name'],
|
|
id: package['id'].toString(),
|
|
createdAt: package['created_at'].toString(),
|
|
),
|
|
);
|
|
}
|
|
pageNumber += 1;
|
|
searchMyPackages('');
|
|
}
|
|
|
|
Future<void> getHospitalPackages() async {
|
|
String url = Url.getHospitalPackages(pageNumber);
|
|
if (filterOn) {
|
|
if (filters!.id != '') {
|
|
url += '&package_id=${filters!.id}';
|
|
}
|
|
if (filters!.name != '') {
|
|
url += '&name=${filters!.name}';
|
|
}
|
|
// if (filters!.udi != '') {
|
|
// url += '&package_id=${filters!.udi}';
|
|
// }
|
|
}
|
|
var response = await http.get(
|
|
Uri.parse(url),
|
|
headers: {'Authorization': User.token, "Accept": "application/json"},
|
|
);
|
|
|
|
var packagesData = json.decode(response.body);
|
|
|
|
if (pageNumber == 1) {
|
|
originalHospitalPackages = [];
|
|
}
|
|
|
|
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'] : '',
|
|
),
|
|
);
|
|
}
|
|
pageNumber += 1;
|
|
searchHospitalPackages('');
|
|
}
|
|
|
|
Future<void> getMyPackageRequests() async {
|
|
String url = Url.getMyPackageRequests;
|
|
var response = await http.get(
|
|
Uri.parse(url),
|
|
headers: {'Authorization': User.token, "Accept": "application/json"},
|
|
);
|
|
|
|
var packagesData = json.decode(response.body);
|
|
|
|
originalMyPackagesRequests = [];
|
|
|
|
for (var package in packagesData['data']) {
|
|
originalMyPackagesRequests!.add(
|
|
MyPackageResultObject(
|
|
name: package['transferable']['name'],
|
|
id: package['transferable']['id'].toString(),
|
|
createdAt: package['created_at'].toString(),
|
|
requestId: package['id'].toString(),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
Future<void> getHospitalPackageRequests() async {
|
|
String url = Url.getHospitalPackageRequests;
|
|
var response = await http.get(
|
|
Uri.parse(url),
|
|
headers: {'Authorization': User.token, "Accept": "application/json"},
|
|
);
|
|
|
|
var packagesData = json.decode(response.body);
|
|
|
|
originalHospitalPackagesRequests = [];
|
|
|
|
for (var package in packagesData['data']) {
|
|
originalHospitalPackagesRequests!.add(
|
|
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(),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
Future<void> getPackagesHistory(String id) async {
|
|
String url = Url.getPackageResult(id);
|
|
var response = await http.get(
|
|
Uri.parse(url),
|
|
headers: {'Authorization': User.token, "Accept": "application/json"},
|
|
);
|
|
|
|
var packagesData = json.decode(response.body)['data'];
|
|
|
|
String fromDate = '';
|
|
String toDate = '';
|
|
String userHistory = '';
|
|
for (var transfer in packagesData['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 (packagesData.isNotEmpty) {
|
|
originalPackageHistory!.add(
|
|
MyPackageResultObject(
|
|
name: packagesData['name'],
|
|
id: packagesData['id'].toString(),
|
|
createdAt: packagesData['created_at'].toString(),
|
|
fromDate: fromDate,
|
|
toDate: toDate,
|
|
userHistory: userHistory,
|
|
),
|
|
);
|
|
originalPackageHistory!.reversed.toList();
|
|
}
|
|
}
|
|
|
|
Future<void> transferPackage(String packageId, String userId) async {
|
|
var response = await http.post(
|
|
Uri.parse(Url.transferPackages(packageId)),
|
|
body: json.encode(
|
|
{
|
|
'user_id': userId,
|
|
},
|
|
),
|
|
headers: {
|
|
'Authorization': User.token,
|
|
'X-Requested-With': 'XMLHttpRequest',
|
|
"Content-Type": "application/json",
|
|
"Accept": "application/json"
|
|
},
|
|
);
|
|
|
|
var packageData = json.decode(response.body);
|
|
print(packageData);
|
|
}
|
|
|
|
Future<bool> verifyPackageRequests(String id, String value) async {
|
|
var response = await http.post(
|
|
Uri.parse(Url.verifyPackageRequests(id, value)),
|
|
body: json.encode({'status': value}),
|
|
headers: {
|
|
'Authorization': User.token,
|
|
'X-Requested-With': 'XMLHttpRequest',
|
|
"Content-Type": "application/json",
|
|
"Accept": "application/json"
|
|
},
|
|
);
|
|
|
|
var packageData = json.decode(response.body);
|
|
|
|
try {
|
|
if (packageData['data']['transfers']['status'] == 'approved') {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|