270 lines
8.3 KiB
Dart
270 lines
8.3 KiB
Dart
import 'package:cheminova/models/rd_order_item_model.dart';
|
|
|
|
class SingleGetOrderModel {
|
|
final String id;
|
|
String? paymentMode;
|
|
String? shipTo;
|
|
String? billTo;
|
|
List<RDOrderItem>? orderItem;
|
|
double? subtotal;
|
|
double? gstTotal;
|
|
double? grandTotal;
|
|
String? status;
|
|
List<dynamic>? invoices;
|
|
AddedBy? addedBy;
|
|
String? pd;
|
|
bool? isCancelled;
|
|
bool? isDelivered;
|
|
String? deliveredDate;
|
|
DateTime? statusUpdatedAt;
|
|
String? uniqueId;
|
|
DateTime? createdAt;
|
|
DateTime? updatedAt;
|
|
|
|
SingleGetOrderModel({
|
|
required this.id,
|
|
this.paymentMode,
|
|
this.shipTo,
|
|
this.billTo,
|
|
this.orderItem,
|
|
this.subtotal,
|
|
this.gstTotal,
|
|
this.grandTotal,
|
|
this.status,
|
|
this.invoices,
|
|
this.addedBy,
|
|
this.pd,
|
|
this.isCancelled,
|
|
this.isDelivered,
|
|
this.deliveredDate,
|
|
this.statusUpdatedAt,
|
|
this.uniqueId,
|
|
this.createdAt,
|
|
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) => RDOrderItem.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 'SingleGetOrderModel(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 int price; // Use int for price
|
|
final int gst; // Use int for GST
|
|
final int hsnCode; // Use int for HSN Code
|
|
final String description;
|
|
final List<String> image; // Assuming images are stored as a list of strings
|
|
final int quantity;
|
|
final int remainingQuantity;
|
|
int? processQuantity;
|
|
final String id; // Use String for _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,
|
|
this.processQuantity = 1,
|
|
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?)?.toInt() ?? 0, // Handle as num
|
|
gst: (json['GST'] as num?)?.toInt() ?? 0, // Handle as num
|
|
hsnCode: (json['HSN_Code'] as num?)?.toInt() ?? 0, // Handle as num
|
|
description: json['description'] ?? '',
|
|
image: List<String>.from(json['image'] ?? []),
|
|
quantity: (json['quantity'] as num?)?.toInt() ?? 0, // Handle as num
|
|
remainingQuantity: (json['remainingQuantity'] as num?)?.toInt() ?? 0, // Handle as num
|
|
processQuantity: (json['processQuantity']as num?)?.toInt()??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;
|
|
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']?.toString(), // Handle null safely
|
|
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)';
|
|
}
|
|
}
|