37 lines
No EOL
1.2 KiB
Dart
37 lines
No EOL
1.2 KiB
Dart
// 販売伝票テンプレート(簡易実装)
|
|
import 'dart:convert';
|
|
|
|
class SalesInvoiceTemplate {
|
|
final String invoiceNumber;
|
|
final String date;
|
|
final String customerName;
|
|
final List<Map<String, dynamic>> items;
|
|
final int totalAmount;
|
|
final String taxRate;
|
|
|
|
const SalesInvoiceTemplate({
|
|
this.invoiceNumber = '',
|
|
this.date = '',
|
|
this.customerName = '',
|
|
this.items = const <Map<String, dynamic>>[],
|
|
this.totalAmount = 0,
|
|
this.taxRate = '8',
|
|
});
|
|
|
|
factory SalesInvoiceTemplate.fromMap(Map<String, dynamic> data) {
|
|
return SalesInvoiceTemplate(
|
|
invoiceNumber: data['invoice'] as String? ?? '',
|
|
date: data['date'] as String? ?? '',
|
|
customerName: data['customer_name'] as String? ?? '',
|
|
items: (data['items'] as List<dynamic>?)?.map((e) => e as Map<String, dynamic>).toList() ?? const <Map<String, dynamic>>[],
|
|
totalAmount: (data['total'] as int?) ?? 0,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() => '販売伝票 #${invoiceNumber} (${date}, 合計:¥$totalAmount)';
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {'invoice': invoiceNumber, 'date': date, 'items': items.map((i) => i).toList(), 'total': totalAmount};
|
|
}
|
|
} |