|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
|
|
// import 'package:siopas/models/asset_status_model.dart';
|
|
|
|
import 'package:siopas/models/transfer_peti_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 ControllerTransferPeti {
|
|
|
|
final conn = SqfliteDatabaseHelper.instance;
|
|
|
|
|
|
|
|
Future<List<TransferPetiModel>> fetchAllInfo() async {
|
|
|
|
final dbClient = await conn.db;
|
|
|
|
List<TransferPetiModel> transferPetiList = [];
|
|
|
|
try {
|
|
|
|
final maps =
|
|
|
|
await dbClient!.query(SqfliteDatabaseHelper.transferPetiTable);
|
|
|
|
for (var item in maps) {
|
|
|
|
transferPetiList.add(TransferPetiModel.fromJson(item));
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
return transferPetiList;
|
|
|
|
}
|
|
|
|
|
|
|
|
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> addData(TransferPetiModel transferPetiAddModel) async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
int result = 0; // Provide an initial value
|
|
|
|
try {
|
|
|
|
result = await dbclient!.insert(SqfliteDatabaseHelper.transferPetiTable,
|
|
|
|
transferPetiAddModel.toJson());
|
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<int> updateData(TransferPetiModel transferPetiAddModel) async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
late int result;
|
|
|
|
try {
|
|
|
|
result = await dbclient!.update(
|
|
|
|
SqfliteDatabaseHelper.transferPetiTable,
|
|
|
|
transferPetiAddModel.toJson(),
|
|
|
|
where: 'id=?',
|
|
|
|
whereArgs: [transferPetiAddModel.id],
|
|
|
|
);
|
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<List> fetchTransferPetiLocalController() async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
List transferPetiList = [];
|
|
|
|
try {
|
|
|
|
List<Map<String, dynamic>> maps = await dbclient!
|
|
|
|
.query(SqfliteDatabaseHelper.transferPetiTable, orderBy: 'id DESC');
|
|
|
|
for (var item in maps) {
|
|
|
|
transferPetiList.add(item);
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
return transferPetiList;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<List<TransferPetiModel>> fetchTransferPetiDataId() async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
List<TransferPetiModel> transferPetiList = [];
|
|
|
|
try {
|
|
|
|
List<Map<String, dynamic>> maps = await dbclient!
|
|
|
|
.query(SqfliteDatabaseHelper.transferPetiTable, orderBy: 'id DESC');
|
|
|
|
for (var item in maps) {
|
|
|
|
transferPetiList.add(TransferPetiModel.fromJson(item));
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
return transferPetiList;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<void> deleteTransferPetiById(String id) async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
try {
|
|
|
|
await dbclient!.delete(
|
|
|
|
SqfliteDatabaseHelper.transferPetiTable,
|
|
|
|
where: 'id = ?',
|
|
|
|
whereArgs: [id],
|
|
|
|
);
|
|
|
|
} catch (e) {
|
|
|
|
print('Gagal menghapus transfer peti dari database: $e');
|
|
|
|
throw Exception('Gagal menghapus transfer peti');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<void> deleteAllData() async {
|
|
|
|
var dbClient = await conn.db;
|
|
|
|
await dbClient!.delete(SqfliteDatabaseHelper.transferPetiTable);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<void> addAllData(List<TransferPetiModel> transferPetiList) async {
|
|
|
|
var dbclient = await conn.db;
|
|
|
|
Batch batch = dbclient!.batch();
|
|
|
|
|
|
|
|
for (var transferPeti in transferPetiList) {
|
|
|
|
batch.insert(
|
|
|
|
SqfliteDatabaseHelper.transferPetiTable,
|
|
|
|
transferPeti.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;
|
|
|
|
}
|
|
|
|
}
|