Commit df116895 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

New Screen and api

parent 9462b0ba
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<application <application
android:label="Gen Rentals" android:label="Gen Rentals"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher"
android:enableOnBackInvokedCallback="true"> <!-- Fixed: Removed extra quote and corrected placement -->
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
......
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
flutter.minSdkVersion=23
<svg width="38" height="38" viewBox="0 0 38 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.9809 37.9618C29.4637 37.9618 37.9618 29.4637 37.9618 18.9809C37.9618 8.49803 29.4637 0 18.9809 0C8.49803 0 0 8.49803 0 18.9809C0 29.4637 8.49803 37.9618 18.9809 37.9618Z" fill="url(#paint0_linear_383_1201)"/>
<path d="M18.8177 32.4369C17.2122 32.4369 15.8743 31.1325 15.8743 29.5271C15.8743 27.9216 17.2122 26.6172 18.8177 26.6172C20.4231 26.6172 21.761 27.9216 21.761 29.5271C21.761 31.1325 20.4231 32.4369 18.8177 32.4369Z" fill="white"/>
<path d="M20.7245 22.1017V24.6105H16.0086L15.2058 18.6567C19.186 18.6567 21.9954 17.7872 21.9954 15.2451C21.9954 13.6061 20.7915 12.3018 18.7178 12.3018C17.38 12.3018 15.6404 12.9037 14.102 13.9072L13.4663 9.15762C14.8712 8.18757 17.0789 7.48535 19.1525 7.48535C23.8349 7.48535 27.347 10.6628 27.347 14.8438C27.347 18.8908 24.0024 21.6671 20.7245 22.1017Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_383_1201" x1="25.4745" y1="36.8219" x2="12.4873" y2="1.13985" gradientUnits="userSpaceOnUse">
<stop offset="0.2486" stop-color="#948BF7"/>
<stop offset="0.9279" stop-color="#C7CBFF"/>
</linearGradient>
</defs>
</svg>
class DashboardResponse { class DashboardResponse {
String? error; String? error;
String? mobNum;
String? raname; String? raname;
String? balanceAmount; int? balanceAmount;
String? message; String? message;
List<Products>? products; List<Orders>? orders;
DashboardResponse( DashboardResponse(
{this.error, {this.error,
this.mobNum,
this.raname, this.raname,
this.balanceAmount, this.balanceAmount,
this.message, this.message,
this.products}); this.orders});
DashboardResponse.fromJson(Map<String, dynamic> json) { DashboardResponse.fromJson(Map<String, dynamic> json) {
error = json['error']; error = json['error'];
mobNum = json['mob_num'];
raname = json['raname']; raname = json['raname'];
balanceAmount = json['balance_amount']; balanceAmount = json['balance_amount'];
message = json['message']; message = json['message'];
if (json['products'] != null) { if (json['orders'] != null) {
products = <Products>[]; orders = <Orders>[];
json['products'].forEach((v) { json['orders'].forEach((v) {
products!.add(new Products.fromJson(v)); orders!.add(new Orders.fromJson(v));
}); });
} }
} }
...@@ -28,65 +31,62 @@ class DashboardResponse { ...@@ -28,65 +31,62 @@ class DashboardResponse {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['error'] = this.error; data['error'] = this.error;
data['mob_num'] = this.mobNum;
data['raname'] = this.raname; data['raname'] = this.raname;
data['balance_amount'] = this.balanceAmount; data['balance_amount'] = this.balanceAmount;
data['message'] = this.message; data['message'] = this.message;
if (this.products != null) { if (this.orders != null) {
data['products'] = this.products!.map((v) => v.toJson()).toList(); data['orders'] = this.orders!.map((v) => v.toJson()).toList();
} }
return data; return data;
} }
} }
class Products { class Orders {
String? orderid; String? orderid;
String? productName; String? orderNum;
String? productImage; String? productImage;
String? plan;
String? rentedDate; String? rentedDate;
String? expiringInColor; String? expiringInColor;
String? expiringText; String? expiringText;
String? address;
bool? hasPendingPayment; bool? hasPendingPayment;
String? pendingPaymentText; String? pendingPaymentText;
List<String>? products;
Products( Orders(
{this.orderid, {this.orderid,
this.productName, this.orderNum,
this.productImage, this.productImage,
this.plan,
this.rentedDate, this.rentedDate,
this.expiringInColor, this.expiringInColor,
this.expiringText, this.expiringText,
this.address,
this.hasPendingPayment, this.hasPendingPayment,
this.pendingPaymentText}); this.pendingPaymentText,
this.products});
Products.fromJson(Map<String, dynamic> json) { Orders.fromJson(Map<String, dynamic> json) {
orderid = json['orderid']; orderid = json['orderid'];
productName = json['productName']; orderNum = json['order_num'];
productImage = json['productImage']; productImage = json['productImage'];
plan = json['plan'];
rentedDate = json['rentedDate']; rentedDate = json['rentedDate'];
expiringInColor = json['ExpiringInColor']; expiringInColor = json['ExpiringInColor'];
expiringText = json['expiringText']; expiringText = json['expiringText'];
address = json['address'];
hasPendingPayment = json['hasPendingPayment']; hasPendingPayment = json['hasPendingPayment'];
pendingPaymentText = json['pendingPaymentText']; pendingPaymentText = json['pendingPaymentText'];
products = json['products'].cast<String>();
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['orderid'] = this.orderid; data['orderid'] = this.orderid;
data['productName'] = this.productName; data['order_num'] = this.orderNum;
data['productImage'] = this.productImage; data['productImage'] = this.productImage;
data['plan'] = this.plan;
data['rentedDate'] = this.rentedDate; data['rentedDate'] = this.rentedDate;
data['ExpiringInColor'] = this.expiringInColor; data['ExpiringInColor'] = this.expiringInColor;
data['expiringText'] = this.expiringText; data['expiringText'] = this.expiringText;
data['address'] = this.address;
data['hasPendingPayment'] = this.hasPendingPayment; data['hasPendingPayment'] = this.hasPendingPayment;
data['pendingPaymentText'] = this.pendingPaymentText; data['pendingPaymentText'] = this.pendingPaymentText;
data['products'] = this.products;
return data; return data;
} }
} }
class SubscribeOrderDetailsResponse {
String? orderid;
String? orderNum;
String? rentedDate;
String? expiringInColor;
String? expiringText;
List<Products>? products;
String? error;
String? message;
SubscribeOrderDetailsResponse(
{this.orderid,
this.orderNum,
this.rentedDate,
this.expiringInColor,
this.expiringText,
this.products,
this.error,
this.message});
SubscribeOrderDetailsResponse.fromJson(Map<String, dynamic> json) {
orderid = json['orderid'];
orderNum = json['order_num'];
rentedDate = json['rentedDate'];
expiringInColor = json['ExpiringInColor'];
expiringText = json['expiringText'];
if (json['products'] != null) {
products = <Products>[];
json['products'].forEach((v) {
products!.add(new Products.fromJson(v));
});
}
error = json['error'];
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['orderid'] = this.orderid;
data['order_num'] = this.orderNum;
data['rentedDate'] = this.rentedDate;
data['ExpiringInColor'] = this.expiringInColor;
data['expiringText'] = this.expiringText;
if (this.products != null) {
data['products'] = this.products!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
return data;
}
}
class Products {
String? id;
String? idName;
String? prodName;
String? totalPrice;
String? per;
String? dispatchDate;
String? receivedDate;
Products(
{this.id,
this.idName,
this.prodName,
this.totalPrice,
this.per,
this.dispatchDate,
this.receivedDate});
Products.fromJson(Map<String, dynamic> json) {
id = json['id'];
idName = json['id_name'];
prodName = json['prod_name'];
totalPrice = json['total_price'];
per = json['per'];
dispatchDate = json['dispatch_date'];
receivedDate = json['received_date'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['id_name'] = this.idName;
data['prod_name'] = this.prodName;
data['total_price'] = this.totalPrice;
data['per'] = this.per;
data['dispatch_date'] = this.dispatchDate;
data['received_date'] = this.receivedDate;
return data;
}
}
class TransactionsResponse {
int? balanceAmount;
String? creditAmount;
String? debitAmount;
Map<String, List<TransactionItem>>? transactions;
String? error;
String? message;
TransactionsResponse({
this.balanceAmount,
this.creditAmount,
this.debitAmount,
this.transactions,
this.error,
this.message,
});
TransactionsResponse.fromJson(Map<String, dynamic> json) {
balanceAmount = json['balance_amount'];
creditAmount = json['credit_amount'];
debitAmount = json['debit_amount'];
error = json['error'];
message = json['message'];
if (json['transactions'] != null) {
transactions = {};
json['transactions'].forEach((key, value) {
transactions![key] = (value as List)
.map((v) => TransactionItem.fromJson(v))
.toList();
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = {};
data['balance_amount'] = balanceAmount;
data['credit_amount'] = creditAmount;
data['debit_amount'] = debitAmount;
data['error'] = error;
data['message'] = message;
if (transactions != null) {
data['transactions'] = transactions!.map((key, value) =>
MapEntry(key, value.map((v) => v.toJson()).toList()));
}
return data;
}
}
class TransactionItem {
String? paymentId;
String? amount;
String? type;
String? purpose;
String? date;
TransactionItem({
this.paymentId,
this.amount,
this.type,
this.purpose,
this.date,
});
TransactionItem.fromJson(Map<String, dynamic> json) {
paymentId = json['payment_id'];
amount = json['amount'];
type = json['type'];
purpose = json['purpose'];
date = json['date'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = {};
data['payment_id'] = paymentId;
data['amount'] = amount;
data['type'] = type;
data['purpose'] = purpose;
data['date'] = date;
return data;
}
}
class OrderListResponse {
List<Order>? order;
int? error;
String? message;
OrderListResponse({this.order, this.error, this.message});
OrderListResponse.fromJson(Map<String, dynamic> json) {
if (json['order'] != null) {
order = <Order>[];
json['order'].forEach((v) {
order!.add(new Order.fromJson(v));
});
}
error = json['error'];
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.order != null) {
data['order'] = this.order!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
return data;
}
}
class Order {
String? orderid;
String? datetime;
String? address;
Order({this.orderid, this.datetime, this.address});
Order.fromJson(Map<String, dynamic> json) {
orderid = json['orderid'];
datetime = json['datetime'];
address = json['address'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['orderid'] = this.orderid;
data['datetime'] = this.datetime;
data['address'] = this.address;
return data;
}
}
...@@ -15,6 +15,7 @@ class DashboardProvider with ChangeNotifier { ...@@ -15,6 +15,7 @@ class DashboardProvider with ChangeNotifier {
/// Fetch Dashboard API /// Fetch Dashboard API
Future<void> fetchDashboard({ Future<void> fetchDashboard({
required String accId, required String accId,
required String sessionId,
}) async { }) async {
_isLoading = true; _isLoading = true;
_errorMessage = null; _errorMessage = null;
...@@ -22,7 +23,7 @@ class DashboardProvider with ChangeNotifier { ...@@ -22,7 +23,7 @@ class DashboardProvider with ChangeNotifier {
try { try {
final response = final response =
await ApiCalling.fetchDashboardApi(accId,); await ApiCalling.fetchDashboardApi(accId, sessionId);
if (response != null) { if (response != null) {
_dashboardData = response; _dashboardData = response;
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gen_rentals/Services/api_calling.dart'; import 'package:gen_rentals/Services/api_calling.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'dart:io';
class RentalProvider extends ChangeNotifier { class RentalProvider extends ChangeNotifier {
FetchMobileResponse? _response; FetchMobileResponse? _response;
FetchMobileResponse? otpResponse; FetchMobileResponse? otpResponse;
bool _isLoading = false; bool _isLoading = false;
FetchMobileResponse? get response => _response; FetchMobileResponse? get response => _response;
bool get isLoading => _isLoading; bool get isLoading => _isLoading;
bool isOtpLoading = false; bool isOtpLoading = false;
...@@ -33,7 +36,8 @@ class RentalProvider extends ChangeNotifier { ...@@ -33,7 +36,8 @@ class RentalProvider extends ChangeNotifier {
notifyListeners(); notifyListeners();
try { try {
final result = await ApiCalling.fetchMobileOtpApi(mob, otp); final deviceDetails = await getDeviceDetails();
final result = await ApiCalling.fetchMobileOtpApi(mob, otp, deviceDetails);
otpResponse = result; otpResponse = result;
} catch (e) { } catch (e) {
debugPrint("❌ OTP API Error: $e"); debugPrint("❌ OTP API Error: $e");
...@@ -44,6 +48,41 @@ class RentalProvider extends ChangeNotifier { ...@@ -44,6 +48,41 @@ class RentalProvider extends ChangeNotifier {
} }
} }
Future<Map<String, String>> getDeviceDetails() async {
final deviceInfo = DeviceInfoPlugin();
if (Platform.isAndroid) {
final androidInfo = await deviceInfo.androidInfo;
return {
"versionName": androidInfo.version.release ?? "",
"versionCode": androidInfo.version.codename ?? "",
"osVersion": androidInfo.version.release ?? "",
"sdkVersion": androidInfo.version.sdkInt.toString(),
"device": androidInfo.device ?? "",
"model": androidInfo.model ?? "",
"product": androidInfo.product ?? "",
"manufacturer": androidInfo.manufacturer ?? "",
"brand": androidInfo.brand ?? "",
"user": "",
"display": androidInfo.display ?? "",
"hardware": androidInfo.hardware ?? "",
"board": androidInfo.board ?? "",
"host": androidInfo.host ?? "",
"serial": androidInfo.serialNumber ?? "unknown",
"id": androidInfo.id ?? "",
"bootloader": androidInfo.bootloader ?? "",
"cpuAbi1": androidInfo.supportedAbis.isNotEmpty ? androidInfo.supportedAbis[0] : "",
"cpuAbi2": androidInfo.supportedAbis.length > 1 ? androidInfo.supportedAbis[1] : "",
"fingerprint": androidInfo.fingerprint ?? "",
};
}
return {};
}
} }
...@@ -52,6 +91,7 @@ class FetchMobileResponse { ...@@ -52,6 +91,7 @@ class FetchMobileResponse {
String? errorMsg; String? errorMsg;
String? accId; String? accId;
String? message; String? message;
String? sessionId;
FetchMobileResponse({this.error, this.errorMsg}); FetchMobileResponse({this.error, this.errorMsg});
...@@ -60,6 +100,7 @@ class FetchMobileResponse { ...@@ -60,6 +100,7 @@ class FetchMobileResponse {
errorMsg = json['error_msg']; errorMsg = json['error_msg'];
accId = json['acc_id']; accId = json['acc_id'];
message = json['message']; message = json['message'];
sessionId = json['session_id'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
...@@ -68,7 +109,9 @@ class FetchMobileResponse { ...@@ -68,7 +109,9 @@ class FetchMobileResponse {
data['error_msg'] = this.errorMsg; data['error_msg'] = this.errorMsg;
data['acc_id'] = this.accId; data['acc_id'] = this.accId;
data['message'] = this.message; data['message'] = this.message;
data['session_id'] = this.sessionId;
return data; return data;
} }
} }
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:gen_rentals/Services/api_calling.dart';
import 'dart:convert';
import '../Models/SubscribeOrderDetailsResponse.dart';
class SubscribeOrderDetailsProvider with ChangeNotifier {
SubscribeOrderDetailsResponse? _orderDetails;
bool _isLoading = false;
String _errorMessage = '';
// Getters
SubscribeOrderDetailsResponse? get orderDetails => _orderDetails;
bool get isLoading => _isLoading;
String get errorMessage => _errorMessage;
/// Fetch Subscribe Order Details
Future<void> fetchSubscribeOrderDetails(
String sessionId,
String orderId,
String accId,
) async {
_isLoading = true;
_errorMessage = '';
notifyListeners();
try {
final response = await ApiCalling.fetchSubsOrderDetailApi(
sessionId,
orderId,
accId,
);
if (response != null) {
// Check if error is "0" which means success in your API
if (response.error == "0") {
_orderDetails = response;
_errorMessage = '';
}
// Handle other error cases
else if (response.error != null && response.error!.isNotEmpty && response.error != "0") {
_errorMessage = response.message ?? 'An error occurred';
_orderDetails = null;
}
// Handle message-based errors
else if (response.message != null &&
response.message!.isNotEmpty &&
!response.message!.toLowerCase().contains('success')) {
_errorMessage = response.message!;
_orderDetails = null;
}
// Default success case
else {
_orderDetails = response;
_errorMessage = '';
}
} else {
_errorMessage = 'Failed to load order details';
_orderDetails = null;
}
} catch (e) {
_errorMessage = 'An error occurred: $e';
_orderDetails = null;
debugPrint("❌ Provider Error (fetchSubscribeOrderDetails): $e");
} finally {
_isLoading = false;
notifyListeners();
}
}
// ... rest of your provider code
}
\ No newline at end of file
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:gen_rentals/Services/api_calling.dart';
import '../Models/TransactionsResponse.dart';
class TransactionsProvider with ChangeNotifier {
bool _isLoading = false;
TransactionsResponse? _transactionsResponse;
bool get isLoading => _isLoading;
TransactionsResponse? get transactionsResponse => _transactionsResponse;
/// For UI convenience
Map<String, List<TransactionItem>> get transactionsByMonth =>
_transactionsResponse?.transactions ?? {};
/// Fetch Rental Transactions API
Future<void> fetchRentalTransactions(String sessionId, String accId) async {
_isLoading = true;
notifyListeners();
try {
final response =
await ApiCalling.fetchRentalsTransactionsApi(sessionId, accId);
if (response != null && response.error == "0") {
_transactionsResponse = response;
log("✅ Transactions fetched successfully: ${response.transactions?.length ?? 0} months");
} else {
log("⚠️ Error in API response: ${response?.message}");
_transactionsResponse = null;
}
} catch (e) {
log("❌ Exception in fetchRentalTransactions: $e");
_transactionsResponse = null;
} finally {
_isLoading = false;
notifyListeners();
}
}
/// Optional: Clear data
void clearTransactions() {
_transactionsResponse = null;
notifyListeners();
}
}
This diff is collapsed.
This diff is collapsed.
...@@ -104,13 +104,14 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -104,13 +104,14 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
Future<void> _navigateToDashboard() async { Future<void> _navigateToDashboard() async {
final String? savedAccId = await prefs.getString("accId"); final String? savedAccId = await prefs.getString("accId");
final String? savedSessionId = await prefs.getString("session_id");
// Check if accId is not null and not empty // Check if accId is not null and not empty
if (savedAccId != null && savedAccId.isNotEmpty) { if (savedAccId != null && savedAccId.isNotEmpty) {
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
PageRouteBuilder( PageRouteBuilder(
pageBuilder: (_, __, ___) => DashboardScreen(accId: savedAccId), pageBuilder: (_, __, ___) => DashboardScreen(accId: savedAccId, sessionId: savedSessionId.toString(),),
transitionsBuilder: (_, animation, __, child) { transitionsBuilder: (_, animation, __, child) {
return FadeTransition( return FadeTransition(
opacity: animation, opacity: animation,
......
This diff is collapsed.
...@@ -91,12 +91,16 @@ class _OtpScreenState extends State<OtpScreen> { ...@@ -91,12 +91,16 @@ class _OtpScreenState extends State<OtpScreen> {
// Added null check for accId // Added null check for accId
if (rentalProvider.otpResponse?.accId != null) { if (rentalProvider.otpResponse?.accId != null) {
await prefs.saveString("accId", rentalProvider.otpResponse!.accId!); await prefs.saveString("accId", rentalProvider.otpResponse!.accId!);
await prefs.saveString("session_id", rentalProvider.otpResponse!.sessionId!);
} }
// Navigate to dashboard // Navigate to dashboard
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute(builder: (_) => DashboardScreen(accId: rentalProvider.otpResponse!.accId!,)), MaterialPageRoute(builder: (_) => DashboardScreen(
accId: rentalProvider.otpResponse!.accId!,
sessionId: rentalProvider.otpResponse!.sessionId!,)
),
); );
} else { } else {
// ❌ Invalid OTP // ❌ Invalid OTP
......
/// base Url of api /// base Url of api
const baseUrl = "https://erp.gengroup.in/ci/app/Inventory/"; const baseUrl = "https://erp.gengroup.in/ci/app/Rental/Rental_Home/";
const baseUrl2 = "https://erp.gengroup.in/ci/app/Rental/";
/// tokens url /// tokens url
const addFcmTokenUrl = "${baseUrl}add_fcm_token"; const addFcmTokenUrl = "${baseUrl}add_fcm_token";
/// payments and bills /// payments and bills
const addPaymentUrl = "${baseUrl}add_payment"; const addPaymentUrl = "${baseUrl}add_payment";
const rentalPaymentDetailsUrl = "${baseUrl}rental_payment_details"; const transactionsUrl = "${baseUrl}transactions";
const balanceUrl = "${baseUrl}balance"; const balanceUrl = "${baseUrl}balance";
const billDetailsUrl = "${baseUrl}bill_details"; const billDetailsUrl = "${baseUrl}bill_details";
const billListUrl = "${baseUrl}bill_list"; const billListUrl = "${baseUrl}bill_list";
...@@ -21,7 +22,7 @@ const getRentalAccInfoUrl = "${baseUrl}get_rental_acc_info"; ...@@ -21,7 +22,7 @@ const getRentalAccInfoUrl = "${baseUrl}get_rental_acc_info";
const orderDetailsBillUrl = "${baseUrl}order_details_bill"; const orderDetailsBillUrl = "${baseUrl}order_details_bill";
const orderDetailsMainUrl = "${baseUrl}order_details_main"; const orderDetailsMainUrl = "${baseUrl}order_details_main";
const orderDetailsProductUrl = "${baseUrl}order_details_product"; const orderDetailsProductUrl = "${baseUrl}order_details_product";
const orderListUrl = "${baseUrl}order_list"; const subsOrderDetails = "${baseUrl}subs_order_details";
const tagOrderUrl = "${baseUrl}tag_order"; const tagOrderUrl = "${baseUrl}tag_order";
/// tickets /// tickets
...@@ -33,6 +34,6 @@ const ticketListUrl = "${baseUrl}ticket_list"; ...@@ -33,6 +34,6 @@ const ticketListUrl = "${baseUrl}ticket_list";
/// dashboard and login /// dashboard and login
const fetchMobileUrl = "${baseUrl}fetch_mobile_number"; const fetchMobileUrl = "${baseUrl2}Rental_Auth/fetch_mobile_number";
const fetchOtpUrl = "${baseUrl}login"; const fetchOtpUrl = "${baseUrl2}Rental_Auth/login";
const dashboardUrl = "${baseUrl}dashboard"; const dashboardUrl = "${baseUrl2}Rental_Home/dashboard";
\ No newline at end of file \ No newline at end of file
...@@ -7,11 +7,12 @@ import 'package:gen_rentals/Models/billProductResponse.dart'; ...@@ -7,11 +7,12 @@ import 'package:gen_rentals/Models/billProductResponse.dart';
import 'package:gen_rentals/Models/orderDetailsBillResponse.dart'; import 'package:gen_rentals/Models/orderDetailsBillResponse.dart';
import 'package:gen_rentals/Models/orderDetailsMainResponse.dart'; import 'package:gen_rentals/Models/orderDetailsMainResponse.dart';
import 'package:gen_rentals/Models/orderDetailsProductResponse.dart'; import 'package:gen_rentals/Models/orderDetailsProductResponse.dart';
import 'package:gen_rentals/Models/orderListResponse.dart'; import 'package:gen_rentals/Models/SubscribeOrderDetailsResponse.dart';
import 'package:gen_rentals/Models/ticketListResponse.dart'; import 'package:gen_rentals/Models/ticketListResponse.dart';
import 'package:gen_rentals/Notifier/billDetailsResponse.dart'; import 'package:gen_rentals/Notifier/billDetailsResponse.dart';
import '../Models/DashboardResponse.dart'; import '../Models/DashboardResponse.dart';
import '../Models/RentalPaymentDetailsResponse.dart'; import '../Models/RentalPaymentDetailsResponse.dart';
import '../Models/TransactionsResponse.dart';
import '../Models/rentalAccountResponse.dart'; import '../Models/rentalAccountResponse.dart';
import '../Models/rentalContactResponse.dart'; import '../Models/rentalContactResponse.dart';
import '../Notifier/RentalContactProvider .dart'; import '../Notifier/RentalContactProvider .dart';
...@@ -47,13 +48,15 @@ class ApiCalling { ...@@ -47,13 +48,15 @@ class ApiCalling {
static Future<FetchMobileResponse?> fetchMobileOtpApi( static Future<FetchMobileResponse?> fetchMobileOtpApi(
String mob, String mob,
String otp String otp,
Map<String, String> deviceDetails
) async { ) async {
debugPrint("############################### Api calling "); debugPrint("############################### Api calling ");
try { try {
Map<String, String> data = { Map<String, String> data = {
"mob": mob, "mob": mob,
"otp": otp, "otp": otp,
"device_details": deviceDetails.toString(),
}; };
final res = await post(data, fetchOtpUrl, {}); final res = await post(data, fetchOtpUrl, {});
...@@ -204,23 +207,24 @@ class ApiCalling { ...@@ -204,23 +207,24 @@ class ApiCalling {
} }
} }
/// Fetch Order List /// Fetch Subscribe Order Details
static Future<OrderListResponse?> fetchOrderListApi( static Future<SubscribeOrderDetailsResponse?> fetchSubsOrderDetailApi(
String sessionId, String sessionId,
String empId, String orderId,
String accId, String accId,
) async { ) async {
try { try {
Map<String, String> data = { Map<String, String> data = {
"session_id": sessionId, "session_id": sessionId,
"emp_id": empId, "order_id": orderId,
"acc_id": accId, "acc_id": accId,
}; };
final res = await post(data, orderListUrl, {}); final res = await post(data, subsOrderDetails, {});
debugPrint("Subscribe order details Response: ${res?.body}");
if (res != null) { if (res != null) {
return OrderListResponse.fromJson(jsonDecode(res.body)); return SubscribeOrderDetailsResponse.fromJson(jsonDecode(res.body));
} else { } else {
debugPrint("Null Response"); debugPrint("Null Response");
return null; return null;
...@@ -286,23 +290,21 @@ class ApiCalling { ...@@ -286,23 +290,21 @@ class ApiCalling {
} }
} }
/// Fetch Rental Payment Details /// Fetch Rental Transaction
static Future<RentalPaymentDetailsResponse?> fetchRentalPaymentDetailsApi( static Future<TransactionsResponse?> fetchRentalsTransactionsApi(
String sessionId, String sessionId,
String empId, String accId,
String billId,
) async { ) async {
try { try {
Map<String, String> data = { Map<String, String> data = {
"session_id": sessionId, "session_id": sessionId,
"emp_id": empId, "acc_id": accId,
"bill_id": billId,
}; };
final res = await post(data, rentalPaymentDetailsUrl, {}); final res = await post(data, transactionsUrl, {});
if (res != null) { if (res != null) {
return RentalPaymentDetailsResponse.fromJson(jsonDecode(res.body)); return TransactionsResponse.fromJson(jsonDecode(res.body));
} else { } else {
debugPrint("Null Response"); debugPrint("Null Response");
return null; return null;
...@@ -535,11 +537,13 @@ class ApiCalling { ...@@ -535,11 +537,13 @@ class ApiCalling {
/// Fetch Dashboard /// Fetch Dashboard
static Future<DashboardResponse?> fetchDashboardApi( static Future<DashboardResponse?> fetchDashboardApi(
String accId, String accId,
String sessionId,
) async { ) async {
debugPrint("Dashboard Api called ##############"); debugPrint("Dashboard Api called ##############");
try { try {
Map<String, String> data = { Map<String, String> data = {
"acc_id": accId, "acc_id": accId,
"session_id": sessionId,
}; };
debugPrint("Account Id : $accId"); debugPrint("Account Id : $accId");
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gen_rentals/Notifier/DashboardProvider.dart'; import 'package:gen_rentals/Notifier/DashboardProvider.dart';
import 'package:gen_rentals/Notifier/TransactionsProvider.dart';
import 'package:gen_rentals/Screens/SplashScreen.dart'; import 'package:gen_rentals/Screens/SplashScreen.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'Notifier/RentalContactProvider .dart'; import 'Notifier/RentalContactProvider .dart';
import 'Notifier/SubscribeOrderDetailsProvider.dart';
import 'Notifier/theme_provider.dart'; import 'Notifier/theme_provider.dart';
import 'Screens/authScreen/LoginScreen.dart'; import 'Screens/authScreen/LoginScreen.dart';
...@@ -28,6 +30,8 @@ class MyApp extends StatelessWidget { ...@@ -28,6 +30,8 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider<DashboardProvider>(create: (_) => DashboardProvider()), ChangeNotifierProvider<DashboardProvider>(create: (_) => DashboardProvider()),
ChangeNotifierProvider<RentalProvider>(create: (_) => RentalProvider(),), ChangeNotifierProvider<RentalProvider>(create: (_) => RentalProvider(),),
ChangeNotifierProvider<ThemeProvider>(create: (_) => ThemeProvider(),), ChangeNotifierProvider<ThemeProvider>(create: (_) => ThemeProvider(),),
ChangeNotifierProvider(create: (_) => SubscribeOrderDetailsProvider()),
ChangeNotifierProvider(create: (_) => TransactionsProvider()),
], ],
child: Consumer<ThemeProvider>( child: Consumer<ThemeProvider>(
builder: (context, themeProvider, child) { builder: (context, themeProvider, child) {
......
...@@ -129,6 +129,22 @@ packages: ...@@ -129,6 +129,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.11" version: "0.7.11"
device_info_plus:
dependency: "direct dev"
description:
name: device_info_plus
sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
url: "https://pub.dev"
source: hosted
version: "10.1.2"
device_info_plus_platform_interface:
dependency: transitive
description:
name: device_info_plus_platform_interface
sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f
url: "https://pub.dev"
source: hosted
version: "7.0.3"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
...@@ -781,6 +797,14 @@ packages: ...@@ -781,6 +797,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.13.0" version: "5.13.0"
win32_registry:
dependency: transitive
description:
name: win32_registry
sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
url: "https://pub.dev"
source: hosted
version: "1.1.5"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment