Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
4ff7b02d84 |
@ -1,72 +1,345 @@
|
||||
// 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)';
|
||||
// }
|
||||
// }
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:cheminova/models/rd_order_item_model.dart';
|
||||
|
||||
// Main model for the order
|
||||
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;
|
||||
String id;
|
||||
String paymentMode;
|
||||
String shipTo;
|
||||
String billTo;
|
||||
List<RDOrderItem> orderItem;
|
||||
double subtotal;
|
||||
double gstTotal;
|
||||
double grandTotal;
|
||||
String status;
|
||||
List<Invoice> invoices;
|
||||
AddedBy addedBy;
|
||||
String pd;
|
||||
bool isCancelled;
|
||||
bool isDelivered;
|
||||
String deliveredDate;
|
||||
String statusUpdatedAt;
|
||||
String uniqueId;
|
||||
String createdAt;
|
||||
String 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,
|
||||
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) => 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()),
|
||||
id: json['_id']??"1",
|
||||
paymentMode: json['paymentMode']??"2343",
|
||||
shipTo: json['shipTo']??"abc",
|
||||
billTo: json['billTo']??"xyz",
|
||||
orderItem: (json['orderItem'] as List)
|
||||
.map((i) => RDOrderItem.fromJson(i))
|
||||
.toList(),
|
||||
subtotal: json['subtotal'].toDouble(),
|
||||
gstTotal: json['gstTotal'].toDouble(),
|
||||
grandTotal: json['grandTotal'].toDouble(),
|
||||
status: json['status'],
|
||||
invoices: (json['invoices'] as List)
|
||||
.map((i) => Invoice.fromJson(i))
|
||||
.toList(),
|
||||
addedBy: AddedBy.fromJson(json['addedBy']??""),
|
||||
pd: json['pd']??"",
|
||||
isCancelled: json['iscancelled']??"",
|
||||
isDelivered: json['isDelivered']??"",
|
||||
deliveredDate: json['DeliveredDate']??"",
|
||||
statusUpdatedAt: json['statusUpdatedAt']??"",
|
||||
uniqueId: json['uniqueId']??"",
|
||||
createdAt: json['createdAt']??"",
|
||||
updatedAt: json['updatedAt']??"",
|
||||
);
|
||||
}
|
||||
|
||||
@ -76,51 +349,109 @@ class SingleGetOrderModel {
|
||||
'paymentMode': paymentMode,
|
||||
'shipTo': shipTo,
|
||||
'billTo': billTo,
|
||||
'orderItem': orderItem?.map((item) => item.toJson()).toList(),
|
||||
'orderItem': orderItem.map((i) => i.toJson()).toList(),
|
||||
'subtotal': subtotal,
|
||||
'gstTotal': gstTotal,
|
||||
'grandTotal': grandTotal,
|
||||
'status': status,
|
||||
'invoices': invoices,
|
||||
'addedBy': addedBy?.toJson(),
|
||||
'invoices': invoices.map((i) => i.toJson()).toList(),
|
||||
'addedBy': addedBy.toJson(),
|
||||
'pd': pd,
|
||||
'iscancelled': isCancelled,
|
||||
'isDelivered': isDelivered,
|
||||
'DeliveredDate': deliveredDate,
|
||||
'statusUpdatedAt': statusUpdatedAt?.toIso8601String(),
|
||||
'statusUpdatedAt': statusUpdatedAt,
|
||||
'uniqueId': uniqueId,
|
||||
'createdAt': createdAt?.toIso8601String(),
|
||||
'updatedAt': updatedAt?.toIso8601String(),
|
||||
'createdAt': createdAt,
|
||||
'updatedAt': updatedAt,
|
||||
};
|
||||
}
|
||||
|
||||
@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
|
||||
// Model for individual order items
|
||||
|
||||
OrderItem({
|
||||
|
||||
// Model for invoices
|
||||
class Invoice {
|
||||
Map<String, String> courierStatusTimeline;
|
||||
String id;
|
||||
String invoiceId;
|
||||
String orderId;
|
||||
List<InvoiceItem> items;
|
||||
double subtotal;
|
||||
double gstTotal;
|
||||
double invoiceAmount;
|
||||
String courierStatus;
|
||||
int v;
|
||||
String courierName;
|
||||
String courierTrackingId;
|
||||
|
||||
Invoice({
|
||||
required this.courierStatusTimeline,
|
||||
required this.id,
|
||||
required this.invoiceId,
|
||||
required this.orderId,
|
||||
required this.items,
|
||||
required this.subtotal,
|
||||
required this.gstTotal,
|
||||
required this.invoiceAmount,
|
||||
required this.courierStatus,
|
||||
required this.v,
|
||||
required this.courierName,
|
||||
required this.courierTrackingId,
|
||||
});
|
||||
|
||||
factory Invoice.fromJson(Map<String, dynamic> json) {
|
||||
return Invoice(
|
||||
courierStatusTimeline: Map<String, String>.from(json['courierstatus_timeline']??""),
|
||||
id: json['_id']??"",
|
||||
invoiceId: json['invoiceId']??"",
|
||||
orderId: json['orderId']??"",
|
||||
items: (json['items'] as List)
|
||||
.map((i) => InvoiceItem.fromJson(i))
|
||||
.toList(),
|
||||
subtotal: json['subtotal'].toDouble(),
|
||||
gstTotal: json['gstTotal'].toDouble(),
|
||||
invoiceAmount: json['invoiceAmount'].toDouble(),
|
||||
courierStatus: json['courierStatus'],
|
||||
v: json['__v'],
|
||||
courierName: json['courier_name']??"",
|
||||
courierTrackingId: json['courier_tracking_id']??"",
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'courierstatus_timeline': courierStatusTimeline,
|
||||
'_id': id,
|
||||
'invoiceId': invoiceId,
|
||||
'orderId': orderId,
|
||||
'items': items.map((i) => i.toJson()).toList(),
|
||||
'subtotal': subtotal,
|
||||
'gstTotal': gstTotal,
|
||||
'invoiceAmount': invoiceAmount,
|
||||
'courierStatus': courierStatus,
|
||||
'__v': v,
|
||||
'courier_name': courierName,
|
||||
'courier_tracking_id': courierTrackingId,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Model for items in an invoice
|
||||
class InvoiceItem {
|
||||
String productId;
|
||||
String sku;
|
||||
String name;
|
||||
String categoryName;
|
||||
String brandName;
|
||||
double price;
|
||||
double gst;
|
||||
int hsnCode;
|
||||
int processQuantity;
|
||||
String id;
|
||||
|
||||
InvoiceItem({
|
||||
required this.productId,
|
||||
required this.sku,
|
||||
required this.name,
|
||||
@ -129,30 +460,22 @@ class OrderItem {
|
||||
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.processQuantity,
|
||||
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'] ?? '',
|
||||
factory InvoiceItem.fromJson(Map<String, dynamic> json) {
|
||||
return InvoiceItem(
|
||||
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']??"",
|
||||
processQuantity: json['processquantity']??"",
|
||||
id: json['_id']??"",
|
||||
);
|
||||
}
|
||||
|
||||
@ -166,23 +489,13 @@ class OrderItem {
|
||||
'price': price,
|
||||
'GST': gst,
|
||||
'HSN_Code': hsnCode,
|
||||
'description': description,
|
||||
'image': image,
|
||||
'quantity': quantity,
|
||||
'remainingQuantity': remainingQuantity,
|
||||
'processquantity': processQuantity,
|
||||
'_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)';
|
||||
}
|
||||
}
|
||||
|
||||
//Model for the user who added the order
|
||||
class AddedBy {
|
||||
final String id;
|
||||
final String designation;
|
||||
@ -229,7 +542,8 @@ class AddedBy {
|
||||
addedBy: json['addedBy'] ?? '',
|
||||
userType: json['userType'] ?? '',
|
||||
kyc: json['kyc'] ?? '',
|
||||
fcmToken: json['fcm_token']?.toString(), // Handle null safely
|
||||
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'] ?? '',
|
||||
@ -267,3 +581,8 @@ class AddedBy {
|
||||
'mappedSC: $mappedSC, uniqueId: $uniqueId, mappedTM: $mappedTM)';
|
||||
}
|
||||
}
|
||||
// Function to parse the JSON string and create a SingleOrder object
|
||||
SingleGetOrderModel parseSingleOrder(String jsonString) {
|
||||
final jsonData = json.decode(jsonString);
|
||||
return SingleGetOrderModel.fromJson(jsonData);
|
||||
}
|
||||
|
@ -33,14 +33,14 @@ import '../../utils/show_snackbar.dart';
|
||||
class RdOrderPendingScreenDetailScreen extends StatefulWidget {
|
||||
//final Product? productModel;
|
||||
// PlacedOrderList and PlacedOrderModel are optional parameters passed to this screen
|
||||
SingleGetOrderModel? placedOrderList;
|
||||
GetRdPendingModel? productpendingModel;
|
||||
final SingleGetOrderModel? placedOrderList;
|
||||
// GetRdPendingModel? productpendingModel;
|
||||
final String orderId;
|
||||
GetInvoiceModel? placeInvoiceList;
|
||||
// GetInvoiceModel? placeInvoiceList;
|
||||
|
||||
// PlacedOrderModel? placedOrderModel;
|
||||
// Constructor for initializing the screen with placed order details
|
||||
RdOrderPendingScreenDetailScreen({super.key,this.placedOrderList,required this.orderId,this.placeInvoiceList});
|
||||
RdOrderPendingScreenDetailScreen({super.key,this.placedOrderList,required this.orderId});
|
||||
|
||||
@override
|
||||
State<RdOrderPendingScreenDetailScreen> createState() =>
|
||||
@ -214,7 +214,7 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
|
||||
// Notify user about successful cancellation
|
||||
showSnackbar("Order cancelled successfully");
|
||||
Get.to(RdCancelledScreen());
|
||||
Get.to(RdCancelledScreen());
|
||||
// Update the status in your UI or backend to reflect the cancelled state
|
||||
setState(() {});
|
||||
|
||||
@ -279,8 +279,8 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
// Place the order and catch any errors
|
||||
await controller.placeRDOrder();
|
||||
|
||||
showSnackbar("Order processed and invoice created successfully");
|
||||
Get.to(RdOrderProcessingScreen());
|
||||
showSnackbar("Order processed and invoice created successfully");
|
||||
Get.to(RdOrderProcessingScreen());
|
||||
|
||||
//Navigator.of(context).pop();
|
||||
// Close the dialog after a short delay
|
||||
@ -324,7 +324,28 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
}
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// int remainingQuantity = (widget.placedOrderList!.orderItem![0].quantity)! -(widget.placedOrderList!.orderItem![0].remainingQuantity!.toInt());
|
||||
if (widget.placedOrderList == null) {
|
||||
return Center(child: Text('No order details available'));
|
||||
}
|
||||
|
||||
// Safely get the order and invoice list
|
||||
final order = widget.placedOrderList!;
|
||||
final invoices = order.invoices;
|
||||
|
||||
// Check if the invoices list contains at least 4 items
|
||||
List<String>? invoiceIds;
|
||||
if (invoices.isNotEmpty) {
|
||||
// Ensure there are at least 4 invoices
|
||||
if (invoices.length >= 4) {
|
||||
// Get the ID of the 4th invoice (index 3)
|
||||
invoiceIds = [invoices[3].invoiceId!]; // Assuming invoiceId is a String
|
||||
} else {
|
||||
invoiceIds = []; // Fallback if not enough invoices
|
||||
}
|
||||
} else {
|
||||
invoiceIds = []; // Fallback if no invoices available
|
||||
}
|
||||
//int remainingQuantity = (widget.placedOrderList!.orderItem![0].quantity)! -(widget.placedOrderList!.orderItem![0].remainingQuantity!.toInt());
|
||||
return Scaffold(
|
||||
extendBodyBehindAppBar: true,
|
||||
appBar: AppBar(
|
||||
@ -384,13 +405,13 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
children: [
|
||||
|
||||
Card(
|
||||
child: Column(
|
||||
child:
|
||||
Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Text(
|
||||
"Invoices",
|
||||
style: GoogleFonts.roboto(
|
||||
@ -400,171 +421,149 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Invoice ID:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(widget.placeInvoiceList!.invoiceId.toString()),
|
||||
// Text(widget.placedOrderList!.uniqueId),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Displaying each invoice in a separate card
|
||||
if (widget.placedOrderList!.invoices.isNotEmpty)
|
||||
...widget.placedOrderList!.invoices.map((invoice) {
|
||||
return Card(
|
||||
margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 8),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Invoice ID
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Invoice ID:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(invoice.invoiceId.toString()),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 10), // Add spacing
|
||||
|
||||
Text(
|
||||
"Items: ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
SizedBox(height: 10), // Add spacing between the title and the list of items
|
||||
Column(
|
||||
children: widget.placeInvoiceList!.items!.map((item) {
|
||||
// Items for this invoice
|
||||
Text(
|
||||
"Items: ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 10), // Add spacing between title and items
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4.0), // Add some spacing between items
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"${item.name.toString()} (${item.sku.toString()})",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.03,
|
||||
// List of items in this invoice
|
||||
Column(
|
||||
children: invoice.items!.map((item) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 4.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"${item.name.toString()} (${item.sku.toString()})",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.03,
|
||||
),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
overflow: TextOverflow.ellipsis, // Handle long text
|
||||
Text("x ${item.processQuantity.toString()}"),
|
||||
],
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
|
||||
const SizedBox(height: 10), // Add spacing between sections
|
||||
|
||||
// Sub Total
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Sub Total:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${invoice.subtotal}"),
|
||||
],
|
||||
),
|
||||
|
||||
// GST
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"GST:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${invoice.gstTotal}"),
|
||||
],
|
||||
),
|
||||
|
||||
// Invoice Amount
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Invoice Amount:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${invoice.invoiceAmount}"),
|
||||
],
|
||||
),
|
||||
|
||||
// Courier Status
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Courier Status:",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: () {},
|
||||
style: ElevatedButton.styleFrom(
|
||||
foregroundColor: Colors.white,
|
||||
backgroundColor: _getCourierStatusColor(invoice.courierStatus.toString()),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
),
|
||||
Text("x ${item.processQuantity.toString()}"),
|
||||
],
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
child: Text(
|
||||
capitalizeFirstLetter(invoice.courierStatus.toString()),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Sub Total : ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${widget.placeInvoiceList!.subtotal}"),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"GST : ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${widget.placeInvoiceList!.gstTotal}"),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Invoice Amount: ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text("₹ ${widget.placeInvoiceList!.invoiceAmount}"),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: Get.width,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(8, 8, 8, 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
"Courier Status : ",
|
||||
style: GoogleFonts.roboto(
|
||||
fontSize: Get.width * 0.04,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
ElevatedButton(
|
||||
onPressed: (){},
|
||||
// Get.to(() =>
|
||||
// RdOrderDetailScreen(
|
||||
// placedOrderList: uniqueOrders[index])), // Navigate to detail screen
|
||||
style: ElevatedButton.styleFrom(
|
||||
foregroundColor: Colors.white,
|
||||
backgroundColor:_getCourierStatusColor(widget.placeInvoiceList!.courierStatus.toString()),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10)),
|
||||
),
|
||||
child: Text(capitalizeFirstLetter(widget.placeInvoiceList!.courierStatus.toString()),
|
||||
// Text(widget.placedOrderList!.status.toString())
|
||||
//Text(widget.placedOrderList!.status, style: GoogleFonts.roboto(fontSize: 14, fontWeight: FontWeight.w400)),
|
||||
),
|
||||
//Text("₹ ${widget.placedOrderList!.gstTotal}"),
|
||||
)],
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
],
|
||||
),
|
||||
|
||||
),
|
||||
|
||||
const SizedBox(height: 8),
|
||||
|
||||
const SizedBox(height: 8),
|
||||
@ -591,12 +590,12 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
padding: EdgeInsets.zero,
|
||||
itemCount: widget.placedOrderList?.orderItem!.length ?? 0,
|
||||
itemCount: order.orderItem!.length ?? 0,
|
||||
itemBuilder: (context, index) {
|
||||
final orderItem = widget.placedOrderList!.orderItem![index];
|
||||
final orderItem =order.orderItem![index];
|
||||
final subTotal = orderItem.price * orderItem.quantity!.toInt();
|
||||
final GstTotalAmount = (orderItem.price * orderItem.quantity!.toInt()) *(orderItem.gst/100 );
|
||||
final grandTotal = subTotal + GstTotalAmount;
|
||||
final GstTotalAmount = (orderItem.price * orderItem.quantity!.toInt()) *(orderItem.gst/100 );
|
||||
final grandTotal = subTotal + GstTotalAmount;
|
||||
return orderItem != null
|
||||
? Card(
|
||||
margin: const EdgeInsets.symmetric(vertical: 5.0),
|
||||
@ -678,14 +677,14 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
padding: EdgeInsets.zero,
|
||||
itemCount: widget.placedOrderList?.orderItem
|
||||
itemCount: order.orderItem
|
||||
?.where((item) => item.remainingQuantity! > 0)
|
||||
.length ?? 0,
|
||||
itemBuilder: (context, index) {
|
||||
|
||||
|
||||
// Filter items with non-zero quantities
|
||||
final filteredItems = widget.placedOrderList!.orderItem!
|
||||
final filteredItems =order!.orderItem!
|
||||
.where((item) => item.remainingQuantity! > 0)
|
||||
.toList();
|
||||
|
||||
@ -775,7 +774,7 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
Text(capitalizeFirstLetter(widget.placeInvoiceList!.orderId!.paymentMode.toString())),
|
||||
Text(capitalizeFirstLetter(widget.placedOrderList!.paymentMode.toString())),
|
||||
// Text("${widget.placedOrderList!.paymentMode}",maxLines: 4,
|
||||
// overflow:TextOverflow.ellipsis,)
|
||||
],
|
||||
@ -808,7 +807,7 @@ class _RdOrderPendingScreenDetailScreenState
|
||||
),
|
||||
SizedBox(width: Get.width*0.01,),
|
||||
//Text(capitalizeFirstLetter(widget.placedOrderList!.status)),
|
||||
Text(capitalizeFirstLetter(widget.placedOrderList!.status.toString()),maxLines: 4,
|
||||
Text(capitalizeFirstLetter(order!.status.toString()),maxLines: 4,
|
||||
overflow:TextOverflow.ellipsis,)
|
||||
],
|
||||
),
|
||||
@ -1014,12 +1013,12 @@ class simple extends State<RdOrderPendingScreenDetailScreen> {
|
||||
onPressed: () {},
|
||||
style: ElevatedButton.styleFrom(
|
||||
foregroundColor: Colors.white,
|
||||
backgroundColor: _getCourierStatusColor(widget.placeInvoiceList!.courierStatus.toString()), // Call the method here
|
||||
backgroundColor: _getCourierStatusColor(widget.placedOrderList!.invoices[0]!.courierStatus.toString()), // Call the method here
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
),
|
||||
child: Text(widget.placeInvoiceList!.courierStatus.toString()),
|
||||
child: Text(widget.placedOrderList!.invoices[0]!.courierStatus.toString()),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
@ -4,6 +4,7 @@ import 'package:cheminova/controller/rd_get_order_controller.dart';
|
||||
import 'package:cheminova/controller/rd_processing_invoice_controller.dart';
|
||||
import 'package:cheminova/models/get_rd_pennding_model.dart';
|
||||
import 'package:cheminova/models/rd_get_order_model.dart';
|
||||
import 'package:cheminova/models/single_get_order_model.dart';
|
||||
import 'package:cheminova/screens/rd%20orders/rd_order_details_screen.dart';
|
||||
import 'package:cheminova/screens/rd%20orders/rd_order_details_update.dart';
|
||||
import 'package:cheminova/screens/rd%20orders/rd_pending_deatils.dart';
|
||||
@ -88,9 +89,6 @@ class _RdOrderPendingScreenState extends State<RdOrderPendingScreen> {
|
||||
// Fetch orders and ensure you wait for it to complete
|
||||
await _getRdPendingController.getRDPendingProduct();
|
||||
|
||||
// await _getRDProcessingInvoiceController.getRDProcessingInvoiceProduct();
|
||||
|
||||
// await _getSingleInvoiceController.fetchInvoice(_getRDProcessingInvoiceController.productProcessingRDList[0].id);
|
||||
// Log the count of fetched orders
|
||||
print('Fetched orders count: ${_getRdPendingController.productRDList.length}');
|
||||
|
||||
@ -100,23 +98,23 @@ class _RdOrderPendingScreenState extends State<RdOrderPendingScreen> {
|
||||
if (index >= 0 && index < _getRdPendingController.productRDList.length) {
|
||||
// Get the order ID from the list based on the index
|
||||
final orderId = _getRdPendingController.productRDList[index].id;
|
||||
final invoiceId = _getRdPendingController.productRDList[index].invoices[0];
|
||||
final invoiceId = _getRdPendingController.productRDList[index].invoices[0];
|
||||
|
||||
// Retrieve the token from SharedPreferences
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
String? token = prefs.getString('token');
|
||||
|
||||
// Check if the token is not null
|
||||
if (token != null) {
|
||||
// Fetch the single order using the order ID, and avoid caching issues
|
||||
final singleOrder = await GetSingleProductService().getSingleOrder(token, orderId);
|
||||
final singleInvoice = await GetSingleInvoiceService().fetchInvoice(token, invoiceId.toString());
|
||||
// Fetch the single order using the order ID
|
||||
final SingleGetOrderModel? singleOrder = await GetSingleProductService().getSingleOrder(token, orderId);
|
||||
|
||||
// Check if the single order was fetched successfully
|
||||
if (singleOrder != null) {
|
||||
// Navigate to the details screen with the fetched order
|
||||
Get.to(() => RdOrderPendingScreenDetailScreen(
|
||||
placedOrderList: singleOrder,
|
||||
placedOrderList: singleOrder, // Pass the single order instance
|
||||
orderId: orderId,
|
||||
placeInvoiceList: singleInvoice,
|
||||
|
||||
));
|
||||
} else {
|
||||
@ -144,6 +142,7 @@ class _RdOrderPendingScreenState extends State<RdOrderPendingScreen> {
|
||||
|
||||
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
Loading…
Reference in New Issue
Block a user