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")); } }); } openPersonalInfo() { this.common.openProfile(); } }