You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
6.6 KiB
235 lines
6.6 KiB
import 'dart:async'; |
|
|
|
import 'package:connectivity_plus/connectivity_plus.dart'; |
|
import 'package:siopas/models/asset_status_model.dart'; |
|
import 'package:http/http.dart' as http; |
|
import 'package:internet_connection_checker/internet_connection_checker.dart'; |
|
import 'package:sqflite/sqflite.dart'; |
|
|
|
import '../../../migrations/databasehelper.dart'; |
|
|
|
class ControllerPengembalian { |
|
final conn = SqfliteDatabaseHelper.instance; |
|
|
|
Future<List<AssetStatusModel>> fetchAllPengembalianInfo() async { |
|
final dbClient = await conn.db; |
|
List<AssetStatusModel> pengembalianList = []; |
|
try { |
|
final maps = |
|
await dbClient!.query(SqfliteDatabaseHelper.pengembalianTable); |
|
for (var item in maps) { |
|
pengembalianList.add(AssetStatusModel.fromJson(item)); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return pengembalianList; |
|
} |
|
|
|
static Future<bool> isInternet() async { |
|
var connectivityResult = await (Connectivity().checkConnectivity()); |
|
if (connectivityResult == ConnectivityResult.mobile) { |
|
if (await InternetConnectionChecker().hasConnection) { |
|
print("Mobile data detected & internet connection confirmed."); |
|
return true; |
|
} else { |
|
print('No internet :( Reason:'); |
|
return false; |
|
} |
|
} else if (connectivityResult == ConnectivityResult.wifi) { |
|
if (await InternetConnectionChecker().hasConnection) { |
|
print("wifi data detected & internet connection confirmed."); |
|
return true; |
|
} else { |
|
print('No internet :( Reason:'); |
|
return false; |
|
} |
|
} else { |
|
print( |
|
"Neither mobile data or WIFI detected, not internet connection found."); |
|
return false; |
|
} |
|
} |
|
|
|
Future<int> addPengembalianData(AssetStatusModel pengembalianAddModel) async { |
|
var dbclient = await conn.db; |
|
int result = 0; // Provide an initial value |
|
try { |
|
result = await dbclient!.insert(SqfliteDatabaseHelper.pengembalianTable, |
|
pengembalianAddModel.toJson()); |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return result; |
|
} |
|
|
|
Future<int> updatePengembalianData( |
|
AssetStatusModel pengembalianAddModel) async { |
|
var dbclient = await conn.db; |
|
late int result; |
|
try { |
|
result = await dbclient!.update( |
|
SqfliteDatabaseHelper.pengembalianTable, |
|
pengembalianAddModel.toJson(), |
|
where: 'id=?', |
|
whereArgs: [pengembalianAddModel.id], |
|
); |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return result; |
|
} |
|
|
|
Future<List> fetchPengembalianLocalController() async { |
|
var dbclient = await conn.db; |
|
List pengembalianStatusList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.pengembalianTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
pengembalianStatusList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return pengembalianStatusList; |
|
} |
|
|
|
Future<List<AssetStatusModel>> fetchPengembalianDataId() async { |
|
var dbclient = await conn.db; |
|
List<AssetStatusModel> pengembalianList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.pengembalianTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
pengembalianList.add(AssetStatusModel.fromJson(item)); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return pengembalianList; |
|
} |
|
|
|
Future<void> deletePengembalianById(String id) async { |
|
var dbclient = await conn.db; |
|
try { |
|
await dbclient!.delete( |
|
SqfliteDatabaseHelper.pengembalianTable, |
|
where: 'id = ?', |
|
whereArgs: [id], |
|
); |
|
} catch (e) { |
|
print('Gagal menghapus pengembalian dari database: $e'); |
|
throw Exception('Gagal menghapus pengembalian'); |
|
} |
|
} |
|
|
|
Future<void> deleteAllData() async { |
|
var dbClient = await conn.db; |
|
await dbClient!.delete(SqfliteDatabaseHelper.pengembalianTable); |
|
} |
|
|
|
Future<void> addAllData(List<AssetStatusModel> pengembalianList) async { |
|
var dbclient = await conn.db; |
|
Batch batch = dbclient!.batch(); |
|
|
|
for (var pengembalian in pengembalianList) { |
|
batch.insert( |
|
SqfliteDatabaseHelper.pengembalianTable, |
|
pengembalian.toJson(), |
|
); |
|
} |
|
|
|
await batch.commit(); |
|
} |
|
|
|
Future<List> fetchPetiData() async { |
|
var dbclient = await conn.db; |
|
List petiList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.petiTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
petiList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return petiList; |
|
} |
|
|
|
Future<List> fetchTipePetiData() async { |
|
var dbclient = await conn.db; |
|
List tipePetiList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.typePetiTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
tipePetiList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return tipePetiList; |
|
} |
|
|
|
Future<List> fetchCustomerData() async { |
|
var dbclient = await conn.db; |
|
List customerList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.customerTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
customerList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return customerList; |
|
} |
|
|
|
Future<List> fetchWarehouseData() async { |
|
var dbclient = await conn.db; |
|
List warehouseList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.warehouseTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
warehouseList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return warehouseList; |
|
} |
|
|
|
Future<List> fetchConditionData() async { |
|
var dbclient = await conn.db; |
|
List conditionList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.conditionPetiTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
conditionList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return conditionList; |
|
} |
|
|
|
Future<List> fetchDisposalData() async { |
|
var dbclient = await conn.db; |
|
List disposalList = []; |
|
try { |
|
List<Map<String, dynamic>> maps = await dbclient! |
|
.query(SqfliteDatabaseHelper.disposalTable, orderBy: 'id DESC'); |
|
for (var item in maps) { |
|
disposalList.add(item); |
|
} |
|
} catch (e) { |
|
print(e.toString()); |
|
} |
|
return disposalList; |
|
} |
|
}
|
|
|