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.
450 lines
12 KiB
TypeScript
450 lines
12 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 {
|
|
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;
|
|
public proID = "CS"
|
|
public inquiry: string;
|
|
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;
|
|
public topicTypeList: any;
|
|
public sectionTypeList: any;
|
|
public projectDetial: any;
|
|
public projectDep: any;
|
|
public sectionDep: any;
|
|
public projectCode;
|
|
public SelectedServiceType: any;
|
|
public depType: any;
|
|
public secType: any;
|
|
public topicType: any;
|
|
indexLastObj: any;
|
|
addAttachRequest: any = [];
|
|
TransactionID: any;
|
|
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"
|
|
];
|
|
|
|
public direction: string;
|
|
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");
|
|
this.getTicketsByEmployee();
|
|
this.getTicketTypes();
|
|
this.getProject();
|
|
|
|
//this.getCreateTicket();
|
|
|
|
|
|
}
|
|
|
|
goback() {
|
|
this.location.back();
|
|
|
|
}
|
|
|
|
showSelectedField() { }
|
|
|
|
getTicketTypes() {
|
|
const request = {
|
|
EmployeeNumber: "",
|
|
|
|
};
|
|
this.MowadhafiService.getTicketTypes(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
|
|
this.handlegetTicketTypesResult(result);
|
|
|
|
})
|
|
}
|
|
handlegetTicketTypesResult(result) {
|
|
this.HR = result.Mohemm_Itg_TicketTypesList[0].typeName;
|
|
this.complaints = result.Mohemm_Itg_TicketTypesList[1].typeName;
|
|
this.inquiry = result.Mohemm_Itg_TicketTypesList[2].typeName;
|
|
}
|
|
|
|
|
|
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.getProjectDepartments();
|
|
}
|
|
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
getDepartmentSections() {
|
|
const request = {
|
|
EmployeeNumber: "",
|
|
ItgProjectDepartmentId: this.departTypeList.projectDepartmentId,
|
|
|
|
|
|
};
|
|
this.MowadhafiService.getDepartmentSections(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
|
|
this.handlegetDepartmentSectionsResult(result);
|
|
|
|
})
|
|
}
|
|
handlegetDepartmentSectionsResult(result) {
|
|
this.sectionTypeList = result.Mohemm_ITG_DepartmentSectionsList;
|
|
|
|
this.getSectionTopics();
|
|
}
|
|
|
|
getSectionTopics() {
|
|
const request = {
|
|
EmployeeNumber: "",
|
|
ItgDepartmentSectionId: this.sectionTypeList.departmentSectionId,
|
|
|
|
};
|
|
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;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// getTicketDetails(){
|
|
// const request = {
|
|
// EmployeeNumber:'',
|
|
// ItgTicketId:this.teckitDetial.ticketId,
|
|
|
|
// };
|
|
// this.MowadhafiService.getTicketDetails(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
|
|
// {
|
|
// this.handlegetTicketDetailsResult(result);
|
|
|
|
// }) }
|
|
// handlegetTicketDetailsResult(result){
|
|
|
|
// let res;
|
|
// if(this.cs.validResponse(result)){
|
|
// res = JSON.parse(result.Mohemm_ITG_ResponseItem);
|
|
// console.log(res);
|
|
// this.teckitInfo = res.result.data;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
getTicketsByEmployee() {
|
|
const request = {
|
|
// TokenID:"xxx",
|
|
EmployeeNumber: "",
|
|
ItgPageSize: 10,
|
|
ItgPageNo: 1
|
|
|
|
};
|
|
this.MowadhafiService.getTicketsByEmployee(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
|
|
this.handlegetTicketsByEmployeeResult(result);
|
|
|
|
})
|
|
}
|
|
|
|
handlegetTicketsByEmployeeResult(result) {
|
|
let x;
|
|
if (this.cs.validResponse(result)) {
|
|
x = JSON.parse(result.Mohemm_ITG_ResponseItem);
|
|
console.log(x);
|
|
this.teckitInfo = x.result.data;
|
|
// for (let i = 0; i < this.ticketsInfo.length; i++) {
|
|
// console.log(i + ' : ' + this.ticketsInfo[i].ticketTypeName)
|
|
|
|
// }
|
|
console.log("getTicketsByEmployee()-------------------------------------------------------");
|
|
console.log(this.teckitInfo);
|
|
console.log("Type Id" + this.teckitInfo[0].ticketTypeId);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
getCreateTicket() {
|
|
// const request = {
|
|
// // EmployeeNumber:"",
|
|
// // ticketTypeId:this.teckitInfo[0].ticketTypeId,
|
|
// // projectId:this.teckitInfo[0].projectId,
|
|
// // departmentId:this.teckitInfo[0].departmentId,
|
|
// // sectionId:this.teckitInfo[0].sectionId,
|
|
// // sectionTopicId:this.teckitInfo[0].topicId,
|
|
// // description:this.teckitInfo[0].description,
|
|
// // fileColl:this.
|
|
// // employeeNumber:this.teckitInfo[0].employeeNumber,
|
|
// // ticketStatus:this.teckitInfo[0].ticketStatusName,
|
|
|
|
|
|
|
|
// // channelId:this.teckitInfo.channelId,
|
|
|
|
|
|
|
|
// };
|
|
|
|
this.cs.startLoading();
|
|
var request = new FormData();
|
|
request.append('ticketTypeId', '1');
|
|
request.append('projectId', '11');
|
|
request.append('departmentId', '1');
|
|
request.append('sectionId', '1');
|
|
request.append('sectionTopicId', '1');
|
|
request.append('description', this.Description);
|
|
request.append('fileColl', this.selectedFile[0], this.selectedFile[0].name);
|
|
request.append('employeeNumber', '13777');
|
|
request.append('ticketStatus', 'new');
|
|
request.append('Channel', '31');
|
|
request.append('channelId', '1');
|
|
request.append('LogInToken', 'test');
|
|
request.append('Token', '@dm!n');
|
|
request.append('EmployeeNumber', '13777');
|
|
request.append('MobileNo', '0567');
|
|
|
|
|
|
this.MowadhafiService.getCreateTicket(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
|
|
this.cs.stopLoading();
|
|
this.handlegetCreateTicketResult(result);
|
|
this.checkERM('After Service Submission');
|
|
|
|
})
|
|
}
|
|
handlegetCreateTicketResult(result) {
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public cancelRequest() {
|
|
this.cs.openMyRequestPage();
|
|
// this.menu.toggle();
|
|
}
|
|
|
|
|
|
/*******************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()
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
// onFileSelected(event) {
|
|
// //event.target.value = '';
|
|
// this.selectedFile = event;
|
|
// }
|
|
|
|
|
|
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;
|
|
// console.log(file);
|
|
|
|
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);
|
|
});
|
|
}
|
|
|
|
pushObject(fileData, name, type) {
|
|
// console.log("before push: "+ this.index);
|
|
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);
|
|
}
|
|
|
|
|
|
submitRequest() {
|
|
|
|
}
|
|
|
|
|
|
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');
|
|
}
|
|
|
|
})
|
|
}
|
|
}
|
|
})
|
|
|
|
}
|
|
|
|
}
|