import { EitService } from "./../eit/services/eit.service"; import { Component, OnInit } from "@angular/core"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { MenuController, Events, ActionSheetController } 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 { BarcodeScanner } from '@ionic-native/barcode-scanner/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"; import { LoginRequest } from "../hmg-common/services/authentication/models/login.request"; import {FileUploaderComponent} from '../hmg-common/ui/file-uploader/file-uploader.component' import { Camera, CameraOptions,PictureSourceType} from "@ionic-native/Camera/ngx"; //import { FileChooser } from "@ionic-native/file-chooser/ngx"; import { File } from "@ionic-native/file/ngx"; import { DomSanitizer } from '@angular/platform-browser'; //import { FilePath } from "@ionic-native/file-path/ngx"; //import { Base64 } from "@ionic-native/base64/ngx"; import {FileUploderProfileComponent} from '../hmg-common/ui/file-uploder-profile/file-uploder-profile.component' import { SharedDataService } from '../hmg-common/services/shared-data-service/shared-data.service'; import { DevicePermissionsService } from '../hmg-common/services/device-permissions/device-permissions.service'; import { DashboredService } from '../hmg-common/services/dashbored/dashbored.service'; import { OrganizationSalariesResponse } from '../hmg-common/services/dashbored/organization-salaries.response'; import { OpenMissingSwipesResponse} from '../hmg-common/services/dashbored/open-missing-swipes.response'; import {PerformanceAppraisalResponse} from '../hmg-common/services/dashbored/performance-appraisal.response'; import { AttendanceTrackingResponse } from '../hmg-common/services/dashbored/attendance-tracking.response'; import { OpenPeriodDatesResponse } from '../hmg-common/services/dashbored/models/openPeriodDatesResponse'; import {GetSubordinatesAttdStatusRequest} from '../hmg-common/services/dashbored/models/GetSubordinatesAttdStatusRequest'; import {GetSubordinatesLeavesRequest} from '../hmg-common/services/dashbored/models/GetSubordinatesLeavesRequest' import {GetOpenNotificationsResponse}from '../hmg-common/services/dashbored/models/GetOpenNotificationsResponse' import {GetSubordinatesAttdStatusResponse}from '../hmg-common/services/dashbored/models/GetSubordinatesAttdStatusResponse' import {GetSubordinatesLeavesResponse}from '../hmg-common/services/dashbored/models/GetSubordinatesLeavesResponse' @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; notBadge: any; lat: any; longt: any; deviceID: string; public maxFileSize =10 * 1024 * 1024; public fileUploder :FileUploaderComponent; // public fileUploderProfile:FileUploderProfileComponent location: boolean; camera: boolean 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, private eitService: EitService, private barcodeScanner: BarcodeScanner, public actionSheetCtrl: ActionSheetController, private cameraController: Camera, public sharedData: SharedDataService, private sanitizer: DomSanitizer, //private transfer: Transfer, private file: File, //private filePath: FilePath private permissions: DevicePermissionsService, public DS :DashboredService ) { this.events.subscribe("img-change", displayImg => { // this.user_image = "data:image/jpeg;base64"+displayImg; // alert("home app: "); this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg); console.log("html saved img: "+this.user_image); }); } ngOnInit() { this.getUserDetails(); this.getMenu(); this.setServicesPrivilage(); this.getCount(); this.events.subscribe("getNotCount", badge => { this.notBadge = badge; }); } getDeviceLocation() { let isVirtual = this.device.isVirtual; if(isVirtual==true){ alert("emulater>>>>>>>"+isVirtual); alert("You are using virtual device"); return false; } this.permissions.requestLocationAutherization().then(granted => { this.location = granted as boolean; if (this.location) { this.geolocation .getCurrentPosition({ maximumAge: 3000, timeout: 10000, enableHighAccuracy: true }) .then(resp => { // console.log(resp.coords.latitude); // console.log(resp.coords.longitude); this.lat = resp.coords.latitude; this.longt = resp.coords.longitude; this.attendance(); }) .catch(error => { console.log("Error getting location", error); }); } else { return false; } }); } setServicesPrivilage() { for (let i = 0; i < AuthenticationService.servicePrivilage.length; i++) if (AuthenticationService.servicePrivilage[i].Previlege == false) { document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).setAttribute("disabled", "disabled"); document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).style.filter = "grayscale(1)" } } getCount() { // const req: any = {}; // this.menuService.getNotificationCount(req).subscribe((result: any) => { // if (this.common.validResponse(result)) { // this.notBadge = // result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM; // if (this.notBadge <= 0) { // this.notBadge = null; // } // this.events.publish("getNotCount", this.notBadge); // } // }); } // 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); // }); // 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.getUserDetails(); console.log("getUserDetails"); this.geolocation .getCurrentPosition() .then(resp => { // resp.coords.latitude // resp.coords.longitude //console.log("Loc 1"); console.log(resp.coords.latitude); console.log(resp.coords.longitude); this.lat = resp.coords.latitude; this.longt = 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; //set User Info this.sharedData.setSharedData(this.userData, AuthenticatedUser.SHARED_DATA); 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)) { console.log("list menu"); this.menuList = result.List_Menu; } } } private accrualBalance() { this.common.openAccuralPage(); } private changeImage() { this.common.openChangeImagePage(); } public getMeunDetails(index) { let item = this.menuList[index]; let selMenu: MenuResponse = new MenuResponse(); selMenu.List_Menu = item; selMenu.userid = this.userData.EMPLOYEE_NUMBER; console.log("menu: "+selMenu.List_Menu); 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.common.sharedService.setSharedData(item, 'mySpecList'); this.common.openMySpecialistPage(); //this.navCtrl.push('MySpecialistPage',{"mySpecList":item}); } else { this.getMenuEntries(item); } } getMenuEntries(item) { let request: any = {}; let selEmpNo: string = null; let nationality: string = null; request.P_SELECTED_RESP_ID = -999; if (item.MENU_TYPE == "S") { request.P_SELECTED_RESP_ID = item.RESP_ID; } else { selEmpNo = this.common.sharedService.getSharedData( LoginRequest.SHARED_DATA, false ); } nationality = this.common.sharedService.getSharedData( LoginRequest.NATIONALITY_CODE, false ); request.P_SELECTED_EMPLOYEE_NUMBER = selEmpNo; request.P_MENU_TYPE = item.MENU_TYPE; request.NationalityCode = nationality; //set emp and resp id console.log("set data"); this.common.sharedService.setSharedData( selEmpNo, MenuResponse.SHARED_SEL_EMP ); this.common.sharedService.setSharedData( request.P_SELECTED_RESP_ID, MenuResponse.SHARED_SEL_RESP_ID ); this.eitService .getMenuEntries(request) .subscribe((result: MenuResponse) => { this.handleMenuEntiresResult(result); }); } sortMenuEntires(list) { let tree = this.common.list_to_tree(list); this.common.sharedService.setSharedData(tree, "menuEntries"); // this.common.navigateForward("/eit/homepage"); this.common.openEITPage(); } private handleMenuEntiresResult(result) { if (this.common.validResponse(result)) { if (this.common.hasData(result.GetMenuEntriesList)) { this.sortMenuEntires(result.GetMenuEntriesList); } } } private Change_password() { this.common.openChangePassword(); } private openPayslip() { this.common.openPayslipPage(); } private attendance() { // this.zbarOptions = { // flash: "off", // drawSight: false // }; //console.log("your currnt location is"); //console.log("Loc"); this.permissions.requestCameraAutherization().then(granted => { this.camera = granted as boolean; if (this.camera) { 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 // }); this.barcodeScanner.scan().then(barcodeData => { console.log('Barcode data', barcodeData); // let strResult = JSON.parse(barcodeData); // console.log(strResult.QRValue); this.scannedResult = barcodeData; this.deviceID = this.device.uuid; this.swipeAttendance(); }).catch(err => { console.log('Error', err); }); } swipeAttendance() { let request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest(); request.Latitude = this.lat; request.Longitude = this.longt; request.QRValue = this.scannedResult.text; 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(); } /*************************************Dashboards Services**********************************************************8 */ showOrganizationSalaries(){ this.DS.getOrganizationSalaries() .subscribe((result: OrganizationSalariesResponse ) => { });; } showOpenMissingSwipes(){ this.DS.getOpenMissingSwipes() .subscribe((result: OpenMissingSwipesResponse) => { });; } showPerformanceAppraisal(){ this.DS.getPerformanceAppraisal() .subscribe((result: PerformanceAppraisalResponse) => { }); } showAttendanceTracking(){ this.DS.getAttendanceTracking() .subscribe((result: AttendanceTrackingResponse) => { });; } openPeriodDateDashbored(){ this.DS.getOpenPeriodDates( ()=> {console.log("Error ");} ).subscribe((result:OpenPeriodDatesResponse)=>{ if (this.common.validResponse(result)) { console.log("response"); } }); } openNotificationsDashbored(){ this.DS.getOpenNotifications( ()=> {console.log("Error ");} ).subscribe((result:GetOpenNotificationsResponse)=>{ if (this.common.validResponse(result)) { console.log("response"); console.log(result); } }); } getSubordinatesLeaves(){ let request:GetSubordinatesLeavesRequest=new GetSubordinatesLeavesRequest(); request.P_DATE_FROM="/Date(1578603600000+0300)/"; //test request.P_DATE_TO="/Date(1576011600000+0300)/"; //test this.DS.getSubordinatesLeaves( request,()=> {console.log("Error ");} ).subscribe((result:GetSubordinatesLeavesResponse)=>{ if (this.common.validResponse(result)) { console.log("response"); console.log(result); } }); } getSubordinatesAttStatus(){ let request: GetSubordinatesAttdStatusRequest = new GetSubordinatesAttdStatusRequest(); request.P_SCHEDULE_DATE_FROM="/Date(1578603600000+0300)/"; //test request.P_SCHEDULE_DATE_TO="/Date(1576011600000+0300)/";//test this.DS.getSubordinatesAttStatus( request,()=> {console.log("Error ");} ).subscribe((result:GetSubordinatesAttdStatusResponse)=>{ if (this.common.validResponse(result)) { console.log("response"); console.log(result); } }); } }