import { Component, OnInit } from "@angular/core"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { MenuController, Events } from "@ionic/angular"; import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { AuthenticatedUser } from "src/app/hmg-common/services/authentication/models/authenticated-user"; import { MenuService } from "src/app/hmg-common/services/menu/menuservice.service"; import { MenuResponse } from "src/app/hmg-common/services/menu/models/menu-response"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { Geolocation } from '@ionic-native/geolocation/ngx'; import { ZBar, ZBarOptions } from '@ionic-native/zbar/ngx'; import { Device } from '@ionic-native/device/ngx'; import { attendanceSwipeScannerRequest } from './models/attendanceSwipe.Request'; import { Response } from "src/app/hmg-common/services/models/response"; import { AttendanceService } from './services/attendance.services'; @Component({ selector: "app-home", templateUrl: "./home.page.html", styleUrls: ["./home.page.scss"] }) export class HomePage implements OnInit { userData: any = {}; user_image: any = "../assets/imgs/profile.png"; menuList: any = []; zbarOptions:any; scannedResult:any; lat : any; longt : any; deviceID: string; constructor( public ts: TranslatorService, public menu: MenuController, public authService: AuthenticationService, public menuService: MenuService, public common: CommonService, public events: Events, private device: Device, private zbar: ZBar, private geolocation: Geolocation, private attendance_service:AttendanceService ) {} ngOnInit() { this.getUserDetails(); this.getMenu(); this.geolocation.getCurrentPosition().then((resp) => { // resp.coords.latitude // resp.coords.longitude console.log(resp.coords.latitude); console.log(resp.coords.longitude); }).catch((error) => { console.log('Error getting location', error); }); } ionViewDidLoad() { this.geolocation.getCurrentPosition().then((resp) => { // resp.coords.latitude // resp.coords.longitude console.log(resp.coords.latitude); console.log(resp.coords.longitude); }).catch((error) => { console.log('Error getting location', error); }); } private openMenu() { this.menu.toggle(); } private getUserDetails() { this.authService .loadAuthenticatedUser() .subscribe((user: AuthenticatedUser) => { if (user) { this.events.publish("setMenu"); this.userData = user; this.user_image = user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE : this.user_image; console.log(user); } else { console.log(user); } }); } public Vacation_Rule() { this.common.navigateForward("/vacation-rule/home"); } private getMenu() { this.menuService.getMenu().subscribe((result: MenuResponse) => { this.handleMenuResult(result); }); } private handleMenuResult(result) { if (this.common.validResponse(result)) { if (this.common.hasData(result.List_Menu)) { this.menuList = result.List_Menu; } } } private accrualBalance() { this.common.openAccuralPage(); } public getMeunDetails(index) { let item = this.menuList[index]; let selMenu: MenuResponse = new MenuResponse(); selMenu.List_Menu = item; selMenu.userid = this.userData.EMPLOYEE_NUMBER; this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA); if (item.MENU_TYPE == "M") { this.common.openMyTeamPage(); // this.navCtrl.push("MySubordinatePage"); } else if (item.MENU_TYPE == "S") { //this.navCtrl.push('MySpecialistPage',{"mySpecList":item}); } else { //this.getMenuEntries(item); } } private Change_password(){ this.common.openChangePassword(); } private attendance(){ this.zbarOptions = { flash: 'off', drawSight: false } console.log("your currnt location is"); this.scanCode(); } scanCode(){ this.zbar.scan(this.zbarOptions) .then(result => { console.log(result); // Scanned code let strResult = JSON.parse(result); console.log(strResult.QRValue); this.scannedResult = result; this.deviceID = this.device.uuid; this.swipeAttendance(); }) .catch(error => { alert(error); // Error message }); } swipeAttendance(){ let request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest(); request.Latitude = this.lat; request.Longitude = this.longt; request.QRValue = this.scannedResult; request.UID = this.deviceID; request.UserName = this.userData.EMPLOYEE_NUMBER; console.log("request"); console.log(JSON.stringify(request)); this.attendance_service.attendanceSwipeScanner( request,()=>{ console.log("Error inside in swipe attendance"); }). subscribe((result: Response) => { if (this.common.validResponse(result)) { console.log("response"); console.log(result); this.common.presentAlert(this.ts.trPK('home', 'swipeAlertSuccess')); } else { this.common.presentAlert(this.ts.trPK('home', 'swipeAlertFailed')); } }); } }