orderpayment

This commit is contained in:
2025-02-03 18:16:41 +05:30
parent 1f7254ecaa
commit 8fb5ac1f31
21 changed files with 1433 additions and 789 deletions

View File

@@ -7,6 +7,7 @@ import 'package:grocery_app/src/core/network_services/service_locator.dart';
import 'package:grocery_app/src/data/address.dart';
import 'package:grocery_app/src/data/all_cart_items.dart';
import 'package:grocery_app/src/logic/repo/product_repo.dart';
import 'package:grocery_app/src/ui/payment/payment_webView.dart';
import 'package:grocery_app/utils/extensions/extensions.dart';
import 'package:http/http.dart' as http;
@@ -152,8 +153,61 @@ class AddtocartProvider extends ChangeNotifier {
notifyListeners();
}
}
///////////////////////////////////orderPaymnet///////////////////////////
///////////////////////////////// address/////////////////////////
Future<void> orderPaymnet(
BuildContext context,
double amount,
String currency,
double originalAmount,
String name,
String phone,
String email,
String userI,
String cartId,
String addressId,
String remarks,
) async {
notifyListeners();
var data = {
{
"amount": amount,
"currency": currency,
"originalAmount": amount,
"name": name,
"phone": phone,
"email": email,
"userId": userI,
"cartId": cartId,
"addressId": addressId,
"remarks": remarks
}
};
print("kjdfhgkj ${data}");
try {
var result = await _homeRepo.paymentOrder(data);
return result.fold(
(error) {
notifyListeners();
},
(response) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PaymentWebView(paymentUrl: ''),
),
);
},
);
} catch (e) {
notifyListeners();
}
}
///////////////////////////////// address/////////////////////////
List<Datum> addresslist = [];
Future<void> getAddress(BuildContext context) async {
@@ -170,7 +224,10 @@ class AddtocartProvider extends ChangeNotifier {
(response) {
addresslist = response.data!;
if (response.data!.isNotEmpty) {
_selectedAddress = addresslist.last.id ?? "";
_selectedAddress = addresslist.first.id ?? "";
_selecteUserName = addresslist.first.name ?? "";
_selecteUserPhone = addresslist.first.phoneNumber ?? "";
_selecteEmail = addresslist.first.user!.email ?? "";
} else {
_selectedAddress = "";
}
@@ -186,11 +243,26 @@ class AddtocartProvider extends ChangeNotifier {
}
String _selectedAddress = "";
String _selecteUserName = "";
String _selecteUserPhone = "";
String _selecteEmail = "";
String get selectedAddress => _selectedAddress;
String get selecteUserName => _selecteUserName;
String get selecteUserPhone => _selecteUserPhone;
String get selecteEmail => _selecteEmail;
void bydefaultSetAddress(phoneNumber, name, email) {
_selecteUserName = name;
_selecteUserPhone = phoneNumber;
_selecteEmail = email;
notifyListeners();
}
void selectAddress(String address) {
void selectAddress(String address, phoneNumber, name, email) {
_selectedAddress = address;
_selecteUserName = name;
_selecteUserPhone = phoneNumber;
_selecteEmail = email;
notifyListeners();
}
@@ -313,4 +385,13 @@ class AddtocartProvider extends ChangeNotifier {
notifyListeners(); // Ensure UI updates after operation
}
}
String _selectedPaymentMethod = "Online"; // Default selection
String get selectedPaymentMethod => _selectedPaymentMethod;
void selectPaymentMethod(String method) {
_selectedPaymentMethod = method;
notifyListeners();
}
}

View File

@@ -91,12 +91,33 @@ class ProductRepo {
return right(productCategory);
} on DioException catch (e) {
print("djhgfjdfhjg ${e}");
var error = CustomDioExceptions.handleError(e);
return left(error);
}
}
FutureResult<ProductCategory> paymentOrder(
data) async
{
try {
var response = await _productService.paymentOrder(data);
ProductCategory productCategory = productCategoryFromJson(response.toString());
// final String model = response.toString();
return right(productCategory);
} on DioException catch (e) {
var error = CustomDioExceptions.handleError(e);
return left(error);
}
}
FutureResult<List<Product>> similarProduct(
data, BuildContext context, id) async {
try {

View File

@@ -53,6 +53,11 @@ class ProductService extends ApiService {
return response;
}
Future paymentOrder(data) async {
var response = await api.post(APIURL.paymentOrder, data: jsonEncode(data));
return response;
}
Future similarProduct(data, id) async {
var response = await api.get(APIURL.similarProduct + id + "/similar",