|
|
import { Component, OnInit, NgZone } from '@angular/core';
|
|
|
import { NFC } from "@ionic-native/nfc/ngx"
|
|
|
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
|
|
import {AttendScanService} from '../../hmg-common/services/attend-services/attend-scan.service';
|
|
|
import { attendanceSwipeScannerRequest } from 'src/app/home/models/attendanceSwipe.Request';
|
|
|
import { Device } from '@ionic-native/device/ngx';
|
|
|
import { AuthenticatedUser } from '../../hmg-common/services/authentication/models/authenticated-user';
|
|
|
import { AttendanceService } from 'src/app/home/services/attendance.services';
|
|
|
import { Response } from 'src/app/hmg-common/services/models/response';
|
|
|
import { ModalController } from '@ionic/angular';
|
|
|
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
|
|
|
|
|
@Component({
|
|
|
selector: 'app-nfc-modal',
|
|
|
templateUrl: './nfc-modal.component.html',
|
|
|
styleUrls: ['./nfc-modal.component.scss'],
|
|
|
})
|
|
|
export class NfcModalComponent implements OnInit {
|
|
|
public userData: any = {};
|
|
|
public gifStatus = false;
|
|
|
public nfcReader: any;
|
|
|
public enableLocationNFC: boolean;
|
|
|
public lat: number;
|
|
|
public longt: number;
|
|
|
|
|
|
constructor(
|
|
|
private nfc: NFC,
|
|
|
public common: CommonService,
|
|
|
public attendScanService: AttendScanService,
|
|
|
private device: Device,
|
|
|
private attendance_service: AttendanceService,
|
|
|
public modalController: ModalController,
|
|
|
public ts: TranslatorService,
|
|
|
public ngZone: NgZone
|
|
|
) { }
|
|
|
|
|
|
ngOnInit() {
|
|
|
this.userData = this.common.sharedService.getSharedData(AuthenticatedUser.SHARED_DATA, false);
|
|
|
this.startAndroidNfc();
|
|
|
console.log(this.enableLocationNFC);
|
|
|
}
|
|
|
|
|
|
ionViewDidLeave() {
|
|
|
this.nfcReader.unsubscribe();
|
|
|
}
|
|
|
|
|
|
async startAndroidNfc() {
|
|
|
let flags = this.nfc.FLAG_READER_NFC_A | this.nfc.FLAG_READER_NFC_V;
|
|
|
this.nfcReader = this.nfc.readerMode(flags).subscribe((tag) => {
|
|
|
const serialNumber = this.nfc.bytesToHexString(tag.id);
|
|
|
this.swipeAttendanceNFC(serialNumber);
|
|
|
}, (error) => {
|
|
|
this.modalController.dismiss();
|
|
|
this.common.presentAlert(this.ts.trPK('general', 'nfc-error'));
|
|
|
console.log('error =====>>>>>> + + + =' + error);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
public swipeAttendanceNFC (nfcSerialCode: any) {
|
|
|
this.nfcReader.unsubscribe();
|
|
|
const request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest();
|
|
|
request.PointType = 2;
|
|
|
request.Latitude = this.lat;
|
|
|
request.Longitude = this.longt;
|
|
|
request.QRValue = "";
|
|
|
request.NFCValue = nfcSerialCode;
|
|
|
request.UID = this.device.uuid;
|
|
|
request.UserName = this.userData.EMPLOYEE_NUMBER;
|
|
|
request.IsGpsRequired = this.enableLocationNFC;
|
|
|
this.attendance_service.attendanceSwipeScanner(request, () => {
|
|
|
console.log('Error inside in swipe attendance');
|
|
|
this.modalController.dismiss();
|
|
|
}).subscribe((result: Response) => {
|
|
|
if (this.common.validResponse(result)) {
|
|
|
this.ngZone.run(() => {
|
|
|
this.gifStatus = true;
|
|
|
});
|
|
|
setTimeout(() => {
|
|
|
this.modalController.dismiss();
|
|
|
// this.common.openHome();
|
|
|
this.common.openAttenTrackingpage();
|
|
|
}, 4000);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
public closeModal() {
|
|
|
this.modalController.dismiss();
|
|
|
}
|
|
|
|
|
|
}
|