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/my-specialist/home/home.component.ts

182 lines
5.7 KiB
TypeScript

import { MyTeamService } from './../../my-team/service/my-team.service';
import { MySpecialistService } from './../service/my-specialist.service';
import { SpecialistResponse } from './../models/specialist.response';
import { Component, OnInit } from '@angular/core';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { LoginRequest } from 'src/app/hmg-common/services/authentication/models/login.request';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent implements OnInit {
isSearch: boolean = false;
mySpecList: any;
searchKey: any;
searchKeySelect: any;
P_USER_NAME: string;
headerTitle: string = "";
selMenu: MenuResponse;
specialistEmpList: any;
IsReachEnd: boolean = false;
P_PAGE_NUM: number;
P_PAGE_LIMIT: number;
request: any;
specialistItem: any;
constructor(public cs: CommonService, private ts: TranslatorService, public mySpecialistService: MySpecialistService) { }
ngOnInit() {
let item = this.cs.sharedService.getSharedData('mySpecList', false);
this.specialistItem = item;
this.P_USER_NAME = this.cs.sharedService.getSharedData(LoginRequest.SHARED_DATA, false);
this.selMenu = new MenuResponse();
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
this.headerTitle = this.selMenu.List_Menu.SUB_MENU_NAME;
this.P_PAGE_LIMIT = 50;
this.P_PAGE_NUM = 1;
this.getEmployeeProfile();
}
getEmployeeProfile() {
let searchEmpNum: string = "";
let searchEmpName: string = "";
let searchEmpEmail: string = "";
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 = "";
}
let item: any = this.specialistItem;
this.P_PAGE_NUM = 1;
let selEmpNo: string = null;
let respID: number;
this.IsReachEnd = false;
this.cs.sharedService.setSharedData(item.RESP_ID, MenuResponse.SHARED_SEL_RESP_ID);
if (item.MENU_TYPE == 'S') {
selEmpNo = null;
respID = item.RESP_ID;
}
const request = {
P_SELECTED_EMPLOYEE_NUMBER: selEmpNo,
P_SELECTED_RESP_ID: respID,
P_PAGE_NUM: this.P_PAGE_NUM,
P_PAGE_LIMIT: this.P_PAGE_LIMIT,
P_SEARCH_EMPLOYEE_NUMBER: searchEmpNum,
P_SEARCH_EMPLOYEE_DISPLAY_NAME: searchEmpName,
P_SEARCH_EMAIL_ADDRESS: searchEmpEmail
}
this.request = request;
this.mySpecialistService.getUserInformation(
request).
subscribe((result: SpecialistResponse) => {
this.handleSpecialistResult(result);
});
}
private handleSpecialistResult(result) {
if (this.cs.validResponse(result)) {
//this.isSearch=false;
if (this.cs.hasData(result.MemberInformationList)) {
this.request.P_PAGE_NUM++;
this.specialistEmpList = result.MemberInformationList;
let lastItemIndex = result.MemberInformationList.length - 1;
if (result.MemberInformationList[lastItemIndex]) {
let lastitem = result.MemberInformationList[lastItemIndex];
if (lastitem.NO_OF_ROWS == lastitem.ROW_NUM) {
this.IsReachEnd = true;
} else {
this.IsReachEnd = false;
}
// this.navCtrl.push('SmsAuthenticatePage');
}
} else {
this.specialistEmpList = [];
}
// this.navCtrl.push("MyTeamPage",{employee:result.MemberInformationList[0],empSubordinate:{},isSecondLevel:true});
}
}
public getSpecialistInfo(i) {
// this.navCtrl.push("MyTeamPage", { employee: this.specialistEmpList[i], isSpecialist: true });
this.cs.sharedService.setSharedData(this.specialistEmpList[i], MyTeamService.EMPLOYEE_SHARED_DATA);
this.cs.sharedService.setSharedData(true, 'isSpecialist');
this.cs.openMyTeamDetails();
}
doInfinite(infiniteScroll) {
if (!this.IsReachEnd) {
this.mySpecialistService.getUserInformation(
this.request).
subscribe((result: SpecialistResponse) => {
if (this.cs.validResponse(result)) {
if (this.cs.hasData(result.MemberInformationList)) {
this.request.P_PAGE_NUM++;
result.MemberInformationList.forEach(element => {
if (element.ROW_NUM == element.NO_OF_ROWS) {
this.IsReachEnd = true;
} else {
this.IsReachEnd = false;
}
this.specialistEmpList.push(element);
// 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();
}
}
toggleSearch() {
this.isSearch = !this.isSearch;
}
}