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

405 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,
// };
var request = new FormData();
request.append('EmployeeNumber',"" );
request.append('ticketTypeId', this.teckitInfo[0].ticketTypeId );
request.append('projectId',this.teckitInfo[0].projectId);
request.append('departmentId',this.teckitInfo[0].departmentId );
request.append('sectionId',this. teckitInfo[0].sectionId );
request.append('sectionTopicId', this.teckitInfo[0].topicId );
request.append('description',this.teckitInfo[0].description );
request.append('fileColl',this.selectedFile[0],this.selectedFile[0].name );
request.append('employeeNumber',this.teckitInfo[0].employeeNumber );
request.append('ticketStatus',this.teckitInfo[0].ticketStatusName );
//request.append('file', this.uploadForm.get('profile').value);
this.MowadhafiService.getCreateTicket(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetCreateTicketResult(result);
}) }
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()
});
});
}
});
onFileSelectedclick(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];
// 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(){
}
}