diff --git a/lib/model/dashboard/dashboard_tasks_model.dart b/lib/model/dashboard/dashboard_tasks_model.dart index ba10a7a..39ac835 100644 --- a/lib/model/dashboard/dashboard_tasks_model.dart +++ b/lib/model/dashboard/dashboard_tasks_model.dart @@ -1,4 +1,3 @@ -// dashboard_tasks_model.dart class DashboardTasks { final bool success; final String message; @@ -23,7 +22,7 @@ class DashboardTasks { data: json['data'] != null ? DashboardTasksData.fromJson(json['data']) : null, errors: json['errors'], statusCode: json['statusCode'] ?? 0, - timestamp: DateTime.parse(json['timestamp']), + timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(), ); } } @@ -38,9 +37,16 @@ class DashboardTasksData { }); factory DashboardTasksData.fromJson(Map json) { + int toInt(dynamic value) { + if (value is int) return value; + if (value is double) return value.toInt(); + if (value is String) return int.tryParse(value) ?? 0; + return 0; + } + return DashboardTasksData( - totalTasks: json['totalTasks'] ?? 0, - completedTasks: json['completedTasks'] ?? 0, + totalTasks: toInt(json['totalTasks']), + completedTasks: toInt(json['completedTasks']), ); } } diff --git a/lib/model/dashboard/project_progress_model.dart b/lib/model/dashboard/project_progress_model.dart index 20f47c1..e29b71f 100644 --- a/lib/model/dashboard/project_progress_model.dart +++ b/lib/model/dashboard/project_progress_model.dart @@ -27,7 +27,7 @@ class ProjectResponse { [], errors: json['errors'], statusCode: json['statusCode'] ?? 0, - timestamp: DateTime.parse(json['timestamp']), + timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(), ); } @@ -46,8 +46,8 @@ class ProjectResponse { class ProjectData { final String projectId; final String projectName; - final int plannedTask; - final int completedTask; + final double plannedTask; + final double completedTask; final DateTime date; ProjectData({ @@ -62,9 +62,9 @@ class ProjectData { return ProjectData( projectId: json['projectId'] ?? '', projectName: json['projectName'] ?? '', - plannedTask: json['plannedTask'] ?? 0, - completedTask: json['completedTask'] ?? 0, - date: DateTime.parse(json['date']), + plannedTask: (json['plannedTask'] ?? 0).toDouble(), + completedTask: (json['completedTask'] ?? 0).toDouble(), + date: DateTime.tryParse(json['date'] ?? '') ?? DateTime.now(), ); } @@ -81,8 +81,8 @@ class ProjectData { /// Chart-friendly model class ChartTaskData { - final DateTime date; // ✅ actual date for chart - final String dateLabel; // optional: for display + final DateTime date; + final String dateLabel; final int planned; final int completed; @@ -96,9 +96,9 @@ class ChartTaskData { factory ChartTaskData.fromProjectData(ProjectData data) { return ChartTaskData( date: data.date, - dateLabel: DateFormat('dd-MM').format(data.date), - planned: data.plannedTask, - completed: data.completedTask, + dateLabel: DateFormat('dd-MM').format(data.date), + planned: data.plannedTask.round(), + completed: data.completedTask.round(), ); } } diff --git a/lib/model/service_project/service_projects_list_model.dart b/lib/model/service_project/service_projects_list_model.dart index 7117113..bb1f672 100644 --- a/lib/model/service_project/service_projects_list_model.dart +++ b/lib/model/service_project/service_projects_list_model.dart @@ -108,18 +108,15 @@ class ProjectItem { address: json['address'] ?? '', assignedDate: DateTime.tryParse(json['assignedDate'] ?? '') ?? DateTime.now(), - status: - json['status'] != null ? Status.fromJson(json['status']) : null, - client: - json['client'] != null ? Client.fromJson(json['client']) : null, + status: json['status'] != null ? Status.fromJson(json['status']) : null, + client: json['client'] != null ? Client.fromJson(json['client']) : null, services: json['services'] != null ? List.from(json['services'].map((x) => Service.fromJson(x))) : [], contactName: json['contactName'] ?? '', contactPhone: json['contactPhone'] ?? '', contactEmail: json['contactEmail'] ?? '', - createdAt: - DateTime.tryParse(json['createdAt'] ?? '') ?? DateTime.now(), + createdAt: DateTime.tryParse(json['createdAt'] ?? '') ?? DateTime.now(), createdBy: json['createdBy'] != null ? CreatedBy.fromJson(json['createdBy']) : null, @@ -192,7 +189,11 @@ class Client { contactPerson: json['contactPerson'] ?? '', address: json['address'] ?? '', contactNumber: json['contactNumber'] ?? '', - sprid: json['sprid'] ?? 0, + sprid: (json['sprid'] is int) + ? json['sprid'] + : (json['sprid'] is double) + ? (json['sprid'] as double).toInt() + : int.tryParse(json['sprid']?.toString() ?? "0") ?? 0, ); }