You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemmionic5/Mohem/src/app/home/home.page.ts

180 lines
5.5 KiB
TypeScript

7 years ago
import { Component, OnInit } from "@angular/core";
import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service";
import { MenuController, Events } from "@ionic/angular";
7 years ago
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
7 years ago
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";
7 years ago
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";
7 years ago
import { Response } from "src/app/hmg-common/services/models/response";
7 years ago
import { AttendanceService } from "./services/attendance.services";
@Component({
7 years ago
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";
7 years ago
menuList: any = [];
7 years ago
zbarOptions: any;
scannedResult: any;
lat: any;
longt: any;
7 years ago
deviceID: string;
7 years ago
constructor(
public ts: TranslatorService,
public menu: MenuController,
public authService: AuthenticationService,
public menuService: MenuService,
public common: CommonService,
public events: Events,
7 years ago
private device: Device,
private zbar: ZBar,
7 years ago
private geolocation: Geolocation,
private attendance_service: AttendanceService
7 years ago
) {}
ngOnInit() {
7 years ago
this.getUserDetails();
7 years ago
this.getMenu();
7 years ago
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);
});
7 years ago
}
7 years ago
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() {
7 years ago
this.menu.toggle();
}
private getUserDetails() {
this.authService
7 years ago
.loadAuthenticatedUser()
.subscribe((user: AuthenticatedUser) => {
7 years ago
if (user) {
this.events.publish("setMenu");
7 years ago
this.userData = user;
this.user_image = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE
: this.user_image;
7 years ago
console.log(user);
7 years ago
} else {
7 years ago
console.log(user);
}
7 years ago
});
}
public Vacation_Rule() {
this.common.navigateForward("/vacation-rule/home");
}
7 years ago
private getMenu() {
this.menuService.getMenu().subscribe((result: MenuResponse) => {
this.handleMenuResult(result);
});
7 years ago
}
7 years ago
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);
}
}
7 years ago
private Change_password() {
this.common.openChangePassword();
}
7 years ago
private attendance() {
7 years ago
this.zbarOptions = {
7 years ago
flash: "off",
7 years ago
drawSight: false
7 years ago
};
7 years ago
console.log("your currnt location is");
7 years ago
this.scanCode();
7 years ago
}
7 years ago
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
});
7 years ago
}
7 years ago
swipeAttendance() {
7 years ago
let request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest();
request.Latitude = this.lat;
request.Longitude = this.longt;
request.QRValue = this.scannedResult;
request.UID = this.deviceID;
7 years ago
request.UserName = this.userData.EMPLOYEE_NUMBER;
7 years ago
console.log("request");
console.log(JSON.stringify(request));
7 years ago
this.attendance_service
.attendanceSwipeScanner(request, () => {
7 years ago
console.log("Error inside in swipe attendance");
7 years ago
})
.subscribe((result: Response) => {
7 years ago
if (this.common.validResponse(result)) {
console.log("response");
console.log(result);
7 years ago
this.common.presentAlert(this.ts.trPK("home", "swipeAlertSuccess"));
7 years ago
} else {
7 years ago
this.common.presentAlert(this.ts.trPK("home", "swipeAlertFailed"));
7 years ago
}
});
}
7 years ago
openPersonalInfo() {
this.common.openProfile();
}
}