Add pricing entry flow and platform admin foundations

This commit is contained in:
egecankomur
2026-06-20 18:24:40 +03:00
parent 1d36ccdf30
commit ac42681f7e
44 changed files with 6567 additions and 1419 deletions
+22 -6
View File
@@ -5,11 +5,23 @@ extension FinanceTypeX on FinanceType {
String get label => this == FinanceType.receivable ? 'Alacak' : 'Borç';
}
enum FinanceStatus { pending, paid }
enum FinanceStatus { pending, reported, paid }
extension FinanceStatusX on FinanceStatus {
String get value => name;
String get label => this == FinanceStatus.pending ? 'Bekliyor' : 'Ödendi';
String get label {
switch (this) {
case FinanceStatus.pending:
return 'Bekliyor';
case FinanceStatus.reported:
return 'Onay Bekliyor';
case FinanceStatus.paid:
return 'Onaylandı';
}
}
bool get isOpen =>
this == FinanceStatus.pending || this == FinanceStatus.reported;
}
class FinanceEntry {
@@ -44,7 +56,11 @@ class FinanceEntry {
factory FinanceEntry.fromJson(Map<String, dynamic> j) {
final expand = j['expand'] as Map<String, dynamic>?;
final jobExp = expand?['job_id'] as Map<String, dynamic>?;
String? _str(dynamic v) { final s = v as String?; return (s == null || s.isEmpty) ? null : s; }
String? parseOptionalString(dynamic v) {
final s = v as String?;
return (s == null || s.isEmpty) ? null : s;
}
return FinanceEntry(
id: j['id'] as String,
tenantId: j['tenant_id'] as String,
@@ -55,9 +71,9 @@ class FinanceEntry {
currency: j['currency'] as String? ?? 'TRY',
status: FinanceStatus.values.firstWhere((e) => e.value == j['status'],
orElse: () => FinanceStatus.pending),
counterpartyTenantId: _str(j['counterparty_tenant_id']),
paidAt: _str(j['paid_at']),
counterpartyName: _str(j['counterparty_name']),
counterpartyTenantId: parseOptionalString(j['counterparty_tenant_id']),
paidAt: parseOptionalString(j['paid_at']),
counterpartyName: parseOptionalString(j['counterparty_name']),
patientCode: jobExp?['patient_code'] as String?,
dateCreated: j['created'] as String?,
);