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

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');
}
})
}
}
})
}
}