pd-android-app/lib/models/single_get_order_model.dart

265 lines
8.0 KiB
Dart

class SingleGetOrderModel {
final String id;
final String paymentMode;
final String shipTo;
final String billTo;
final List<OrderItem> orderItem;
final double subtotal;
final double gstTotal;
final double grandTotal;
final String status;
final List<dynamic> invoices;
final AddedBy addedBy;
final String pd;
final bool isCancelled;
final bool isDelivered;
final String deliveredDate;
final DateTime statusUpdatedAt;
final String uniqueId;
final DateTime createdAt;
final DateTime updatedAt;
SingleGetOrderModel({
required this.id,
required this.paymentMode,
required this.shipTo,
required this.billTo,
required this.orderItem,
required this.subtotal,
required this.gstTotal,
required this.grandTotal,
required this.status,
required this.invoices,
required this.addedBy,
required this.pd,
required this.isCancelled,
required this.isDelivered,
required this.deliveredDate,
required this.statusUpdatedAt,
required this.uniqueId,
required this.createdAt,
required this.updatedAt,
});
factory SingleGetOrderModel.fromJson(Map<String, dynamic> json) {
return SingleGetOrderModel(
id: json['_id'] ?? '',
paymentMode: json['paymentMode'] ?? '',
shipTo: json['shipTo'] ?? '',
billTo: json['billTo'] ?? '',
orderItem: (json['orderItem'] as List<dynamic>?)
?.map((item) => OrderItem.fromJson(item))
.toList() ??
[],
subtotal: (json['subtotal'] as num?)?.toDouble() ?? 0.0,
gstTotal: (json['gstTotal'] as num?)?.toDouble() ?? 0.0,
grandTotal: (json['grandTotal'] as num?)?.toDouble() ?? 0.0,
status: json['status'] ?? '',
invoices: json['invoices'] ?? [],
addedBy: AddedBy.fromJson(json['addedBy'] ?? {}),
pd: json['pd'] ?? '',
isCancelled: json['iscancelled'] ?? false,
isDelivered: json['isDelivered'] ?? false,
deliveredDate: json['DeliveredDate'] ?? '',
statusUpdatedAt: DateTime.parse(json['statusUpdatedAt'] ?? DateTime.now().toString()),
uniqueId: json['uniqueId'] ?? '',
createdAt: DateTime.parse(json['createdAt'] ?? DateTime.now().toString()),
updatedAt: DateTime.parse(json['updatedAt'] ?? DateTime.now().toString()),
);
}
Map<String, dynamic> toJson() {
return {
'_id': id,
'paymentMode': paymentMode,
'shipTo': shipTo,
'billTo': billTo,
'orderItem': orderItem.map((item) => item.toJson()).toList(),
'subtotal': subtotal,
'gstTotal': gstTotal,
'grandTotal': grandTotal,
'status': status,
'invoices': invoices,
'addedBy': addedBy.toJson(),
'pd': pd,
'iscancelled': isCancelled,
'isDelivered': isDelivered,
'DeliveredDate': deliveredDate,
'statusUpdatedAt': statusUpdatedAt.toIso8601String(),
'uniqueId': uniqueId,
'createdAt': createdAt.toIso8601String(),
'updatedAt': updatedAt.toIso8601String(),
};
}
@override
String toString() {
return 'SingleOrder(id: $id, paymentMode: $paymentMode, shipTo: $shipTo, billTo: $billTo, '
'orderItem: $orderItem, subtotal: $subtotal, gstTotal: $gstTotal, grandTotal: $grandTotal, '
'status: $status, invoices: $invoices, addedBy: $addedBy, pd: $pd, '
'isCancelled: $isCancelled, isDelivered: $isDelivered, deliveredDate: $deliveredDate, '
'statusUpdatedAt: $statusUpdatedAt, uniqueId: $uniqueId, createdAt: $createdAt, updatedAt: $updatedAt)';
}
}
class OrderItem {
final String productId;
final String sku;
final String name;
final String categoryName;
final String brandName;
final double price;
final double gst;
final String hsnCode;
final String description;
final List<dynamic> image;
final int quantity;
final int remainingQuantity;
final String id;
OrderItem({
required this.productId,
required this.sku,
required this.name,
required this.categoryName,
required this.brandName,
required this.price,
required this.gst,
required this.hsnCode,
required this.description,
required this.image,
required this.quantity,
required this.remainingQuantity,
required this.id,
});
factory OrderItem.fromJson(Map<String, dynamic> json) {
return OrderItem(
productId: json['productId'] ?? '',
sku: json['SKU'] ?? '',
name: json['name'] ?? '',
categoryName: json['categoryName'] ?? '',
brandName: json['brandName'] ?? '',
price: (json['price'] as num?)?.toDouble() ?? 0.0,
gst: (json['GST'] as num?)?.toDouble() ?? 0.0,
hsnCode: json['HSN_Code'] ?? '',
description: json['description'] ?? '',
image: json['image'] ?? [],
quantity: json['quantity'] ?? 0,
remainingQuantity: json['remainingQuantity'] ?? 0,
id: json['_id'] ?? '',
);
}
Map<String, dynamic> toJson() {
return {
'productId': productId,
'SKU': sku,
'name': name,
'categoryName': categoryName,
'brandName': brandName,
'price': price,
'GST': gst,
'HSN_Code': hsnCode,
'description': description,
'image': image,
'quantity': quantity,
'remainingQuantity': remainingQuantity,
'_id': id,
};
}
@override
String toString() {
return 'OrderItem(productId: $productId, SKU: $sku, name: $name, categoryName: $categoryName, '
'brandName: $brandName, price: $price, GST: $gst, HSN_Code: $hsnCode, '
'description: $description, image: $image, quantity: $quantity, '
'remainingQuantity: $remainingQuantity, id: $id)';
}
}
class AddedBy {
final String id;
final String designation;
final String name;
final String email;
final String mobileNumber;
final String principalDistributor;
final String addedBy;
final String userType;
final String kyc;
final String? fcmToken;
final DateTime createdAt;
final DateTime updatedAt;
final String mappedSC;
final String uniqueId;
final String mappedTM;
AddedBy({
required this.id,
required this.designation,
required this.name,
required this.email,
required this.mobileNumber,
required this.principalDistributor,
required this.addedBy,
required this.userType,
required this.kyc,
this.fcmToken,
required this.createdAt,
required this.updatedAt,
required this.mappedSC,
required this.uniqueId,
required this.mappedTM,
});
factory AddedBy.fromJson(Map<String, dynamic> json) {
return AddedBy(
id: json['_id'] ?? '',
designation: json['designation'] ?? '',
name: json['name'] ?? '',
email: json['email'] ?? '',
mobileNumber: json['mobile_number'] ?? '',
principalDistributor: json['principal_distributer'] ?? '',
addedBy: json['addedBy'] ?? '',
userType: json['userType'] ?? '',
kyc: json['kyc'] ?? '',
fcmToken: json['fcm_token'],
createdAt: DateTime.parse(json['createdAt'] ?? DateTime.now().toString()),
updatedAt: DateTime.parse(json['updatedAt'] ?? DateTime.now().toString()),
mappedSC: json['mappedSC'] ?? '',
uniqueId: json['uniqueId'] ?? '',
mappedTM: json['mappedTM'] ?? '',
);
}
Map<String, dynamic> toJson() {
return {
'_id': id,
'designation': designation,
'name': name,
'email': email,
'mobile_number': mobileNumber,
'principal_distributer': principalDistributor,
'addedBy': addedBy,
'userType': userType,
'kyc': kyc,
'fcm_token': fcmToken,
'createdAt': createdAt.toIso8601String(),
'updatedAt': updatedAt.toIso8601String(),
'mappedSC': mappedSC,
'uniqueId': uniqueId,
'mappedTM': mappedTM,
};
}
@override
String toString() {
return 'AddedBy(id: $id, designation: $designation, name: $name, email: $email, '
'mobileNumber: $mobileNumber, principalDistributor: $principalDistributor, '
'addedBy: $addedBy, userType: $userType, kyc: $kyc, fcmToken: $fcmToken, '
'createdAt: $createdAt, updatedAt: $updatedAt, mappedSC: $mappedSC, '
'uniqueId: $uniqueId, mappedTM: $mappedTM)';
}
}