orderlistcomplete
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
|||||||
3.24.3
|
3.22.3
|
||||||
105
.flutter-plugins
105
.flutter-plugins
@@ -1,55 +1,52 @@
|
|||||||
# This is a generated file; do not edit or check into version control.
|
# This is a generated file; do not edit or check into version control.
|
||||||
connectivity_plus=/Users/apple/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
connectivity_plus=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.2/
|
||||||
file_selector_linux=/Users/apple/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/
|
file_selector_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3+2/
|
||||||
file_selector_macos=/Users/apple/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/
|
file_selector_macos=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/
|
||||||
file_selector_windows=/Users/apple/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/
|
file_selector_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/
|
||||||
flutter_inappwebview=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview-6.1.5/
|
flutter_inappwebview=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview-6.0.0/
|
||||||
flutter_inappwebview_android=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.1.3/
|
flutter_inappwebview_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/
|
||||||
flutter_inappwebview_ios=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.1.2/
|
flutter_inappwebview_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_ios-1.0.13/
|
||||||
flutter_inappwebview_macos=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.1.2/
|
flutter_inappwebview_macos=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_macos-1.0.11/
|
||||||
flutter_inappwebview_web=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.1.2/
|
flutter_inappwebview_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_inappwebview_web-1.0.8/
|
||||||
flutter_inappwebview_windows=/Users/apple/.pub-cache/hosted/pub.dev/flutter_inappwebview_windows-0.6.0/
|
flutter_plugin_android_lifecycle=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/
|
||||||
flutter_plugin_android_lifecycle=/Users/apple/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.24/
|
fluttertoast=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/
|
||||||
fluttertoast=/Users/apple/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/
|
geocoding=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
||||||
geocoding=/Users/apple/.pub-cache/hosted/pub.dev/geocoding-3.0.0/
|
geocoding_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
||||||
geocoding_android=/Users/apple/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/
|
geocoding_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
||||||
geocoding_ios=/Users/apple/.pub-cache/hosted/pub.dev/geocoding_ios-3.0.1/
|
geolocator=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
||||||
geolocator=/Users/apple/.pub-cache/hosted/pub.dev/geolocator-13.0.2/
|
geolocator_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
||||||
geolocator_android=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_android-4.6.1/
|
geolocator_apple=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
||||||
geolocator_apple=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_apple-2.3.8+1/
|
geolocator_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
||||||
geolocator_web=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_web-4.1.1/
|
geolocator_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
||||||
geolocator_windows=/Users/apple/.pub-cache/hosted/pub.dev/geolocator_windows-0.2.3/
|
google_api_headers=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
||||||
google_api_headers=/Users/apple/.pub-cache/hosted/pub.dev/google_api_headers-1.6.0/
|
google_maps_flutter=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
||||||
google_maps_flutter=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter-2.10.0/
|
google_maps_flutter_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.7/
|
||||||
google_maps_flutter_android=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_android-2.14.12/
|
google_maps_flutter_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
||||||
google_maps_flutter_ios=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.13.2/
|
google_maps_flutter_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
||||||
google_maps_flutter_web=/Users/apple/.pub-cache/hosted/pub.dev/google_maps_flutter_web-0.5.10/
|
image_picker=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker-1.1.2/
|
||||||
image_picker=/Users/apple/.pub-cache/hosted/pub.dev/image_picker-1.1.2/
|
image_picker_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+12/
|
||||||
image_picker_android=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+20/
|
image_picker_for_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/
|
||||||
image_picker_for_web=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.6/
|
image_picker_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/
|
||||||
image_picker_ios=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12+2/
|
image_picker_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
|
||||||
image_picker_linux=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
|
image_picker_macos=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+2/
|
||||||
image_picker_macos=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+2/
|
image_picker_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/
|
||||||
image_picker_windows=/Users/apple/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/
|
package_info_plus=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
||||||
package_info_plus=/Users/apple/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/
|
path_provider=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
||||||
path_provider=/Users/apple/.pub-cache/hosted/pub.dev/path_provider-2.1.5/
|
path_provider_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/
|
||||||
path_provider_android=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/
|
path_provider_foundation=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
||||||
path_provider_foundation=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/
|
path_provider_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
||||||
path_provider_linux=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
|
path_provider_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
||||||
path_provider_windows=/Users/apple/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/
|
shared_preferences=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences-2.3.3/
|
||||||
shared_preferences=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences-2.5.1/
|
shared_preferences_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/
|
||||||
shared_preferences_android=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.4/
|
shared_preferences_foundation=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
||||||
shared_preferences_foundation=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/
|
shared_preferences_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
||||||
shared_preferences_linux=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/
|
shared_preferences_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
||||||
shared_preferences_web=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/
|
shared_preferences_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
||||||
shared_preferences_windows=/Users/apple/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/
|
sqflite=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/
|
||||||
sqflite=/Users/apple/.pub-cache/hosted/pub.dev/sqflite-2.4.1/
|
url_launcher=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher-6.3.1/
|
||||||
sqflite_android=/Users/apple/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0/
|
url_launcher_android=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/
|
||||||
sqflite_darwin=/Users/apple/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1+1/
|
url_launcher_ios=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/
|
||||||
url_launcher=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher-6.3.1/
|
url_launcher_linux=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/
|
||||||
url_launcher_android=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.14/
|
url_launcher_macos=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/
|
||||||
url_launcher_ios=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.2/
|
url_launcher_web=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/
|
||||||
url_launcher_linux=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/
|
url_launcher_windows=/Users/rajeevsingh/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/
|
||||||
url_launcher_macos=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/
|
|
||||||
url_launcher_web=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/
|
|
||||||
url_launcher_windows=/Users/apple/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -15,6 +15,8 @@
|
|||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.CAMERA"/>
|
<uses-permission android:name="android.permission.CAMERA"/>
|
||||||
|
<uses-permission android:name="android.permission.CALL_PHONE"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:grocery_app/src/logic/provider/address_provider.dart';
|
|||||||
import 'package:grocery_app/src/logic/provider/auth_provider.dart';
|
import 'package:grocery_app/src/logic/provider/auth_provider.dart';
|
||||||
import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart';
|
import 'package:grocery_app/src/logic/provider/bottom_navbar_provider.dart';
|
||||||
import 'package:grocery_app/src/logic/provider/home_provider.dart';
|
import 'package:grocery_app/src/logic/provider/home_provider.dart';
|
||||||
|
import 'package:grocery_app/src/logic/provider/order_provider.dart';
|
||||||
import 'package:grocery_app/src/logic/provider/profile_provider.dart';
|
import 'package:grocery_app/src/logic/provider/profile_provider.dart';
|
||||||
import 'package:grocery_app/src/ui/splash/splash_screen.dart';
|
import 'package:grocery_app/src/ui/splash/splash_screen.dart';
|
||||||
import 'package:grocery_app/utils/constants/color_constant.dart';
|
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||||
@@ -43,6 +44,8 @@ class MyApplication extends StatelessWidget {
|
|||||||
ChangeNotifierProvider(create: (_) => BottomNavProvider()),
|
ChangeNotifierProvider(create: (_) => BottomNavProvider()),
|
||||||
ChangeNotifierProvider(create: (_) => AddressProvider()),
|
ChangeNotifierProvider(create: (_) => AddressProvider()),
|
||||||
ChangeNotifierProvider(create: (_) => ProfileProvider()),
|
ChangeNotifierProvider(create: (_) => ProfileProvider()),
|
||||||
|
ChangeNotifierProvider(create: (_) => OrderProvider()),
|
||||||
|
|
||||||
],
|
],
|
||||||
child: MaterialApp.router(
|
child: MaterialApp.router(
|
||||||
routerConfig: MyRoutes.router,
|
routerConfig: MyRoutes.router,
|
||||||
|
|||||||
@@ -25,14 +25,9 @@ class APIURL {
|
|||||||
static const String refresh_token = "${BASE_URL}auth/refresh-token";
|
static const String refresh_token = "${BASE_URL}auth/refresh-token";
|
||||||
static const String uploadImage = "${BASE_URL}images/upload";
|
static const String uploadImage = "${BASE_URL}images/upload";
|
||||||
static const String updateProfile = "${BASE_URL}user/profile";
|
static const String updateProfile = "${BASE_URL}user/profile";
|
||||||
static const String paymentOrder = "${BASE_URL}payment/order";
|
static const String paymentOrder = "${BASE_URL}payment/initiate";
|
||||||
|
static const String paymentCODOrder = "${BASE_URL}orders";
|
||||||
|
static const String myOrder = "${BASE_URL}orders/my-orders";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const String forgetPassword = "${BASE_URL}auth/forgot-password/vendor";
|
static const String forgetPassword = "${BASE_URL}auth/forgot-password/vendor";
|
||||||
static const String verifyForgetPassword =
|
static const String verifyForgetPassword =
|
||||||
@@ -45,7 +40,6 @@ class APIURL {
|
|||||||
|
|
||||||
static const String createProduct = "${BASE_URL}products";
|
static const String createProduct = "${BASE_URL}products";
|
||||||
|
|
||||||
|
|
||||||
static const String deleteProduct = "${BASE_URL}products/";
|
static const String deleteProduct = "${BASE_URL}products/";
|
||||||
static const String updateProduct = "${BASE_URL}products/";
|
static const String updateProduct = "${BASE_URL}products/";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,29 @@
|
|||||||
|
|
||||||
|
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:get_it/get_it.dart';
|
import 'package:get_it/get_it.dart';
|
||||||
import 'package:grocery_app/src/core/network_services/dio_client.dart';
|
import 'package:grocery_app/src/core/network_services/dio_client.dart';
|
||||||
import 'package:grocery_app/src/logic/repo/auth_repo.dart';
|
import 'package:grocery_app/src/logic/repo/auth_repo.dart';
|
||||||
|
import 'package:grocery_app/src/logic/repo/order_repo.dart';
|
||||||
import 'package:grocery_app/src/logic/repo/product_repo.dart';
|
import 'package:grocery_app/src/logic/repo/product_repo.dart';
|
||||||
import 'package:grocery_app/src/logic/services/auth_service_locator.dart';
|
import 'package:grocery_app/src/logic/services/auth_service_locator.dart';
|
||||||
import 'package:grocery_app/src/logic/services/home_locator.dart';
|
import 'package:grocery_app/src/logic/services/home_locator.dart';
|
||||||
|
import 'package:grocery_app/src/logic/services/orderSirvice.dart';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GetIt getIt = GetIt.instance;
|
GetIt getIt = GetIt.instance;
|
||||||
|
|
||||||
class ServiceLocator
|
class ServiceLocator {
|
||||||
{
|
|
||||||
static void setup() {
|
static void setup() {
|
||||||
|
|
||||||
// dio client
|
// dio client
|
||||||
getIt.registerSingleton(Dio());
|
getIt.registerSingleton(Dio());
|
||||||
getIt.registerSingleton(DioClient(getIt<Dio>()));
|
getIt.registerSingleton(DioClient(getIt<Dio>()));
|
||||||
getIt.registerSingleton(AuthServices());
|
getIt.registerSingleton(AuthServices());
|
||||||
getIt.registerSingleton(ProductService());
|
getIt.registerSingleton(ProductService());
|
||||||
// getIt.registerSingleton(StoreService());
|
getIt.registerSingleton(OrderService());
|
||||||
// getIt.registerSingleton(HomeService());
|
// getIt.registerSingleton(HomeService());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Repos
|
// Repos
|
||||||
getIt.registerSingleton(AuthRepo(getIt<AuthServices>()));
|
getIt.registerSingleton(AuthRepo(getIt<AuthServices>()));
|
||||||
getIt.registerSingleton(ProductRepo(getIt<ProductService>()));
|
getIt.registerSingleton(ProductRepo(getIt<ProductService>()));
|
||||||
// getIt.registerSingleton(StoreRepo(getIt<StoreService>()));
|
getIt.registerSingleton(OrderRepo(getIt<OrderService>()));
|
||||||
// getIt.registerSingleton(HomeRepo(getIt<HomeService>()));
|
// getIt.registerSingleton(HomeRepo(getIt<HomeService>()));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
|
|
||||||
import 'package:grocery_app/src/data/allProduct_model.dart';
|
import 'package:grocery_app/src/data/allProduct_model.dart';
|
||||||
|
import 'package:grocery_app/src/data/myOrder.dart';
|
||||||
import 'package:grocery_app/src/ui/bottomnavigation/bottom_bar_widget.dart';
|
import 'package:grocery_app/src/ui/bottomnavigation/bottom_bar_widget.dart';
|
||||||
import 'package:grocery_app/src/ui/card_checkout/card_checkout_screen.dart';
|
import 'package:grocery_app/src/ui/card_checkout/card_checkout_screen.dart';
|
||||||
import 'package:grocery_app/src/ui/coupons/coupons_screen.dart';
|
import 'package:grocery_app/src/ui/coupons/coupons_screen.dart';
|
||||||
@@ -11,6 +13,8 @@ import 'package:grocery_app/src/ui/fruitvegidetail/fruit_veggie_detail.dart';
|
|||||||
import 'package:grocery_app/src/ui/login/login_screen.dart';
|
import 'package:grocery_app/src/ui/login/login_screen.dart';
|
||||||
import 'package:grocery_app/src/ui/login/signup_screen.dart';
|
import 'package:grocery_app/src/ui/login/signup_screen.dart';
|
||||||
import 'package:grocery_app/src/ui/map/add_locations.dart';
|
import 'package:grocery_app/src/ui/map/add_locations.dart';
|
||||||
|
import 'package:grocery_app/src/ui/myOrder/OrderDetailsScreen.dart';
|
||||||
|
import 'package:grocery_app/src/ui/myOrder/my_order.dart';
|
||||||
import 'package:grocery_app/src/ui/onboarding/on_boarding_screen.dart';
|
import 'package:grocery_app/src/ui/onboarding/on_boarding_screen.dart';
|
||||||
import 'package:grocery_app/src/ui/otp/login_otp.dart';
|
import 'package:grocery_app/src/ui/otp/login_otp.dart';
|
||||||
import 'package:grocery_app/src/ui/otp/otp_screen.dart';
|
import 'package:grocery_app/src/ui/otp/otp_screen.dart';
|
||||||
@@ -114,6 +118,20 @@ class MyRoutes {
|
|||||||
pageBuilder: (context, state) => PaymentFailureScreen(),
|
pageBuilder: (context, state) => PaymentFailureScreen(),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
animatedGoRoute(
|
||||||
|
path: MYORDER,
|
||||||
|
name: MYORDER,
|
||||||
|
pageBuilder: (context, state) => MyOrderScreen(),
|
||||||
|
),
|
||||||
|
animatedGoRoute(
|
||||||
|
path: ORDERDETAILS,
|
||||||
|
name: ORDERDETAILS,
|
||||||
|
pageBuilder: (context, state) {
|
||||||
|
final order = state.extra as Datum; // Cast extra as Datum
|
||||||
|
return OrderDetailsScreen(order: order);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
|
||||||
// animatedGoRoute(
|
// animatedGoRoute(
|
||||||
// path: UPDATESTORE,
|
// path: UPDATESTORE,
|
||||||
// name: UPDATESTORE,
|
// name: UPDATESTORE,
|
||||||
@@ -233,6 +251,9 @@ class MyRoutes {
|
|||||||
static const SELECTPAYMENTSCREEN = "/paymnetscreen";
|
static const SELECTPAYMENTSCREEN = "/paymnetscreen";
|
||||||
static const SUCCESSPAYMENT = "/paymentSuccessScreen";
|
static const SUCCESSPAYMENT = "/paymentSuccessScreen";
|
||||||
static const PAYMENTFAILD = "/paymentfailed";
|
static const PAYMENTFAILD = "/paymentfailed";
|
||||||
|
static const MYORDER = "/myorder";
|
||||||
|
|
||||||
|
static const ORDERDETAILS = "/OrderDetailsScreen";
|
||||||
|
|
||||||
// static const TERMANDCONDITIONS = "/termsandcondition";
|
// static const TERMANDCONDITIONS = "/termsandcondition";
|
||||||
// static const SETUPBUSSINESS = "/setupbussiness";
|
// static const SETUPBUSSINESS = "/setupbussiness";
|
||||||
|
|||||||
684
lib/src/data/myOrder.dart
Normal file
684
lib/src/data/myOrder.dart
Normal file
@@ -0,0 +1,684 @@
|
|||||||
|
// To parse this JSON data, do
|
||||||
|
//
|
||||||
|
// final myOrder = myOrderFromJson(jsondynamic);
|
||||||
|
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
MyOrder myOrderFromJson(dynamic str) => MyOrder.fromJson(json.decode(str));
|
||||||
|
|
||||||
|
dynamic myOrderToJson(MyOrder data) => json.encode(data.toJson());
|
||||||
|
|
||||||
|
class MyOrder {
|
||||||
|
List<Datum>? data;
|
||||||
|
Meta? meta;
|
||||||
|
|
||||||
|
MyOrder({
|
||||||
|
this.data,
|
||||||
|
this.meta,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory MyOrder.fromJson(Map<dynamic, dynamic> json) => MyOrder(
|
||||||
|
data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
|
||||||
|
meta: Meta.fromJson(json["meta"]),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"data": List<dynamic>.from(data!.map((x) => x.toJson())),
|
||||||
|
"meta": meta!.toJson(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class Datum {
|
||||||
|
dynamic id;
|
||||||
|
dynamic orderNumber;
|
||||||
|
dynamic userId;
|
||||||
|
int? totalItems;
|
||||||
|
dynamic subtotal;
|
||||||
|
dynamic deliveryCharge;
|
||||||
|
dynamic discount;
|
||||||
|
dynamic grandTotal;
|
||||||
|
dynamic paymentMethod;
|
||||||
|
dynamic paymentStatus;
|
||||||
|
dynamic transactionId;
|
||||||
|
dynamic orderStatus;
|
||||||
|
dynamic deliveryAddressId;
|
||||||
|
dynamic couponId;
|
||||||
|
dynamic cancelReason;
|
||||||
|
dynamic cancelledBy;
|
||||||
|
dynamic cancelledAt;
|
||||||
|
DateTime? createdAt;
|
||||||
|
DateTime? updatedAt;
|
||||||
|
User? user;
|
||||||
|
List<OrderItem>? orderItems;
|
||||||
|
DeliveryAddress? deliveryAddress;
|
||||||
|
|
||||||
|
List<StatusHistory>? statusHistory;
|
||||||
|
List<Store>? stores;
|
||||||
|
|
||||||
|
Datum({
|
||||||
|
this.id,
|
||||||
|
this.orderNumber,
|
||||||
|
this.userId,
|
||||||
|
this.totalItems,
|
||||||
|
this.subtotal,
|
||||||
|
this.deliveryCharge,
|
||||||
|
this.discount,
|
||||||
|
this.grandTotal,
|
||||||
|
this.paymentMethod,
|
||||||
|
this.paymentStatus,
|
||||||
|
this.transactionId,
|
||||||
|
this.orderStatus,
|
||||||
|
this.deliveryAddressId,
|
||||||
|
this.couponId,
|
||||||
|
this.cancelReason,
|
||||||
|
this.cancelledBy,
|
||||||
|
this.cancelledAt,
|
||||||
|
this.createdAt,
|
||||||
|
this.updatedAt,
|
||||||
|
this.user,
|
||||||
|
this.orderItems,
|
||||||
|
this.deliveryAddress,
|
||||||
|
this.statusHistory,
|
||||||
|
this.stores,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Datum.fromJson(Map<dynamic, dynamic> json) => Datum(
|
||||||
|
id: json["id"],
|
||||||
|
orderNumber: json["orderNumber"],
|
||||||
|
userId: json["userId"],
|
||||||
|
totalItems: json["totalItems"],
|
||||||
|
subtotal: json["subtotal"],
|
||||||
|
deliveryCharge: json["deliveryCharge"],
|
||||||
|
discount: json["discount"],
|
||||||
|
grandTotal: json["grandTotal"],
|
||||||
|
paymentMethod: json["paymentMethod"],
|
||||||
|
paymentStatus: json["paymentStatus"],
|
||||||
|
transactionId: json["transactionId"],
|
||||||
|
orderStatus: json["orderStatus"],
|
||||||
|
deliveryAddressId: json["deliveryAddressId"],
|
||||||
|
couponId: json["couponId"],
|
||||||
|
cancelReason: json["cancelReason"],
|
||||||
|
cancelledBy: json["cancelledBy"],
|
||||||
|
cancelledAt: json["cancelledAt"],
|
||||||
|
createdAt: DateTime?.parse(json["createdAt"]),
|
||||||
|
updatedAt: DateTime?.parse(json["updatedAt"]),
|
||||||
|
user: User.fromJson(json["user"]),
|
||||||
|
orderItems: List<OrderItem>.from(
|
||||||
|
json["orderItems"].map((x) => OrderItem.fromJson(x))),
|
||||||
|
deliveryAddress: DeliveryAddress.fromJson(json["deliveryAddress"]),
|
||||||
|
statusHistory: List<StatusHistory>.from(
|
||||||
|
json["statusHistory"].map((x) => StatusHistory.fromJson(x))),
|
||||||
|
stores: List<Store>.from(json["stores"].map((x) => Store.fromJson(x))),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"orderNumber": orderNumber,
|
||||||
|
"userId": userId,
|
||||||
|
"totalItems": totalItems,
|
||||||
|
"subtotal": subtotal,
|
||||||
|
"deliveryCharge": deliveryCharge,
|
||||||
|
"discount": discount,
|
||||||
|
"grandTotal": grandTotal,
|
||||||
|
"paymentMethod": paymentMethod,
|
||||||
|
"paymentStatus": paymentStatus,
|
||||||
|
"transactionId": transactionId,
|
||||||
|
"orderStatus": orderStatus,
|
||||||
|
"deliveryAddressId": deliveryAddressId,
|
||||||
|
"couponId": couponId,
|
||||||
|
"cancelReason": cancelReason,
|
||||||
|
"cancelledBy": cancelledBy,
|
||||||
|
"cancelledAt": cancelledAt,
|
||||||
|
"createdAt": createdAt,
|
||||||
|
"updatedAt": updatedAt,
|
||||||
|
"user": user!.toJson(),
|
||||||
|
"orderItems": List<dynamic>.from(orderItems!.map((x) => x.toJson())),
|
||||||
|
"deliveryAddress": deliveryAddress!.toJson(),
|
||||||
|
"statusHistory":
|
||||||
|
List<dynamic>.from(statusHistory!.map((x) => x.toJson())),
|
||||||
|
"stores": List<dynamic>.from(stores!.map((x) => x.toJson())),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class DeliveryAddress {
|
||||||
|
dynamic id;
|
||||||
|
dynamic pincode;
|
||||||
|
dynamic phoneNumber;
|
||||||
|
dynamic alternatePhoneNumber;
|
||||||
|
dynamic addressLine;
|
||||||
|
dynamic landmark;
|
||||||
|
dynamic addressType;
|
||||||
|
dynamic city;
|
||||||
|
dynamic district;
|
||||||
|
dynamic name;
|
||||||
|
dynamic state;
|
||||||
|
dynamic country;
|
||||||
|
bool? isDeliverable;
|
||||||
|
bool? isDefault;
|
||||||
|
dynamic additionalInstructions;
|
||||||
|
DateTime? createdAt;
|
||||||
|
DateTime? updatedAt;
|
||||||
|
dynamic userId;
|
||||||
|
|
||||||
|
DeliveryAddress({
|
||||||
|
this.id,
|
||||||
|
this.pincode,
|
||||||
|
this.phoneNumber,
|
||||||
|
this.alternatePhoneNumber,
|
||||||
|
this.addressLine,
|
||||||
|
this.landmark,
|
||||||
|
this.addressType,
|
||||||
|
this.city,
|
||||||
|
this.district,
|
||||||
|
this.name,
|
||||||
|
this.state,
|
||||||
|
this.country,
|
||||||
|
this.isDeliverable,
|
||||||
|
this.isDefault,
|
||||||
|
this.additionalInstructions,
|
||||||
|
this.createdAt,
|
||||||
|
this.updatedAt,
|
||||||
|
this.userId,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory DeliveryAddress.fromJson(Map<dynamic, dynamic> json) =>
|
||||||
|
DeliveryAddress(
|
||||||
|
id: json["id"],
|
||||||
|
pincode: json["pincode"],
|
||||||
|
phoneNumber: json["phoneNumber"],
|
||||||
|
alternatePhoneNumber: json["alternatePhoneNumber"],
|
||||||
|
addressLine: json["addressLine"],
|
||||||
|
landmark: json["landmark"],
|
||||||
|
addressType: json["addressType"],
|
||||||
|
city: json["city"],
|
||||||
|
district: json["district"],
|
||||||
|
name: json["name"],
|
||||||
|
state: json["state"],
|
||||||
|
country: json["country"],
|
||||||
|
isDeliverable: json["isDeliverable"],
|
||||||
|
isDefault: json["isDefault"],
|
||||||
|
additionalInstructions: json["additionalInstructions"],
|
||||||
|
createdAt: DateTime?.parse(json["createdAt"]),
|
||||||
|
updatedAt: DateTime?.parse(json["updatedAt"]),
|
||||||
|
userId: json["userId"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"pincode": pincode,
|
||||||
|
"phoneNumber": phoneNumber,
|
||||||
|
"alternatePhoneNumber": alternatePhoneNumber,
|
||||||
|
"addressLine": addressLine,
|
||||||
|
"landmark": landmark,
|
||||||
|
"addressType": addressType,
|
||||||
|
"city": city,
|
||||||
|
"district": district,
|
||||||
|
"name": name,
|
||||||
|
"state": state,
|
||||||
|
"country": country,
|
||||||
|
"isDeliverable": isDeliverable,
|
||||||
|
"isDefault": isDefault,
|
||||||
|
"additionalInstructions": additionalInstructions,
|
||||||
|
"createdAt": createdAt,
|
||||||
|
"updatedAt": updatedAt,
|
||||||
|
"userId": userId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class OrderItem {
|
||||||
|
dynamic id;
|
||||||
|
dynamic orderId;
|
||||||
|
dynamic productId;
|
||||||
|
dynamic storeId;
|
||||||
|
dynamic productName;
|
||||||
|
dynamic productImage;
|
||||||
|
dynamic productVariant;
|
||||||
|
int? quantity;
|
||||||
|
dynamic price;
|
||||||
|
dynamic originalPrice;
|
||||||
|
dynamic discountAmount;
|
||||||
|
DateTime? createdAt;
|
||||||
|
DateTime? updatedAt;
|
||||||
|
Product? product;
|
||||||
|
// Store? store;
|
||||||
|
|
||||||
|
OrderItem({
|
||||||
|
this.id,
|
||||||
|
this.orderId,
|
||||||
|
this.productId,
|
||||||
|
this.storeId,
|
||||||
|
this.productName,
|
||||||
|
this.productImage,
|
||||||
|
this.productVariant,
|
||||||
|
this.quantity,
|
||||||
|
this.price,
|
||||||
|
this.originalPrice,
|
||||||
|
this.discountAmount,
|
||||||
|
this.createdAt,
|
||||||
|
this.updatedAt,
|
||||||
|
this.product,
|
||||||
|
// this.store,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory OrderItem.fromJson(Map<dynamic, dynamic> json) => OrderItem(
|
||||||
|
id: json["id"],
|
||||||
|
orderId: json["orderId"],
|
||||||
|
productId: json["productId"],
|
||||||
|
storeId: json["storeId"],
|
||||||
|
productName: json["productName"],
|
||||||
|
productImage: json["productImage"],
|
||||||
|
productVariant: json["productVariant"],
|
||||||
|
quantity: json["quantity"],
|
||||||
|
price: json["price"],
|
||||||
|
originalPrice: json["originalPrice"],
|
||||||
|
discountAmount: json["discountAmount"],
|
||||||
|
createdAt: DateTime?.parse(json["createdAt"]),
|
||||||
|
updatedAt: DateTime?.parse(json["updatedAt"]),
|
||||||
|
product: Product.fromJson(json["product"]),
|
||||||
|
// store: Store.fromJson(json["store"]),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"orderId": orderId,
|
||||||
|
"productId": productId,
|
||||||
|
"storeId": storeId,
|
||||||
|
"productName": productName,
|
||||||
|
"productImage": productImage,
|
||||||
|
"productVariant": productVariant,
|
||||||
|
"quantity": quantity,
|
||||||
|
"price": price,
|
||||||
|
"originalPrice": originalPrice,
|
||||||
|
"discountAmount": discountAmount,
|
||||||
|
"createdAt": createdAt,
|
||||||
|
"updatedAt": updatedAt,
|
||||||
|
"product": product!.toJson(),
|
||||||
|
// "store": store!.toJson(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class Product {
|
||||||
|
dynamic id;
|
||||||
|
dynamic name;
|
||||||
|
dynamic description;
|
||||||
|
dynamic additionalInfo;
|
||||||
|
dynamic brand;
|
||||||
|
dynamic basePrice;
|
||||||
|
dynamic discountPrice;
|
||||||
|
int? stock;
|
||||||
|
int? quantity;
|
||||||
|
dynamic unit;
|
||||||
|
dynamic slug;
|
||||||
|
dynamic averageRating;
|
||||||
|
bool? isInStock;
|
||||||
|
bool? isActive;
|
||||||
|
DateTime? createdAt;
|
||||||
|
DateTime? updatedAt;
|
||||||
|
dynamic storeId;
|
||||||
|
dynamic categoryId;
|
||||||
|
dynamic productTypeId;
|
||||||
|
dynamic timeSlotId;
|
||||||
|
List<ProductImage>? productImages;
|
||||||
|
Category? category;
|
||||||
|
dynamic? productType;
|
||||||
|
|
||||||
|
Product({
|
||||||
|
this.id,
|
||||||
|
this.name,
|
||||||
|
this.description,
|
||||||
|
this.additionalInfo,
|
||||||
|
this.brand,
|
||||||
|
this.basePrice,
|
||||||
|
this.discountPrice,
|
||||||
|
this.stock,
|
||||||
|
this.quantity,
|
||||||
|
this.unit,
|
||||||
|
this.slug,
|
||||||
|
this.averageRating,
|
||||||
|
this.isInStock,
|
||||||
|
this.isActive,
|
||||||
|
this.createdAt,
|
||||||
|
this.updatedAt,
|
||||||
|
this.storeId,
|
||||||
|
this.categoryId,
|
||||||
|
this.productTypeId,
|
||||||
|
this.timeSlotId,
|
||||||
|
this.productImages,
|
||||||
|
this.category,
|
||||||
|
this.productType,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Product.fromJson(Map<dynamic, dynamic> json) => Product(
|
||||||
|
id: json["id"],
|
||||||
|
name: json["name"],
|
||||||
|
description: json["description"],
|
||||||
|
additionalInfo: json["additionalInfo"],
|
||||||
|
brand: json["brand"],
|
||||||
|
basePrice: json["basePrice"],
|
||||||
|
discountPrice: json["discountPrice"],
|
||||||
|
stock: json["stock"],
|
||||||
|
quantity: json["quantity"],
|
||||||
|
unit: json["unit"],
|
||||||
|
slug: json["slug"],
|
||||||
|
averageRating: json["averageRating"],
|
||||||
|
isInStock: json["isInStock"],
|
||||||
|
isActive: json["isActive"],
|
||||||
|
createdAt: DateTime?.parse(json["createdAt"]),
|
||||||
|
updatedAt: DateTime?.parse(json["updatedAt"]),
|
||||||
|
storeId: json["storeId"],
|
||||||
|
categoryId: json["categoryId"],
|
||||||
|
productTypeId: json["productTypeId"],
|
||||||
|
timeSlotId: json["timeSlotId"],
|
||||||
|
productImages: List<ProductImage>.from(
|
||||||
|
json["productImages"].map((x) => ProductImage.fromJson(x))),
|
||||||
|
category: Category.fromJson(json["category"]),
|
||||||
|
productType: json["productType"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"name": name,
|
||||||
|
"description": description,
|
||||||
|
"additionalInfo": additionalInfo,
|
||||||
|
"brand": brand,
|
||||||
|
"basePrice": basePrice,
|
||||||
|
"discountPrice": discountPrice,
|
||||||
|
"stock": stock,
|
||||||
|
"quantity": quantity,
|
||||||
|
"unit": unit,
|
||||||
|
"slug": slug,
|
||||||
|
"averageRating": averageRating,
|
||||||
|
"isInStock": isInStock,
|
||||||
|
"isActive": isActive,
|
||||||
|
"createdAt": createdAt,
|
||||||
|
"updatedAt": updatedAt,
|
||||||
|
"storeId": storeId,
|
||||||
|
"categoryId": categoryId,
|
||||||
|
"productTypeId": productTypeId,
|
||||||
|
"timeSlotId": timeSlotId,
|
||||||
|
"productImages":
|
||||||
|
List<dynamic>.from(productImages!.map((x) => x.toJson())),
|
||||||
|
"category": category!.toJson(),
|
||||||
|
"productType": productType,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class Category {
|
||||||
|
dynamic id;
|
||||||
|
dynamic name;
|
||||||
|
dynamic path;
|
||||||
|
|
||||||
|
Category({
|
||||||
|
this.id,
|
||||||
|
this.name,
|
||||||
|
this.path,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
|
||||||
|
id: json["id"],
|
||||||
|
name: json["name"],
|
||||||
|
path: json["path"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"name": name,
|
||||||
|
"path": path,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class ProductImage {
|
||||||
|
dynamic id;
|
||||||
|
dynamic url;
|
||||||
|
bool? isDefault;
|
||||||
|
dynamic productId;
|
||||||
|
|
||||||
|
ProductImage({
|
||||||
|
this.id,
|
||||||
|
this.url,
|
||||||
|
this.isDefault,
|
||||||
|
this.productId,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
|
||||||
|
id: json["id"],
|
||||||
|
url: json["url"],
|
||||||
|
isDefault: json["isDefault"],
|
||||||
|
productId: json["productId"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"url": url,
|
||||||
|
"isDefault": isDefault,
|
||||||
|
"productId": productId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class Store {
|
||||||
|
dynamic id;
|
||||||
|
dynamic storeName;
|
||||||
|
dynamic storePicture;
|
||||||
|
dynamic storeAddress;
|
||||||
|
dynamic officialPhoneNumber;
|
||||||
|
User? vendor;
|
||||||
|
OperateDates? operateDates;
|
||||||
|
OperateTimes? operateTimes;
|
||||||
|
|
||||||
|
Store({
|
||||||
|
this.id,
|
||||||
|
this.storeName,
|
||||||
|
this.storePicture,
|
||||||
|
this.storeAddress,
|
||||||
|
this.officialPhoneNumber,
|
||||||
|
this.vendor,
|
||||||
|
this.operateDates,
|
||||||
|
this.operateTimes,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Store.fromJson(Map<dynamic, dynamic> json) => Store(
|
||||||
|
id: json["id"],
|
||||||
|
storeName: json["storeName"],
|
||||||
|
storePicture: json["storePicture"],
|
||||||
|
storeAddress: json["storeAddress"],
|
||||||
|
officialPhoneNumber: json["officialPhoneNumber"],
|
||||||
|
vendor: User.fromJson(json["vendor"]),
|
||||||
|
operateDates: OperateDates.fromJson(json["operateDates"]),
|
||||||
|
operateTimes: OperateTimes.fromJson(json["operateTimes"]),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"storeName": storeName,
|
||||||
|
"storePicture": storePicture,
|
||||||
|
"storeAddress": storeAddress,
|
||||||
|
"officialPhoneNumber": officialPhoneNumber,
|
||||||
|
"vendor": vendor!.toJson(),
|
||||||
|
"operateDates": operateDates!.toJson(),
|
||||||
|
"operateTimes": operateTimes!.toJson(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class OperateDates {
|
||||||
|
dynamic id;
|
||||||
|
bool? monday;
|
||||||
|
bool? tuesday;
|
||||||
|
bool? wednesday;
|
||||||
|
bool? thursday;
|
||||||
|
bool? friday;
|
||||||
|
bool? saturday;
|
||||||
|
bool? sunday;
|
||||||
|
dynamic storeId;
|
||||||
|
|
||||||
|
OperateDates({
|
||||||
|
this.id,
|
||||||
|
this.monday,
|
||||||
|
this.tuesday,
|
||||||
|
this.wednesday,
|
||||||
|
this.thursday,
|
||||||
|
this.friday,
|
||||||
|
this.saturday,
|
||||||
|
this.sunday,
|
||||||
|
this.storeId,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory OperateDates.fromJson(Map<dynamic, dynamic> json) => OperateDates(
|
||||||
|
id: json["id"],
|
||||||
|
monday: json["monday"],
|
||||||
|
tuesday: json["tuesday"],
|
||||||
|
wednesday: json["wednesday"],
|
||||||
|
thursday: json["thursday"],
|
||||||
|
friday: json["friday"],
|
||||||
|
saturday: json["saturday"],
|
||||||
|
sunday: json["sunday"],
|
||||||
|
storeId: json["storeId"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"monday": monday,
|
||||||
|
"tuesday": tuesday,
|
||||||
|
"wednesday": wednesday,
|
||||||
|
"thursday": thursday,
|
||||||
|
"friday": friday,
|
||||||
|
"saturday": saturday,
|
||||||
|
"sunday": sunday,
|
||||||
|
"storeId": storeId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class OperateTimes {
|
||||||
|
dynamic id;
|
||||||
|
dynamic startTime;
|
||||||
|
dynamic endTime;
|
||||||
|
dynamic storeId;
|
||||||
|
|
||||||
|
OperateTimes({
|
||||||
|
this.id,
|
||||||
|
this.startTime,
|
||||||
|
this.endTime,
|
||||||
|
this.storeId,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory OperateTimes.fromJson(Map<dynamic, dynamic> json) => OperateTimes(
|
||||||
|
id: json["id"],
|
||||||
|
startTime: json["startTime"],
|
||||||
|
endTime: json["endTime"],
|
||||||
|
storeId: json["storeId"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"startTime": startTime,
|
||||||
|
"endTime": endTime,
|
||||||
|
"storeId": storeId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class User {
|
||||||
|
dynamic id;
|
||||||
|
dynamic email;
|
||||||
|
dynamic firstName;
|
||||||
|
dynamic lastName;
|
||||||
|
dynamic phone;
|
||||||
|
dynamic role;
|
||||||
|
|
||||||
|
User({
|
||||||
|
this.id,
|
||||||
|
this.email,
|
||||||
|
this.firstName,
|
||||||
|
this.lastName,
|
||||||
|
this.phone,
|
||||||
|
this.role,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory User.fromJson(Map<dynamic, dynamic> json) => User(
|
||||||
|
id: json["id"],
|
||||||
|
email: json["email"],
|
||||||
|
firstName: json["firstName"],
|
||||||
|
lastName: json["lastName"],
|
||||||
|
phone: json["phone"],
|
||||||
|
role: json["role"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"email": email,
|
||||||
|
"firstName": firstName,
|
||||||
|
"lastName": lastName,
|
||||||
|
"phone": phone,
|
||||||
|
"role": role,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class StatusHistory {
|
||||||
|
dynamic id;
|
||||||
|
dynamic orderId;
|
||||||
|
dynamic status;
|
||||||
|
dynamic comment;
|
||||||
|
dynamic updatedBy;
|
||||||
|
DateTime? createdAt;
|
||||||
|
|
||||||
|
StatusHistory({
|
||||||
|
this.id,
|
||||||
|
this.orderId,
|
||||||
|
this.status,
|
||||||
|
this.comment,
|
||||||
|
this.updatedBy,
|
||||||
|
this.createdAt,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory StatusHistory.fromJson(Map<dynamic, dynamic> json) => StatusHistory(
|
||||||
|
id: json["id"],
|
||||||
|
orderId: json["orderId"],
|
||||||
|
status: json["status"],
|
||||||
|
comment: json["comment"],
|
||||||
|
updatedBy: json["updatedBy"],
|
||||||
|
createdAt: DateTime?.parse(json["createdAt"]),
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"id": id,
|
||||||
|
"orderId": orderId,
|
||||||
|
"status": status,
|
||||||
|
"comment": comment,
|
||||||
|
"updatedBy": updatedBy,
|
||||||
|
"createdAt": createdAt,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class Meta {
|
||||||
|
int? total;
|
||||||
|
int? page;
|
||||||
|
int? limit;
|
||||||
|
int? lastPage;
|
||||||
|
bool? hasNextPage;
|
||||||
|
bool? hasPreviousPage;
|
||||||
|
|
||||||
|
Meta({
|
||||||
|
this.total,
|
||||||
|
this.page,
|
||||||
|
this.limit,
|
||||||
|
this.lastPage,
|
||||||
|
this.hasNextPage,
|
||||||
|
this.hasPreviousPage,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory Meta.fromJson(Map<dynamic, dynamic> json) => Meta(
|
||||||
|
total: json["total"],
|
||||||
|
page: json["page"],
|
||||||
|
limit: json["limit"],
|
||||||
|
lastPage: json["lastPage"],
|
||||||
|
hasNextPage: json["hasNextPage"],
|
||||||
|
hasPreviousPage: json["hasPreviousPage"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<dynamic, dynamic> toJson() => {
|
||||||
|
"total": total,
|
||||||
|
"page": page,
|
||||||
|
"limit": limit,
|
||||||
|
"lastPage": lastPage,
|
||||||
|
"hasNextPage": hasNextPage,
|
||||||
|
"hasPreviousPage": hasPreviousPage,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -185,8 +185,6 @@ class AddtocartProvider extends ChangeNotifier {
|
|||||||
"remarks": remarks
|
"remarks": remarks
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var result = await _homeRepo.paymentOrder(data);
|
var result = await _homeRepo.paymentOrder(data);
|
||||||
return result.fold(
|
return result.fold(
|
||||||
@@ -216,6 +214,80 @@ class AddtocartProvider extends ChangeNotifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////COD ////////////
|
||||||
|
|
||||||
|
Future<void> paymentCODOrder(
|
||||||
|
BuildContext context,
|
||||||
|
double subtotal,
|
||||||
|
String deliverCharge,
|
||||||
|
double discountPrice,
|
||||||
|
String grandTotal,
|
||||||
|
String couponId,
|
||||||
|
String addressId,
|
||||||
|
) async {
|
||||||
|
ispaymentLoader = true;
|
||||||
|
notifyListeners();
|
||||||
|
var data;
|
||||||
|
if (couponId.isNotEmpty)
|
||||||
|
{
|
||||||
|
data = {
|
||||||
|
{
|
||||||
|
"addressId": addressId,
|
||||||
|
"paymentMethod": "COD",
|
||||||
|
"paymentStatus": "PENDING",
|
||||||
|
"orderStatus": "PENDING",
|
||||||
|
"subtotal": subtotal,
|
||||||
|
"deliveryCharge": deliverCharge,
|
||||||
|
"discount": discountPrice,
|
||||||
|
"grandTotal": grandTotal,
|
||||||
|
"couponId": couponId
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data = {
|
||||||
|
{
|
||||||
|
"addressId": addressId,
|
||||||
|
"paymentMethod": "COD",
|
||||||
|
"paymentStatus": "PENDING",
|
||||||
|
"orderStatus": "PENDING",
|
||||||
|
"subtotal": subtotal,
|
||||||
|
"deliveryCharge": deliverCharge,
|
||||||
|
"discount": discountPrice,
|
||||||
|
"grandTotal": grandTotal,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var result = await _homeRepo.paymentCODOrder(data);
|
||||||
|
return result.fold(
|
||||||
|
(error) {
|
||||||
|
ispaymentLoader = false;
|
||||||
|
notifyListeners();
|
||||||
|
},
|
||||||
|
(response) {
|
||||||
|
if (response.data!.instrumentResponse!.redirectInfo != null &&
|
||||||
|
response.data!.instrumentResponse!.redirectInfo != '') {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => PaymentWebView(
|
||||||
|
paymentUrl:
|
||||||
|
response.data!.instrumentResponse!.redirectInfo!.url),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
ispaymentLoader = false;
|
||||||
|
notifyListeners();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
ispaymentLoader = false;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////// address/////////////////////////
|
///////////////////////////////// address/////////////////////////
|
||||||
List<Datum> addresslist = [];
|
List<Datum> addresslist = [];
|
||||||
|
|
||||||
|
|||||||
38
lib/src/logic/provider/order_provider.dart
Normal file
38
lib/src/logic/provider/order_provider.dart
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:grocery_app/src/core/network_services/service_locator.dart';
|
||||||
|
import 'package:grocery_app/src/data/myOrder.dart';
|
||||||
|
import 'package:grocery_app/src/logic/repo/order_repo.dart';
|
||||||
|
|
||||||
|
class OrderProvider extends ChangeNotifier {
|
||||||
|
final _orderRepo = getIt<OrderRepo>();
|
||||||
|
|
||||||
|
List<Datum> orderList = [];
|
||||||
|
bool isloading = true;
|
||||||
|
|
||||||
|
Future<void> getMyOrder(BuildContext context) async {
|
||||||
|
var data = {};
|
||||||
|
try {
|
||||||
|
var result = await _orderRepo.myOrder(data);
|
||||||
|
|
||||||
|
return result.fold(
|
||||||
|
(error) {
|
||||||
|
isloading = false;
|
||||||
|
|
||||||
|
notifyListeners();
|
||||||
|
},
|
||||||
|
(response) {
|
||||||
|
orderList = response.data!;
|
||||||
|
|
||||||
|
|
||||||
|
isloading = false;
|
||||||
|
notifyListeners();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
print("sfddsfdfff $e");
|
||||||
|
|
||||||
|
isloading = false;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
lib/src/logic/repo/order_repo.dart
Normal file
26
lib/src/logic/repo/order_repo.dart
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import 'package:dio/dio.dart';
|
||||||
|
import 'package:fpdart/fpdart.dart';
|
||||||
|
import 'package:grocery_app/src/core/utils/custom_dio_exception.dart';
|
||||||
|
import 'package:grocery_app/src/core/utils/response_type_def.dart';
|
||||||
|
import 'package:grocery_app/src/data/myOrder.dart';
|
||||||
|
import 'package:grocery_app/src/data/order_paymnet.dart';
|
||||||
|
import 'package:grocery_app/src/logic/services/orderSirvice.dart';
|
||||||
|
|
||||||
|
class OrderRepo {
|
||||||
|
final OrderService _orderService;
|
||||||
|
OrderRepo(this._orderService);
|
||||||
|
|
||||||
|
FutureResult<MyOrder> myOrder(data) async {
|
||||||
|
try {
|
||||||
|
var response = await _orderService.myOrder(data);
|
||||||
|
|
||||||
|
MyOrder productCategory = myOrderFromJson(response.toString());
|
||||||
|
print("ldkjglfdhglkj ${productCategory}");
|
||||||
|
|
||||||
|
return right(productCategory);
|
||||||
|
} on DioException catch (e) {
|
||||||
|
var error = CustomDioExceptions.handleError(e);
|
||||||
|
return left(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -114,6 +114,28 @@ class ProductRepo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FutureResult<OrderPaymnet> paymentCODOrder(data) async {
|
||||||
|
try {
|
||||||
|
var response = await _productService.paymentCODOrder(data);
|
||||||
|
print("kjdfglkjfdgjklfgkldj${data} ${response} ");
|
||||||
|
|
||||||
|
OrderPaymnet productCategory = orderPaymnetFromJson(response.toString());
|
||||||
|
|
||||||
|
print("lkjdflkjfhgdkhfgkd ");
|
||||||
|
// final String model = response.toString();
|
||||||
|
|
||||||
|
return right(productCategory);
|
||||||
|
} on DioException catch (e) {
|
||||||
|
var error = CustomDioExceptions.handleError(e);
|
||||||
|
return left(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FutureResult<List<Product>> similarProduct(
|
FutureResult<List<Product>> similarProduct(
|
||||||
data, BuildContext context, id) async {
|
data, BuildContext context, id) async {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -61,6 +61,15 @@ class ProductService extends ApiService {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future paymentCODOrder(data) async {
|
||||||
|
print("kdjfgkjjkdfgkjdkfgjkdfgj ${data}");
|
||||||
|
var response =
|
||||||
|
await api.post(APIURL.paymentCODOrder, data: jsonEncode(data));
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Future similarProduct(data, id) async {
|
Future similarProduct(data, id) async {
|
||||||
var response = await api.get(APIURL.similarProduct + id + "/similar",
|
var response = await api.get(APIURL.similarProduct + id + "/similar",
|
||||||
data: jsonEncode(data));
|
data: jsonEncode(data));
|
||||||
|
|||||||
16
lib/src/logic/services/orderSirvice.dart
Normal file
16
lib/src/logic/services/orderSirvice.dart
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:grocery_app/src/core/constant/api.dart';
|
||||||
|
import 'package:grocery_app/src/core/network_services/api_services.dart';
|
||||||
|
|
||||||
|
class OrderService extends ApiService
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
Future myOrder(data) async {
|
||||||
|
var response = await api.get(APIURL.myOrder, data: jsonEncode(data));
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
// import 'dart:convert';
|
|
||||||
// import 'dart:io';
|
|
||||||
|
|
||||||
// import 'package:dio/dio.dart';
|
|
||||||
// import 'package:vendor_app/src/core/constant/api.dart';
|
|
||||||
// import 'package:vendor_app/src/core/network_services/api_services.dart';
|
|
||||||
|
|
||||||
// class ProductService extends ApiService {
|
|
||||||
// // Future createStore(data) async
|
|
||||||
// // {
|
|
||||||
// // var response = await api.get(APIURL.createStore, data: jsonEncode(data));
|
|
||||||
// // return response;
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// Future getProduct(data) async {
|
|
||||||
// var response = await api.get(APIURL.getProduct, data: jsonEncode(data));
|
|
||||||
// return response;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Future createProduct(data) async {
|
|
||||||
// var response = await api.post(APIURL.getProduct, data: jsonEncode(data));
|
|
||||||
// return response;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Future deleteProduct(data, id) async {
|
|
||||||
// var response =
|
|
||||||
// await api.delete(APIURL.deleteProduct + id, data: jsonEncode(data));
|
|
||||||
// return response;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Future updateProduct(data, id) async {
|
|
||||||
// var response =
|
|
||||||
// await api.patch(APIURL.updateProduct + id, data: jsonEncode(data));
|
|
||||||
// return response;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Future getCategoryByLevel(data) async {
|
|
||||||
// var response =
|
|
||||||
// await api.get(APIURL.getCategoryByLevel, data: jsonEncode(data));
|
|
||||||
// return response;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // Future uploadImage(data) async
|
|
||||||
// // {
|
|
||||||
// // var response = await api.post(APIURL.uploadImage, data: jsonEncode(data));
|
|
||||||
// // return response;
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// Future<Response> uploadImage(File imageFile,
|
|
||||||
// {Map<String, dynamic>? additionalFields}) async {
|
|
||||||
// const String url = APIURL.uploadImage;
|
|
||||||
// return await api.uploadImage(
|
|
||||||
// url,
|
|
||||||
// imageFile,
|
|
||||||
// additionalFields: additionalFields,
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
@@ -80,8 +80,7 @@ class _CardCheckoutScreenState extends State<CardCheckoutScreen> {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
print("kjdhfkhjghjkdf");
|
if (paymentProvider.selectedPaymentMethod == "Online") {
|
||||||
|
|
||||||
paymentProvider.orderPaymnet(
|
paymentProvider.orderPaymnet(
|
||||||
context,
|
context,
|
||||||
widget.amount,
|
widget.amount,
|
||||||
@@ -94,6 +93,20 @@ class _CardCheckoutScreenState extends State<CardCheckoutScreen> {
|
|||||||
widget.cartId,
|
widget.cartId,
|
||||||
widget.addressId,
|
widget.addressId,
|
||||||
widget.remarks);
|
widget.remarks);
|
||||||
|
} else {
|
||||||
|
// paymentProvider.paymentCODOrder(
|
||||||
|
// context,
|
||||||
|
// subtotal,
|
||||||
|
// deliverCharge,
|
||||||
|
// discountPrice,
|
||||||
|
// grandTotal,
|
||||||
|
// couponId,
|
||||||
|
|
||||||
|
// widget.addressId,
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 50,
|
height: 50,
|
||||||
|
|||||||
@@ -713,7 +713,7 @@ class _MycartState extends State<Mycart> {
|
|||||||
);
|
);
|
||||||
} else if (provider.allitem == null) {
|
} else if (provider.allitem == null) {
|
||||||
return Center(child: Text('🛒 Your Front Shop Cart is empty'));
|
return Center(child: Text('🛒 Your Front Shop Cart is empty'));
|
||||||
} else if (provider.allitem.items == null) {
|
} else if (provider.allitem.items!.isEmpty) {
|
||||||
return Center(
|
return Center(
|
||||||
child: ElevatedButton(
|
child: ElevatedButton(
|
||||||
style: ElevatedButton.styleFrom(backgroundColor: Colors.green),
|
style: ElevatedButton.styleFrom(backgroundColor: Colors.green),
|
||||||
@@ -729,6 +729,7 @@ class _MycartState extends State<Mycart> {
|
|||||||
),
|
),
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
|
print("kldjhgjkhfgjkh ${provider.allitem.items}");
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
@@ -976,7 +977,8 @@ class _AddressBottomSheetState extends State<AddressBottomSheet> {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
Navigator.of(context).push(MaterialPageRoute(
|
Navigator.of(context).push(MaterialPageRoute(
|
||||||
builder: (context) {
|
builder: (context)
|
||||||
|
{
|
||||||
return CardCheckoutScreen(
|
return CardCheckoutScreen(
|
||||||
amount: double.parse(
|
amount: double.parse(
|
||||||
paymentProvider.allitem.subtotal.toString()),
|
paymentProvider.allitem.subtotal.toString()),
|
||||||
@@ -992,9 +994,6 @@ class _AddressBottomSheetState extends State<AddressBottomSheet> {
|
|||||||
remarks: paymentProvider.selecteUserName);
|
remarks: paymentProvider.selecteUserName);
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
|
||||||
// showPaymentMethodBottomSheet(context);
|
|
||||||
// context.push(MyRoutes.SELECTPAYMENTSCREEN);
|
|
||||||
},
|
},
|
||||||
label: Text(
|
label: Text(
|
||||||
"Continue",
|
"Continue",
|
||||||
|
|||||||
205
lib/src/ui/myOrder/OrderDetailsScreen.dart
Normal file
205
lib/src/ui/myOrder/OrderDetailsScreen.dart
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:grocery_app/src/common_widget/network_image.dart';
|
||||||
|
import 'package:grocery_app/src/data/myOrder.dart';
|
||||||
|
|
||||||
|
class OrderDetailsScreen extends StatefulWidget {
|
||||||
|
final Datum order;
|
||||||
|
|
||||||
|
const OrderDetailsScreen({Key? key, required this.order}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_OrderDetailsScreenState createState() => _OrderDetailsScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OrderDetailsScreenState extends State<OrderDetailsScreen> {
|
||||||
|
int currentStep = 1;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(title: Text('Order Details')),
|
||||||
|
body: Padding(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
_orderInfo(),
|
||||||
|
SizedBox(height: 20),
|
||||||
|
_animatedShippingTimeline(),
|
||||||
|
SizedBox(height: 20),
|
||||||
|
_itemsList(),
|
||||||
|
SizedBox(height: 20),
|
||||||
|
_cancelButton(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Order Information
|
||||||
|
Widget _orderInfo() {
|
||||||
|
return Card(
|
||||||
|
elevation: 4,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery.of(context).size.width,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(widget.order.orderNumber,
|
||||||
|
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)),
|
||||||
|
SizedBox(height: 5),
|
||||||
|
Text(widget.order.createdAt.toString()),
|
||||||
|
SizedBox(height: 5),
|
||||||
|
Text(
|
||||||
|
"Status: ${_getStatusText(widget.order.orderStatus)}",
|
||||||
|
style:
|
||||||
|
TextStyle(color: Colors.blue, fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Animated Shipping Timeline
|
||||||
|
Widget _animatedShippingTimeline() {
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
for (int i = 0; i < 3; i++) _timelineStep(i),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Each Step in the Timeline
|
||||||
|
Widget _timelineStep(int step) {
|
||||||
|
bool isCompleted = step <= currentStep;
|
||||||
|
|
||||||
|
return Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
|
AnimatedContainer(
|
||||||
|
duration: Duration(milliseconds: 500),
|
||||||
|
width: 20,
|
||||||
|
height: 20,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: isCompleted ? Colors.green : Colors.grey,
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
),
|
||||||
|
child: Icon(Icons.check, size: 14, color: Colors.white),
|
||||||
|
),
|
||||||
|
if (step < 2)
|
||||||
|
AnimatedContainer(
|
||||||
|
duration: Duration(milliseconds: 500),
|
||||||
|
width: 5,
|
||||||
|
height: 50,
|
||||||
|
color: isCompleted ? Colors.green : Colors.grey,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(width: 10),
|
||||||
|
Text(
|
||||||
|
_getStatusTextForStep(widget.order.orderStatus),
|
||||||
|
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Status Texts
|
||||||
|
String _getStatusTextForStep(orderStatus) {
|
||||||
|
switch (orderStatus) {
|
||||||
|
case 'PENDING':
|
||||||
|
return "PENDING";
|
||||||
|
case 'SHIPPED':
|
||||||
|
return "SHIPPED";
|
||||||
|
case 'DELIVERD':
|
||||||
|
return "DELIVERD";
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String _getStatusText(orderStatus) {
|
||||||
|
switch (orderStatus) {
|
||||||
|
case 'PENDING':
|
||||||
|
return "PENDING";
|
||||||
|
case 'SHIPPED':
|
||||||
|
return "SHIPPED";
|
||||||
|
case 'DELIVERD':
|
||||||
|
return "DELIVERD";
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// List of Ordered Items
|
||||||
|
Widget _itemsList() {
|
||||||
|
// final List<Map<String, dynamic>> items = [
|
||||||
|
// {
|
||||||
|
// "name": "Coffee",
|
||||||
|
// "quantity": 2,
|
||||||
|
// "price": 10.00,
|
||||||
|
// "image": "https://via.placeholder.com/50"
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "name": "Rice",
|
||||||
|
// "quantity": 1,
|
||||||
|
// "price": 10.50,
|
||||||
|
// "image": "https://via.placeholder.com/50"
|
||||||
|
// }
|
||||||
|
// ];
|
||||||
|
|
||||||
|
return Expanded(
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: widget.order.orderItems!.length,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
// final item = items[index];
|
||||||
|
var orderitem = widget.order.orderItems![index];
|
||||||
|
return Card(
|
||||||
|
margin: EdgeInsets.symmetric(vertical: 8),
|
||||||
|
child: ListTile(
|
||||||
|
leading: Container(
|
||||||
|
width: 50,
|
||||||
|
height: 50,
|
||||||
|
child: AppNetworkImage(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.08,
|
||||||
|
width: 48,
|
||||||
|
imageUrl: orderitem.productImage ?? "",
|
||||||
|
backGroundColor: Colors.transparent,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
title: Text(orderitem.productName ?? ""),
|
||||||
|
subtitle: Text("Qty: ${orderitem.quantity.toString()}"),
|
||||||
|
trailing: Text("\$${orderitem.price ?? ""}",
|
||||||
|
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Cancel Order Button (Only if not delivered)
|
||||||
|
Widget _cancelButton() {
|
||||||
|
return ElevatedButton(
|
||||||
|
onPressed: currentStep < 2
|
||||||
|
? () {
|
||||||
|
setState(() {
|
||||||
|
currentStep = 2; // Simulate cancellation
|
||||||
|
});
|
||||||
|
}
|
||||||
|
: null, // Disable if already delivered
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
disabledBackgroundColor: Colors.grey,
|
||||||
|
),
|
||||||
|
child: Text("Cancel Order", style: TextStyle(color: Colors.white)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
235
lib/src/ui/myOrder/my_order.dart
Normal file
235
lib/src/ui/myOrder/my_order.dart
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
import 'package:go_router/go_router.dart';
|
||||||
|
import 'package:grocery_app/src/common_widget/network_image.dart';
|
||||||
|
import 'package:grocery_app/src/core/routes/routes.dart';
|
||||||
|
import 'package:grocery_app/src/logic/provider/order_provider.dart';
|
||||||
|
import 'package:grocery_app/utils/constants/assets_constant.dart';
|
||||||
|
import 'package:grocery_app/utils/constants/color_constant.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
|
class MyOrderScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
State<MyOrderScreen> createState() => _MyOrderScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _MyOrderScreenState extends State<MyOrderScreen> {
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
Provider.of<OrderProvider>(context, listen: false).getMyOrder(context);
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
centerTitle: true,
|
||||||
|
leading: Center(
|
||||||
|
child: SizedBox(
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
APPASSETS.back,
|
||||||
|
height: 20,
|
||||||
|
width: 20,
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
title: const Text(
|
||||||
|
"My Order",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.w700,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: Consumer<OrderProvider>(builder: (context, orderProvider, child) {
|
||||||
|
if (orderProvider.isloading) {
|
||||||
|
return Center(child: CircularProgressIndicator());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orderProvider.orderList.isEmpty) {
|
||||||
|
return Center(child: Text('No orders found!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: orderProvider.orderList.length,
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
final order = orderProvider.orderList[index];
|
||||||
|
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
context.pushNamed(MyRoutes.ORDERDETAILS, extra: order);
|
||||||
|
//context.push(MyRoutes.ORDERDETAILS);
|
||||||
|
},
|
||||||
|
child: Card(
|
||||||
|
margin: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(16.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
width: 50,
|
||||||
|
height: 50,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: APPCOLOR.bgGrey,
|
||||||
|
borderRadius: BorderRadius.circular(15),
|
||||||
|
),
|
||||||
|
child: Stack(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
children: [
|
||||||
|
AppNetworkImage(
|
||||||
|
height: MediaQuery.of(context)
|
||||||
|
.size
|
||||||
|
.height *
|
||||||
|
0.08,
|
||||||
|
width: 48,
|
||||||
|
imageUrl: order
|
||||||
|
.orderItems!.first.productImage,
|
||||||
|
backGroundColor: Colors.transparent,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(width: 10),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(order.orderNumber,
|
||||||
|
style: TextStyle(
|
||||||
|
fontWeight: FontWeight.bold)),
|
||||||
|
Text(order.paymentMethod,
|
||||||
|
style: TextStyle(color: Colors.grey)),
|
||||||
|
Text(order.totalItems.toString() + " items",
|
||||||
|
style: TextStyle(color: Colors.grey)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Spacer(),
|
||||||
|
if (order.totalItems == 1) ...{
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.symmetric(
|
||||||
|
horizontal: 10, vertical: 5),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.green.shade100,
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
child: Text(order.orderStatus,
|
||||||
|
style: TextStyle(color: Colors.green)),
|
||||||
|
),
|
||||||
|
} else ...{
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.symmetric(
|
||||||
|
horizontal: 10, vertical: 5),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.green.shade100,
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
child: Text("View All",
|
||||||
|
style: TextStyle(color: Colors.green)),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 10),
|
||||||
|
Text(order.createdAt.toString(),
|
||||||
|
style: TextStyle(color: Colors.grey)),
|
||||||
|
SizedBox(height: 5),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text("\$" + order.grandTotal,
|
||||||
|
style:
|
||||||
|
TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
side: BorderSide(color: Colors.green),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Icon(Icons.message,
|
||||||
|
color: Colors.green),
|
||||||
|
SizedBox(width: 5),
|
||||||
|
Text('Message',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.green)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(width: 10),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
print("lkdhgkjdfgj");
|
||||||
|
_makePhoneCall(
|
||||||
|
order.stores!.first.vendor!.phone);
|
||||||
|
},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.green,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Icon(Icons.call, color: Colors.white),
|
||||||
|
SizedBox(width: 5),
|
||||||
|
Text('Call',
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _makePhoneCall(String number) async {
|
||||||
|
try {
|
||||||
|
final Uri phoneUri = Uri(scheme: 'tel', path: number);
|
||||||
|
if (await canLaunchUrl(phoneUri)) {
|
||||||
|
await launchUrl(phoneUri);
|
||||||
|
} else {
|
||||||
|
throw 'Could not launch $phoneUri';
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print("Error launching phone call: $e");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:grocery_app/src/common_widget/network_image.dart';
|
import 'package:grocery_app/src/common_widget/network_image.dart';
|
||||||
|
import 'package:grocery_app/src/core/routes/routes.dart';
|
||||||
import 'package:grocery_app/src/logic/provider/home_provider.dart';
|
import 'package:grocery_app/src/logic/provider/home_provider.dart';
|
||||||
import 'package:grocery_app/src/ui/card_checkout/card_checkout_screen.dart';
|
import 'package:grocery_app/src/ui/card_checkout/card_checkout_screen.dart';
|
||||||
import 'package:grocery_app/src/ui/edit_profile/edit_profile_screen.dart';
|
import 'package:grocery_app/src/ui/edit_profile/edit_profile_screen.dart';
|
||||||
@@ -28,8 +30,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
var top = 0.0;
|
var top = 0.0;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context)
|
Widget build(BuildContext context) {
|
||||||
{
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: NestedScrollView(
|
body: NestedScrollView(
|
||||||
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
|
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
|
||||||
@@ -171,8 +172,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
trailing: Icon(MdiIcons.chevronRight),
|
trailing: Icon(MdiIcons.chevronRight),
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
onTap: ()
|
onTap: () {
|
||||||
{
|
|
||||||
// Navigator.of(context).push(MaterialPageRoute(
|
// Navigator.of(context).push(MaterialPageRoute(
|
||||||
// builder: (context) {
|
// builder: (context) {
|
||||||
// return const CardCheckoutScreen();
|
// return const CardCheckoutScreen();
|
||||||
@@ -184,7 +184,9 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
trailing: Icon(MdiIcons.chevronRight),
|
trailing: Icon(MdiIcons.chevronRight),
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
onTap: () {},
|
onTap: () {
|
||||||
|
context.push(MyRoutes.MYORDER);
|
||||||
|
},
|
||||||
leading: Icon(MdiIcons.cubeOutline),
|
leading: Icon(MdiIcons.cubeOutline),
|
||||||
title: const Text('My Order'),
|
title: const Text('My Order'),
|
||||||
trailing: Icon(MdiIcons.chevronRight),
|
trailing: Icon(MdiIcons.chevronRight),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import geolocator_apple
|
|||||||
import package_info_plus
|
import package_info_plus
|
||||||
import path_provider_foundation
|
import path_provider_foundation
|
||||||
import shared_preferences_foundation
|
import shared_preferences_foundation
|
||||||
import sqflite_darwin
|
import sqflite
|
||||||
import url_launcher_macos
|
import url_launcher_macos
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
|
|||||||
140
pubspec.lock
140
pubspec.lock
@@ -290,18 +290,18 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview
|
name: flutter_inappwebview
|
||||||
sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5"
|
sha256: "3e9a443a18ecef966fb930c3a76ca5ab6a7aafc0c7b5e14a4a850cf107b09959"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.5"
|
version: "6.0.0"
|
||||||
flutter_inappwebview_android:
|
flutter_inappwebview_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview_android
|
name: flutter_inappwebview_android
|
||||||
sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba"
|
sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.3"
|
version: "1.0.13"
|
||||||
flutter_inappwebview_internal_annotations:
|
flutter_inappwebview_internal_annotations:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -314,42 +314,34 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview_ios
|
name: flutter_inappwebview_ios
|
||||||
sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d"
|
sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.0.13"
|
||||||
flutter_inappwebview_macos:
|
flutter_inappwebview_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview_macos
|
name: flutter_inappwebview_macos
|
||||||
sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1
|
sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.0.11"
|
||||||
flutter_inappwebview_platform_interface:
|
flutter_inappwebview_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview_platform_interface
|
name: flutter_inappwebview_platform_interface
|
||||||
sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500
|
sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.3.0+1"
|
version: "1.0.10"
|
||||||
flutter_inappwebview_web:
|
flutter_inappwebview_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_inappwebview_web
|
name: flutter_inappwebview_web
|
||||||
sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598"
|
sha256: d8c680abfb6fec71609a700199635d38a744df0febd5544c5a020bd73de8ee07
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.2"
|
version: "1.0.8"
|
||||||
flutter_inappwebview_windows:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: flutter_inappwebview_windows
|
|
||||||
sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.0"
|
|
||||||
flutter_lints:
|
flutter_lints:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
@@ -362,10 +354,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
sha256: "615a505aef59b151b46bbeef55b36ce2b6ed299d160c51d84281946f0aa0ce0e"
|
sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.24"
|
version: "2.0.22"
|
||||||
flutter_rating_stars:
|
flutter_rating_stars:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -572,10 +564,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: google_maps_flutter_android
|
name: google_maps_flutter_android
|
||||||
sha256: "1b69fbb3ab76e7a7dfcf25e60f32f81ae5d9b88285343eecb5479116d54be869"
|
sha256: "10cf27bee8c560f8e69992b3a0f27ddf1d7acbea622ddb13ef3f587848a73f26"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.14.12"
|
version: "2.14.7"
|
||||||
google_maps_flutter_ios:
|
google_maps_flutter_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -644,10 +636,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_android
|
name: image_picker_android
|
||||||
sha256: b62d34a506e12bb965e824b6db4fbf709ee4589cf5d3e99b45ab2287b008ee0c
|
sha256: "8c5abf0dcc24fe6e8e0b4a5c0b51a5cf30cefdf6407a3213dae61edc75a70f56"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.12+20"
|
version: "0.8.12+12"
|
||||||
image_picker_for_web:
|
image_picker_for_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -704,6 +696,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.20.2"
|
version: "0.20.2"
|
||||||
|
js:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: js
|
||||||
|
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.6.7"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -716,18 +716,18 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.5"
|
version: "10.0.4"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.5"
|
version: "3.0.3"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -772,10 +772,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.11.1"
|
version: "0.8.0"
|
||||||
material_design_icons_flutter:
|
material_design_icons_flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -788,10 +788,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.15.0"
|
version: "1.12.0"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -884,10 +884,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2"
|
sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.15"
|
version: "2.2.10"
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -988,18 +988,18 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: shared_preferences
|
name: shared_preferences
|
||||||
sha256: "688ee90fbfb6989c980254a56cb26ebe9bb30a3a2dff439a78894211f73de67a"
|
sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.1"
|
version: "2.3.3"
|
||||||
shared_preferences_android:
|
shared_preferences_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_android
|
name: shared_preferences_android
|
||||||
sha256: "650584dcc0a39856f369782874e562efd002a9c94aec032412c9eb81419cce1f"
|
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.4"
|
version: "2.3.2"
|
||||||
shared_preferences_foundation:
|
shared_preferences_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1081,42 +1081,18 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: sqflite
|
name: sqflite
|
||||||
sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb"
|
sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.1"
|
version: "2.3.3+1"
|
||||||
sqflite_android:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: sqflite_android
|
|
||||||
sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.4.0"
|
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: sqflite_common
|
name: sqflite_common
|
||||||
sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709"
|
sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.4+6"
|
version: "2.5.4"
|
||||||
sqflite_darwin:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: sqflite_darwin
|
|
||||||
sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.4.1+1"
|
|
||||||
sqflite_platform_interface:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: sqflite_platform_interface
|
|
||||||
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.4.0"
|
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1153,10 +1129,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: synchronized
|
name: synchronized
|
||||||
sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
|
sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.0+3"
|
version: "3.1.0+1"
|
||||||
term_glyph:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1169,18 +1145,18 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.2"
|
version: "0.7.0"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: typed_data
|
name: typed_data
|
||||||
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
|
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.0"
|
version: "1.3.2"
|
||||||
url_launcher:
|
url_launcher:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -1193,10 +1169,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_android
|
name: url_launcher_android
|
||||||
sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193"
|
sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.3.14"
|
version: "6.3.9"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1289,10 +1265,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.2.5"
|
version: "14.2.1"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1305,10 +1281,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: win32
|
name: win32
|
||||||
sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e
|
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.10.1"
|
version: "5.5.4"
|
||||||
xdg_directories:
|
xdg_directories:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1326,5 +1302,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "6.5.0"
|
version: "6.5.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.5.0 <4.0.0"
|
dart: ">=3.4.4 <4.0.0"
|
||||||
flutter: ">=3.24.0"
|
flutter: ">=3.22.0"
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
||||||
#include <file_selector_windows/file_selector_windows.h>
|
#include <file_selector_windows/file_selector_windows.h>
|
||||||
#include <flutter_inappwebview_windows/flutter_inappwebview_windows_plugin_c_api.h>
|
|
||||||
#include <geolocator_windows/geolocator_windows.h>
|
#include <geolocator_windows/geolocator_windows.h>
|
||||||
#include <url_launcher_windows/url_launcher_windows.h>
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
@@ -17,8 +16,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
|||||||
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
|
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
|
||||||
FileSelectorWindowsRegisterWithRegistrar(
|
FileSelectorWindowsRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("FileSelectorWindows"));
|
registry->GetRegistrarForPlugin("FileSelectorWindows"));
|
||||||
FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar(
|
|
||||||
registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi"));
|
|
||||||
GeolocatorWindowsRegisterWithRegistrar(
|
GeolocatorWindowsRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("GeolocatorWindows"));
|
registry->GetRegistrarForPlugin("GeolocatorWindows"));
|
||||||
UrlLauncherWindowsRegisterWithRegistrar(
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
connectivity_plus
|
connectivity_plus
|
||||||
file_selector_windows
|
file_selector_windows
|
||||||
flutter_inappwebview_windows
|
|
||||||
geolocator_windows
|
geolocator_windows
|
||||||
url_launcher_windows
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user