NFC Attendance implement 1.4

merge-requests/1/merge
devmirza121 4 years ago
parent eb3ddb3d9e
commit a4fb526b68

@ -226,3 +226,4 @@ class OtpDialog {
// } // }
} }
} }

@ -33,7 +33,7 @@ class TodayAttendanceScreen extends StatefulWidget {
class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> { class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
ValueNotifier<dynamic> result = ValueNotifier(null); ValueNotifier<dynamic> result = ValueNotifier(null);
late DashboardProviderModel data; late DashboardProviderModel data;
bool isNfcEnabled = false, isNfcLocationEnabled = false, isQrEnabled = false, isQrLocationEnabled = false, isWifiEnabled = false, isWifiLocationEnabled = false; bool isNfcEnabled = true, isNfcLocationEnabled = false, isQrEnabled = false, isQrLocationEnabled = false, isWifiEnabled = false, isWifiLocationEnabled = false;
@override @override
void initState() { void initState() {
@ -47,14 +47,14 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
setState(() { setState(() {
AppState().privilegeListModel!.forEach((element) { AppState().privilegeListModel!.forEach((element) {
print(element.serviceName.toString() + " " + element.previlege.toString()); // Check availability print(element.serviceName.toString() + " " + element.previlege.toString()); // Check availability
if (isAvailable) if (element.serviceName == "enableNFC") {
// if (element.previlege ?? false) if (element.serviceName == "enableNFC") {
isNfcEnabled = true; if (isAvailable) if (element.previlege ?? false) isNfcEnabled = true;
} else if (element.serviceName == "enableQR") { } else if (element.serviceName == "enableQR") {
if (element.previlege ?? false) isQrEnabled = true; if (element.previlege ?? false) isQrEnabled = true;
} else if (element.serviceName == "enableWIFI") { } else if (element.serviceName == "enableWIFI") {
if (element.previlege ?? false) isWifiEnabled = true; if (element.previlege ?? false) isWifiEnabled = true;
} else if (element.serviceName == "enableLocatoinNFC") { } else if (element.serviceName!.trim() == "enableLocationNFC") {
if (element.previlege ?? false) isNfcLocationEnabled = true; if (element.previlege ?? false) isNfcLocationEnabled = true;
} else if (element.serviceName == "enableLocationQR") { } else if (element.serviceName == "enableLocationQR") {
if (element.previlege ?? false) isQrLocationEnabled = true; if (element.previlege ?? false) isQrLocationEnabled = true;
@ -191,28 +191,13 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
children: <Widget>[ children: <Widget>[
attendanceMethod("NFC", "assets/images/nfc.svg", isNfcEnabled, () { attendanceMethod("NFC", "assets/images/nfc.svg", isNfcEnabled, () {
if (isNfcLocationEnabled) { if (isNfcLocationEnabled) {
print("nfc location enabled"); Location.getCurrentLocation((LatLng? latlng) {
print(latlng!.longitude.toString());
performNfcAttendance(model, lat: latlng.latitude.toString() ?? "", lng: latlng.longitude.toString() ?? "");
});
} else { } else {
print("nfc not location enabled"); performNfcAttendance(model);
} }
// showNfcReader(context, onNcfScan: (String? nfcId) async {
// print(nfcId);
// Utils.showLoading(context);
// try {
// GenericResponseModel? g = await DashboardApiClient().markAttendance(pointType: 2, nfcValue: nfcId ?? "");
// bool status = await model.fetchAttendanceTracking();
// Utils.hideLoading(context);
// } catch (ex) {
// print(ex);
// Utils.hideLoading(context);
// Utils.handleException(ex, (msg) {
// Utils.confirmDialog(context, msg);
// });
// }
// });
// Location.getCurrentLocation((LatLng? latlng) {
// print(latlng!.longitude.toString());
// });
}), }),
attendanceMethod("Wifi", "assets/images/wufu.svg", isWifiEnabled, () {}), attendanceMethod("Wifi", "assets/images/wufu.svg", isWifiEnabled, () {}),
], ],
@ -249,6 +234,30 @@ class _TodayAttendanceScreenState extends State<TodayAttendanceScreen> {
); );
} }
Future<void> performNfcAttendance(DashboardProviderModel model, {String lat = "0", String lng = "0"}) async {
if (isNfcLocationEnabled) {
print("nfc location enabled");
} else {
print("nfc not location enabled");
}
showNfcReader(context, onNcfScan: (String? nfcId) async {
print(nfcId);
Utils.showLoading(context);
try {
GenericResponseModel? g = await DashboardApiClient().markAttendance(pointType: 2, nfcValue: nfcId ?? "", isGpsRequired: isNfcLocationEnabled, lat: lat, long: lng);
bool status = await model.fetchAttendanceTracking();
Utils.hideLoading(context);
} catch (ex) {
print(ex);
Utils.hideLoading(context);
Utils.handleException(ex, (msg) {
Utils.confirmDialog(context, msg);
});
}
});
}
Widget attendanceMethod(String title, String image, bool isEnabled, VoidCallback onPress) => Container( Widget attendanceMethod(String title, String image, bool isEnabled, VoidCallback onPress) => Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),

@ -75,6 +75,7 @@ class _LoginScreenState extends State<LoginScreen> {
Utils.showLoading(context); Utils.showLoading(context);
firebaseToken = await _firebaseMessaging.getToken(); firebaseToken = await _firebaseMessaging.getToken();
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(firebaseToken ?? "", Platform.isAndroid ? "android" : "ios"); loginInfo = await LoginApiClient().getMobileLoginInfoNEW(firebaseToken ?? "", Platform.isAndroid ? "android" : "ios");
loginInfo!.deviceToken = firebaseToken;
if (loginInfo == null) { if (loginInfo == null) {
Utils.hideLoading(context); Utils.hideLoading(context);
print("Device token not found"); print("Device token not found");
@ -125,7 +126,6 @@ class _LoginScreenState extends State<LoginScreen> {
} }
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
username.text = "15153"; username.text = "15153";

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:easy_localization/src/public_ext.dart'; import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -246,6 +248,16 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
Utils.showLoading(context); Utils.showLoading(context);
try { try {
GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(false, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName); GenericResponseModel? genericResponseModel = await LoginApiClient().checkActivationCode(false, AppState().memberLoginList?.pMOBILENUMBER, value, AppState().getUserName);
GenericResponseModel? genericResponseModel1 = await LoginApiClient().insertMobileLoginInfoNEW(
AppState().memberLoginList?.pEMAILADDRESS ?? "",
genericResponseModel?.pSESSIONID ?? 0,
genericResponseModel?.memberInformationList![0].eMPLOYEENAME ?? "",
_flag,
AppState().memberLoginList?.pMOBILENUMBER ?? "",
AppState().getUserName!,
mobileLoginInfoListModel!.deviceToken!,
Platform.isAndroid ? "android" : "ios");
if (genericResponseModel?.errorMessage != null) { if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? ""); Utils.showToast(genericResponseModel?.errorMessage ?? "");
// Navigator.pop(context); // Navigator.pop(context);

Loading…
Cancel
Save