task module toJson model changed, duplicate timer activity fixed.

design_3.0_TM_Module_snagsFix
Sikander Saleem 1 month ago
parent f9c7d335e2
commit 94d57685cd

@ -247,17 +247,34 @@ class TaskData {
if (installationBuilding != null) { if (installationBuilding != null) {
data['installationBuilding'] = installationBuilding!.toJson(); data['installationBuilding'] = installationBuilding!.toJson();
} }
data['installationFloor'] = installationFloor; if (installationFloor != null) {
data['installationDepartment'] = installationDepartment; data['installationFloor'] = installationFloor!.toJson();
}
if (installationDepartment != null) {
data['installationDepartment'] = installationDepartment!.toJson();
}
if (completedAction != null) {
data['completedAction'] = completedAction!.toJson();
}
if (impactStatus != null) {
data['impactStatus'] = impactStatus!.toJson();
}
if (typeOfAlert != null) {
data['typeOfAlert'] = typeOfAlert!.toJson();
}
if (riskLevel != null) {
data['riskLevel'] = riskLevel!.toJson();
}
if (resource != null) {
data['resource'] = resource!.toJson();
}
if (actionNeeded != null) {
data['actionNeeded'] = actionNeeded!.toJson();
}
data['serialNo'] = serialNo; data['serialNo'] = serialNo;
data['installationDate'] = installationDate; data['installationDate'] = installationDate;
data['completedAction'] = completedAction;
data['impactStatus'] = impactStatus;
data['isUserAcknowledge'] = isUserAcknowledge; data['isUserAcknowledge'] = isUserAcknowledge;
data['typeOfAlert'] = typeOfAlert;
data['riskLevel'] = riskLevel;
data['resource'] = resource;
data['actionNeeded'] = actionNeeded;
data['alertNo'] = alertNo; data['alertNo'] = alertNo;
data['estimationDeliveryDate'] = estimationDeliveryDate; data['estimationDeliveryDate'] = estimationDeliveryDate;
data['reasonOfFSCA'] = reasonOfFSCA; data['reasonOfFSCA'] = reasonOfFSCA;
@ -276,6 +293,80 @@ class TaskData {
return data; return data;
} }
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = <String, dynamic>{};
//
// data['id'] = id;
// data['statusValue'] = statusValue;
// data['taskJobNo'] = taskJobNo;
//
// if (userCreated != null) {
// data['userCreated'] = userCreated!.toJson();
// }
//
// if (taskJobContactPersons != null) {
// data['taskJobContactPersons'] = taskJobContactPersons!.map((e) => e.toJson()).toList();
// }
//
// if (taskType != null) {
// data['taskType'] = taskType!.toJson();
// }
//
// if (taskJobStatus != null) {
// data['taskJobStatus'] = taskJobStatus!.toJson();
// }
//
// data['asset'] = asset?.toJson();
// data['site'] = site;
// data['building'] = building;
// data['floor'] = floor;
// data['department'] = department;
// data['room'] = room;
// data['callComment'] = callComment;
//
// if (assignedEngineer != null) {
// data['assignedEngineer'] = assignedEngineer!.toJson();
// }
//
// if (taskJobAssistantEmployees != null) {
// data['taskJobAssistantEmployees'] = taskJobAssistantEmployees!.map((v) => v.toJson()).toList();
// }
// if (taskJobHistories != null) {
// data['taskJobHistories'] = taskJobHistories!.map((e) => e.toJson()).toList();
// }
// if (installationBuilding != null) {
// data['installationBuilding'] = installationBuilding!.toJson();
// }
// data['installationFloor'] = installationFloor;
// data['installationDepartment'] = installationDepartment;
// data['serialNo'] = serialNo;
// data['installationDate'] = installationDate;
// data['completedAction'] = completedAction;
// data['impactStatus'] = impactStatus;
// data['isUserAcknowledge'] = isUserAcknowledge;
// data['typeOfAlert'] = typeOfAlert;
// data['riskLevel'] = riskLevel;
// data['resource'] = resource;
// data['actionNeeded'] = actionNeeded;
// data['alertNo'] = alertNo;
// data['estimationDeliveryDate'] = estimationDeliveryDate;
// data['reasonOfFSCA'] = reasonOfFSCA;
// data['correctiveActionDescription'] = correctiveActionDescription;
//
// if (evaluatorUser != null) {
// data['evaluatorUser'] = evaluatorUser!.toJson();
// }
// if (taskJobActivityEngineerTimers != null) {
// data['taskJobActivityEngineerTimers'] = taskJobActivityEngineerTimers!.map((e) => e.toJson()).toList();
// }
// if (taskJobAttachments != null) {
// data['taskJobAttachments'] = taskJobAttachments?.map((e) => e.toJson()).toList();
// }
//
// return data;
// }
Map<String, dynamic> toEngineerUpdateJson() { Map<String, dynamic> toEngineerUpdateJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id; data['id'] = id;

@ -200,10 +200,19 @@ class _UpdateTaskRequestState extends State<UpdateTaskRequest> {
void _updateTask({required BuildContext context, required int status}) async { void _updateTask({required BuildContext context, required int status}) async {
TaskRequestProvider taskRequestProvider = Provider.of<TaskRequestProvider>(context, listen: false); TaskRequestProvider taskRequestProvider = Provider.of<TaskRequestProvider>(context, listen: false);
TaskData? taskModel = taskRequestProvider.taskRequestModel;
TaskData? taskModel = TaskData.fromJson(taskRequestProvider.taskRequestModel!.toJson());
taskModel?.statusValue = status; taskModel?.statusValue = status;
taskModel.taskTimePicker = taskRequestProvider.taskRequestModel?.taskTimePicker;
taskModel.totalWorkingHours = taskRequestProvider.taskRequestModel?.totalWorkingHours;
taskModel.taskTimerModel = taskRequestProvider.taskRequestModel?.taskTimerModel;
taskModel.timerModelList = taskRequestProvider.taskRequestModel?.timerModelList;
if (validate(model: taskModel)) { if (validate(model: taskModel)) {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
List<TaskJobAttachment> taskAttachment = []; List<TaskJobAttachment> taskAttachment = [];
if (otherAttachments.isNotEmpty) { if (otherAttachments.isNotEmpty) {
taskAttachment.addAll(otherAttachments); taskAttachment.addAll(otherAttachments);
@ -213,6 +222,7 @@ class _UpdateTaskRequestState extends State<UpdateTaskRequest> {
taskAttachment.add(TaskJobAttachment(id: item.id, name: fileName)); taskAttachment.add(TaskJobAttachment(id: item.id, name: fileName));
} }
taskModel?.taskJobAttachments = taskAttachment; taskModel?.taskJobAttachments = taskAttachment;
if (taskModel?.taskTimePicker != null) { if (taskModel?.taskTimePicker != null) {
int durationInSecond = taskModel!.taskTimePicker!.endAt!.difference(taskModel.taskTimePicker!.startAt!).inSeconds; int durationInSecond = taskModel!.taskTimePicker!.endAt!.difference(taskModel.taskTimePicker!.startAt!).inSeconds;
taskModel.taskJobActivityEngineerTimers?.add( taskModel.taskJobActivityEngineerTimers?.add(
@ -224,19 +234,16 @@ class _UpdateTaskRequestState extends State<UpdateTaskRequest> {
), ),
); );
} }
taskModel?.timerModelList?.forEach((timer) { taskModel?.timerModelList?.forEach((timer) {
int durationInSecond = timer.endAt!.difference(timer.startAt!).inSeconds; int durationInSecond = timer.endAt!.difference(timer.startAt!).inSeconds;
taskModel.taskJobActivityEngineerTimers?.add( taskModel.taskJobActivityEngineerTimers?.add(
TaskJobActivityEngineerTimer( TaskJobActivityEngineerTimer(
id: 0, id: 0, startDate: timer.startAt!.toIso8601String(), endDate: timer.endAt?.toIso8601String(), totalWorkingHour: ((durationInSecond) / 60 / 60), comment: timer.comments ?? comments),
startDate: timer.startAt!.toIso8601String(),
endDate: timer.endAt?.toIso8601String(),
totalWorkingHour: ((durationInSecond) / 60 / 60),
comment: timer.comments ?? comments),
); );
}); });
await taskRequestProvider.updateTaskByEngineer().then((success) async { await taskRequestProvider.updateTaskByEngineer(taskModel).then((success) async {
if (success) { if (success) {
if (status == 1) { if (status == 1) {
AllRequestsProvider allRequestsProvider = Provider.of<AllRequestsProvider>(context, listen: false); AllRequestsProvider allRequestsProvider = Provider.of<AllRequestsProvider>(context, listen: false);

@ -43,10 +43,10 @@ class TaskRequestProvider extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
void refresh() { void refresh() {
notifyListeners(); notifyListeners();
} }
Future<void> addTask({ Future<void> addTask({
required BuildContext context, required BuildContext context,
required AddTaskModel task, required AddTaskModel task,
@ -120,15 +120,16 @@ class TaskRequestProvider extends ChangeNotifier {
} }
} }
Future<bool> updateTaskByEngineer() async { Future<bool> updateTaskByEngineer(TaskData? taskData) async {
isLoading = true; isLoading = true;
Response response; Response response;
try { try {
response = await ApiManager.instance.post(URLs.updateTaskByEngineerUrl, body: taskRequestModel!.toEngineerUpdateJson()); response = await ApiManager.instance.post(URLs.updateTaskByEngineerUrl, body: taskData?.toEngineerUpdateJson() ?? taskRequestModel!.toEngineerUpdateJson());
stateCode = response.statusCode; stateCode = response.statusCode;
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
if (stateCode == 200) { if (stateCode == 200) {
return true; return true;
} }
return false; return false;

Loading…
Cancel
Save