Day Seperation bug fixed
This commit is contained in:
@@ -347,7 +347,18 @@ Future<List<Activity>> GetActivities(bool forceOffline) async {
|
||||
continue;
|
||||
}
|
||||
//print("TaskType:{$type}, Start Time:{$startTime}, endTime:{$endTime}, metadata:${metadata}");
|
||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
||||
DateTime sTime = DateTime.parse(startTime);
|
||||
DateTime eTime = DateTime.parse(endTime);
|
||||
|
||||
if(eTime.day!=sTime.day){
|
||||
DateTime midnight = DateTime(eTime.year,eTime.month,eTime.day,0,0,0);
|
||||
|
||||
_activities.add(Activity(taskType, midnight, eTime, metadata: metadata));
|
||||
_activities.add(Activity(taskType, sTime, midnight, metadata: metadata));
|
||||
}else{
|
||||
_activities.add(Activity(taskType, DateTime.parse(startTime), DateTime.parse(endTime), metadata: metadata));
|
||||
}
|
||||
|
||||
}
|
||||
activities = _activities;
|
||||
return activities;
|
||||
@@ -507,6 +518,47 @@ class UserOperations {
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> editActivity(DateTime init_sTime, DateTime init_eTime,String type, DateTime sTime, DateTime eTime, {String metadata = 'null', bool bulk = false, Function(int)? onOverlap}) async {
|
||||
//Check for timeoverlapse
|
||||
activities = await GetActivities(true);
|
||||
int? overlapCount = Sqflite.firstIntValue(await cacheDb.rawQuery(
|
||||
"SELECT COUNT(*) FROM Activities WHERE (((${Activity.colStartTime} < datetime('$sTime')) AND ((${Activity.colEndTime} > datetime('$eTime')) OR (${Activity.colEndTime} < datetime('$eTime') AND ${Activity.colEndTime} > datetime('$sTime')))) OR (${Activity.colStartTime} > datetime('$sTime') AND ${Activity.colStartTime} < datetime('$eTime')) OR (${Activity.colStartTime}=datetime('$sTime') AND ${Activity.colEndTime}=datetime('$eTime'))) AND ${Activity.colStartTime}!=datetime('${init_sTime}') AND ${Activity.colEndTime} != datetime('${init_eTime}')"));
|
||||
|
||||
print("ActivityOverlaps: $overlapCount");
|
||||
if (overlapCount! > 0) {
|
||||
onOverlap!(overlapCount);
|
||||
return;
|
||||
}
|
||||
Map<String, String> queryBody = <String, String>{
|
||||
'username': username,
|
||||
'device_id': await Settings.UUID(),
|
||||
'type': username + type,
|
||||
'init_sTime': dFormat.format(init_sTime),
|
||||
'init_eTime':dFormat.format(init_eTime),
|
||||
'sTime': dFormat.format(sTime),
|
||||
'eTime': dFormat.format(eTime),
|
||||
'metadata': metadata
|
||||
};
|
||||
|
||||
if (metadata.length > 0) {}
|
||||
//Add Query
|
||||
Map<String, Object> query = {Queries.colLink: 'edit_activity', Queries.colData: jsonEncode(queryBody)};
|
||||
|
||||
print("adding new query ${query[Queries.colLink]} : ${jsonEncode(queryBody)}");
|
||||
|
||||
await cacheDb.insert('Queries', query);
|
||||
|
||||
//update Cache
|
||||
// Map<String, Object> data = {Activity.colType: username + type, Activity.colStartTime: dFormat.format(sTime), Activity.colEndTime: dFormat.format(eTime), Activity.colMetadata: metadata};
|
||||
// String updateActQuery = "UPDATE Activities SET ${Activity.colType}=";
|
||||
// await cacheDb.insert('Activities', data);
|
||||
await refreshUserData();
|
||||
if (!bulk) {
|
||||
//Add to server and refresh Cache
|
||||
await executeQueries();
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> deleteTask(String name, {bulk = false}) async {
|
||||
Map<String, String> queryBody = <String, String>{
|
||||
'id': username + name,
|
||||
|
||||
Reference in New Issue
Block a user