cashumit/lib/models/report_signature_config.dart

149 lines
6.5 KiB
Dart
Raw Permalink Normal View History

// lib/models/report_signature_config.dart
import 'package:shared_preferences/shared_preferences.dart';
class ReportSignatureConfig {
final String reportTitle;
final String city;
// 1. Kiri Atas: Pelaksana UPJ (Mengetahui)
final String signatory1Role;
final String signatory1Name;
final String signatory1Nip;
// 2. Kanan Atas: Pembuat Laporan (Dibuat oleh)
final String signatory2Role;
final String signatory2Name;
final String signatory2Nip;
// 3. Kiri Bawah: Koordinator UPJ
final String signatory3Role;
final String signatory3Name;
final String signatory3Nip;
// 4. Kanan Bawah: KPA BLUD SMKN 4 Malang
final String signatory4Role;
final String signatory4Name;
final String signatory4Nip;
const ReportSignatureConfig({
this.reportTitle = 'LAPORAN KEUANGAN UPJ MEKATRONIKA',
this.city = 'Malang',
this.signatory1Role = 'Mengetahui,\nPelaksana UPJ Mekatronika',
this.signatory1Name = 'Anggoro Dwi Nur Rohman, S.Pd, M.T',
this.signatory1Nip = 'NNIP. 20533816260193012106054',
this.signatory2Role = 'Dibuat oleh,',
this.signatory2Name = 'Rama Dwi Nofanto Setiawan',
this.signatory2Nip = '',
this.signatory3Role = 'Koordinator UPJ',
this.signatory3Name = 'Puguh Hartono, SPd',
this.signatory3Nip = 'NIP. 197003152003121009',
this.signatory4Role = 'KPA BLUD\nSMKN 4 Malang',
this.signatory4Name = 'Drs. Gunawan Dwiyono, S.ST, M.Pd',
this.signatory4Nip = 'NIP. 19670930 199512 1 002',
});
// Alias getters untuk kompatibilitas ke belakang
String get makerRole => signatory2Role;
String get makerName => signatory2Name;
String get makerNip => signatory2Nip;
String get approverRole => signatory3Role;
String get approverName => signatory3Name;
String get approverNip => signatory3Nip;
static const String _keyReportTitle = 'report_cfg_title';
static const String _keyCity = 'report_cfg_city';
static const String _keySig1Role = 'report_cfg_sig1_role';
static const String _keySig1Name = 'report_cfg_sig1_name';
static const String _keySig1Nip = 'report_cfg_sig1_nip';
static const String _keySig2Role = 'report_cfg_sig2_role';
static const String _keySig2Name = 'report_cfg_sig2_name';
static const String _keySig2Nip = 'report_cfg_sig2_nip';
static const String _keySig3Role = 'report_cfg_sig3_role';
static const String _keySig3Name = 'report_cfg_sig3_name';
static const String _keySig3Nip = 'report_cfg_sig3_nip';
static const String _keySig4Role = 'report_cfg_sig4_role';
static const String _keySig4Name = 'report_cfg_sig4_name';
static const String _keySig4Nip = 'report_cfg_sig4_nip';
static Future<ReportSignatureConfig> load() async {
final prefs = await SharedPreferences.getInstance();
return ReportSignatureConfig(
reportTitle: prefs.getString(_keyReportTitle) ?? 'LAPORAN KEUANGAN UPJ MEKATRONIKA',
city: prefs.getString(_keyCity) ?? 'Malang',
signatory1Role: prefs.getString(_keySig1Role) ?? 'Mengetahui,\nPelaksana UPJ Mekatronika',
signatory1Name: prefs.getString(_keySig1Name) ?? 'Anggoro Dwi Nur Rohman, S.Pd, M.T',
signatory1Nip: prefs.getString(_keySig1Nip) ?? 'NNIP. 20533816260193012106054',
signatory2Role: prefs.getString(_keySig2Role) ?? 'Dibuat oleh,',
signatory2Name: prefs.getString(_keySig2Name) ?? 'Rama Dwi Nofanto Setiawan',
signatory2Nip: prefs.getString(_keySig2Nip) ?? '',
signatory3Role: prefs.getString(_keySig3Role) ?? 'Koordinator UPJ',
signatory3Name: prefs.getString(_keySig3Name) ?? 'Puguh Hartono, SPd',
signatory3Nip: prefs.getString(_keySig3Nip) ?? 'NIP. 197003152003121009',
signatory4Role: prefs.getString(_keySig4Role) ?? 'KPA BLUD\nSMKN 4 Malang',
signatory4Name: prefs.getString(_keySig4Name) ?? 'Drs. Gunawan Dwiyono, S.ST, M.Pd',
signatory4Nip: prefs.getString(_keySig4Nip) ?? 'NIP. 19670930 199512 1 002',
);
}
Future<void> save() async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_keyReportTitle, reportTitle);
await prefs.setString(_keyCity, city);
await prefs.setString(_keySig1Role, signatory1Role);
await prefs.setString(_keySig1Name, signatory1Name);
await prefs.setString(_keySig1Nip, signatory1Nip);
await prefs.setString(_keySig2Role, signatory2Role);
await prefs.setString(_keySig2Name, signatory2Name);
await prefs.setString(_keySig2Nip, signatory2Nip);
await prefs.setString(_keySig3Role, signatory3Role);
await prefs.setString(_keySig3Name, signatory3Name);
await prefs.setString(_keySig3Nip, signatory3Nip);
await prefs.setString(_keySig4Role, signatory4Role);
await prefs.setString(_keySig4Name, signatory4Name);
await prefs.setString(_keySig4Nip, signatory4Nip);
}
factory ReportSignatureConfig.fromJson(Map<String, dynamic> json) {
return ReportSignatureConfig(
reportTitle: json['reportTitle']?.toString() ?? 'LAPORAN KEUANGAN UPJ MEKATRONIKA',
city: json['city']?.toString() ?? 'Malang',
signatory1Role: json['signatory1Role']?.toString() ?? 'Mengetahui,\nPelaksana UPJ Mekatronika',
signatory1Name: json['signatory1Name']?.toString() ?? 'Anggoro Dwi Nur Rohman, S.Pd, M.T',
signatory1Nip: json['signatory1Nip']?.toString() ?? 'NNIP. 20533816260193012106054',
signatory2Role: json['signatory2Role']?.toString() ?? 'Dibuat oleh,',
signatory2Name: json['signatory2Name']?.toString() ?? 'Rama Dwi Nofanto Setiawan',
signatory2Nip: json['signatory2Nip']?.toString() ?? '',
signatory3Role: json['signatory3Role']?.toString() ?? 'Koordinator UPJ',
signatory3Name: json['signatory3Name']?.toString() ?? 'Puguh Hartono, SPd',
signatory3Nip: json['signatory3Nip']?.toString() ?? 'NIP. 197003152003121009',
signatory4Role: json['signatory4Role']?.toString() ?? 'KPA BLUD\nSMKN 4 Malang',
signatory4Name: json['signatory4Name']?.toString() ?? 'Drs. Gunawan Dwiyono, S.ST, M.Pd',
signatory4Nip: json['signatory4Nip']?.toString() ?? 'NIP. 19670930 199512 1 002',
);
}
Map<String, dynamic> toJson() {
return {
'reportTitle': reportTitle,
'city': city,
'signatory1Role': signatory1Role,
'signatory1Name': signatory1Name,
'signatory1Nip': signatory1Nip,
'signatory2Role': signatory2Role,
'signatory2Name': signatory2Name,
'signatory2Nip': signatory2Nip,
'signatory3Role': signatory3Role,
'signatory3Name': signatory3Name,
'signatory3Nip': signatory3Nip,
'signatory4Role': signatory4Role,
'signatory4Name': signatory4Name,
'signatory4Nip': signatory4Nip,
};
}
}