import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; import 'package:shimmer/shimmer.dart'; import '../../../Controller/Orders/Tabs/Weekcontroller.dart'; import '../../../Helper/Constants/Assetconstants.dart'; import '../../../Helper/Constants/Colorconstants.dart'; import '../Deliverydetails/Deliverydetailsview.dart'; class WeekOrderView extends StatelessWidget { WeekOrderView({super.key}); WeekOrderController weekOrderController = Get.put(WeekOrderController()); @override Widget build(BuildContext context) { return GetBuilder( initState: (_){ weekOrderController.shimmer.value = true; weekOrderController.getOrders(); }, builder: (controller) { return Scaffold( backgroundColor: Colors.grey[100], body: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 10, top: 5), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(top: 5, right: 10), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( height: Get.height * 0.06, width: Get.width * 0.94, child: TextField( // textAlign: TextAlign.center, controller: controller.searchController, // style: TextStyle(fontSize: 15), onChanged: (data) { controller.search(data); controller.update(); }, decoration: InputDecoration( contentPadding: EdgeInsets.only( bottom: 10, right: 45, // left: 10 ), border: OutlineInputBorder( borderRadius: BorderRadius.circular(30), borderSide: BorderSide( color: ColorConstants.primaryColor, )), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(30), borderSide: BorderSide( color: ColorConstants.primaryColor, )), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(30), borderSide: BorderSide( color: ColorConstants.primaryColor, )), prefixIcon: Icon( Icons.search, color: ColorConstants.primaryColor, ), // suffixIcon: popUp(), hintText: 'Name'), ), ), ], ), ), ], ), ), Expanded( child:weekOrderController.orderAllList.length == 0&& !weekOrderController.shimmer.value ? Center( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( height: 92, ), Image( height: 160, width: 160, image: AssetImage(AssetConstants.NoRecords), ), Text( "No orders at this moment", style: TextStyle(color: Colors.grey[600], fontSize: 18), ), ], )) : controller.shimmer.value ? orderShimmerCard(context): ListView.builder( itemCount: controller.orderAllList.length, itemBuilder: (BuildContext context, int index) { return Container( // height: Get.height * 0.21, // width: Get.width * 0.9, margin: EdgeInsets.only(left: 10, right: 10, top: 5), padding: EdgeInsets.only( left: 10, right: 10, top: 10, bottom: 10), decoration: BoxDecoration( color: ColorConstants.secondaryColor, borderRadius: BorderRadius.circular(10)), child: InkWell( onTap: (){ // Get.to(()=> DeliveryDetailsView(data: controller.orderAllList[index])); }, child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(top: 4), child: Column( children: [ Row( children: [ Container( height: Get.height * 0.06, width: Get.width * 0.13, decoration: BoxDecoration( borderRadius: BorderRadius.circular( 5), border: Border.all( color: ColorConstants .primaryColor)), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ controller.orderAllList[index].deliverydate == "" ? Text(''): Text( '${DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), controller.orderAllList[index].deliverydate == "" ? Text(''): Text( '${DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), ], ), ), SizedBox( width: 7, ), Container( height: Get.height * 0.06, width: Get.width * 0.13, decoration: BoxDecoration( borderRadius: BorderRadius.circular( 5), border: Border.all( color: ColorConstants .primaryColor!)), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Icon( Icons.delivery_dining, size: 25, color: ColorConstants .primaryColor, ), controller.orderAllList[index].kms==null?Text( '0.0', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 12, ), ):Text( '${controller.orderAllList[index].kms?.toString()}Km', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 12, ), ), ], ), ), ], ), SizedBox( height: 10, ), Container( height: Get.height * 0.05, width: Get.width * 0.28, decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), border: Border.all( color: Colors.grey[400]!)), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(width: 10,), CircleAvatar( radius: 10, backgroundColor: ColorConstants.primaryColor1, child: controller.orderAllList[index].paymenttype==42?Icon(Icons.mobile_friendly,color: ColorConstants.primaryColor,size: 12,):controller.orderAllList[index].paymenttype==43?Icon(Icons.money,color: ColorConstants.primaryColor,size: 12,):Icon(Icons.wallet,color: ColorConstants.primaryColor,size: 12,)), SizedBox(width: 07,), Text( "₹ ${controller.orderAllList[index].deliverycharges}", style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), ], ), ), SizedBox( height: 9, ), controller.orderAllList[index].orderstatus =='cancelled'?Container( height: Get.height*0.04, width: Get.width*0.3, decoration: BoxDecoration(color:Colors.red,borderRadius: BorderRadius.circular(10)), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(width: 5,), Icon(Icons.cancel, color: ColorConstants.secondaryColor, size: 18), SizedBox(width: 6,), Text( '${controller.orderAllList[index].orderstatus }', style: TextStyle( color: ColorConstants.secondaryColor, fontWeight: FontWeight.bold, fontSize: 15)), ], ), ):Container( height: Get.height*0.04, width: Get.width*0.3, decoration: BoxDecoration(color:controller.orderAllList[index].orderstatus =='completed'?Colors.green: Colors.grey[100],borderRadius: BorderRadius.circular(10)), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(width: 5,), CircleAvatar( backgroundColor:controller.orderAllList[index].orderstatus =='completed'? ColorConstants.secondaryColor: ColorConstants.primaryColor1, radius: 10, child: Icon(Icons.check, color: Colors.grey, size: 15), ), SizedBox(width: 6,), Text( '${controller.orderAllList[index].orderstatus }', style: TextStyle( color:controller.orderAllList[index].orderstatus =='completed'? ColorConstants.secondaryColor: ColorConstants.primaryColor, fontWeight: FontWeight.bold, fontSize: 15)), ], ), ), ], ), ), SizedBox( width: 10, ), Padding( padding: const EdgeInsets.only(top: 7), child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.person, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Container( width: Get.width*0.35, child: Text( '${controller.orderAllList[index].pickupcustomer}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), maxLines: 2, ), ), ), ], ), SizedBox( height: 10, ), // Row( // mainAxisAlignment: // MainAxisAlignment.start, // crossAxisAlignment: // CrossAxisAlignment.start, // children: [ // Icon( // Icons.location_on, // color: Colors.grey[500], // size: 22, // ), // SizedBox( // width: 4, // ), // Padding( // padding: const EdgeInsets.only( // top: 2), // child: Container( // width: Get.width*0.35, // child: Text( // '${controller.orderAllList[index].delivceryaddress}', // style: TextStyle( // color: Colors.black87, // fontWeight: // FontWeight.normal, // fontSize: 14, // // ), // maxLines: 2, // ), // ), // ), // ], // ), // SizedBox( // height: 10, // ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.phone, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '${controller.orderAllList[index].pickupcontactno}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.confirmation_num, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '${controller.orderAllList[index].orderid}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.business_rounded, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '${controller.orderAllList[index].tenantname}', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), ], ), ), Spacer(), Column( children: [ Container( decoration: BoxDecoration( color: ColorConstants.primaryColor, shape: BoxShape.rectangle, borderRadius: BorderRadius.all( Radius.circular(12.0)), ), child: Padding( padding: const EdgeInsets.symmetric( vertical: 3.0, horizontal: 5), child: Text( '${DateFormat("hh.mm a").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', style: TextStyle( fontSize: 10.5, color: Colors.white)), )), ], ), ], ), ], ), ), ); }) ) ], ), ); } ); } orderShimmerCard(BuildContext context) { return ListView.builder( itemCount: 6, itemBuilder: (BuildContext context, int index) { return Container( height: Get.height * 0.21, width: Get.width * 0.9, margin: EdgeInsets.only(left: 10, right: 10, top: 5), padding: EdgeInsets.only( left: 10, right: 10, top: 10, bottom: 10), decoration: BoxDecoration( color: ColorConstants.secondaryColor, borderRadius: BorderRadius.circular(10)), child: Shimmer.fromColors( enabled: true, highlightColor: ColorConstants.lightGreyBg!, baseColor: Colors.grey[300]!, child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(top: 4), child: Column( children: [ Row( children: [ Container( height: Get.height * 0.06, width: Get.width * 0.13, decoration: BoxDecoration( borderRadius: BorderRadius.circular( 5), border: Border.all( color: ColorConstants .primaryColor!)), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), ], ), ), SizedBox( width: 7, ), Container( height: Get.height * 0.06, width: Get.width * 0.13, decoration: BoxDecoration( borderRadius: BorderRadius.circular( 5), border: Border.all( color: ColorConstants .primaryColor!)), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Icon( Icons.delivery_dining, size: 25, color: ColorConstants .primaryColor, ), Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 12, ), ), ], ), ), ], ), SizedBox( height: 10, ), Container( height: Get.height * 0.05, width: Get.width * 0.28, decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), border: Border.all( color: Colors.grey[400]!)), child: Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( "", style: TextStyle( color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15, ), ), ], ), ), SizedBox( height: 6, ), Container( height: Get.height*0.04, width: Get.width*0.3, decoration: BoxDecoration(color:Colors.grey[100],borderRadius: BorderRadius.circular(10)), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(width: 5,), CircleAvatar( backgroundColor:Colors.grey[100], radius: 10, child: Icon(Icons.check, color: Colors.grey, size: 15), ), SizedBox(width: 6,), Text( '', style: TextStyle( color:Colors.grey[100], fontWeight: FontWeight.bold, fontSize: 15)), ], ), ), ], ), ), SizedBox( width: 10, ), Padding( padding: const EdgeInsets.only(top: 7), child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.person, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.phone, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.confirmation_num, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.business, color: Colors.grey[500], size: 22, ), SizedBox( width: 4, ), Padding( padding: const EdgeInsets.only( top: 2), child: Text( '', style: TextStyle( color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14, ), ), ), ], ), ], ), ), Spacer(), Column( children: [ Container( height: Get.height*0.02, width: Get.width*0.1, decoration: BoxDecoration( color: Colors.grey[100], shape: BoxShape.rectangle, borderRadius: BorderRadius.all( Radius.circular(12.0)), ), child: Padding( padding: const EdgeInsets.symmetric( vertical: 3.0, horizontal: 5), child: Text( '', style: TextStyle( fontSize: 10.5, color: Colors.white)), )), SizedBox(height: 80,), Icon(Icons.cancel,size: 30,color: Colors.grey[100],) ], ), ], ), ], ), ), ); }); } }