Perbarui dependensi dan tambahkan fungsionalitas laporan penyaluran. Tambahkan paket baru seperti file_picker, pdf, dan open_file ke dalam pubspec.yaml. Hapus model LaporanModel yang tidak digunakan dan ganti dengan LaporanPenyaluranModel. Modifikasi tampilan dan controller untuk mendukung pengelolaan laporan penyaluran, termasuk navigasi dan ekspor ke PDF. Perbarui rute aplikasi untuk mencakup halaman laporan penyaluran baru.

This commit is contained in:
Khafidh Fuadi
2025-03-20 05:19:04 +07:00
parent 3b12c7af86
commit 54c4660302
29 changed files with 4702 additions and 539 deletions

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:penyaluran_app/app/theme/app_colors.dart';
import 'package:penyaluran_app/app/theme/app_theme.dart';
/// AppBar kustom yang digunakan di seluruh aplikasi
///
@ -60,7 +60,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
),
centerTitle: centerTitle,
elevation: elevation,
backgroundColor: backgroundColor ?? AppColors.primary,
backgroundColor: backgroundColor ?? AppTheme.primaryColor,
foregroundColor: foregroundColor ?? Colors.white,
leading: _buildLeading(),
actions: actions,

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:penyaluran_app/app/theme/app_theme.dart';
class StatusBadge extends StatelessWidget {
final String status;
@ -20,20 +21,22 @@ class StatusBadge extends StatelessWidget {
Widget build(BuildContext context) {
final String statusUpper = status.toUpperCase();
// Default colors for common statuses
// Default colors for common statuses menggunakan AppTheme
final Map<String, Color> defaultColors = {
'DITERIMA': Colors.green,
'MENUNGGU': Colors.orange,
'DITOLAK': Colors.red,
'PROSES': Colors.orange,
'DIPROSES': Colors.orange,
'TINDAKAN': Colors.orange,
'SELESAI': Colors.green,
'TERVERIFIKASI': Colors.green,
'BELUMMENERIMA': Colors.orange,
'DIJADWALKAN': Colors.blue,
'TERLAKSANA': Colors.purple,
'AKTIF': Colors.green,
'DITERIMA': AppTheme.verifiedColor,
'MENUNGGU': AppTheme.processedColor,
'DITOLAK': AppTheme.rejectedColor,
'PROSES': AppTheme.processedColor,
'DIPROSES': AppTheme.processedColor,
'TINDAKAN': AppTheme.processedColor,
'SELESAI': AppTheme.completedColor,
'TERVERIFIKASI': AppTheme.verifiedColor,
'BELUMMENERIMA': AppTheme.processedColor,
'DIJADWALKAN': AppTheme.scheduledColor,
'TERLAKSANA': AppTheme.completedColor,
'AKTIF': AppTheme.verifiedColor,
'DRAFT': AppTheme.processedColor,
'FINAL': AppTheme.completedColor,
};
// Default labels for common statuses
@ -50,6 +53,8 @@ class StatusBadge extends StatelessWidget {
'DIJADWALKAN': 'Dijadwalkan',
'TERLAKSANA': 'Terlaksana',
'AKTIF': 'Aktif',
'DRAFT': 'Draft',
'FINAL': 'Final',
};
// Determine color and label based on status