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.
mohemm_srca/Mohem/src/app/mowadhafi/hr-request-form/hr-request-form.component.ts

414 lines
11 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { Platform, Events, MenuController } from '@ionic/angular';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { LoginModel } from 'src/app/authentication/models/LoginModel';
import { SendActivationByType } from 'src/app/authentication/models/sendActivationByType';
import { FileUploader } from 'ng2-file-upload';
@Component({
selector: 'app-hr-request-form',
templateUrl: './hr-request-form.component.html',
styleUrls: ['./hr-request-form.component.scss'],
})
export class HrRequestFormComponent implements OnInit {
5 years ago
public EmpName: string;
public EmpNum: string;
public EmpGroup: string;
public EmpMobile: string;
public EmpJob: string;
public EmpOrgName: string;
public EmpPayrol: string;
public EmpPosition: string;
public EmpEmail: string;
public EmpCatMeaning: string;
public EmpGRADENAME: string;
public EmpLocation: string;
public EmpImg: string;
public userImage: any = '../assets/imgs/profile.png';
public loginData = new LoginModel();
public searchKeySelect = 'Complaints';
myColor: string = 'secondary';
public showRequestDetails = false;
5 years ago
public proID = "CS"
public inquiry: string;
5 years ago
public HR: string;
public complaints: string;
public Projectresult: any;
public EmpRelations: any;
public Hr: any;
public Payroll: any;
public GovRelation: any;
public projName: any;
public topicName: any;
public departTypeList: any;
5 years ago
public topicTypeList: any;
public sectionTypeList: any;
public projectDetial: any;
public projectDep: any;
public sectionDep: any;
public projectCode;
5 years ago
public SelectedServiceType: any;
public depType: any ="";
public secType: any = "";
public topicType: any="";
indexLastObj: any;
addAttachRequest: any = [];
TransactionID: any;
5 years ago
public teckitDetial: any;
public teckitInfo: any;
public Description: any;
public selectedFile: any;
filterAllowedType: any = [
"application/pdf",
"image/jpeg",
"image/png",
"text/plain",
"image/jpg",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
];
projctid:any;
employeeNumber:any;
ticketType: any =[];
public direction: string;
HRServices = '';
Complaints='';
Inquiry='';
input = document.getElementById ("firstLabel");
5 years ago
constructor(
public ts: TranslatorService,
public cs: CommonService,
public authService: AuthenticationService,
public sharedData: SharedDataService,
public events: Events,
public MowadhafiService: MowadhafiService,
private location: Location,
private menu: MenuController,
) {
this.direction = TranslatorService.getCurrentLanguageName();
}
ngOnInit() {
this.projectCode = this.cs.sharedService.getSharedData("projcet-code",false);
this.getTicketTypes();
this.getProject();
5 years ago
}
5 years ago
onSelectChange(event, type) {
const value = event.target.value;
this.depType = value;
console.log(value);
// this.topicTypeList =[];
// this.sectionTypeList =[];
if(type==1){
this.getDepartmentSections(value);
this.sectionTypeList =[];
this.topicTypeList =[];
}else if(type==2){
this.getSectionTopics(value);
this.topicTypeList =[];
}else if(type==3){
}else{}
}
onFileSelectedclick(event){
event.target.value = '';
}
goback() {
this.location.back();
5 years ago
}
showSelectedField() { }
getTicketTypes() {
const request = {
EmployeeNumber: "",
};
this.MowadhafiService.getTicketTypes(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handlegetTicketTypesResult(result);
})
}
handlegetTicketTypesResult(result) {
this.ticketType =result.Mohemm_Itg_TicketTypesList;
5 years ago
}
/////////////////////////////////////////////////
5 years ago
getProject() {
const request = {
EmployeeNumber: "",
ItgProjectCode: this.projectCode
};
this.MowadhafiService.getProject(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handlegetProjectResult(result);
})
}
handlegetProjectResult(result) {
this.Projectresult = result.Mohemm_Itg_ProjectsList;
this.projctid=this.Projectresult[0].projectId
5 years ago
this.getProjectDepartments();
}
////////////////////////////////////////////////////
5 years ago
getProjectDepartments() {
const request = {
EmployeeNumber: "",
ItgProjectId: this.Projectresult[0].projectId,
};
this.MowadhafiService.getProjectDepartments(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handlegetProjectDepartmentsResult(result);
})
}
handlegetProjectDepartmentsResult(result) {
this.departTypeList = result.Mohemm_ITG_ProjectDepartmentsList;
// this.getDepartmentSections();
5 years ago
}
//////////////////////////////////////////////////////
5 years ago
getDepartmentSections(value=null) {
5 years ago
const request = {
EmployeeNumber: "",
ItgProjectDepartmentId: value ?value : this.departTypeList.projectDepartmentId,
5 years ago
};
this.MowadhafiService.getDepartmentSections(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handlegetDepartmentSectionsResult(result);
})
}
handlegetDepartmentSectionsResult(result) {
this.sectionTypeList = result.Mohemm_ITG_DepartmentSectionsList;
// this.getSectionTopics();
5 years ago
}
getSectionTopics(value=null) {
5 years ago
const request = {
EmployeeNumber: "",
// ItgDepartmentSectionId: this.sectionTypeList.departmentSectionId,
ItgDepartmentSectionId: value ?value : this.sectionTypeList.departmentSectionId,
5 years ago
};
this.MowadhafiService.getSectionTopics(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handlegetSectionTopicsResult(result);
})
}
handlegetSectionTopicsResult(result) {
// this.topicName=result.Mohemm_ITG_SectionTopicsList[0].topicName
this.topicTypeList = result.Mohemm_ITG_SectionTopicsList;
}
/*******************Create Ticket Function*************/
5 years ago
CreateTicket() {
var authUser =this.authService.getAuthenticatedRequest();
5 years ago
this.cs.startLoading();
var request = new FormData();
request.append('ticketTypeId', this.SelectedServiceType);
request.append('projectId', this.projctid);
request.append('departmentId', this.depType);
request.append('sectionId', this.secType);
request.append('sectionTopicId', this.topicType);
5 years ago
request.append('description', this.Description);
5 years ago
request.append('fileColl', this.selectedFile[0], this.selectedFile[0].name);
request.append('employeeNumber', authUser.P_USER_NAME);
5 years ago
request.append('ticketStatus', 'new');
request.append('channelId', '3');
request.append('Channel', authUser.Channel.toString());
request.append('LogInToken', authUser.LogInTokenID);
request.append('Token', authUser.TokenID);
request.append('EmployeeNumber', authUser.P_USER_NAME);
request.append('MobileNo', authUser.MobileNumber);
5 years ago
this.MowadhafiService.getCreateTicket(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
5 years ago
this.cs.stopLoading();
5 years ago
this.handlegetCreateTicketResult(result);
5 years ago
this.checkERM('After Service Submission');
//hear you have to redirect page
5 years ago
this.cs.openMyRequestPage();
5 years ago
})
}
5 years ago
handlegetCreateTicketResult(result) {
5 years ago
}
5 years ago
public cancelRequest() {
this.cs.openMyRequestPage();
// this.menu.toggle();
}
5 years ago
/*******************Add attchement Functions*************/
public uploader: FileUploader = new FileUploader({
allowedMimeType: [
"application/pdf",
"image/jpeg",
"image/png",
"text/plain",
"image/jpg",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
],
maxFileSize: 10 * 1024 * 1024,
formatDataFunctionIsAsync: true,
formatDataFunction: async item => {
return new Promise((resolve, reject) => {
resolve({
name: item._file.name,
length: item._file.size,
contentType: item._file.type,
date: new Date()
});
});
}
});
5 years ago
onFileSelected(input) {
if (!(this.filterAllowedType.indexOf(input.target.files[0].type) > -1)) {
let msg: string = "";
msg = this.ts.trPK("general", "noFileSelect");
this.cs.presentAlert(msg);
return;
} // todo: show alert that you tried uploading wrong files
else {
const file = input.target.files[0];
this.selectedFile = input.target.files;
5 years ago
this.getBase64(file).then(data =>
this.pushObject(data, file.name, file.type)
);
}
}
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
5 years ago
}
5 years ago
pushObject(fileData, name, type) {
5 years ago
this.indexLastObj++;
try {
let array = name.split(".");
let attachType: string = array[array.length - 1];
this.addAttachRequest.push({
AttachmentID: this.indexLastObj,
P_FILE_CONTENT_TYPE: attachType, //type.split('/')[1],
P_FILE_DATA: fileData.split(",")[1],
P_FILE_NAME: name, //.split('.')[0],
P_TRANSACTION_ID: this.TransactionID
});
} catch (e) { }
}
removeFile(objectitem) {
let objIndex1 = this.uploader.queue.findIndex(item => item == objectitem);
this.uploader.queue.splice(objIndex1, 1);
let objIndex = this.addAttachRequest.findIndex(
item => item.AttachmentID == objectitem.AttachmentID
);
this.addAttachRequest.splice(objIndex, 1);
}
5 years ago
submitRequest() {
5 years ago
}
5 years ago
checkERM(status) {
this.authService.checkAds({
EmployeeNumber: '',
ItgEnableAt: status, //After Service Submission
ItgServiceName: "Ticket"
}, () => { }, this.ts.trPK('general', 'ok')).subscribe(res => {
var result = JSON.parse(res.Mohemm_ITG_ResponseItem).result.data;
this.cs.sharedService.setSharedData(
result,
AuthenticationService.SERVEY_DATA
)
if (!CommonService.SKIP && result) {
if (result.notificationType == 'Survey') {
this.cs.navigateForward('/erm-channel/survey');
} else {
this.authService.adsDetails({
"ItgNotificationMasterId": result['notificationMasterId']
},
() => { }, this.ts.trPK('general', 'ok')
).subscribe((result) => {
var data = result.Mohemm_ITG_ResponseItem;
if (data) {
this.cs.sharedService.setSharedData(
JSON.parse(data),
AuthenticationService.ADS_DATA
);
this.cs.navigateForward('/erm-channel/home');
}
})
}
}
})
}
}