added rog local data

This commit is contained in:
Mohamed Nouffer
2022-11-14 22:22:41 +05:30
parent 78970ef5c3
commit 22a17e108c
10 changed files with 369 additions and 239 deletions

View File

@ -5,6 +5,8 @@ import 'package:rogapp/model/destination.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
import '../model/rog.dart';
class DatabaseHelper{
DatabaseHelper._privateConstructor();
static final DatabaseHelper instance = DatabaseHelper._privateConstructor();
@ -58,43 +60,47 @@ class DatabaseHelper{
user_id INTEGER,
lat REAL,
lon REAL,
time_stamp INTEGER
time_stamp INTEGER,
image TEXT
)
''');
await db.execute('''
CREATE TABLE rog(
id INTEGER PRIMARY KEY AUTOINCREMENT,
team_name TEXT,
event_code TEXT,
user_id INTEGER,
cp_number INTEGER,
checkintime INTEGER,
image TEXT,
rog_action_type INTEGER
)
''');
}
Future<List<Rogaining>> allRogianing() async {
Future<List<Rog>> allRogianing() async {
Database db = await instance.database;
var rog = await db.query('rogaining');
List<Rogaining> roglist = rog.isNotEmpty ?
rog.map((e) => Rogaining.fromMap(e)).toList() : [];
var rog = await db.query('rog');
List<Rog> roglist = rog.isNotEmpty ?
rog.map((e) => Rog.fromMap(e)).toList() : [];
print("--------- ${rog}");
return roglist;
}
Future<List<Rogaining>> getRogainingByLatLon(double lat, double lon) async {
Future<List<Rog>> getRogainingByLatLon(double lat, double lon) async {
Database db = await instance.database;
var rog = await db.query('rogaining', where: "lat = ${lat} and lon= ${lon}");
List<Rogaining> roglist = rog.isNotEmpty
? rog.map((e) => Rogaining.fromMap(e)).toList() : [];
var rog = await db.query('rog', where: "lat = ${lat} and lon= ${lon}");
List<Rog> roglist = rog.isNotEmpty
? rog.map((e) => Rog.fromMap(e)).toList() : [];
return roglist;
}
Future<List<Destination>> getDestinationById(int id) async {
Future<int> deleteRogaining(int id) async {
Database db = await instance.database;
var rog = await db.query('destination', where: "location_id = ${id}");
List<Destination> deslist = rog.isNotEmpty
? rog.map((e) => Destination.fromMap(e)).toList() : [];
return deslist;
}
Future<int> deleteRogaining(int rog_id) async {
Database db = await instance.database;
var rog = await db.delete('rogaining', where: "rog_id = ${rog_id}");
var rog = await db.delete('rog', where: "id = ${id}");
int ret = rog > 0 ? rog : -1;
return ret;
@ -103,24 +109,24 @@ class DatabaseHelper{
Future<void> deleteAllRogaining() async {
Database db = await instance.database;
await db.delete('rogaining');
await db.delete('rog');
}
Future<bool>isRogAlreadyAvailable(int rog_id) async{
Future<bool>isRogAlreadyAvailable(int id) async{
Database db = await instance.database;
var rog = await db.query('rogaining', where: "rog_id = ${rog_id}");
var rog = await db.query('rog', where: "id = ${id}");
return rog.length > 0 ? true : false;
}
Future<int> insertRogaining(Rogaining rog) async {
Future<int> insertRogaining(Rog rog) async {
Database db = await instance.database;
int? next_order = Sqflite.firstIntValue(await db.rawQuery('SELECT MAX(rog_id) FROM rogaining'));
int? next_order = Sqflite.firstIntValue(await db.rawQuery('SELECT MAX(id) FROM rog'));
next_order = next_order==null ? 0 : next_order;
next_order = next_order + 1;
rog.rog_id = next_order;
rog.id = next_order;
int res = await db.insert(
'rogaining',
'rog',
rog.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
@ -138,6 +144,15 @@ class DatabaseHelper{
return destList;
}
Future<List<Destination>> getDestinationById(int id) async {
Database db = await instance.database;
var rog = await db.query('destination', where: "location_id = ${id}");
List<Destination> deslist = rog.isNotEmpty
? rog.map((e) => Destination.fromMap(e)).toList() : [];
return deslist;
}
Future<List<Destination>> getDestinationByLatLon(double lat, double lon) async {
Database db = await instance.database;
var dest = await db.query('destination', where: "lat = ${lat} and lon= ${lon}", orderBy: 'list_order');