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.
173 lines
5.4 KiB
TypeScript
173 lines
5.4 KiB
TypeScript
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
|
import { Component, OnInit } from '@angular/core';
|
|
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
|
|
import { LoginRequest } from 'src/app/hmg-common/services/authentication/models/login.request';
|
|
import { MyTeamService } from 'src/app/my-team/service/my-team.service';
|
|
|
|
@Component({
|
|
selector: 'app-home',
|
|
templateUrl: './home.component.html',
|
|
styleUrls: ['./home.component.scss'],
|
|
})
|
|
export class HomeComponent implements OnInit {
|
|
|
|
pageNum: number = 1;
|
|
pageLimit: number = 50;
|
|
empSubordinate: any;
|
|
employee: any;
|
|
public headerTitle: string = "";
|
|
IsReachEnd: boolean = false;
|
|
searchKey: any;
|
|
isSearch: boolean = false;
|
|
public searchKeySelect: any;
|
|
infiniteRequest: any;
|
|
selMenu: MenuResponse = new MenuResponse();
|
|
|
|
constructor(public cs: CommonService, public myTeamService: MyTeamService) {
|
|
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, true);
|
|
this.headerTitle = this.selMenu.List_Menu.MENU_NAME;
|
|
this.isSearch = this.cs.sharedService.getSharedData("isSearch") ? this.cs.sharedService.getSharedData("isSearch") : false;
|
|
|
|
//this.employee
|
|
if (!this.isSearch)
|
|
this.getEmpSubordinate();
|
|
}
|
|
|
|
ngOnInit() { }
|
|
|
|
getEmpSubordinate() {
|
|
let selEmpNo: string = null;
|
|
this.pageNum = 1;
|
|
this.IsReachEnd = false;
|
|
let searchEmpNum = "";
|
|
let searchEmpName = "";
|
|
let searchEmpEmail = "";
|
|
if (this.searchKey) {
|
|
switch (this.searchKeySelect) {
|
|
case '1': {
|
|
|
|
searchEmpName = this.searchKey;
|
|
searchEmpNum = "";
|
|
searchEmpEmail = "";
|
|
|
|
break;
|
|
}
|
|
case '2': {
|
|
searchEmpNum = this.searchKey;
|
|
searchEmpName = "";
|
|
searchEmpEmail = "";
|
|
break;
|
|
}
|
|
case '3': {
|
|
searchEmpEmail = this.searchKey;
|
|
searchEmpNum = "";
|
|
searchEmpName = "";
|
|
break;
|
|
}
|
|
default: {
|
|
searchEmpNum = "";
|
|
searchEmpName = "";
|
|
searchEmpEmail = "";
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
searchEmpNum = "";
|
|
searchEmpName = "";
|
|
searchEmpEmail = "";
|
|
}
|
|
if (this.isSearch)
|
|
selEmpNo = null;
|
|
else
|
|
selEmpNo = this.cs.sharedService.getSharedData(LoginRequest.SHARED_DATA, true);
|
|
// this.employee=this.empSubordinate[index];
|
|
// selEmpNo=this.employee.EMPLOYEE_NUMBER;
|
|
const body = {
|
|
P_SELECTED_EMPLOYEE_NUMBER: selEmpNo,
|
|
P_SEARCH_EMPLOYEE_NUMBER: searchEmpNum,
|
|
P_SEARCH_EMPLOYEE_DISPLAY_NAME: searchEmpName,
|
|
P_SEARCH_EMAIL_ADDRESS: searchEmpEmail,
|
|
P_PAGE_NUM: this.pageNum,
|
|
P_PAGE_LIMIT: this.pageLimit
|
|
}
|
|
this.infiniteRequest = body;
|
|
this.myTeamService.getEmployeeSubordinates(body).
|
|
subscribe((result: any) => {
|
|
this.handleEmpResult(result);
|
|
});
|
|
}
|
|
|
|
handleEmpResult(result) {
|
|
//let employeeSubordinate=resFlag.GetEmployeeSubordinatesList;
|
|
//this.nav.push("MyTeamPage",{empSubordinate:employeeSubordinate});
|
|
if (this.cs.validResponse(result)) {
|
|
if (this.cs.hasData(result.GetEmployeeSubordinatesList)) {
|
|
this.empSubordinate = result.GetEmployeeSubordinatesList;
|
|
this.infiniteRequest.P_PAGE_NUM= this.pageNum++;
|
|
let lastItemIndex = this.empSubordinate.length - 1;
|
|
if (result.GetEmployeeSubordinatesList[lastItemIndex]) {
|
|
let lastitem = result.GetEmployeeSubordinatesList[lastItemIndex];
|
|
if (lastitem.NO_OF_ROWS == lastitem.ROW_NUM) {
|
|
this.IsReachEnd = true;
|
|
} else {
|
|
this.IsReachEnd = false;
|
|
}
|
|
}
|
|
} else {
|
|
this.empSubordinate = [];
|
|
}
|
|
}
|
|
}
|
|
doInfinite(infiniteScroll) {
|
|
if (!this.IsReachEnd && this.infiniteRequest) {
|
|
|
|
// this.infiniteRequest.P_PAGE_NUM = this.pageNum;
|
|
this.myTeamService.getEmployeeSubordinates(this.infiniteRequest).
|
|
subscribe((result: any) => {
|
|
if (this.cs.validResponse(result)) {
|
|
// this.pageNum++;
|
|
this.infiniteRequest.P_PAGE_NUM= this.pageNum++;
|
|
|
|
if (this.cs.hasData(result.GetEmployeeSubordinatesList)) {
|
|
result.GetEmployeeSubordinatesList.forEach(vr => {
|
|
if (vr.ROW_NUM == vr.NO_OF_ROWS) {
|
|
this.IsReachEnd = true;
|
|
}
|
|
else {
|
|
this.IsReachEnd = false;
|
|
}
|
|
this.empSubordinate.push(vr);
|
|
// this.pro.GetVacationRulesList.push(vr);
|
|
});
|
|
} else {
|
|
this.IsReachEnd = true;
|
|
}
|
|
}
|
|
//this.P_PAGE_NUM++;
|
|
if (infiniteScroll)
|
|
infiniteScroll.target.complete();
|
|
|
|
|
|
// console.log(resFlag);
|
|
}, (Error) => console.log(Error), () => infiniteScroll.target.complete());
|
|
} else {
|
|
if (infiniteScroll)
|
|
infiniteScroll.target.complete();
|
|
}
|
|
}
|
|
getDetails(index) {
|
|
// this.navCtrl.push("MyTeamPage", { employee: this.empSubordinate[index] });
|
|
this.cs.sharedService.setSharedData({ employee: this.empSubordinate[index] }, 'MyTeamPage');
|
|
this.cs.openMyTeamPage();
|
|
}
|
|
toggleSearch() {
|
|
this.isSearch = !this.isSearch;
|
|
}
|
|
goToSubordinate() {
|
|
// this.navCtrl.push("MySubordinatePage", { isSearch: true });
|
|
this.cs.sharedService.setSharedData(true, 'isSearch');
|
|
this.cs.openMySubordinatePage();
|
|
}
|
|
|
|
}
|