대시보드 결재 상세 진입 지원
This commit is contained in:
@@ -102,7 +102,7 @@ class ApprovalDto {
|
||||
decidedAt: _parseDate(
|
||||
json['decided_at'] ?? approvalEnvelope['decided_at'],
|
||||
),
|
||||
note: json['note'] as String? ?? approvalEnvelope['note'] as String?,
|
||||
note: _readString(json['note']) ?? _readString(approvalEnvelope['note']),
|
||||
isActive:
|
||||
(json['is_active'] as bool?) ??
|
||||
(approvalEnvelope['is_active'] as bool?) ??
|
||||
@@ -178,12 +178,12 @@ class ApprovalStatusDto {
|
||||
json['approval_status_id'] as int? ??
|
||||
0,
|
||||
name:
|
||||
json['name'] as String? ??
|
||||
json['status_name'] as String? ??
|
||||
json['approval_status_name'] as String? ??
|
||||
(json['status'] as String?) ??
|
||||
_readString(json['name']) ??
|
||||
_readString(json['status_name']) ??
|
||||
_readString(json['approval_status_name']) ??
|
||||
_readString(json['status']) ??
|
||||
'-',
|
||||
color: json['color'] as String?,
|
||||
color: _readString(json['color']),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -206,8 +206,11 @@ class ApprovalRequesterDto {
|
||||
factory ApprovalRequesterDto.fromJson(Map<String, dynamic> json) {
|
||||
return ApprovalRequesterDto(
|
||||
id: json['id'] as int? ?? json['employee_id'] as int? ?? 0,
|
||||
employeeNo: json['employee_no'] as String? ?? '-',
|
||||
name: json['name'] as String? ?? json['employee_name'] as String? ?? '-',
|
||||
employeeNo: _readString(json['employee_no']) ?? '-',
|
||||
name:
|
||||
_readString(json['name']) ??
|
||||
_readString(json['employee_name']) ??
|
||||
'-',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -231,8 +234,11 @@ class ApprovalApproverDto {
|
||||
factory ApprovalApproverDto.fromJson(Map<String, dynamic> json) {
|
||||
return ApprovalApproverDto(
|
||||
id: json['id'] as int? ?? json['approver_id'] as int? ?? 0,
|
||||
employeeNo: json['employee_no'] as String? ?? '-',
|
||||
name: json['name'] as String? ?? json['employee_name'] as String? ?? '-',
|
||||
employeeNo: _readString(json['employee_no']) ?? '-',
|
||||
name:
|
||||
_readString(json['name']) ??
|
||||
_readString(json['employee_name']) ??
|
||||
'-',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -278,7 +284,7 @@ class ApprovalStepDto {
|
||||
),
|
||||
assignedAt: _parseDate(json['assigned_at']) ?? DateTime.now(),
|
||||
decidedAt: _parseDate(json['decided_at']),
|
||||
note: json['note'] as String?,
|
||||
note: _readString(json['note']),
|
||||
isDeleted:
|
||||
json['is_deleted'] as bool? ??
|
||||
(json['deleted_at'] != null ||
|
||||
@@ -337,9 +343,9 @@ class ApprovalHistoryDto {
|
||||
final fallbackAction = {
|
||||
'id': json['approval_action_id'] ?? json['action_id'],
|
||||
'name':
|
||||
json['approval_action_name'] ??
|
||||
json['action_name'] ??
|
||||
(json['action'] as String?) ??
|
||||
_readString(json['approval_action_name']) ??
|
||||
_readString(json['action_name']) ??
|
||||
_readString(json['action']) ??
|
||||
'-',
|
||||
};
|
||||
|
||||
@@ -355,7 +361,7 @@ class ApprovalHistoryDto {
|
||||
approver: ApprovalApproverDto.fromJson(approverMap),
|
||||
actionAt:
|
||||
_parseDate(json['action_at'] ?? json['actionAt']) ?? DateTime.now(),
|
||||
note: json['note'] as String?,
|
||||
note: _readString(json['note']),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -389,10 +395,10 @@ class ApprovalActionDto {
|
||||
json['approval_action_id'] as int? ??
|
||||
0,
|
||||
name:
|
||||
json['name'] as String? ??
|
||||
json['action_name'] as String? ??
|
||||
json['approval_action_name'] as String? ??
|
||||
(json['action'] as String?) ??
|
||||
_readString(json['name']) ??
|
||||
_readString(json['action_name']) ??
|
||||
_readString(json['approval_action_name']) ??
|
||||
_readString(json['action']) ??
|
||||
'-',
|
||||
);
|
||||
}
|
||||
@@ -441,3 +447,17 @@ DateTime? _parseDate(Object? value) {
|
||||
if (value is String) return DateTime.tryParse(value);
|
||||
return null;
|
||||
}
|
||||
|
||||
String? _readString(dynamic value) {
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
if (value is String) {
|
||||
final trimmed = value.trim();
|
||||
return trimmed.isEmpty ? null : trimmed;
|
||||
}
|
||||
if (value is num || value is bool) {
|
||||
return value.toString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user