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

298 lines
9.4 KiB
Dart

import 'dart:convert';
import 'package:cheminova/models/rd_order_item_model.dart';
//class PlacedOrdersResponse {
// final List<PlacedOrder> placedOrders;
// final int totalOrders;
//
// PlacedOrdersResponse({required this.placedOrders, required this.totalOrders});
//
// factory PlacedOrdersResponse.fromJson(Map<String, dynamic> json) {
// return PlacedOrdersResponse(
// placedOrders: (json['placedOrders'] != null
// ? (json['placedOrders'] as List)
// .map((i) => PlacedOrder.fromJson(i))
// .toList()
// : []), // Fallback to empty list if null
// totalOrders: json['totalOrders'] ?? 0, // Fallback to 0 if null
// );
// }
// Map<String, dynamic> toJson() {
// return {
// 'plcaedOrders': placedOrders.map((order) => order.toJson()).toList(),
// 'totalOrders': totalOrders,
// };
// }
//
// @override
// String toString() {
// return 'PlacedOrdersResponse(placedOrders: $placedOrders, totalOrders: $totalOrders)';
// }
// }
// class PlacedOrdersResponse {
// final String id;
// final String paymentMode;
// final String shipTo;
// final String billTo;
// final List<OrderItem2> orderItems;
// final double subtotal;
// final double gstTotal;
// final double grandTotal;
// final String status;
// final List<dynamic> invoices;
// final String addedBy;
// final String pd;
// final bool isCancelled;
// final bool isDelivered;
// final String deliveredDate;
// final String statusUpdatedAt;
// final String uniqueId;
// final DateTime createdAt;
// final DateTime updatedAt;
//
// final int v;
//
// PlacedOrdersResponse({
// required this.id,
// required this.paymentMode,
// required this.shipTo,
// required this.billTo,
// required this.orderItems,
// 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,
// required this.v,
// });
//
// factory PlacedOrdersResponse.fromJson(Map<String, dynamic> json) {
// return PlacedOrdersResponse(
// id: json['_id']??22343,
// paymentMode: json['paymentMode']??"uuiu",
// shipTo: json['shipTo']??"iiouui",
// billTo: json['billTo']??"iiouio",
// orderItems: (json['orderItem'] as List)
// .map((i) => OrderItem2.fromJson(i))
// .toList(),
// subtotal: json['subtotal'].toDouble()??"78787.99",
// gstTotal: json['gstTotal'].toDouble()??"",
// grandTotal: json['grandTotal'].toDouble()??"",
// status: json['status']??"",
// invoices: json['invoices']??"",
// addedBy: json['addedBy']??"",
// pd: json['pd']??"",
// isCancelled: json['iscancelled']??"",
// isDelivered: json['isDelivered']??"",
// deliveredDate: json['DeliveredDate']??"",
// statusUpdatedAt: json['statusUpdatedAt']??"",
// uniqueId: json['uniqueId']??"uyiy",
// createdAt: DateTime.parse(json['createdAt']),
// updatedAt: DateTime.parse(json['updatedAt']),
// v: json['__v'],
// );
// }
//
// Map<String, dynamic> toJson() {
// return {
// '_id': id,
// 'paymentMode': paymentMode,
// 'shipTo': shipTo,
// 'billTo': billTo,
// 'orderItem': orderItems.map((item) => item.toJson()).toList(),
// '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.toIso8601String(),
// 'updatedAt': updatedAt.toIso8601String(),
// '__v': v,
// };
// }
//
// @override
// String toString() {
// return 'PlacedOrder(id: $id, paymentMode: $paymentMode, shipTo: $shipTo, billTo: $billTo, orderItems: $orderItems, 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, v: $v)';
// }
// }
//
// class OrderItem2 {
// 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;
//
// OrderItem2({
// 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 OrderItem2.fromJson(Map<String, dynamic> json) {
// return OrderItem2(
// productId: json['productId']??"",
// sku: json['SKU']??"",
// name: json['name']??"",
// categoryName: json['categoryName']??"",
// brandName: json['brandName']??"",
// price: json['price'].toDouble()??"",
// gst: json['GST'].toDouble()??"",
// hsnCode: json['HSN_Code']??"",
// description: json['description']??"",
// image: json['image']??"",
// quantity: json['quantity']??5,
// remainingQuantity: json['remainingQuantity']??6,
// id: json['_id']??555,
// );
// }
//
// 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, hsnCode: $hsnCode, description: $description, image: $image, quantity: $quantity, remainingQuantity: $remainingQuantity, id: $id)';
// }
// }
class PlacedOrdersResponse {
final String id;
final String paymentMode;
final String shipTo;
final String billTo;
final List<RDOrderItem> orderItem;
final double subtotal;
final double gstTotal;
final double grandTotal;
final String status;
final bool isCancelled;
final bool isDelivered;
final String deliveredDate;
final String statusUpdatedAt;
final String uniqueId;
final String createdAt;
final String updatedAt;
final int version;
PlacedOrdersResponse({
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.isCancelled,
required this.isDelivered,
required this.deliveredDate,
required this.statusUpdatedAt,
required this.uniqueId,
required this.createdAt,
required this.updatedAt,
required this.version,
});
factory PlacedOrdersResponse.fromJson(Map<String, dynamic> json) {
return PlacedOrdersResponse(
id: json['_id'] ?? '', // Handle null values or incorrect types
paymentMode: json['paymentMode'] ?? '',
shipTo: json['shipTo'] ?? '',
billTo: json['billTo'] ?? '',
orderItem: (json['orderItem'] as List)
.map((item) => RDOrderItem.fromJson(item))
.toList(),
subtotal: (json['subtotal'] as num).toDouble(), // Ensure it is double
gstTotal: (json['gstTotal'] as num).toDouble(), // Ensure it is double
grandTotal: (json['grandTotal'] as num).toDouble(), // Ensure it is double
status: json['status'] ?? '',
isCancelled: json['iscancelled'] ?? false,
isDelivered: json['isDelivered'] ?? false,
deliveredDate: json['DeliveredDate'] ?? '',
statusUpdatedAt: json['statusUpdatedAt'] ?? '',
uniqueId: json['uniqueId']?.toString() ?? '', // Ensure this is a String
createdAt: json['createdAt'] ?? '',
updatedAt: json['updatedAt'] ?? '',
version: json['__v'] ?? 0,
);
}
// Method to convert instance to JSON
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,
'iscancelled': isCancelled,
'isDelivered': isDelivered,
'DeliveredDate': deliveredDate,
'statusUpdatedAt': statusUpdatedAt,
'uniqueId': uniqueId,
'createdAt': createdAt,
'updatedAt': updatedAt,
'__v': version,
};
}
}