h-1.flutter.0/lib/models/company_model.dart
2026-02-26 13:24:53 +09:00

88 lines
2.4 KiB
Dart

class CompanyInfo {
final String name;
final String? zipCode;
final String? address;
final String? tel;
final String? fax;
final String? email;
final String? url;
final double defaultTaxRate;
final String? sealPath; // 角印(印鑑)の画像パス
final String taxDisplayMode; // 'normal', 'hidden', 'text_only'
final String? registrationNumber; // 追加: インボイス登録番号 (T番号)
CompanyInfo({
required this.name,
this.zipCode,
this.address,
this.tel,
this.fax,
this.email,
this.url,
this.defaultTaxRate = 0.10,
this.sealPath,
this.taxDisplayMode = 'normal',
this.registrationNumber, // 追加
});
Map<String, dynamic> toMap() {
return {
'id': 1, // 常に1行のみ保持
'name': name,
'zip_code': zipCode,
'address': address,
'tel': tel,
'fax': fax,
'email': email,
'url': url,
'default_tax_rate': defaultTaxRate,
'seal_path': sealPath,
'tax_display_mode': taxDisplayMode,
'registration_number': registrationNumber, // 追加
};
}
factory CompanyInfo.fromMap(Map<String, dynamic> map) {
return CompanyInfo(
name: map['name'] ?? "",
zipCode: map['zip_code'],
address: map['address'],
tel: map['tel'],
fax: map['fax'],
email: map['email'],
url: map['url'],
defaultTaxRate: (map['default_tax_rate'] ?? 0.10).toDouble(),
sealPath: map['seal_path'],
taxDisplayMode: map['tax_display_mode'] ?? 'normal',
registrationNumber: map['registration_number'], // 追加
);
}
CompanyInfo copyWith({
String? name,
String? zipCode,
String? address,
String? tel,
String? fax,
String? email,
String? url,
double? defaultTaxRate,
String? sealPath,
String? taxDisplayMode,
String? registrationNumber, // 追加
}) {
return CompanyInfo(
name: name ?? this.name,
zipCode: zipCode ?? this.zipCode,
address: address ?? this.address,
tel: tel ?? this.tel,
fax: fax ?? this.fax,
email: email ?? this.email,
url: url ?? this.url,
defaultTaxRate: defaultTaxRate ?? this.defaultTaxRate,
sealPath: sealPath ?? this.sealPath,
taxDisplayMode: taxDisplayMode ?? this.taxDisplayMode,
registrationNumber: registrationNumber ?? this.registrationNumber, // 追加
);
}
}