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