Siopas Inventory PETI for ISTW Mobile
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.

236 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;
}
}