second commit
This commit is contained in:
179
lib/Controller/Orders/Ordercontroller.dart
Normal file
179
lib/Controller/Orders/Ordercontroller.dart
Normal file
@@ -0,0 +1,179 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../../Data/Repository/Summary/ordersrepository.dart';
|
||||
import '../../Helper/Logger.dart';
|
||||
import '../../Model/Response/Summary/Getsummarysresponse.dart';
|
||||
import '../../Model/Response/Summary/Ordersummaryresponse.dart';
|
||||
|
||||
class OrderController extends GetxController {
|
||||
String? currentTime;
|
||||
String? notificationDate;
|
||||
|
||||
RxBool shimmer = true.obs;
|
||||
bool filter2 = false;
|
||||
RxBool searchMode = false.obs;
|
||||
bool showOrder = false;
|
||||
|
||||
List<DeliveriesDetails> orderAllList = [];
|
||||
List<DeliveriesDetails> searchOrderList = [];
|
||||
|
||||
var orderId;
|
||||
var orderHeaderId;
|
||||
var userId;
|
||||
|
||||
OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository();
|
||||
|
||||
TextEditingController searchController = TextEditingController();
|
||||
|
||||
late OrderSummaryDetails orderSummaryDetails;
|
||||
|
||||
RxInt currentTabIndex = 0.obs;
|
||||
|
||||
RxBool isOrdersLoading = false.obs;
|
||||
|
||||
bool hasLoadedOrdersOnce = false;
|
||||
|
||||
Future<void> getOrders(String period) async {
|
||||
if (!hasLoadedOrdersOnce) {
|
||||
isOrdersLoading.value = true; // Show loader only on first call
|
||||
}
|
||||
|
||||
try {
|
||||
GetDeliveries? result;
|
||||
|
||||
switch (period) {
|
||||
case 'today':
|
||||
result = await orderSummaryRepository.getOrdersToday();
|
||||
break;
|
||||
case 'week':
|
||||
result = await orderSummaryRepository.getOrdersWeek();
|
||||
break;
|
||||
case 'month':
|
||||
result = await orderSummaryRepository.getOrdersMonth();
|
||||
break;
|
||||
default:
|
||||
isOrdersLoading.value = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (result != null) {
|
||||
await processOrderResult(result);
|
||||
logger.i('Result Json : ${result.toJson()}');
|
||||
}
|
||||
} catch (e) {
|
||||
print("Error fetching orders: $e");
|
||||
} finally {
|
||||
isOrdersLoading.value = false;
|
||||
hasLoadedOrdersOnce = true; // Set the flag after first successful call
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Future<void> search(String keyword) async {
|
||||
if (keyword.isEmpty) {
|
||||
searchMode.value = false;
|
||||
searchOrderList.clear();
|
||||
update();
|
||||
return;
|
||||
}
|
||||
|
||||
searchMode.value = true;
|
||||
isOrdersLoading.value = true;
|
||||
|
||||
try {
|
||||
GetDeliveries? result;
|
||||
switch (currentTabIndex.value) {
|
||||
case 0:
|
||||
result = await orderSummaryRepository.getOrdersToday(keyword: keyword);
|
||||
break;
|
||||
case 1:
|
||||
result = await orderSummaryRepository.getOrdersWeek(keyword: keyword);
|
||||
break;
|
||||
case 2:
|
||||
result = await orderSummaryRepository.getOrdersMonth(keyword: keyword);
|
||||
break;
|
||||
default:
|
||||
isOrdersLoading.value = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (result != null) {
|
||||
searchOrderList.clear();
|
||||
searchOrderList.addAll(result.details ?? []);
|
||||
logger.i('Search Result Json: ${result.toJson()}');
|
||||
}
|
||||
} catch (e) {
|
||||
print("Error searching orders: $e");
|
||||
} finally {
|
||||
isOrdersLoading.value = false;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
getSummary() async {
|
||||
final result = await orderSummaryRepository.getOrderSummary();
|
||||
if(result?.status == true) {
|
||||
orderSummaryDetails = result?.details ?? OrderSummaryDetails();
|
||||
}
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Future<void> processOrderResult(GetDeliveries orderData) async {
|
||||
logger.i('orderresultss');
|
||||
orderAllList.clear();
|
||||
if (orderData.details != null) {
|
||||
print('dataDetailsif${orderData.details}');
|
||||
searchOrderList.clear();
|
||||
searchOrderList.addAll(orderData.details!);
|
||||
orderAllList.addAll(orderData.details!);
|
||||
print('orderalllistlengthincontroller ${orderAllList.length}');
|
||||
}
|
||||
for (var currentOrdersValue in orderAllList) {
|
||||
if (currentOrdersValue.orderstatus != 'created') {
|
||||
showOrder = true;
|
||||
print('showNoOrderssif $showOrder');
|
||||
break;
|
||||
} else {
|
||||
showOrder = false;
|
||||
print('showNoOrder $showOrder');
|
||||
}
|
||||
}
|
||||
shimmer.value = false;
|
||||
update();
|
||||
}
|
||||
|
||||
// void search(String searchData) {
|
||||
// print("datasearchData$searchData");
|
||||
// print("lenght${orderAllList.length}");
|
||||
// orderAllList.clear();
|
||||
// if (filter2) {
|
||||
// List<DeliveriesDetails> search = searchCompare
|
||||
// .where((value) =>
|
||||
// value.pickupcontactno!
|
||||
// .toLowerCase()
|
||||
// .contains(searchController.text.toLowerCase()))
|
||||
// .toList();
|
||||
// orderAllList = search;
|
||||
// } else {
|
||||
// List<DeliveriesDetails> search = searchCompare
|
||||
// .where((value) =>
|
||||
// value.pickupcontactno!
|
||||
// .toLowerCase()
|
||||
// .contains(searchController.text.toLowerCase()))
|
||||
// .toList();
|
||||
// orderAllList = search;
|
||||
// }
|
||||
// searchMode = true;
|
||||
// update();
|
||||
// }
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
orderSummaryDetails = OrderSummaryDetails();
|
||||
}
|
||||
}
|
||||
101
lib/Controller/Orders/Tabs/Monthcontroller.dart
Normal file
101
lib/Controller/Orders/Tabs/Monthcontroller.dart
Normal file
@@ -0,0 +1,101 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../../../Data/Repository/Summary/ordersrepository.dart';
|
||||
import '../../../Model/Response/Summary/Getsummarysresponse.dart';
|
||||
|
||||
class MonthOrderController extends GetxController{
|
||||
|
||||
String? currentTime;
|
||||
String? notificationDate;
|
||||
|
||||
|
||||
RxBool shimmer = true.obs;
|
||||
bool filter2 = false;
|
||||
bool searchMode = false;
|
||||
bool showOrder = false;
|
||||
|
||||
List<DeliveriesDetails> orderAllList = [];
|
||||
List<DeliveriesDetails> searchCompare = [];
|
||||
|
||||
var orderId;
|
||||
var orderHeaderId;
|
||||
var userId;
|
||||
|
||||
|
||||
OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository();
|
||||
|
||||
TextEditingController searchController = TextEditingController();
|
||||
|
||||
|
||||
getOrders() async{
|
||||
GetDeliveries? result = await orderSummaryRepository.getOrdersMonth();
|
||||
monthOrderResult(result!);
|
||||
print('printresultjson${result.toJson()}');
|
||||
}
|
||||
|
||||
monthOrderResult(GetDeliveries orderData) async{
|
||||
print('todayorderresultss');
|
||||
orderAllList.clear();
|
||||
if (orderData.details!= null) {
|
||||
print('dataDetailsif${orderData.details}');
|
||||
searchCompare.clear();
|
||||
searchCompare.addAll(orderData.details!);
|
||||
orderAllList.addAll(orderData.details!);
|
||||
print('orderalllistlengthincontroller${orderAllList.length}');
|
||||
|
||||
}
|
||||
for (var currentOrdersValue in orderAllList) {
|
||||
if ((currentOrdersValue.orderstatus != 'created')) {
|
||||
showOrder = true;
|
||||
print('showNoOrderssif$showOrder');
|
||||
break;
|
||||
} else {
|
||||
showOrder = false;
|
||||
print('showNoOrder$showOrder');
|
||||
}
|
||||
}
|
||||
shimmer.value = false;
|
||||
update();
|
||||
|
||||
}
|
||||
|
||||
|
||||
search(String searchData) {
|
||||
print("datasearchData$searchData");
|
||||
print("lenght${orderAllList.length}");
|
||||
orderAllList.clear();
|
||||
searchCompare.addAll(orderAllList);
|
||||
if (filter2 == true) {
|
||||
List<DeliveriesDetails> search = searchCompare
|
||||
.where((value) =>
|
||||
value.pickupcontactno!
|
||||
.toLowerCase()
|
||||
.contains(searchController.text.toLowerCase()) ==
|
||||
true)
|
||||
.toList();
|
||||
update();
|
||||
searchMode = true;
|
||||
orderAllList = search;
|
||||
} else {
|
||||
List<DeliveriesDetails>search = searchCompare
|
||||
.where((value) =>
|
||||
value.pickupcontactno!
|
||||
.toLowerCase()
|
||||
.contains(searchController.text.toLowerCase()) ==
|
||||
true)
|
||||
.toList();
|
||||
|
||||
update();
|
||||
searchMode = true;
|
||||
orderAllList = search;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
super.onInit();
|
||||
}
|
||||
}
|
||||
28
lib/Controller/Orders/Tabs/Summarycontroller.dart
Normal file
28
lib/Controller/Orders/Tabs/Summarycontroller.dart
Normal file
@@ -0,0 +1,28 @@
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../../../Data/Repository/Summary/ordersrepository.dart';
|
||||
import '../../../Model/Response/Summary/Ordersummaryresponse.dart';
|
||||
|
||||
class OrderSummaryController extends GetxController{
|
||||
|
||||
RxBool shimmer = true.obs;
|
||||
|
||||
OrderSummaryDetails getOrderSummary = OrderSummaryDetails();
|
||||
|
||||
|
||||
OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository();
|
||||
|
||||
|
||||
getOrdersSummary()async{
|
||||
OrderSummary? result = await orderSummaryRepository.getOrderSummary();
|
||||
getOrderSummary = result!.details!;
|
||||
shimmer.value = false;
|
||||
update();
|
||||
}
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
super.onInit();
|
||||
}
|
||||
}
|
||||
104
lib/Controller/Orders/Tabs/Todaycontroller.dart
Normal file
104
lib/Controller/Orders/Tabs/Todaycontroller.dart
Normal file
@@ -0,0 +1,104 @@
|
||||
import 'dart:async';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get/get.dart' hide Response;
|
||||
import '../../../Data/Repository/Summary/ordersrepository.dart';
|
||||
import '../../../Model/Response/Summary/Getsummarysresponse.dart';
|
||||
|
||||
class TodayOrderController extends GetxController {
|
||||
String? currentTime;
|
||||
String? notificationDate;
|
||||
|
||||
RxBool shimmer = true.obs;
|
||||
bool filter2 = false;
|
||||
bool searchMode = false;
|
||||
bool showOrder = false;
|
||||
|
||||
List<DeliveriesDetails> orderAllList = [];
|
||||
List<DeliveriesDetails> searchCompare = [];
|
||||
|
||||
var orderId;
|
||||
var orderHeaderId;
|
||||
var userId;
|
||||
|
||||
OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository();
|
||||
TextEditingController searchController = TextEditingController();
|
||||
|
||||
Timer? _timer; // To hold the periodic timer
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
getOrders(); // Initial call
|
||||
startAutoRefresh(); // Start periodic refresh
|
||||
}
|
||||
|
||||
void startAutoRefresh() {
|
||||
_timer = Timer.periodic(const Duration(seconds: 3), (timer) {
|
||||
getOrders(); // Refresh every 3 seconds
|
||||
});
|
||||
}
|
||||
|
||||
getOrders() async {
|
||||
try {
|
||||
GetDeliveries? result = await orderSummaryRepository.getOrdersToday();
|
||||
if (result != null) {
|
||||
todayOrderResult(result);
|
||||
print('printresultjson${result.toJson()}');
|
||||
}
|
||||
} catch (e) {
|
||||
print("Error fetching orders: $e");
|
||||
// Optionally handle error (e.g., show snackbar)
|
||||
}
|
||||
}
|
||||
|
||||
todayOrderResult(GetDeliveries orderData) async {
|
||||
print('todayorderresultss');
|
||||
orderAllList.clear();
|
||||
if (orderData.details != null) {
|
||||
print('dataDetailsif${orderData.details}');
|
||||
searchCompare.clear();
|
||||
searchCompare.addAll(orderData.details!);
|
||||
orderAllList.addAll(orderData.details!);
|
||||
print('orderalllistlengthincontroller ${orderAllList.length}');
|
||||
}
|
||||
|
||||
showOrder = orderAllList.any((order) => order.orderstatus != 'created');
|
||||
print('showOrder: $showOrder');
|
||||
|
||||
shimmer.value = false;
|
||||
update();
|
||||
}
|
||||
|
||||
search(String searchData) {
|
||||
print("datasearchData$searchData");
|
||||
print("lenght${orderAllList.length}");
|
||||
|
||||
// Restore from searchCompare before filtering
|
||||
orderAllList = List.from(searchCompare);
|
||||
|
||||
if (searchData.isEmpty) {
|
||||
searchMode = false;
|
||||
update();
|
||||
return;
|
||||
}
|
||||
|
||||
List<DeliveriesDetails> searchResults = searchCompare
|
||||
.where((value) =>
|
||||
value.pickupcontactno!
|
||||
.toLowerCase()
|
||||
.contains(searchData.toLowerCase()))
|
||||
.toList();
|
||||
|
||||
orderAllList = searchResults;
|
||||
searchMode = true;
|
||||
update();
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
_timer?.cancel(); // Cancel timer to prevent memory leaks
|
||||
searchController.dispose();
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
101
lib/Controller/Orders/Tabs/Weekcontroller.dart
Normal file
101
lib/Controller/Orders/Tabs/Weekcontroller.dart
Normal file
@@ -0,0 +1,101 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../../../Data/Repository/Summary/ordersrepository.dart';
|
||||
import '../../../Model/Response/Summary/Getsummarysresponse.dart';
|
||||
|
||||
class WeekOrderController extends GetxController{
|
||||
|
||||
String? currentTime;
|
||||
String? notificationDate;
|
||||
|
||||
|
||||
RxBool shimmer = true.obs;
|
||||
bool filter2 = false;
|
||||
bool searchMode = false;
|
||||
bool showOrder = false;
|
||||
|
||||
List<DeliveriesDetails> orderAllList = [];
|
||||
List<DeliveriesDetails> searchCompare = [];
|
||||
|
||||
var orderId;
|
||||
var orderHeaderId;
|
||||
var userId;
|
||||
|
||||
|
||||
OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository();
|
||||
|
||||
TextEditingController searchController = TextEditingController();
|
||||
|
||||
|
||||
getOrders()async{
|
||||
GetDeliveries? result = await orderSummaryRepository.getOrdersWeek();
|
||||
weekOrderResult(result!);
|
||||
print('printresultjson${result.toJson()}');
|
||||
}
|
||||
|
||||
weekOrderResult(GetDeliveries orderData) async{
|
||||
print('todayorderresultss');
|
||||
orderAllList.clear();
|
||||
if (orderData.details!= null) {
|
||||
print('dataDetailsif${orderData.details}');
|
||||
searchCompare.clear();
|
||||
searchCompare.addAll(orderData.details!);
|
||||
orderAllList.addAll(orderData.details!);
|
||||
print('orderalllistlengthincontroller${orderAllList.length}');
|
||||
|
||||
}
|
||||
for (var currentOrdersValue in orderAllList) {
|
||||
if ((currentOrdersValue.orderstatus != 'created')) {
|
||||
showOrder = true;
|
||||
print('showNoOrderssif$showOrder');
|
||||
break;
|
||||
} else {
|
||||
showOrder = false;
|
||||
print('showNoOrder$showOrder');
|
||||
}
|
||||
}
|
||||
shimmer.value = false;
|
||||
update();
|
||||
|
||||
}
|
||||
|
||||
|
||||
search(String searchData) {
|
||||
print("datasearchData$searchData");
|
||||
print("lenght${orderAllList.length}");
|
||||
orderAllList.clear();
|
||||
searchCompare.addAll(orderAllList);
|
||||
if (filter2 == true) {
|
||||
List<DeliveriesDetails> search = searchCompare
|
||||
.where((value) =>
|
||||
value.pickupcontactno!
|
||||
.toLowerCase()
|
||||
.contains(searchController.text.toLowerCase()) ==
|
||||
true)
|
||||
.toList();
|
||||
update();
|
||||
searchMode = true;
|
||||
orderAllList = search;
|
||||
} else {
|
||||
List<DeliveriesDetails>search = searchCompare
|
||||
.where((value) =>
|
||||
value.pickupcontactno!
|
||||
.toLowerCase()
|
||||
.contains(searchController.text.toLowerCase()) ==
|
||||
true)
|
||||
.toList();
|
||||
|
||||
update();
|
||||
searchMode = true;
|
||||
orderAllList = search;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
super.onInit();
|
||||
}
|
||||
}
|
||||
0
lib/Controller/Orders/order_controller_2.dart
Normal file
0
lib/Controller/Orders/order_controller_2.dart
Normal file
Reference in New Issue
Block a user