{"version":3,"file":"src_app_auth_auth_module_ts.js","mappings":"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","names":["CountdownTimerComponent","constructor","this","ngOnInit","startTimer","ngOnDestroy","timerSubscription","unsubscribe","endTime","Date","now","durationInSeconds","timer","subscribe","currentTime","remainingTime","Math","max","ceil","displayTime","formatTime","seconds","minutes","floor","remainingSeconds","pad","value","selectors","core","TimerDialogComponent","dialogRef","setTimeout","close","LoginComponent","router","formBuilder","snackBar","userService","dialog","appRef","loadingService","notificationService","loginForm","group","managerRefNo","fesm2020_forms","aadhaarNumber","consent","adminLoginForm","userName","password","sessionStorage","clear","reloadApp","tick","window","location","reload","openDialog","login","get","valid","setItem","JSON","stringify","getLoggedInUsers","response","IS_AUTH","showError","markAllAsTouched","markAsDirty","open","width","disableClose","afterClosed","result","console","log","forkJoin","getLogin","loadMaster","getMaster","res","ERRORCODE","ERROR","REG_NO","IS_COMPLETED","IS_COMPLETED_PHASE2","setLoading","setCounter","getCounter","navigate","queryParams","phase2Complete","uploadDocsComplete","IS_DOCUMENT_UPLOADED","showSuccess","invalid","adminLogin","ERRMSG","VALIDUSER","getUserRole","data","userRole","IS_ADMIN","IS_ORGANIZER","IS_INTERVIEWER","IS_SUPPORT","IS_HR","IS_MIS","IS_EXP","localStorage","DIV_TYPE","error","Message","keyPress","event","inputChar","String","fromCharCode","charCode","keyCode","test","preventDefault","ctx","RegisterComponent","registerLoginForm","registerNumber","aadharNo","onpaseEvent","target","replace","length","controls","contactNumber","setValue","slice","newRegisteration","registerLogin","getLoggedInRegisterUser","AlphabetOnlyDirective","RegExp","onInputChange","inputElement","inputValue","i0","JobApplicationFormComponent","sharedMethods","adminService","datePipe","BehaviorSubject","listHQSubject","asObservable","navigator","userAgent","MSStream","document","body","classList","add","file","fullName","mobile","aadhaar","eMailID","currLocation","currOrg","currState","desig","experienceYears","experienceMonths","salary","selectedDivision","selectedDate","otp","todayDate","isOtpVerified","hqFlexibility","hqPrefrenceOne","hqPrefrenceTwo","hqPrefrenceThree","currentDesignation","resumeServiceLoadMasters","staffCode","listDivision","ListDivisionHR","listState","ListState","filteredDivision","listHQ","ListHQ","masterListHQ","next","onFileSelected","input","files","includes","type","size","docs","push","findTCodeByName","name","find","hq","T_NAME","toLowerCase","T_CODE","undefined","onSubmit","fileListData","DIV_CODE","NAME","PHONE","DOB","transform","EMAIL","LOCATION","STATE","COMPANY","DESIGNATION","EXP_YEAR","EXP_MONTH","PACKAGE","PANCARD","AADHAR","CURRENT_DESIG","HQ_PREF","HQ_PREF1","HQ_PREF2","HQ_PREF3","payload","listdata","inputFieldAadhar","nativeElement","focus","validateField","inputFieldEmail","uploadResume","applyFilterDivision","filterValue","trim","filter","staff","keyPressAlphaNumeric","inputFieldCurrentDesignation","allowOnlyDigits","onlyNumericValue","validationExperienceMonths","keypressEmail","every","code","validationAadhaar","validationMobile","sendOtp","isOtpSent","sendMobileOtp","startOtpTimer","blur","inputFieldDesignation","_onBlur","inputFieldFullName","inputFieldLocation","inputFieldDateOfBirth","inputFieldCurrentState","inputFieldExperience","inputFieldMonth","inputFieldResume","inputFieldMobile","inputFieldHQ","isTimerActive","interval","setInterval","clearInterval","verifySentOtp","verifyOTP","err","hqPrefrenceOneBlur","elementRef","option","hqPrefrenceTwoBlur","hqPrefrenceThreeBlur","displayFnHq","onHqFlexibilityChange","hqPrefrenceTwoDisabled","hqPrefrenceThreeDisabled","searchHQ","seq","hqSearchOne","hqSearchTwo","hqSearchThree","ROOT_STATE_CODE","resetValue","validationInHq","resetDivison","searchDivision","changeCurrentDesig","formatDate","track","datePattern","day","month","year","split","map","Number","dob","ageValid","checkAgeValidity","today","age","getFullYear","monthDiff","getMonth","getDate","createPdf","DatePipe","decls","$event","ResumeUploadConfirmComponent","reqNo","getItem","onClose","pdfMakeX","__webpack_require__","pdfFontsX","vfs","pdfMake","InterviewFormatCandidateService","methService","interviewformatPDF","apiResonse","Promise","resolve","reject","calculateAge","birthDate","filterList","list","key","item","singleEvaluationSheet","printData","printDataList","ListIntf","forEach","element","M_CODE","AGE","listAttachments","ListAttachments","listEMR","ListEMR","listEXP","ListEXP","listFamily","ListFamily","listIntf","listQual","ListQual","index","genData","pageBreak","text","fontSize","alignment","color","bold","decoration","margin","DIV_NAME","toUpperCase","style","blackheadingFontSize","columnGap","columns","fieldheadingFontSize","INTW_BY","textFontSize","INTW_DESIG","INTW_HQ","INTW_STATE","INTW_DIV","canvas","lineColor","x1","y1","x2","y2","lineWidth","ACTION","leftTraining","interviewPerforma","x","y","w","h","background","INT_PLACE","CRTD_ON","DESIG_NAME","HQ_PREF1_NAME","wrap","HQ_PREF2_NAME","HQ_PREF3_NAME","HQ_FLEX","personalDetails","FIRST_NAME","MIDDLE_NAME","LAST_NAME","ADD1","ADD2","ADD3","DIST_NAME","CITY","STATE_NAME","CURR_ADD1","CURR_ADD2","CURR_ADD3","CURR_DIST_NAME","CURR_CITY","CURR_STATE_NAME","PHONE_RES","PHONE_MOB","FLDNAME","ID_TEXT","formatDateForInterviewPerforma","ChangeDateFormate","MAR_STATUS_NAME","bodyDataQual","reverse","QualEle","dataRow","Q_FROM","Q_TO","BOARD","SPEC_NAME","PER","qualificationDetails","table","headerRows","widths","dontBreakRows","familyBackground","FATHER_NAME","FATHER_OCCU","FATHER_EARNING","MOTHER_NAME","MOTHER_OCCU","MOTHER_EARNING","OWN_HOUSE_NAME","HOUSE_LOCATION","RENT","bodyDataFamily","familyEle","M_NAME","RELATIONS","OCCUPATION","PROFESSION","SALARY","detailsOfBrotherSisterJijaJi","bodyAnyRelatives","detailsOfAnyrelativesOrFriendsWorkingAsChemists","GeneralDetails","PRESENT_AMB","PREVIOUS_AMB","MEDNDESEASE","MEDICAL_HISTORY_NAME","AMT_COMFORTABLE_LIFE","AMT_LUXIRIOUS_LIFE","OWN_VECHICLE","VECHICLE_NO","PRV_INTERVIEWED","PRV_INTERVIEW_TM","bodyDataExp","expr","DESIG","T_PACKAGE","HQ","E_FROM","CURR_EMPLOYER","E_TO","REASON_TO_LEAVING","experienceStartFromCurrentOrganisation","footer","STRENGTH","WEAKNESS","docDefinition","pageSize","pageOrientation","content","getBlob","blob","blobUrl","URL","createObjectURL","printPDF","getBase64","base64Data","downloadPDF","pdfName","download","factory","defaultValue","environment","InterviewPerformaComponent","route","printService","interviewformatService","itapno","snapshot","paramMap","username","params","newitapno","decryptNumber","isValid","isValidItapno","toString","createInterviewPerforma","encrypted","parseInt","arg0","getRPTInterviewPerformaNewPer","setPrintData","getBaseUrl","generatePDF","then","getFileURL","href","catch","isNaN","protocol","host","link","createElement","click","joining_confirmation_component_defaultValue","JoiningConfirmationComponent","fb","joiningForm","doj","phone","email","address","addressAvailable","line1","line2","line3","city","pin","postalCode","district","state","country","bankDetails","bankName","paymentMode","ifsc","accountNumber","nameAsPerBank","newAccount","filterDataForm","joinee","managerConfirmation","mankindDivisions","firstLine","disable","managerTcode","newStaffCode","getDataOnInit","getMasterDataInfo","LoadMasters","loadMasters","masterData","bankMaster","ListBank","stateMaster","districtMasterRecord","managerMaster","ListUnderManager","loadCandidate","joineeList","filteredJoinee","applyFilterJoinee","warn","applyFilter","formValues","reset","candidateRecord","candidateCode","isManager","loadRecord","enable","candidateDetail","patchFormValue","getPostalCode","CURR_PINCODE","filterCItyBasedOnState","CURR_STATE","patchValue","DOJ","TADD1","TADD2","TADD3","CURR_POSTAL_CODE","CURR_DIST","BANKNAME","PAYMENT_METHOD","IFSC_CODE","ACCOUNT_NO","NAME_AS_PER_BANK","NEW_BANK_REQ","onPaymentModeChange","clearFormValue","selectJoinee","pinCode","loadPostalCode","postalCodeMaster","ListPostalCode","stateCode","districtMaster","onPinChange","onStateChange","onAddressAvailableChange","checked","toggleAddressFields","addressGroup","submitManager","getRawValue","SaveFL","submit","formDataJson","getFormDataAsJson","candidateSaveData","dojValue","localDate","setMinutes","getMinutes","getTimezoneOffset","formattedDate","toISOString","DIVISION_NAME","DESIG_CODE","HQ_NAME","MANAGER_ID","STATUS","NO_CURR_ADD","TRN_DATE","routes","path","redirectTo","pathMatch","component","AuthRoutingModule","common","AuthModule","provide","http","useClass","loading_interceptor","multi","timeout_interceptor","imports","form_field","autocomplete","fesm2020_radio","fesm2020_checkbox","fesm2020_button","tabs","datepicker","fesm2020_core","fesm2020_select","shared_module","ng2_pdf_viewer","icon","expansion","button_toggle","toolbar"],"sourceRoot":"webpack:///","sources":["./src/app/shared-components/countdown-timer/countdown-timer.component.ts","./src/app/shared-components/countdown-timer/countdown-timer.component.html","./src/app/auth/timer-dialog/timer-dialog.component.ts","./src/app/auth/timer-dialog/timer-dialog.component.html","./src/app/auth/login/login.component.html","./src/app/auth/login/login.component.ts","./src/app/auth/register/register.component.ts","./src/app/auth/register/register.component.html","./src/app/services/alphabet-only.directive.ts","./src/app/auth/job-application-form/job-application-form.component.html","./src/app/auth/job-application-form/job-application-form.component.ts","./src/app/auth/resume-upload-confirm/resume-upload-confirm.component.html","./src/app/auth/resume-upload-confirm/resume-upload-confirm.component.ts","./src/app/services/interview-format-candidate.service.ts","./src/app/auth/interview-performa/interview-performa.component.ts","./src/app/auth/joining-confirmation/joining-confirmation.component.html","./src/app/auth/joining-confirmation/joining-confirmation.component.ts","./src/app/auth/auth-routing.module.ts","./src/app/auth/auth.module.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'app-countdown-timer',\n templateUrl: './countdown-timer.component.html',\n styleUrls: ['./countdown-timer.component.scss']\n})\nexport class CountdownTimerComponent implements OnInit {\n @Input() durationInSeconds: number = 10;\n constructor() { }\n\n ngOnInit(): void {\n this.startTimer();\n }\n\n displayTime: string = '';\n private timerSubscription: Subscription | undefined;\n\n ngOnDestroy(): void {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n }\n }\n\n private startTimer(): void {\n const startTime = Date.now();\n const endTime = startTime + this.durationInSeconds * 1000;\n\n this.timerSubscription = timer(0, 1000).subscribe(() => {\n const currentTime = Date.now();\n const remainingTime = Math.max(0, Math.ceil((endTime - currentTime) / 1000));\n\n this.displayTime = this.formatTime(remainingTime);\n\n if (remainingTime === 0) {\n this.timerSubscription?.unsubscribe();\n }\n });\n }\n\n private formatTime(seconds: number): string {\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n\n return `${this.pad(minutes)}:${this.pad(remainingSeconds)}`;\n }\n\n private pad(value: number): string {\n return value < 10 ? `0${value}` : `${value}`;\n }\n\n}\n","<div class=\"align-items-center justify-content-center\">\n <p style=\"color: red; font-size: 30px; font-weight: bold;\">{{displayTime}}</p>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-timer-dialog',\n templateUrl: './timer-dialog.component.html',\n styleUrls: ['./timer-dialog.component.scss']\n})\nexport class TimerDialogComponent implements OnInit {\n\n timer = 20\n\n constructor(public dialogRef: MatDialogRef<TimerDialogComponent>) { }\n\n ngOnInit(): void {\n // Set a timer for 10 seconds\n setTimeout(() => {\n this.dialogRef.close();\n }, this.timer * 1000);\n }\n\n\n}\n","<div class=\"p-2\">\n <div class=\"align-items-center justify-content-center\">\n <app-countdown-timer [durationInSeconds]=\"timer\"></app-countdown-timer>\n </div>\n <div>\n <p style=\"font-size: 20px; font-weight: bold;\" class=\"py-2\">\n Please read carefully!!!\n </p>\n </div>\n <label><strong>WARNING: </strong> The information filled should be absolutely complete and correct. Strict action will be taken, if\n any incorrect information is entered in the form\n </label>\n</div>","<div class=\"parent\">\r\n <!-- <div class=\"header\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"ITap Logo\" style=\"width: 125px;height: 85px;\">\r\n <p style=\"text-align: center;\">Version 1.0.1</p>\r\n </div>\r\n </div> -->\r\n <div class=\"header\" style=\"justify-content: space-between;\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-sm-0 col-md-2 col-lg-2\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\">\r\n </div>\r\n </div>\r\n <!-- <h1>Login</h1> -->\r\n <div class=\"col-sm-0 col-md-2 col-lg-2 text-center\" style=\"margin-right: -35px;\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"Itap Logo\" style=\"width: 125px; height: 85px;\">\r\n <!-- QA -->\r\n <p style=\"text-align: center;\">Version: 2.0.1</p>\r\n <!-- Production -->\r\n <!-- <p style=\"text-align: center;\">Version: 2.0.0</p> -->\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"responsive-header justify-content-between\">\r\n <div class=\"row align-items-center p-2\">\r\n <div style=\"text-align-start: center; margin-left: -35px;\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\" style=\"width: 125px; height: 65px;\">\r\n </div>\r\n </div>\r\n <h1>Login</h1>\r\n <div class=\"text-align-center p-2\" style=\"text-align-last: center;\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"Itap Logo\" style=\"width: 75px; height: 55px;\">\r\n QA\r\n <p style=\"text-align: center;\">Version: 1.2.5</p>\r\n Production\r\n <p style=\"text-align: center;\">Version: 2.0.0</p> \r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <div>\r\n <div class=\"container mt-4\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-6 mx-auto\">\r\n\r\n <div class=\"card p-4\">\r\n <mat-tab-group>\r\n <mat-tab label=\"Candidate Login\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"login()\" autocomplete=\"off\"\r\n style=\"height: 280px !important;\">\r\n <div class=\"col-12 mt-4\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Manager's reference number</mat-label>\r\n <input matInput formControlName=\"managerRefNo\" maxlength=\"12\" type=\"tel\"\r\n class=\"form-control\" (keypress)=\"keyPress($event)\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Candidate's Aadhaar Number</mat-label>\r\n <input matInput formControlName=\"aadhaarNumber\" minlength=\"12\"\r\n maxlength=\"12\" type=\"tel\" class=\"form-control\" #aadhaarNo\r\n (keypress)=\"keyPress($event)\">\r\n <mat-error class=\"mt-neg-1\" *ngIf=\"loginForm.get('aadhaarNumber')?.invalid && \r\n loginForm.get('aadhaarNumber')?.touched && \r\n !loginForm.get('aadhaarNumber')?.hasError('maxlength') &&\r\n loginForm.get('aadhaarNumber')?.value.length > 0\">\r\n Kindly enter valid Aadhaar Number\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-3 mb-3\">\r\n <mat-checkbox formControlName=\"consent\" color=\"primary\"\r\n class=\"me-1 mt-1\"></mat-checkbox>\r\n <span class=\"p-1\" style=\"text-align: left;\">\r\n I agree to the Terms & Conditions that the login provided is for applying a\r\n job in Mankind. Filling and submitting this application does not imply any\r\n assurance for interview, travel expense for interview and job in Mankind.\r\n <!-- I agree Terms & Conditions that The login Provided is for Applying a job in\r\n Mankind.\r\n Filling and submitting this application does not imply any assurance for\r\n interview,\r\n travel expense for interview and job in Mankind. -->\r\n </span>\r\n </div>\r\n <div style=\"text-align: center;\">\r\n <button mat-raised-button color=\"primary\" type=\"submit\">Login</button>\r\n </div>\r\n </form>\r\n </mat-tab>\r\n <mat-tab class=\"mb-3\" label=\"Employee Login\" disabled=\"false\">\r\n\r\n <form class=\"\" [formGroup]=\"adminLoginForm\" (ngSubmit)=\"adminLogin()\"\r\n autocomplete=\"off\" style=\"height: 304px; padding-top: 50px;\">\r\n <div class=\"col-12 mt-4\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"userName\" class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Password</mat-label>\r\n <input matInput formControlName=\"password\" type=\"password\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div style=\"text-align: center;\">\r\n <button mat-raised-button color=\"primary\" type=\"submit\">Login</button>\r\n </div>\r\n </form>\r\n\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ApplicationRef, Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TimerDialogComponent } from '../timer-dialog/timer-dialog.component';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n loginForm: FormGroup;\r\n adminLoginForm: FormGroup;\r\n // registerLoginForm: FormGroup;\r\n\r\n constructor(\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private snackBar: MatSnackBar,\r\n private userService: UserService,\r\n public dialog: MatDialog,\r\n private appRef: ApplicationRef,\r\n private loadingService: LoaderService,\r\n private notificationService: NotificationService,\r\n ) {\r\n\r\n this.loginForm = this.formBuilder.group({\r\n managerRefNo: ['', [Validators.required]],\r\n aadhaarNumber: ['', [Validators.required, Validators.pattern('^[2-9]{1}[0-9]{3}[0-9]{4}[0-9]{4}$'), Validators.maxLength(12), Validators.minLength(12)]],\r\n consent: ['', [Validators.requiredTrue]],\r\n });\r\n\r\n this.adminLoginForm = this.formBuilder.group({\r\n userName: ['', [Validators.required]],\r\n password: ['', [Validators.required]],\r\n });\r\n // this.registerLoginForm = this.formBuilder.group({\r\n // registerNumber: [''],\r\n // // contactNumber: ['',[Validators.pattern(this.mobNumberPattern)]],\r\n // aadharNo: ['', Validators.pattern('^[2-9]{1}[0-9]{3}[0-9]{4}[0-9]{4}$')],\r\n // })\r\n }\r\n\r\n ngOnInit(): void {\r\n sessionStorage.clear();\r\n // localStorage.clear();\r\n // this.reloadApp()\r\n }\r\n reloadApp() {\r\n this.appRef.tick(); // Trigger Angular change detection\r\n window.location.reload(); // Reload the application\r\n }\r\n\r\n // openDialog() {\r\n // this.dialog.open(Dialog);\r\n // }\r\n openDialog(): void {\r\n\r\n }\r\n\r\n\r\n login() {\r\n if (this.loginForm.get('managerRefNo')?.valid &&\r\n this.loginForm.get('aadhaarNumber')?.valid &&\r\n this.loginForm.get('consent')?.valid) {\r\n sessionStorage.setItem('loginValue', JSON.stringify(this.loginForm.value));\r\n this.userService.getLoggedInUsers(this.loginForm.value, '0').subscribe((response: any) => {\r\n if (response[0].IS_AUTH == 0) {\r\n this.notificationService.showError('Invalid Manager Reference Number');\r\n } else {\r\n this.openDialog()\r\n this.loginForm.markAllAsTouched()\r\n this.loginForm.markAsDirty();\r\n if (this.loginForm.valid) {\r\n const dialogRef = this.dialog.open(TimerDialogComponent, {\r\n width: '50%',\r\n disableClose: true, // Set this option to prevent closing by clicking outside the dialog\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n forkJoin({\r\n getLogin: this.userService.getLoggedInUsers(this.loginForm.value, '0'),\r\n loadMaster: this.userService.getMaster(\"1\")\r\n }).subscribe((res: any) => {\r\n\r\n if (res.loadMaster[0].ERRORCODE == 1) {\r\n this.notificationService.showError(res.loadMaster[0].ERROR);\r\n // this.loadingService.setLoading(false);\r\n // this.loadingService.requestCount--;\r\n } else sessionStorage.setItem(\"masters\", JSON.stringify(res.loadMaster[0]));\r\n\r\n sessionStorage.setItem(\"APPUSERNAME\", this.loginForm.value.managerRefNo);\r\n sessionStorage.setItem(\"AADHAAR_NO\", this.loginForm.value.aadhaarNumber);\r\n\r\n // Route to Phase 1: New Registeration\r\n if (res.getLogin[0].ERRORCODE == 1) {\r\n this.notificationService.showError(\"Unable to log in. Please check your credentials and try again.\");\r\n // this.loadingService.setLoading(false);\r\n // this.loadingService.requestCount--;\r\n } else\r\n if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO == '0' && res.getLogin[0].IS_COMPLETED == '0' && res.getLogin[0].IS_COMPLETED_PHASE2 == '0') {\r\n sessionStorage.setItem(\"REG_No\", '');\r\n // localStorage.setItem(\"REG_No\", '');\r\n this.loadingService.setLoading(true);\r\n this.loadingService.setCounter();\r\n console.log(\"User registration get loading\", this.loadingService.getCounter());\r\n this.router.navigate(['user-registration']);\r\n\r\n }\r\n // Route to Phase 1: Existing User\r\n else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '0' && res.getLogin[0].IS_COMPLETED_PHASE2 == '0') {\r\n sessionStorage.setItem(\"REG_No\", res.getLogin[0].REG_NO);\r\n this.loadingService.setLoading(true);\r\n this.loadingService.setCounter();\r\n console.log(\"User registration get loading\", this.loadingService.getCounter());\r\n this.router.navigate(['user-registration']);\r\n\r\n }\r\n // Route to Phase 2\r\n else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '0') {\r\n sessionStorage.setItem(\"REG_No\", res.getLogin[0].REG_NO);\r\n this.loadingService.setLoading(true);\r\n this.loadingService.setCounter();\r\n console.log(\"Phase 2 get loading\", this.loadingService.getCounter());\r\n this.router.navigate(['phase2'], { queryParams: { phase2Complete: \"0\", uploadDocsComplete: \"0\" } });\r\n }\r\n // ROUTE TO UPLOAD DOCUMENTS\r\n else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '1' && res.getLogin[0].IS_DOCUMENT_UPLOADED == '0') {\r\n // else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '1') {\r\n sessionStorage.setItem(\"REG_No\", res.getLogin[0].REG_NO);\r\n this.loadingService.setLoading(true);\r\n this.loadingService.setCounter();\r\n console.log(\"Phase 2 get loading\", this.loadingService.getCounter());\r\n this.router.navigate(['phase2'], { queryParams: { phase2Complete: \"1\", uploadDocsComplete: \"0\" } });\r\n }\r\n // Registeration Process Completed\r\n else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '1' && res.getLogin[0].IS_DOCUMENT_UPLOADED == '1') {\r\n // else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '1') {\r\n this.notificationService.showSuccess('You have already submitted the Interview Performa');\r\n }\r\n else if (res.getLogin[0].IS_AUTH == 1 && res.getLogin[0].REG_NO !== '0' && res.getLogin[0].IS_COMPLETED == '1' && res.getLogin[0].IS_COMPLETED_PHASE2 == '1') {\r\n this.notificationService.showSuccess('You have already submitted the Interview Performa');\r\n }\r\n else {\r\n this.notificationService.showError('Invalid user');\r\n }\r\n });\r\n });\r\n // console.log(\"Login Form: \", this.loginForm.value)\r\n\r\n\r\n } else {\r\n if (this.loginForm.get('managerRefNo')?.invalid || this.loginForm.get('aadhaarNumber')?.invalid)\r\n this.notificationService.showError('Please fill all the mandatory fields');\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.notificationService.showError('Please check Terms & Conditions');\r\n }\r\n }\r\n adminLogin() {\r\n this.adminLoginForm.markAllAsTouched()\r\n this.adminLoginForm.markAsDirty();\r\n if (this.adminLoginForm.valid) {\r\n // console.log(\"Login Form: \", this.loginForm.value)\r\n forkJoin({\r\n getLogin: this.userService.adminLogin(this.adminLoginForm),\r\n // loadMaster: this.userService.getMaster(\"1\")\r\n }).subscribe((res: any) => {\r\n\r\n console.log(\"Admin Login Successfull ===> \", res)\r\n if (res.getLogin[0].ERRMSG !== '') {\r\n console.log(\"Erro message\", res.getLogin[0].ERRMSG)\r\n this.notificationService.showError(res.getLogin[0].ERRMSG);\r\n } else if (res.getLogin[0].VALIDUSER == true) {\r\n console.log(\"Candidate Login Successfull ===> \", res)\r\n\r\n this.loadingService.setLoading(true);\r\n this.loadingService.setCounter();\r\n console.log(\"Admin loading get loading\", this.loadingService.getCounter());\r\n\r\n sessionStorage.setItem(\"APPUSERNAME\", this.adminLoginForm.value.userName);\r\n // localStorage.setItem(\"APPUSERNAME\", this.adminLoginForm.value.userName);\r\n\r\n /* ********************************CALLING USER ROLE API***************************** */\r\n this.userService.getUserRole(this.adminLoginForm.get('userName')?.value).subscribe((data: any) => {\r\n\r\n console.log('Response from getUserRole API ===> ', data)\r\n let userRole = ''\r\n\r\n userRole =\r\n data[0]?.IS_ADMIN === 'Yes' ? 'ADMIN' : (\r\n data[0].IS_ORGANIZER === 'Yes' ? 'ORGANIZER' : (\r\n data[0].IS_INTERVIEWER === 'Yes' ? 'INTERVIEWER' : (\r\n data[0].IS_SUPPORT === 'Yes' ? 'SUPPORT' : (\r\n data[0].IS_HR === 'Yes' ? 'HR' : (\r\n data[0].IS_MIS === 'Yes' ? 'MIS' : (\r\n data[0].IS_EXP === 'Yes' ? 'EXP' : ''\r\n ))))));\r\n\r\n console.log(\"User Role: \", userRole)\r\n \r\n if (userRole !== '') {\r\n localStorage.setItem(\"DIV_TYPE\", data[0].DIV_TYPE)\r\n this.router.navigate(['admin-dashboard']);\r\n sessionStorage.setItem(\"USER_ROLE\", userRole)\r\n } else {\r\n this.notificationService.showError('User role unavailable');\r\n }\r\n }, (error: any) => { console.log(\"Error: \", error) })\r\n\r\n } else {\r\n this.notificationService.showError(res.getLogin[0].ERRMSG);\r\n console.log(\"Error\")\r\n }\r\n //*********************set master******************* */\r\n // console.log(\"LoginPAGE:\", res.loadMaster[0])\r\n // console.log('GetLogin: ', res.getLogin)\r\n // sessionStorage.setItem(\"masters\", JSON.stringify(res.loadMaster[0]));\r\n // this.loginForm.get('aadhaarNumber')\r\n // sessionStorage.setItem(\"AADHAAR_NO\", this.loginForm.value.aadhaarNumber);\r\n\r\n //**********************set master************************* */\r\n\r\n // Route to Phase 1: New Registeration\r\n }, (error) => {\r\n console.log(\"Error: \", error.error.Message)\r\n });\r\n\r\n } else {\r\n if (this.adminLoginForm.get('userName')?.invalid || this.loginForm.get('aadhaarNumber')?.invalid)\r\n this.notificationService.showError('Please fill all the mandatory fields');\r\n\r\n // else if (this.loginForm.get('consent')?.invalid)\r\n }\r\n }\r\n\r\n keyPress(event: any) {\r\n let arr = [];\r\n const pattern = /[0-9+\\-]/;\r\n const inputChar = String.fromCharCode(event.charCode);\r\n if (event.keyCode !== 8 && !pattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-register',\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.scss']\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n mobNumberPattern = \"^[6-9]{1}[0-9]{9}$\";\r\n registerLoginForm: FormGroup;\r\n constructor(private router: Router, private formBuilder: FormBuilder, \r\n private snackBar: MatSnackBar, private userService: UserService, private notificationService: NotificationService,) {\r\n\r\n this.registerLoginForm = this.formBuilder.group({\r\n registerNumber: [''],\r\n // contactNumber: ['',[Validators.pattern(this.mobNumberPattern)]],\r\n aadharNo: ['', Validators.pattern('^[2-9]{1}[0-9]{3}[0-9]{4}[0-9]{4}$')],\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n onpaseEvent(event: any) {\r\n setTimeout(() => {\r\n let value = event.target.value.replace(/\\s+/g, \"\");\r\n if (value && value.length > 12) {\r\n this.registerLoginForm.controls['contactNumber'].setValue(value.slice(0, 10));\r\n }\r\n }, 100);\r\n }\r\n\r\n keyPress(event: any) {\r\n const pattern = /[0-9+\\-]/;\r\n const inputChar = String.fromCharCode(event.charCode);\r\n if (event.keyCode !== 8 && !pattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n newRegisteration() {\r\n sessionStorage.setItem(\"REG_No\", '');\r\n this.router.navigate(['user-registration']);\r\n }\r\n\r\n registerLogin() {\r\n this.registerLoginForm.markAllAsTouched()\r\n this.registerLoginForm.markAsDirty()\r\n if (this.registerLoginForm.valid) {\r\n this.userService.getLoggedInRegisterUser(this.registerLoginForm.value).subscribe((res: any) => {\r\n console.log('Response from Login API:', res)\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR)\r\n return;\r\n }\r\n else if (res[0]?.REG_NO && res[0]?.IS_AUTH) {\r\n sessionStorage.setItem(\"REG_No\", res[0]?.REG_NO);\r\n if(res[0]?.IS_COMPLETED === '1') {\r\n this.router.navigate(['phase2']);\r\n } else {\r\n this.router.navigate(['user-registration']);\r\n }\r\n }\r\n })\r\n\r\n }\r\n else {\r\n this.notificationService.showError('Please correct/provide the highlighted fields')\r\n\r\n }\r\n\r\n // if(this.registerLoginForm.get('registerNumber')?.value!='' || this.registerLoginForm.get('aadharNo')?.value!=''){\r\n // if(this.registerLoginForm.valid){\r\n // this.router.navigate(['user-registration']);\r\n // }\r\n // else{\r\n // }\r\n // }\r\n // else{\r\n // }\r\n }\r\n\r\n}","<div class=\"parent\">\r\n <div class=\"header\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\">\r\n <img src=\"assets/iTapLogo.png\" alt=\"ITap Logo\" style=\"width: 125px;height: 85px;\">\r\n </div>\r\n <div>\r\n <div class=\"container mt-5\">\r\n <div class=\"row justify-content-center\">\r\n <!-- <div class=\"col-lg-6 mb-lg-0 mb-4\">\r\n <form class=\"new-registration-form form\">\r\n <h1>New Registration</h1>\r\n <img src=\"assets/mdi_registerregister.png\" alt=\"my image\" class=\"img-fluid\">\r\n <button mat-raised-button color=\"primary\" (click)=\"newRegisteration()\" class=\"mt-4\"\r\n type=\"button\">Register</button>\r\n </form>\r\n </div> -->\r\n <div class=\"col-lg-6\">\r\n <form class=\"existing-form form\" [formGroup]=\"registerLoginForm\" (ngSubmit)=\"registerLogin()\"\r\n autocomplete=\"off\">\r\n <!-- <h1>Existing User</h1> -->\r\n <div class=\"col-12\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Enter Reg. No.</mat-label>\r\n <input matInput formControlName=\"registerNumber\" maxlength=\"12\"\r\n (keypress)=\"keyPress($event)\" class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <hr class=\"flex-grow-1\">\r\n <span class=\"px-2\">OR</span>\r\n <hr class=\"flex-grow-1\">\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group mb-3\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>Enter Aadhaar No.</mat-label>\r\n <input matInput formControlName=\"aadharNo\" class=\"form-control\"\r\n (keypress)=\"keyPress($event)\" maxlength=\"12\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!-- <input type=\"text\" (keypress)=\"keyPress($event)\" (paste)=\"onpaseEvent($event)\" minlength=\"10\" maxlength=\"10\" formControlName=\"contactNumber\" placeholder=\"Contact No\" /> -->\r\n <!-- <input matInput formControlName=\"aadharNo\" placeholder=\"Enter aadhar no\"\r\n (keypress)=\"keyPress($event)\" maxlength=\"12\" class=\"form-control\"> -->\r\n <button mat-raised-button class=\"me-2\" color=\"primary\" (click)=\"registerLogin()\"\r\n type=\"submit\">Login</button>\r\n <button mat-raised-button color=\"primary\" (click)=\"newRegisteration()\" class=\"mt-4\"\r\n type=\"button\">Register</button>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAlphabetOnly]' // This is the attribute selector used to apply the directive\r\n})\r\nexport class AlphabetOnlyDirective {\r\n\r\n private regex: RegExp = new RegExp(/^[a-zA-Z]+$/); // Regex to allow only alphabetic characters (lowercase and uppercase)\r\n\r\n constructor() {}\r\n\r\n // Listen to the 'input' event on the element this directive is applied to\r\n @HostListener('input', ['$event']) onInputChange(event: Event): void {\r\n const inputElement = event.target as HTMLInputElement;\r\n let inputValue = inputElement.value;\r\n\r\n // Remove all characters that do not match the regex (non-alphabetic)\r\n inputValue = inputValue.replace(/[^a-zA-Z]/g, '');\r\n\r\n // Set the sanitized input value back to the input element\r\n inputElement.value = inputValue;\r\n }\r\n}\r\n","<div class=\"parent\">\r\n<!-- <button (click)=\"createPdf()\">checkList</button> -->\r\n <div class=\"header\" style=\"justify-content: space-between;\">\r\n <div class=\"row mb-2 align-items-center\">\r\n <div class=\"col-sm-0 col-md-2 col-lg-2\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\">\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <h2 class=\"titleNew\">UPLOAD RESUME</h2>\r\n </div>\r\n\r\n <div class=\"col-sm-0 col-md-2 col-lg-2 text-center\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"Itap Logo\" style=\"width: 125px; height: 85px;\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"tab1\">\r\n\r\n <div class=\"inner-wrap\">\r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">DIVISION APPLIED FOR :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>DIVISION APPLIED FOR</mat-label>\r\n <mat-select (click)=\"resetDivison()\" [(ngModel)]=\"selectedDivision\" placeholder=\"Select\">\r\n <input matInput [(ngModel)]=\"searchDivision\" (keyup)=\"applyFilterDivision($event)\" (keydown)=\"$event.stopPropagation()\"\r\n placeholder=\"Enter Division Name\" #input style=\"height: 30px !important;\r\n margin: 10px;\">\r\n <mat-option value=\"\">Select</mat-option>\r\n <ng-container *ngFor=\"let div of filteredDivision\">\r\n <mat-option [value]=\"div.T_CODE\">{{div.T_NAME}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">AADHAAR :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field for=\"aadhar\" appearance=\"outline\">\r\n <mat-label>AADHAAR</mat-label>\r\n <input matInput #inputFieldAadhar placeholder=\"Enter AADHAAR No\" [(ngModel)]=\"aadhaar\" #input required\r\n oninput=\"this.value = this.value.toUpperCase()\" maxlength=\"12\"\r\n (change)=\"validationAadhaar()\" (keypress)=\"keyPressAlphaNumeric($event)\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">DESIGNATION APPLYING :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>DESIGNATION APPLYING</mat-label>\r\n <mat-select #inputFieldDesignation [(ngModel)]=\"desig\" required>\r\n <mat-option value=\"\">Select</mat-option>\r\n <mat-option value=\"MR\">MEDICAL REPRESENTATIVE</mat-option>\r\n <mat-option value=\"FLM\">FIRST LINE MANAGER</mat-option>\r\n <mat-option value=\"SLM\">SECOND LINE MANAGER</mat-option>\r\n <mat-option value=\"TLM\">THIRD LINE MANAGER</mat-option>\r\n <mat-option value=\"FOURTHLINE\">FOURTH LINE MANAGER</mat-option>\r\n <mat-option value=\"STATEHEAD\">STATE HEAD</mat-option>\r\n <mat-option value=\"TPLNM\">TOP LINE MANAGER</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">EMAIL ID :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>EMAIL ID</mat-label>\r\n\r\n <input matInput #inputFieldEmail type=\"email\" placeholder=\"Enter e-Mail\" (change)=\"keypressEmail()\"\r\n maxlength=\"60\" [(ngModel)]=\"eMailID\" #input required>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">FULL NAME :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>FULL NAME </mat-label>\r\n <input matInput #inputFieldFullName appAlphabetOnly placeholder=\"Enter Name\" [(ngModel)]=\"fullName\" maxlength=\"60\" #input autocomplete=\"off\" required>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">BASED AT (Location) :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>BASED AT (Location) </mat-label>\r\n <input matInput #inputFieldLocation placeholder=\"Current Location\" [(ngModel)]=\"currLocation\" maxlength=\"60\" #input\r\n autocomplete=\"off\" required >\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">DATE OF BIRTH :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\" class=\"dateInput\">\r\n <mat-label>DATE OF BIRTH</mat-label>\r\n <input matInput \r\n [matDatepicker]=\"picker\" \r\n [(ngModel)]=\"selectedDate\" \r\n placeholder=\"dd/mm/yyyy\"\r\n [max]=\"todayDate\" \r\n (input)=\"formatDate($event,'input')\"\r\n (dateChange)=\"formatDate($event,'select')\"\r\n #inputFieldDateOfBirth\r\n required>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n \r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">CURRENT STATE :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CURRENT STATE </mat-label>\r\n <mat-select #inputFieldCurrentState [(ngModel)]=\"currState\" required>\r\n <mat-option value=\"\">Select</mat-option>\r\n <ng-container *ngFor=\"let div of listState\">\r\n <mat-option [value]=\"div.T_CODE\">{{div.T_NAME}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">CURRENT COMPANY :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CURRENT COMPANY </mat-label>\r\n <input matInput placeholder=\"Current Organization\" [(ngModel)]=\"currOrg\" #input>\r\n </mat-form-field>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\"> PACKAGE (In Lakhs) :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>PACKAGE (In Lakhs) </mat-label>\r\n <input matInput placeholder=\"Salary Per Annum\" [(ngModel)]=\"salary\" #input maxlength=\"5\"\r\n appDecimalFormat [digitsBeforeDecimal]=\"2\" [digitsAfterDecimal]=\"2\">\r\n </mat-form-field>\r\n </div> \r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">EXPERIENCE :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\" class=\"nameInputNew\">\r\n <mat-label>Years</mat-label>\r\n <input matInput type=\"tel\" maxlength=\"2\" #inputFieldExperience placeholder=\"Years\"\r\n (keypress)=\"keyPressAlphaNumeric($event)\" (keyup)=\"keyPressAlphaNumeric($event)\" [(ngModel)]=\"experienceYears\" #yearsInput\r\n required>\r\n </mat-form-field>\r\n \r\n <mat-form-field appearance=\"outline\" class=\"nameInputNew\">\r\n <mat-label>Months</mat-label>\r\n <input matInput type=\"tel\" #inputFieldMonth maxlength=\"2\" placeholder=\"Months\"\r\n (keyup)=\"keyPressAlphaNumeric($event)\" (keypress)=\"keyPressAlphaNumeric($event)\" [(ngModel)]=\"experienceMonths\" #monthsInput\r\n (change)=\"validationExperienceMonths()\" required>\r\n </mat-form-field>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">UPLOAD RESUME( <= 5Mb file) :<br><span class=\"label_text\">accept=\".pdf,.doc,.docx\"</span> </mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput #inputFieldResume type=\"file\" (change)=\"onFileSelected($event)\" accept=\".pdf,.doc,.docx\"\r\n [(ngModel)]=\"file\" required>\r\n </mat-form-field>\r\n </div> \r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"input-width\">\r\n <mat-label appearance=\"outline\">CURRENT DESIGNATION :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"nameInput input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CURRENT DESIGNATION</mat-label>\r\n <mat-select [disabled]=\"!experienceYears || !experienceMonths\" (selectionChange)=\"changeCurrentDesig($event.value)\" #inputFieldCurrentDesignation [(ngModel)]=\"currentDesignation\" required>\r\n <mat-option value=\"\">Select</mat-option>\r\n <mat-option value=\"MR\">MEDICAL REPRESENTATIVE</mat-option>\r\n <mat-option value=\"FLM\">FIRST LINE MANAGER</mat-option>\r\n <mat-option value=\"SLM\">SECOND LINE MANAGER</mat-option>\r\n <mat-option value=\"TLM\">THIRD LINE MANAGER</mat-option>\r\n <mat-option value=\"FOURTHLINE\">FOURTH LINE MANAGER</mat-option>\r\n <mat-option value=\"STATEHEAD\">STATE HEAD</mat-option>\r\n <mat-option value=\"TPLNM\">TOP LINE MANAGER</mat-option>\r\n <mat-option [disabled]=\"(experienceYears > 0 || experienceMonths )> 0 ? true :false\" value=\"FRESHER\">FRESHER</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tabnew\">\r\n <div class=\"tab-hq row mb-2\">\r\n <div class=\"col-12 mb-3\">\r\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"hqFlexibility\" (ngModelChange)=\"onHqFlexibilityChange($event)\">\r\n <mat-radio-button value=\"1\" color=\"primary\">HQ Flexible</mat-radio-button>\r\n <mat-radio-button value=\"0\" color=\"primary\" class=\"ms-2\">HQ Not Flexible</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"tabnew\">\r\n <div class=\"tab-hq row mb-2\">\r\n <div class=\"col-md-4 mb-3\">\r\n <div class=\"input-group carrot\">\r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>HQ Preference 1</mat-label>\r\n \r\n <input type=\"input\" #inputFieldHQ (click)=\"resetValue()\" matInput [(ngModel)]=\"hqPrefrenceOne\" (blur)=\"hqPrefrenceOneBlur(hqPrefrenceOne)\"\r\n onkeydown=\"event.preventDefault()\" [matAutocomplete]=\"hqOne\" required>\r\n <mat-autocomplete #hqOne=\"matAutocomplete\" autoActiveFirstOption (optionSelected)=\"validationInHq(hqSearchOne,1)\">\r\n <mat-form-field appearance=\"outline\" class=\"custom-input\">\r\n <mat-label>HQ Preference 1</mat-label>\r\n <input type=\"search\" placeholder=\"Type something..\" [(ngModel)]=\"hqSearchOne\" (ngModelChange)=\"searchHQ(hqSearchOne,1)\" class=\"search-input\" matInput />\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n \r\n <!-- Use reshq.T_NAME as the value -->\r\n <mat-option *ngFor=\"let reshq of filteredOptionsHqOne | async\"\r\n [disabled]=\"reshq.T_NAME === 'No Result Found'\"\r\n [value]=\"reshq.T_NAME\">\r\n {{ reshq.T_NAME }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <!-- <div class=\"error-message\"\r\n *ngIf=\"personalDetailsForm.get('basicInfo')?.hasError('samePreferenceAsOne') \r\n && personalDetailsForm.get('basicInfo')?.get('hqPrefrenceOne')?.touched\">\r\n HQ Preferences cannot be the same.\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mb-3\">\r\n <div class=\"input-group\">\r\n \r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>HQ Preference 2</mat-label>\r\n \r\n <input type=\"input\" (click)=\"resetValue()\" [(ngModel)]=\"hqPrefrenceTwo\" matInput [disabled]=\"hqPrefrenceTwoDisabled\" (blur)=\"hqPrefrenceTwoBlur(hqPrefrenceTwo)\"\r\n onkeydown=\"event.preventDefault()\" [matAutocomplete]=\"hqTwo\">\r\n <mat-autocomplete #hqTwo=\"matAutocomplete\" (optionSelected)=\"validationInHq(hqPrefrenceTwo,2)\" autoActiveFirstOption>\r\n <mat-form-field appearance=\"outline\" class=\"custom-input\">\r\n <mat-label>HQ Preference 2</mat-label>\r\n <input type=\"search\" placeholder=\"Type something..\" [(ngModel)]=\"hqSearchTwo\" (ngModelChange)=\"searchHQ(hqSearchTwo,2)\" class=\"search-input\" matInput />\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n \r\n <mat-option *ngFor=\"let reshq of filteredOptionsHqTwo | async\"\r\n [disabled]=\"reshq.T_NAME=='No Result Found'\" [value]=\"reshq.T_NAME\">\r\n {{reshq.T_NAME}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mb-3\">\r\n <div class=\"input-group\">\r\n \r\n \r\n <mat-form-field appearance=\"outline\" class=\"example-full-width\">\r\n <mat-label>HQ Preference 3</mat-label>\r\n \r\n <input type=\"input\" (click)=\"resetValue()\" matInput [(ngModel)]=\"hqPrefrenceThree\" [disabled]=\"hqPrefrenceThreeDisabled\" (blur)=\"hqPrefrenceTwoBlur(hqPrefrenceThree)\"\r\n onkeydown=\"event.preventDefault()\" [matAutocomplete]=\"hqThree\">\r\n <mat-autocomplete #hqThree=\"matAutocomplete\" (optionSelected)=\"validationInHq(hqPrefrenceThree,3)\" autoActiveFirstOption>\r\n <mat-form-field appearance=\"outline\" class=\"custom-input\">\r\n <mat-label>HQ Preference 3</mat-label>\r\n <input type=\"search\" placeholder=\"Type something..\" [(ngModel)]=\"hqSearchThree\" (ngModelChange)=\"searchHQ(hqSearchThree,3)\" class=\"search-input\" matInput />\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n \r\n <mat-option *ngFor=\"let reshq of filteredOptionsHqThree | async\"\r\n [disabled]=\"reshq.T_NAME=='No Result Found'\" [value]=\"reshq.T_NAME\">\r\n {{reshq.T_NAME}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"tabnew\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-6\">\r\n <div class=\"tab2\">\r\n <div class=\"row mb-2\">\r\n <div class=\"col-md-3\">\r\n <div class=\"input-width mobile-label\">\r\n <mat-label appearance=\"outline\">MOBILE :</mat-label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row mb-2 align-items-center\">\r\n <div class=\"col-md-9\">\r\n <div class=\"nameInputmobileOne input-group carrot\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>MOBILE</mat-label>\r\n <input matInput #inputFieldMobile placeholder=\"Enter Mobile Number\" (change)=\"validationMobile()\"\r\n (keypress)=\"keyPress($event)\" [(ngModel)]=\"mobile\" maxlength=\"10\" #input required>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"nameInputMobile\">\r\n <button mat-raised-button class=\"tabButtonVerify\" color=\"primary\" [disabled]=\"isTimerActive\"\r\n (click)=\"sendOtp()\"> Send OTP </button>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-1\"></div>\r\n <div class=\"col-md-4\">\r\n <div class=\"tab3\">\r\n <div class=\"row mb-2 align-items-center\">\r\n <div class=\"col-md-8\">\r\n <div class=\"nameInputOtp input-group carrot\"> \r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>OTP</mat-label>\r\n <input matInput placeholder=\"Enter OTP\" [(ngModel)]=\"otp\" \r\n (keypress)=\"keyPress($event)\" (keyup)=\"keyPress($event)\" maxlength=\"6\" required [disabled]=\"!isOtpSent\">\r\n </mat-form-field>\r\n <span *ngIf=\"isTimerActive\">Resend OTP in {{ timer }} seconds</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"input-width\">\r\n <button mat-raised-button color=\"primary\" class=\"tabButton\" (click)=\"verifySentOtp()\">\r\n Click To Submit</button>\r\n </div> \r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- [disabled]=\"!isOtpVerified\" -->\r\n </div>\r\n\r\n</div>","import { Component, ElementRef, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SharedMethodsService } from 'src/app/services/shared-methods.service';\r\nimport { AdminService } from 'src/app/services/admin.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { Validators } from '@angular/forms';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { CheckListDocumentService } from 'src/app/services/check-list-document.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\ninterface HQ {\r\n ROOT_STATE_CODE: string; // Assuming this is a string\r\n T_CODE: string; // Assuming this is a string\r\n T_NAME: string; // Assuming this is a string\r\n}\r\n@Component({\r\n selector: 'app-job-application-form',\r\n templateUrl: './job-application-form.component.html',\r\n styleUrls: ['./job-application-form.component.scss'],\r\n providers: [DatePipe],\r\n})\r\nexport class JobApplicationFormComponent implements OnInit {\r\n docs: File[] = [];\r\n fullName: any = '';\r\n todayDate: any;\r\n selectedDate: any;\r\n hqFlexibility!: string;\r\n hqPrefrenceThree!: string\r\n hqPrefrenceOne!: string;\r\n hqPrefrenceTwo!: string\r\n selectedDivision: any = '';\r\n desig: any = '';\r\n file: any;\r\n aadhaar: any = '';\r\n eMailID: string = '';\r\n currLocation: any = '';\r\n currState: any = '';\r\n currOrg: any = '';\r\n currentDesignation: string = '';\r\n salary: any = '';\r\n mobile: any = '';\r\n staffCode = '20000004';\r\n listDivision: any;\r\n listState: any;\r\n filteredDivision: any[] = [];\r\n experienceYears: any = '';\r\n experienceMonths: any = '';\r\n otp: string = '';\r\n timer: number = 30;\r\n isOtpSent: boolean = false;\r\n isOtpVerified: boolean = false;\r\n isTimerActive: boolean = false;\r\n listHQ: any\r\n hqSearchOne!: string;\r\n hqSearchTwo!: string;\r\n hqSearchThree!: string;\r\n searchDivision: string = '';\r\n private datePattern: RegExp = /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/; // DD/MM/YYYY format\r\n\r\n hqPrefrenceTwoDisabled: boolean = true;\r\n hqPrefrenceThreeDisabled: boolean = true;\r\n @ViewChildren('dateInput') dateInputs!: QueryList<ElementRef>;\r\n private listHQSubject = new BehaviorSubject<HQ[]>([]);\r\n filteredOptionsHqOne: Observable<any> = this.listHQSubject.asObservable();\r\n filteredOptionsHqTwo: Observable<any> = this.listHQSubject.asObservable();\r\n filteredOptionsHqThree: Observable<any> = this.listHQSubject.asObservable();\r\n masterListHQ: any;\r\n @ViewChild('inputFieldAadhar') inputFieldAadhar!: ElementRef;\r\n @ViewChild('inputFieldEmail') inputFieldEmail!: ElementRef;\r\n @ViewChild('inputFieldFullName') inputFieldFullName!: ElementRef;\r\n @ViewChild('inputFieldLocation') inputFieldLocation!: ElementRef;\r\n @ViewChild('inputFieldDateOfBirth') inputFieldDateOfBirth!: ElementRef;\r\n @ViewChild('inputFieldCurrentState') inputFieldCurrentState!: MatSelect;\r\n @ViewChild('inputFieldExperience') inputFieldExperience!: ElementRef;\r\n @ViewChild('inputFieldMonth') inputFieldMonth!: ElementRef;\r\n @ViewChild('inputFieldResume') inputFieldResume!: ElementRef;\r\n @ViewChild('inputFieldMobile') inputFieldMobile!: ElementRef;\r\n @ViewChild('inputFieldCurrentDesignation') inputFieldCurrentDesignation!: MatSelect;\r\n @ViewChild('inputFieldDesignation') inputFieldDesignation!: MatSelect;\r\n @ViewChild('inputFieldHQ') inputFieldHQ!: ElementRef;\r\n\r\n\r\n constructor(private router: Router, private snackBar: MatSnackBar,\r\n private sharedMethods: SharedMethodsService, private adminService: AdminService,\r\n private datePipe: DatePipe, private notificationService: NotificationService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !(window as any).MSStream) {\r\n document.body.classList.add('ios');\r\n }\r\n \r\n this.file = '';\r\n this.fullName = '';\r\n this.mobile = '';\r\n this.aadhaar = '';\r\n this.eMailID = '';\r\n this.currLocation = '';\r\n this.currOrg = '';\r\n this.currState = '';\r\n this.desig = '';\r\n this.experienceYears = '';\r\n this.experienceMonths = '';\r\n this.salary = '';\r\n this.selectedDivision = '';\r\n this.selectedDate = '';\r\n this.otp = '';\r\n this.todayDate = new Date;\r\n this.isOtpVerified = false;\r\n this.hqFlexibility = '0';\r\n this.hqPrefrenceOne = ''\r\n this.hqPrefrenceTwo = ''\r\n this.hqPrefrenceThree = ''\r\n this.currentDesignation = '';\r\n\r\n\r\n this.adminService.resumeServiceLoadMasters(this.staffCode).subscribe((res: any) => {\r\n if (res[0].ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n }\r\n else {\r\n this.listDivision = res[0]?.ListDivisionHR;\r\n this.listState = res[0]?.ListState;\r\n this.filteredDivision = this.listDivision;\r\n this.listHQ = res[0].ListHQ;\r\n this.masterListHQ = this.listHQ;\r\n this.listHQSubject.next(this.listHQ);\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n onFileSelected(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const maxFileSize = 5 * 1024 * 1024;\r\n\r\n if (input.files && input.files.length > 0) {\r\n const file = input.files[0];\r\n\r\n const validFileTypes = ['application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];\r\n\r\n if (!validFileTypes.includes(file.type)) {\r\n this.notificationService.showError('Please upload a PDF or Word document.');\r\n input.value = '';\r\n return;\r\n }\r\n\r\n if (file.size > maxFileSize) {\r\n input.value = '';\r\n this.notificationService.showError('File size should not exceed 5MB.');\r\n return;\r\n }\r\n\r\n this.docs.push(file);\r\n } else {\r\n\r\n }\r\n }\r\n findTCodeByName(name: string): string | undefined {\r\n const result = this.masterListHQ.find((hq: any) => hq.T_NAME.toLowerCase() === name.toLowerCase());\r\n return result ? result.T_CODE : undefined;\r\n }\r\n\r\n\r\n\r\n onSubmit() {\r\n\r\n\r\n const fileListData = [{\r\n T_CODE: '',\r\n DIV_CODE: this.selectedDivision,\r\n NAME: this.fullName,\r\n PHONE: this.mobile,\r\n DOB: this.datePipe.transform(this.selectedDate, 'dd-MMM-yyyy'),\r\n EMAIL: this.eMailID,\r\n LOCATION: this.currLocation,\r\n STATE: this.currState,\r\n COMPANY: this.currOrg,\r\n DESIGNATION: this.desig,\r\n EXP_YEAR: this.experienceYears,\r\n EXP_MONTH: this.experienceMonths,\r\n PACKAGE: this.salary,\r\n PANCARD: '',\r\n AADHAR: this.aadhaar,\r\n CURRENT_DESIG: this.currentDesignation,\r\n HQ_PREF: this.hqFlexibility,\r\n HQ_PREF1: this.hqPrefrenceOne ? this.findTCodeByName(this.hqPrefrenceOne) : \"\",\r\n HQ_PREF2: this.hqPrefrenceTwo ? this.findTCodeByName(this.hqPrefrenceTwo) : \"\",\r\n HQ_PREF3: this.hqPrefrenceThree ? this.findTCodeByName(this.hqPrefrenceThree) : \"\"\r\n }];\r\n\r\n\r\n const payload = {\r\n file: this.docs,\r\n listdata: fileListData\r\n };\r\n\r\n if (this.aadhaar == '' || this.aadhaar == undefined || this.aadhaar == null || this.aadhaar.length != 12) {\r\n this.notificationService.showError('Please Enter 12 Digit AADHAAR Number');\r\n this.inputFieldAadhar.nativeElement.focus();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.desig == '' || this.desig == undefined || this.desig == null) {\r\n this.notificationService.showError('Please Select Designation You Are Applying For');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.eMailID == '' || this.eMailID == undefined || this.eMailID == null) {\r\n this.notificationService.showError('Please Enter Valid Email ID');\r\n this.inputFieldEmail.nativeElement.focus();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.fullName == '' || this.fullName == undefined || this.fullName == null) {\r\n this.notificationService.showError('Please Enter Your Full Name');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.currLocation == '' || this.currLocation == undefined || this.currLocation == null) {\r\n this.notificationService.showError('Please Enter Current Location');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.selectedDate == '' || this.selectedDate == undefined || this.selectedDate == null) {\r\n this.notificationService.showError('Please Provide Date Of Birth');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n\r\n else if (this.currState == '' || this.currState == undefined || this.currState == null) {\r\n this.notificationService.showError('Please Select Current State');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.experienceYears == '' || this.experienceYears == undefined || this.experienceYears == null) {\r\n this.notificationService.showError('Please Enter Experience In Years. Enter 0 If Not Applicable');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.experienceMonths == '' || this.experienceMonths == undefined || this.experienceMonths == null) {\r\n this.notificationService.showError('Please Enter Experience In Months. Enter 0 If Not Applicable');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.currentDesignation == '' || this.currentDesignation == undefined || this.currentDesignation == null) {\r\n this.notificationService.showError('Please Enter Current Designation');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.docs.length == 0) {\r\n this.notificationService.showError('Please Upload Your Resume/CV');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.mobile == '' || this.mobile == undefined || this.mobile == null) {\r\n this.notificationService.showError('Please Enter 10 Digit Mobile Number');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.otp == '' || this.otp == undefined || this.otp == null) {\r\n this.notificationService.showError('Please Enter Six Digit OTP For Mobile Verification');\r\n }\r\n else if (!this.hqPrefrenceOne || !this.hqPrefrenceOne || !this.hqPrefrenceOne) {\r\n this.notificationService.showError('Please Select any HQ prefrence');\r\n this.validateField();\r\n\r\n this.isOtpVerified = false;\r\n }\r\n else {\r\n this.adminService.uploadResume(payload).subscribe(\r\n (response: any) => {\r\n if (response[0].ERRORCODE == 0) {\r\n this.notificationService.showSuccess('Details Submitted Successfully');\r\n sessionStorage.setItem(\"REQ_NO\", response[0].ERROR);\r\n this.router.navigate(['confirmation']);\r\n }\r\n else {\r\n this.notificationService.showError('Error In Submitting Details');\r\n // this.file = '';\r\n // this.docs = [];\r\n };\r\n });\r\n }\r\n\r\n }\r\n\r\n applyFilterDivision(event: Event): void {\r\n const filterValue = (event.target as HTMLInputElement).value\r\n .trim()\r\n .toLowerCase();\r\n\r\n if (filterValue !== '' && (this.listDivision.filter((staff: any) =>\r\n staff.T_NAME.toLowerCase().includes(filterValue))).length != 0) {\r\n this.filteredDivision = this.listDivision.filter((staff: any) =>\r\n staff.T_NAME.toLowerCase().includes(filterValue)\r\n );\r\n } else {\r\n this.filteredDivision = this.listDivision;\r\n }\r\n }\r\n\r\n\r\n keyPressAlphaNumeric(event: any) {\r\n this.inputFieldCurrentDesignation.value = '';\r\n\r\n return this.sharedMethods.allowOnlyDigits(event);\r\n }\r\n onlyNumericValue(event: any){\r\n return this.sharedMethods.allowOnlyDigits(event);\r\n }\r\n\r\n validationExperienceMonths() {\r\n if (this.experienceMonths < 0 || this.experienceMonths > 11) {\r\n this.experienceMonths = '';\r\n this.notificationService.showError('Experience In Months Should Be Less Than 12');\r\n }\r\n }\r\n\r\n keypressEmail() {\r\n const reqCharCodes = [64, 46, 99, 111];\r\n const hasRequiredChars = reqCharCodes.every(code => this.eMailID.includes(String.fromCharCode(code)));\r\n\r\n if (!hasRequiredChars) {\r\n this.eMailID = '';\r\n this.notificationService.showError('Please Enter A Valid Email ID');\r\n }\r\n\r\n }\r\n\r\n keyPress(event: any) {\r\n const pattern = /[0-9+\\-]/;\r\n const inputChar = String.fromCharCode(event.charCode);\r\n if ((event.keyCode !== 8 && !pattern.test(inputChar))) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n validationAadhaar() {\r\n if (this.aadhaar.length != 12) {\r\n this.notificationService.showError('Please Enter Valid AADHAAR Number');\r\n }\r\n }\r\n\r\n validationMobile() {\r\n if (this.mobile.length != 10) {\r\n this.mobile = '';\r\n this.notificationService.showError('Please Enter A Valid Mobile Number');\r\n }\r\n else if (this.mobile.length == 10) {\r\n this.isOtpVerified = true;\r\n }\r\n\r\n }\r\n\r\n\r\n sendOtp() {\r\n this.isOtpSent = false;\r\n if (this.aadhaar == '' || this.aadhaar == undefined || this.aadhaar == null || this.aadhaar.length != 12) {\r\n this.notificationService.showError('Please Enter 12 Digit AADHAAR Number');\r\n this.validateField();\r\n\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.desig == '' || this.desig == undefined || this.desig == null) {\r\n this.notificationService.showError('Please Select Designation You Are Applying For');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.eMailID == '' || this.eMailID == undefined || this.eMailID == null) {\r\n this.notificationService.showError('Please Enter Valid Email ID');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.fullName == '' || this.fullName == undefined || this.fullName == null) {\r\n this.notificationService.showError('Please Enter Your Full Name');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.currLocation == '' || this.currLocation == undefined || this.currLocation == null) {\r\n this.notificationService.showError('Please Enter Current Location');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.selectedDate == '' || this.selectedDate == undefined || this.selectedDate == null) {\r\n this.notificationService.showError('Please Provide Date Of Birth');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n\r\n else if (this.currState == '' || this.currState == undefined || this.currState == null) {\r\n this.notificationService.showError('Please Select Current State');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.experienceYears == '' || this.experienceYears == undefined || this.experienceYears == null) {\r\n this.notificationService.showError('Please Enter Experience In Years. Enter 0 If Not Applicable');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.experienceMonths == '' || this.experienceMonths == undefined || this.experienceMonths == null) {\r\n this.notificationService.showError('Please Enter Experience In Months. Enter 0 If Not Applicable');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.currentDesignation == '' || this.currentDesignation == undefined || this.currentDesignation == null) {\r\n this.notificationService.showError('Please Enter Current Designation');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.docs.length == 0) {\r\n this.notificationService.showError('Please Upload Your Resume/CV');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (this.mobile == '' || this.mobile == undefined || this.mobile == null) {\r\n this.notificationService.showError('Please Enter 10 Digit Mobile Number');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n else if (!this.hqPrefrenceOne || !this.hqPrefrenceOne || !this.hqPrefrenceOne) {\r\n this.notificationService.showError('Please Select any HQ prefrence');\r\n this.validateField();\r\n this.isOtpVerified = false;\r\n }\r\n\r\n else {\r\n this.adminService.sendMobileOtp(this.mobile).subscribe(\r\n (response: any) => {\r\n this.otp = '';\r\n if (response[0].ERRORCODE == 0) {\r\n this.notificationService.showSuccess('OTP Sent Successfully');\r\n this.isOtpSent = true;\r\n this.startOtpTimer();\r\n }\r\n else if (response[0].ERRORCODE != 0) {\r\n this.notificationService.showError('There Was An Error Sending The OTP. Please Try Again');\r\n this.isOtpSent = false;\r\n }\r\n });\r\n }\r\n }\r\n validateField() {\r\n this.inputFieldAadhar.nativeElement.focus();\r\n this.inputFieldAadhar.nativeElement.blur();\r\n this.inputFieldDesignation._onBlur()\r\n this.inputFieldEmail.nativeElement.focus();\r\n this.inputFieldEmail.nativeElement.blur();\r\n this.inputFieldFullName.nativeElement.focus();\r\n this.inputFieldFullName.nativeElement.blur();\r\n this.inputFieldLocation.nativeElement.focus();\r\n this.inputFieldLocation.nativeElement.blur();\r\n this.inputFieldDateOfBirth.nativeElement.focus();\r\n this.inputFieldDateOfBirth.nativeElement.blur();\r\n this.inputFieldCurrentState._onBlur();\r\n this.inputFieldExperience.nativeElement.focus();\r\n this.inputFieldExperience.nativeElement.blur();\r\n this.inputFieldMonth.nativeElement.focus();\r\n this.inputFieldMonth.nativeElement.blur();\r\n this.inputFieldCurrentDesignation._onBlur()\r\n this.inputFieldResume.nativeElement.focus();\r\n this.inputFieldResume.nativeElement.blur();\r\n this.inputFieldMobile.nativeElement.focus();\r\n this.inputFieldMobile.nativeElement.blur();\r\n this.inputFieldHQ.nativeElement.focus();\r\n this.inputFieldHQ.nativeElement.blur();\r\n }\r\n\r\n\r\n startOtpTimer() {\r\n this.isTimerActive = true;\r\n let interval = setInterval(() => {\r\n this.timer--;\r\n if (this.timer === 0) {\r\n clearInterval(interval);\r\n this.isTimerActive = false;\r\n this.timer = 60;\r\n }\r\n }, 1000);\r\n }\r\n\r\n verifySentOtp() {\r\n if (this.otp.length < 6) {\r\n this.notificationService.showError('Please Enter Six Digit OTP');\r\n }\r\n else if (this.mobile && this.otp && this.otp.length == 6) {\r\n this.adminService.verifyOTP(this.mobile, this.otp).subscribe(\r\n (response: any) => {\r\n if (response[0].ERRORCODE == 0) {\r\n this.notificationService.showSuccess('OTP Verified Successfully!');\r\n this.onSubmit();\r\n }\r\n else if (response[0].ERRORCODE != 0) {\r\n this.notificationService.showError('Incorrect OTP. Please try again.');\r\n this.otp = '';\r\n }\r\n },\r\n err => {\r\n console.error(\"Error: \", err);\r\n });\r\n }\r\n }\r\n\r\n // HQ tab implements\r\n hqPrefrenceOneBlur(elementRef: any) {\r\n if (this.hqPrefrenceOne) {\r\n if (this.masterListHQ?.filter((option: any) => option.T_NAME.toLowerCase() == this.hqPrefrenceOne.toLowerCase()).length == 0) {\r\n this.notificationService.showError('Please select valid HQ preference 1');\r\n this.hqPrefrenceOne = \"\";\r\n }\r\n }\r\n // alert()\r\n }\r\n hqPrefrenceTwoBlur(elementRef: any) {\r\n if (this.hqPrefrenceTwo) {\r\n if (this.masterListHQ?.filter((option: any) => option.T_NAME.toLowerCase() == this.hqPrefrenceTwo.toLowerCase()).length == 0) {\r\n this.notificationService.showError('Please select valid HQ preference 2');\r\n this.hqPrefrenceTwo = \"\";\r\n }\r\n }\r\n // alert()\r\n }\r\n hqPrefrenceThreeBlur(elementRef: any) {\r\n if (this.hqPrefrenceThree) {\r\n if (this.masterListHQ?.filter((option: any) => option.T_NAME.toLowerCase() == this.hqPrefrenceThree.toLowerCase()).length == 0) {\r\n this.notificationService.showError('Please select valid HQ preference 3');\r\n this.hqPrefrenceThree = \"\";\r\n }\r\n }\r\n // alert()\r\n }\r\n displayFnHq(hq: any) {\r\n return hq ? `${hq.T_NAME}` : '';\r\n }\r\n onHqFlexibilityChange(value: any) {\r\n if (value == \"0\") {\r\n this.hqPrefrenceTwo = \"\";\r\n this.hqPrefrenceThree = \"\";\r\n this.hqPrefrenceTwoDisabled = true;\r\n this.hqPrefrenceThreeDisabled = true;\r\n\r\n } else {\r\n this.hqPrefrenceTwoDisabled = false;\r\n this.hqPrefrenceThreeDisabled = false;\r\n }\r\n }\r\n\r\n public searchHQ(name: string, seq: Number) {\r\n let filterValue: string;\r\n switch (seq) {\r\n case 1:\r\n filterValue = this.hqSearchOne.toLowerCase();\r\n break;\r\n case 2:\r\n filterValue = this.hqSearchTwo.toLowerCase();\r\n break;\r\n case 3:\r\n filterValue = this.hqSearchThree.toLowerCase();\r\n break;\r\n }\r\n let res = this.masterListHQ.filter((option: any) => option.T_NAME.toLowerCase().includes(filterValue));\r\n if (res.length > 0) {\r\n\r\n return this.listHQSubject.next(res);\r\n }\r\n else {\r\n let res = [{ T_CODE: '0', T_NAME: 'No Result Found', ROOT_STATE_CODE: '' }]\r\n return this.listHQSubject.next(res);\r\n }\r\n }\r\n resetValue() {\r\n this.listHQSubject.next(this.masterListHQ);\r\n this.hqSearchOne = \"\";\r\n this.hqSearchTwo = \"\";\r\n this.hqSearchThree = \"\";\r\n }\r\n validationInHq(name: string, seq: Number) {\r\n this.listHQSubject.next(this.masterListHQ);\r\n switch (seq) {\r\n case 1:\r\n if (\r\n (this.hqPrefrenceTwo.trim() === this.hqPrefrenceOne.trim() && this.hqPrefrenceTwo !== \"\") ||\r\n (this.hqPrefrenceThree.trim() === this.hqPrefrenceOne.trim() && this.hqPrefrenceThree !== \"\")\r\n ) {\r\n this.notificationService.showError('HQ Preference cannot be the same');\r\n setTimeout(() => {\r\n this.hqPrefrenceOne = \"\";\r\n }, 100);\r\n }\r\n\r\n break;\r\n case 2:\r\n if (\r\n (this.hqPrefrenceOne.trim() === this.hqPrefrenceTwo.trim() && this.hqPrefrenceOne !== \"\") ||\r\n (this.hqPrefrenceThree.trim() === this.hqPrefrenceTwo.trim() && this.hqPrefrenceThree !== \"\")\r\n ) {\r\n this.notificationService.showError('HQ Preference cannot be the same');\r\n setTimeout(() => {\r\n this.hqPrefrenceTwo = \"\";\r\n }, 100);\r\n\r\n }\r\n break;\r\n case 3:\r\n if (\r\n (this.hqPrefrenceOne.trim() === this.hqPrefrenceThree.trim() && this.hqPrefrenceOne !== \"\") ||\r\n (this.hqPrefrenceTwo.trim() === this.hqPrefrenceThree.trim() && this.hqPrefrenceTwo !== \"\")\r\n ) {\r\n this.notificationService.showError('HQ Preference cannot be the same');\r\n\r\n setTimeout(() => {\r\n this.hqPrefrenceThree = \"\";\r\n }, 100);\r\n }\r\n break;\r\n\r\n }\r\n\r\n }\r\n resetDivison() {\r\n this.searchDivision = \"\";\r\n this.filteredDivision = this.listDivision;\r\n }\r\n changeCurrentDesig(value: string,) {\r\n console.log(value);\r\n }\r\n formatDate(event: any, track: string) {\r\n var inputValue = event.target.value;\r\n if (track == 'select') {\r\n inputValue = this.datePipe.transform(this.selectedDate, 'dd/MM/yyyy');\r\n }\r\n const isFormatValid = this.datePattern.test(inputValue);\r\n if (isFormatValid) {\r\n const [day, month, year] = inputValue.split('/').map(Number);\r\n const dob = new Date(year, month - 1, day);\r\n this.selectedDate = dob;\r\n let ageValid = this.checkAgeValidity(dob);\r\n console.log(ageValid);\r\n if (ageValid == false) {\r\n this.notificationService.showError(`DOB can't be less than 18 years`);\r\n this.selectedDate = null;\r\n\r\n }\r\n } else {\r\n this.selectedDate = null;\r\n }\r\n }\r\n checkAgeValidity(dob: Date): boolean {\r\n const today = new Date();\r\n const age = today.getFullYear() - dob.getFullYear();\r\n const monthDiff = today.getMonth() - dob.getMonth();\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < dob.getDate())) {\r\n return age >= 18;\r\n }\r\n return age > 18;\r\n }\r\n createPdf(){\r\n // this.adminService.getAgriDataMasters(this.staffCode).subscribe((res: any) => {\r\n // this.checkList.createOfferLetterAgriTechResponse(res);\r\n // })\r\n\r\n }\r\n\r\n}\r\n","<div class=\"parent\">\r\n <div class=\"header\" style=\"justify-content: space-between;\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-sm-0 col-md-2 col-lg-2\">\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\">\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-sm-0 col-md-2 col-lg-2 text-center\" style=\"margin-right: -35px;\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"Itap Logo\" style=\"width: 125px; height: 85px;\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"responsive-header justify-content-between\">\r\n <div class=\"row align-items-center p-2\">\r\n\r\n <img src=\"assets/mankind-logo.png\" alt=\"Mankind Logo\" style=\"width: 125px; height: 65px;\">\r\n\r\n </div>\r\n\r\n <div class=\"text-align-center p-2\" style=\"text-align-last: center;\">\r\n <div>\r\n <img src=\"assets/iTapLogo.png\" alt=\"Itap Logo\" style=\"width: 75px; height: 55px;\">\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"container mt-4\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mx-auto mt-5 msg text-center\">\r\n <p>Thank You!!!</p>\r\n <p>Your Resume Has Been Submitted Successfully.</p>\r\n <p>Your Request Number is <b\r\n *ngIf=\"reqNo\">{{reqNo}}</b></p>\r\n </div>\r\n </div>\r\n <div class=\"row text-center\">\r\n <div class=\"col-12 mt-5 text-center\">\r\n <button mat-raised-button color=\"primary\" type=\"button\" data-bs-toggle=\"modal\"\r\n data-bs-target=\"#exampleModal\" (click)=\"onClose()\">Close</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-resume-upload-confirm',\r\n templateUrl: './resume-upload-confirm.component.html',\r\n styleUrls: ['./resume-upload-confirm.component.scss']\r\n})\r\nexport class ResumeUploadConfirmComponent implements OnInit {\r\n\r\nreqNo : any;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.reqNo = sessionStorage.getItem('REQ_NO')\r\n }\r\n\r\n onClose(){\r\n this.router.navigate(['job-application-form']);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nconst pdfMakeX = require('pdfmake/build/pdfmake.js');\r\nconst pdfFontsX = require('pdfmake-unicode/dist/pdfmake-unicode.js');\r\npdfMakeX.vfs = pdfFontsX.pdfMake.vfs;\r\nconst pdfMake = require('pdfmake/build/pdfmake.js');\r\nimport { SharedMethodsService } from 'src/app/services/shared-methods.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n\r\ninterface PrintData {\r\n M_CODE: string;\r\n AGE: number;\r\n listAttachments: any[];\r\n listEMR: any[];\r\n listEXP: any[];\r\n listFamily: any[];\r\n listIntf: any;\r\n listQual: any;\r\n};\r\n\r\ninterface Interv {\r\n M_NAME: string;\r\n RELATIONS: string;\r\n};\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class InterviewFormatCandidateService {\r\n singleEvaluationSheet: any = [];\r\n printData: any = [];\r\n printDataList: any = [];\r\n textFontSize = 7; //8\r\n fieldheadingFontSize = 8; //9\r\n blackheadingFontSize = 12; //14\r\n listPersonalDetails: any;\r\n constructor(\r\n private userService: UserService,\r\n private methService: SharedMethodsService,\r\n ) {\r\n }\r\n interviewformatPDF(apiResonse: any): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n this.singleEvaluationSheet = [];\r\n this.printData = [];\r\n this.printDataList = [];\r\n this.printData = apiResonse;\r\n\r\n this.printData.ListIntf.forEach((element: any) => {\r\n console.log('M_CODE', element.T_CODE)\r\n this.printDataList.push({\r\n M_CODE: element.T_CODE || '', // Use optional chaining to avoid null/undefined errors\r\n AGE: calculateAge(element.DOB),\r\n listAttachments: filterList(this.printData.ListAttachments, 'M_CODE', element.T_CODE),\r\n listEMR: filterList(this.printData.ListEMR, 'M_CODE', element.T_CODE), // Add your specific condition\r\n listEXP: filterList(this.printData.ListEXP, 'M_CODE', element.T_CODE), // Add your specific condition\r\n listFamily: filterList(this.printData.ListFamily, 'M_CODE', element.T_CODE), // Add your specific condition\r\n listIntf: element ? [element] : [], // No filtering for listIntf\r\n listQual: filterList(this.printData.ListQual, 'M_CODE', element.T_CODE), // Add your specific condition\r\n });\r\n });\r\n\r\n console.log('The assigned Print data List is: ', this.printDataList);\r\n\r\n function calculateAge(dob: string): number {\r\n\r\n const [day, month, year] = dob.split('-');\r\n const isoDateString = `${year}-${month}-${day}`;\r\n const birthDate = new Date(isoDateString);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n\r\n // If birthdate has not occurred this year yet, subtract one year\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n console.log(\"Age: \", age)\r\n return age;\r\n }\r\n function filterList(list: any[], key: string, value: any): any[] {\r\n return list\r\n ? list.filter(item =>\r\n item[key] === value\r\n )\r\n : [];\r\n };\r\n\r\n this.printDataList.forEach((element: any, index: number) => {\r\n let genData = [\r\n {\r\n pageBreak: index == 0 ? 'avoid' : 'before',\r\n text: 'Field Interview Detail',\r\n fontSize: 11,\r\n alignment: 'center',\r\n color: '#000000',\r\n bold: true,\r\n decoration: 'underline',\r\n margin: [0, 10, 0, 0],\r\n },\r\n\r\n {\r\n text: element.listIntf[0].DIV_NAME.toUpperCase(),\r\n style: 'sectionHeader',\r\n decoration: 'underline',\r\n bold: true,\r\n fontSize: this.blackheadingFontSize,\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Interviewed By :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].INTW_BY.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Designation :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].INTW_DESIG.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'HQ :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].INTW_HQ.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'State :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].INTW_STATE.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Division :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n alignment: 'left',\r\n },\r\n {\r\n text: element.listIntf[0].INTW_DIV.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-20, 0, 0, 0],\r\n },\r\n {\r\n text: 'Grade :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Sel by Mgmt :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Name :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Sel by Sr.Mgr :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Name :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Comment :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'First Round By :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'First Round Rem :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Sec Round By :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Action :-',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-30, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Sec Round Rem :-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: '',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n ]\r\n },\r\n\r\n { canvas: [{ type: 'line', lineColor: '000000', x1: 0, y1: 5, x2: 595 - 2 * 40, y2: 5, lineWidth: 2 }] },\r\n\r\n ]\r\n\r\n this.singleEvaluationSheet.push(genData);\r\n\r\n if (element.listIntf[0].ACTION.trim() != '') {\r\n let leftTraining = [\r\n {\r\n text: element.listIntf[0].ACTION + ' AFTER ACTION : ASSIGNED FOR INTERVIEW'.toUpperCase(),\r\n alignment: 'center',\r\n bold: false,\r\n margin: [30, 10, 10, 10],\r\n fontSize: 8,\r\n decoration: 'underline',\r\n },\r\n ]\r\n this.singleEvaluationSheet.push(leftTraining);\r\n }\r\n\r\n let interviewPerforma = [\r\n\r\n {\r\n margin: [0, 5, 0, 0],\r\n columnGap: 10,\r\n columns:\r\n [\r\n {\r\n text: 'Registration No:',\r\n margin: [380, 0, -210, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.M_CODE,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [220, 0, -10, 0],\r\n decoration: 'underline',\r\n\r\n },\r\n\r\n ]\r\n },\r\n {\r\n margin: [0, 10, 10, 10],\r\n canvas: [{\r\n type: 'rect',\r\n x: 1,\r\n y: 1,\r\n w: 135,\r\n h: 160,\r\n lineColor: '#000000',\r\n }]\r\n },\r\n\r\n {\r\n\r\n text: 'INTERVIEW PERFORMA',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n bold: true,\r\n margin: [30, -130, 10, 10],\r\n background: '#000000',\r\n\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columns:\r\n [\r\n {\r\n text: 'Place (of Interview):-',\r\n margin: [150, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n width: 'auto',\r\n },\r\n {\r\n text: element.listIntf[0].INT_PLACE.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [5, 0, 10, 0],\r\n // alignment: 'left',\r\n decoration: 'underline',\r\n\r\n },\r\n {\r\n text: 'Date:',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [65, 0, 10, 0],\r\n },\r\n {\r\n text: element.listIntf[0].CRTD_ON,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [0, 0, 10, 0],\r\n // alignment: 'left',\r\n decoration: 'underline',\r\n\r\n },\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n //columnGap: 10,\r\n columns:\r\n [\r\n {\r\n text: 'Post applied for:-',\r\n // margin: [0, 0, 10, 0],\r\n margin: [150, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n // alignment: 'right',\r\n },\r\n {\r\n text: element.listIntf[0].DESIG_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-35, 0, 10, 0],\r\n // alignment: 'left',\r\n decoration: 'underline',\r\n\r\n },\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Preference of H.Q.-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [150, 0, 0, 0],\r\n width: '*',\r\n // width: 'auto',\r\n // alignment: 'left',\r\n // margin: [0, 0, 10, 0],\r\n\r\n },\r\n\r\n {\r\n text: '1.',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [20, 0, 0, 0],\r\n\r\n },\r\n {\r\n text: element.listIntf[0].HQ_PREF1_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-172, 0, 10, 0],\r\n decoration: 'underline',\r\n wrap: true,\r\n\r\n },\r\n {\r\n text: '2.',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [-280, 0, 0, 0],\r\n },\r\n {\r\n text: element.listIntf[0].HQ_PREF2_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-472, 0, 10, 0],\r\n decoration: 'underline',\r\n // wrap:true,\r\n\r\n },\r\n {\r\n text: '3.',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [-570, 0, 0, 0],\r\n },\r\n {\r\n text: element.listIntf[0].HQ_PREF3_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-762, 0, 0, 0],\r\n decoration: 'underline',\r\n wrap: true,\r\n\r\n },\r\n\r\n ]\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n //columnGap: 10,\r\n columns:\r\n [\r\n {\r\n text: 'H.Q. Flexible:-',\r\n // margin: [0, 0, 10, 0],\r\n margin: [150, 0, 10, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n // alignment: 'right',\r\n },\r\n {\r\n text: element.listIntf[0].HQ_FLEX.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-35, 0, 10, 0],\r\n //alignment: 'left',\r\n decoration: 'underline',\r\n\r\n },\r\n\r\n ]\r\n },\r\n\r\n ]\r\n this.singleEvaluationSheet.push(interviewPerforma);\r\n\r\n\r\n let personalDetails =\r\n [\r\n {\r\n\r\n text: 'Personal Details',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n margin: [30, 10, 10, 10],\r\n background: '#000000',\r\n bold: true,\r\n\r\n },\r\n\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'I. Name (As per ID Proof)',\r\n //margin: [0, 0, 0, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: 'First Name:',\r\n margin: [20, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].FIRST_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-10, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Middle Name:',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].MIDDLE_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-17, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Last Name:',\r\n margin: [-9, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].LAST_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-41, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n // {\r\n // margin: [0, 0, 0, 5],\r\n // columnGap: 10,\r\n // columns: [\r\n // {\r\n // text: 'II. Permanent Address:',\r\n // bold: true,\r\n // fontSize: this.fieldheadingFontSize,\r\n // },\r\n // ]\r\n // },\r\n {\r\n margin: [0, -5, 0, 5],\r\n columnGap: 10,\r\n columns:\r\n [\r\n {\r\n text: 'II. Permanent Address:',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [0, 0, 0, 5],\r\n },\r\n {\r\n text:\r\n element.listIntf[0].ADD1.toUpperCase() + ',' +\r\n element.listIntf[0].ADD2.toUpperCase() + ',' +\r\n // element.listIntf[0].ADD2 == '' ? ',' : ''+\r\n element.listIntf[0].ADD3.toUpperCase() + ',' +\r\n // element.listIntf[0].ADD3 != '' ? '' : ',', //+\r\n element.listIntf[0].DIST_NAME.toUpperCase() + ',' +\r\n element.listIntf[0].CITY.toUpperCase() + ',' +\r\n element.listIntf[0].STATE_NAME.toUpperCase(),\r\n // element.listIntf[0].PINCODE+', '+\r\n // element.listIntf[0].POST,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-170, 0, 0, 0],\r\n // alignment:'left',\r\n\r\n }\r\n ]\r\n },\r\n\r\n // {\r\n // margin: [0, 0, 0, 5],\r\n // columnGap: 10,\r\n // columns: [\r\n // {\r\n // text: 'III. Communication Address:',\r\n // bold: true,\r\n // fontSize: this.fieldheadingFontSize,\r\n // },\r\n // ]\r\n // },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'III. Communication Address:',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [0, 0, 0, 5],\r\n },\r\n {\r\n text:\r\n\r\n element.listIntf[0].CURR_ADD1.toUpperCase() + '' +\r\n element.listIntf[0].CURR_ADD2.toUpperCase() + ',' +\r\n element.listIntf[0].CURR_ADD3.toUpperCase() + ',' +\r\n element.listIntf[0].CURR_DIST_NAME.toUpperCase() + ',' +\r\n element.listIntf[0].CURR_CITY.toUpperCase() + ',' +\r\n element.listIntf[0].CURR_STATE_NAME.toUpperCase(),//+' - '+\r\n // element.listIntf[0].CURR_PINCODE+', '+\r\n // element.listIntf[0].CURR_POST,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-150, 0, 0, 0],\r\n },\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'IV. Phone(Res):',\r\n margin: [0, 0, 0, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text:\r\n element.listIntf[0].PHONE_RES,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: '(Mob):',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].PHONE_MOB,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Aadhaar No:',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text:\r\n element.listAttachments[0].FLDNAME == 'ID1' ? element.listAttachments[0].ID_TEXT : '' +\r\n element.listAttachments[1].FLDNAME == 'ID1' ? element.listAttachments[1].ID_TEXT : '',\r\n\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'V. D.O.B.',\r\n margin: [0, 0, 0, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n // text: element.listIntf[0].DOB,\r\n text: this.methService.formatDateForInterviewPerforma(new Date(this.methService.ChangeDateFormate(element.listIntf[0].DOB))).toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Age',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.AGE,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Marital Status',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].MAR_STATUS_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n ]\r\n },\r\n ]\r\n\r\n this.singleEvaluationSheet.push(personalDetails);\r\n\r\n var bodyDataQual: any = [];\r\n // var bodyDataInnerQual:any = [];\r\n // bodyDataInnerQual.push(['From','To']);\r\n bodyDataQual.push(\r\n [\r\n { text: 'From', bold: true, fontSize: this.fieldheadingFontSize },\r\n { text: 'To', bold: true, fontSize: this.fieldheadingFontSize },\r\n { text: 'Board / University', bold: true, fontSize: this.fieldheadingFontSize },\r\n { text: 'Course / Specialization', bold: true, fontSize: this.fieldheadingFontSize },\r\n { text: '% age marks', bold: true, fontSize: this.fieldheadingFontSize }\r\n ]);\r\n element.listQual.reverse().forEach((QualEle: any, index: number) => {\r\n var dataRow = [];\r\n dataRow.push({ text: this.methService.formatDateForInterviewPerforma(new Date(this.methService.ChangeDateFormate(QualEle.Q_FROM))) });\r\n dataRow.push(QualEle.Q_TO == \"\" ? \"\" : this.methService.formatDateForInterviewPerforma(new Date(this.methService.ChangeDateFormate(QualEle.Q_TO))));\r\n dataRow.push(QualEle.BOARD.toUpperCase());\r\n dataRow.push(QualEle.SPEC_NAME);\r\n dataRow.push(QualEle.PER);\r\n bodyDataQual.push(dataRow)\r\n });\r\n\r\n console.log(bodyDataQual);\r\n\r\n let qualificationDetails =\r\n [\r\n {\r\n\r\n text: 'Qualification Details',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n margin: [30, 5, 10, 10],\r\n background: '#000000',\r\n bold: true,\r\n\r\n },\r\n {\r\n table:\r\n {\r\n headerRows: 1,\r\n widths: '*',\r\n //widths: 'auto',\r\n body: bodyDataQual,\r\n dontBreakRows: true,\r\n },\r\n alignment: \"center\",\r\n fontSize: this.textFontSize,\r\n\r\n },\r\n\r\n ]\r\n\r\n this.singleEvaluationSheet.push(qualificationDetails);\r\n\r\n\r\n let familyBackground =\r\n [\r\n {\r\n\r\n text: 'Family Background',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n margin: [30, 10, 10, 10],\r\n background: '#000000',\r\n bold: true,\r\n //pageBreak: 'before',\r\n\r\n },\r\n {\r\n margin: [0, 0, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n { //'Let\\'s\r\n text: 'I. Father\\'s Name',\r\n margin: [0, 0, 0, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].FATHER_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-20, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Occupation',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].FATHER_OCCU.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-35, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Net Earning/Month(Rs.)',\r\n margin: [-15, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text:\r\n // element.listIntf[0].FATHER_EARNING !== ''? 'Rs.':''+\r\n element.listIntf[0].FATHER_EARNING,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [10, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'II. Mother\\'s Name',\r\n margin: [0, 0, 0, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].MOTHER_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-18, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Occupation',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].MOTHER_OCCU.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-35, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Net Earning/Month(Rs.)',\r\n margin: [-15, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: //element.listIntf[0].MOTHER_EARNING !== ''?'Rs.':''+\r\n element.listIntf[0].MOTHER_EARNING,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [10, 0, 0, 0],\r\n decoration: 'underline',\r\n }\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'III. House own or Rented',\r\n margin: [0, 0, -50, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].OWN_HOUSE_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [35, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'where',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].HOUSE_LOCATION.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-50, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Rent Rs.',\r\n margin: [5, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text:\r\n element.listIntf[0].RENT !== '' ? 'Rs.' : '' +\r\n element.listIntf[0].RENT,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n\r\n ]\r\n },\r\n ]\r\n\r\n this.singleEvaluationSheet.push(familyBackground);\r\n\r\n var bodyDataFamily: any = [];\r\n bodyDataFamily.push([{ text: 'Sl.No.', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Name', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Relation', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Occupation', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Profession', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Salary', bold: true, fontSize: this.fieldheadingFontSize }]);\r\n\r\n if (element.listFamily.length == 0) {\r\n\r\n bodyDataFamily.push([1, '', '', '', '', '']);\r\n }\r\n else {\r\n\r\n element.listFamily.reverse().forEach((familyEle: any, index: number) => {\r\n var dataRow = [];\r\n dataRow.push(index + 1);\r\n dataRow.push(familyEle.M_NAME.toUpperCase());\r\n dataRow.push(familyEle.RELATIONS.toUpperCase());\r\n dataRow.push(familyEle.OCCUPATION.toUpperCase());\r\n dataRow.push(familyEle.PROFESSION.toUpperCase());\r\n dataRow.push(familyEle.SALARY);\r\n bodyDataFamily.push(dataRow)\r\n });\r\n }\r\n\r\n let detailsOfBrotherSisterJijaJi =\r\n [\r\n {\r\n\r\n text: 'Details of Brother/s / Sister/s & Jija Ji (Brother-in-Law)',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n bold: true,\r\n // margin: [30, 10, 10, 10],\r\n margin: [30, 10, 10, 10],\r\n background: '#000000',\r\n // pageBreak: 'avoid',\r\n pageBreak: 'before',\r\n },\r\n {\r\n table: {\r\n headerRows: 1,\r\n dontBreakRows: true,\r\n //widths: 'auto',\r\n widths: '*',\r\n body: bodyDataFamily,\r\n },\r\n alignment: \"center\",\r\n fontSize: this.textFontSize,\r\n }\r\n ]\r\n\r\n this.singleEvaluationSheet.push(detailsOfBrotherSisterJijaJi);\r\n\r\n var bodyAnyRelatives: any = [];\r\n bodyAnyRelatives.push([{ text: 'Sl.No.', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Name', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Relation', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Profession', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Company', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Place', bold: true, fontSize: this.fieldheadingFontSize }]);\r\n\r\n // if(element.listFamily.length==0)\r\n //{\r\n\r\n bodyAnyRelatives.push([1, '', '', '', '', '']);\r\n // }\r\n // else\r\n // {\r\n\r\n // element.listFamily.reverse().forEach((familyEle: any,index:number) => {\r\n // var dataRow = [];\r\n // dataRow.push(index+1);\r\n // dataRow.push(familyEle.M_NAME);\r\n // dataRow.push(familyEle.RELATIONS);\r\n // dataRow.push(familyEle.OCCUPATION);\r\n // dataRow.push(familyEle.PROFESSION);\r\n // dataRow.push(familyEle.SALARY);\r\n // bodyAnyRelatives.push(dataRow)\r\n // });\r\n // }\r\n\r\n let detailsOfAnyrelativesOrFriendsWorkingAsChemists =\r\n [\r\n {\r\n\r\n text: 'Any relatives or friends working as chemists/whole seller/C&F/Med. Rep./Manager/Doctor',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n bold: true,\r\n // margin: [30, 10, 10, 10],\r\n margin: [0, 10, 0, 10],\r\n background: '#000000',\r\n // pageBreak: 'avoid',\r\n //pageBreak: 'before',\r\n },\r\n {\r\n table: {\r\n headerRows: 1,\r\n dontBreakRows: true,\r\n //widths: 'auto',\r\n widths: '*',\r\n body: bodyAnyRelatives,\r\n },\r\n alignment: \"center\",\r\n fontSize: this.textFontSize,\r\n }\r\n ]\r\n\r\n this.singleEvaluationSheet.push(detailsOfAnyrelativesOrFriendsWorkingAsChemists);\r\n\r\n\r\n\r\n\r\n\r\n let GeneralDetails =\r\n [\r\n // {\r\n\r\n // text: 'General Details',\r\n // fontSize: 14,\r\n // alignment: 'center',\r\n // color: '#ffffff',\r\n // margin: [30, 10, 10, 10],\r\n // background: '#000000',\r\n\r\n // },\r\n {\r\n margin: [0, 15, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'I. Present Ambition',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [0, 0, 0, 5],\r\n },\r\n {\r\n text: element.listIntf[0].PRESENT_AMB.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-50, 0, 0, 0],\r\n },\r\n {\r\n text: 'II. Past Ambition',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [-10, 0, 0, 5],\r\n },\r\n {\r\n text: element.listIntf[0].PREVIOUS_AMB.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-70, 0, 0, 0],\r\n },\r\n\r\n ]\r\n },\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'III. Are you taking any Medicine, write the name of Medicine & disease',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [0, 0, -50, 5],\r\n },\r\n {\r\n text: element.listIntf[0].MEDNDESEASE.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [60, 0, 5, 0],\r\n }\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'IV. Any Medical History',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [0, 0, 0, 5],\r\n },\r\n {\r\n text: element.listIntf[0].MEDICAL_HISTORY_NAME.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-135, 0, 0, 0],\r\n }\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'V. How much money is sufficient for comfortable life :-',\r\n margin: [0, 0, -120, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].AMT_COMFORTABLE_LIFE,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [102, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n {\r\n text: 'Luxurious life',\r\n margin: [25, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].AMT_LUXIRIOUS_LIFE,\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-5, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n\r\n\r\n ]\r\n },\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'VI. Do you have your own vehicle : Yes/ No',\r\n margin: [0, 0, -100, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n // {\r\n // margin: [70, 0, 0, 0],\r\n // canvas: [\r\n // {\r\n // type: 'rect',\r\n // x: 1,\r\n // y: 1,\r\n // w: 30,\r\n // h: 13,\r\n // lineColor: '#000000',\r\n // }\r\n // ]\r\n // },\r\n\r\n {\r\n text: element.listIntf[0].OWN_VECHICLE.toUpperCase(),\r\n margin: [80, 0, 0, 0],\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n //fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n margin: [-35, -1, 0, 0],\r\n canvas: [\r\n {\r\n type: 'rect',\r\n x: 1,\r\n y: 1,\r\n w: 30,\r\n h: 10,\r\n lineColor: '#000000',\r\n }\r\n ]\r\n },\r\n\r\n // {\r\n // text: element.listIntf[0].OWN_VECHICLE,\r\n // bold: false,\r\n // fontSize: this.textFontSize,\r\n // margin: [70, 0, 0, 0],\r\n // decoration: 'underline',\r\n // },\r\n\r\n {\r\n text: 'Vehicle No.',\r\n margin: [30, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].VECHICLE_NO.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [6, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n\r\n\r\n ]\r\n },\r\n\r\n\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n\r\n {\r\n text: 'VII. Have you ever given interview in Mankind Pharma Ltd. in the past? Yes/No',\r\n margin: [0, 0, -200, 5],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n\r\n\r\n {\r\n text: element.listIntf[0].PRV_INTERVIEWED.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [145, 0, 0, 0],\r\n //decoration: 'underline',\r\n },\r\n {\r\n margin: [-30, -1, 0, 0],\r\n canvas: [\r\n {\r\n type: 'rect',\r\n x: 1,\r\n y: 1,\r\n w: 30,\r\n h: 10,\r\n lineColor: '#000000',\r\n }\r\n ]\r\n },\r\n {\r\n text: 'When',\r\n margin: [-120, 0, 0, 0],\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n },\r\n {\r\n text: element.listIntf[0].PRV_INTERVIEW_TM,\r\n //text: 'Vl1',\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n margin: [-240, 0, 0, 0],\r\n decoration: 'underline',\r\n },\r\n\r\n\r\n ]\r\n },\r\n\r\n\r\n ]\r\n\r\n this.singleEvaluationSheet.push(GeneralDetails);\r\n\r\n\r\n var bodyDataExp: any = [];\r\n bodyDataExp.push([{ text: 'Sl.No.', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Company / Division', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Designation', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Salary (Excl. Expenses)', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Total Package', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'H.Q.', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'From', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'To', bold: true, fontSize: this.fieldheadingFontSize }, { text: 'Reason of leaving', bold: true, fontSize: this.fieldheadingFontSize }]);\r\n\r\n\r\n if (element.listEXP.length == 0) {\r\n\r\n bodyDataExp.push([1, '', '', '', '', '', '', '', '']);\r\n }\r\n else {\r\n\r\n element.listEXP.reverse().forEach((expr: any, index: number) => {\r\n var dataRow = [];\r\n dataRow.push(index + 1);\r\n dataRow.push(expr.COMPANY.toUpperCase());\r\n dataRow.push(expr.DESIG.toUpperCase());\r\n dataRow.push(expr.SALARY);\r\n dataRow.push(expr.T_PACKAGE);\r\n dataRow.push(expr.HQ.toUpperCase());\r\n dataRow.push(this.methService.formatDateForInterviewPerforma(new Date(this.methService.ChangeDateFormate(expr.E_FROM))));\r\n dataRow.push(expr.CURR_EMPLOYER == \"Yes\" ? \"Presently Working\".toUpperCase() : this.methService.formatDateForInterviewPerforma(new Date(this.methService.ChangeDateFormate(expr.E_TO))));\r\n dataRow.push(expr.REASON_TO_LEAVING.toUpperCase());\r\n bodyDataExp.push(dataRow)\r\n });\r\n }\r\n\r\n let experienceStartFromCurrentOrganisation =\r\n [\r\n {\r\n\r\n text: 'Experience (Start from current organisation)',\r\n fontSize: this.blackheadingFontSize,\r\n alignment: 'center',\r\n color: '#ffffff',\r\n bold: true,\r\n margin: [30, 0, 10, 10],\r\n background: '#000000',\r\n\r\n },\r\n {\r\n table: {\r\n headerRows: 1,\r\n dontBreakRows: true,\r\n //widths:['*', 'auto'],\r\n widths: 'auto',\r\n body: bodyDataExp,\r\n },\r\n alignment: \"center\",\r\n fontSize: this.textFontSize,\r\n //margin: [-15, 0, 0, 0],\r\n }\r\n ]\r\n\r\n this.singleEvaluationSheet.push(experienceStartFromCurrentOrganisation);\r\n\r\n let footer =\r\n [\r\n {\r\n margin: [0, 10, 10, 10],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Your Strengths:-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [5, 0, 0, 0],\r\n },\r\n {\r\n text: element.listIntf[0].STRENGTH.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-165, 0, 0, 0],\r\n // alignment:'left',\r\n }\r\n\r\n ]\r\n },\r\n {\r\n margin: [0, -8, 0, 5],\r\n columnGap: 10,\r\n columns: [\r\n {\r\n text: 'Your Weaknesses:-',\r\n bold: true,\r\n fontSize: this.fieldheadingFontSize,\r\n margin: [5, 0, 0, 0],\r\n },\r\n {\r\n text: element.listIntf[0].WEAKNESS.toUpperCase(),\r\n bold: false,\r\n fontSize: this.textFontSize,\r\n decoration: 'underline',\r\n margin: [-170, 0, 0, 0],\r\n }\r\n\r\n ]\r\n },\r\n ]\r\n\r\n this.singleEvaluationSheet.push(footer);\r\n\r\n });\r\n\r\n let docDefinition =\r\n {\r\n pageSize: \"A4\",\r\n pageOrientation: \"portrait\",\r\n content:\r\n [\r\n this.singleEvaluationSheet,\r\n ],\r\n\r\n };\r\n const pdfDocGenerator = pdfMake.createPdf(docDefinition);\r\n pdfDocGenerator.getBlob((blob: Blob | MediaSource) => {\r\n const blobUrl = URL.createObjectURL(blob);\r\n console.log(\"Blob URL:\", blobUrl);\r\n if (blobUrl) {\r\n resolve(blobUrl); \r\n } else {\r\n reject('Failed to generate Base64 PDF');\r\n }\r\n // Example: Opening the PDF in a new tab\r\n // window.open(blobUrl, \"_blank\");\r\n \r\n // Example: Create a download link dynamically\r\n // const link = document.createElement(\"a\");\r\n // link.href = blobUrl;\r\n // link.download = \"document.pdf\"; // Specify the file name\r\n // link.click();\r\n // pdfDocGenerator.getBase64((base64Data: string) => {\r\n // if (base64Data) {\r\n // resolve(base64Data); \r\n // } else {\r\n // reject('Failed to generate Base64 PDF');\r\n // }\r\n });\r\n });\r\n}\r\n printPDF(docDefinition: any) {\r\n console.log(docDefinition);\r\n \r\n const pdfDocGenerator = pdfMake.createPdf(docDefinition);\r\n \r\n // Generate and log Base64 representation\r\n pdfDocGenerator.getBase64((base64Data: string) => {\r\n console.log('Base64 Encoded PDF:', base64Data);\r\n \r\n // Optionally, you can use the Base64 data for further processing, e.g., sending it to a server\r\n });\r\n \r\n // Print the PDF\r\n // pdfDocGenerator.print();\r\n }\r\n // printPDF(docDefinition: any) {\r\n // console.log(docDefinition)\r\n // pdfMake.createPdf(docDefinition).print();\r\n // }\r\n\r\n downloadPDF(docDefinition: any, pdfName: string) {\r\n pdfMake.createPdf(docDefinition).download(pdfName);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { InterviewFormatCandidateService } from 'src/app/services/interview-format-candidate.service';\r\nimport { PrintService } from 'src/app/services/print.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\nconst defaultValue = environment.key;\r\n@Component({\r\n selector: 'app-interview-performa',\r\n templateUrl: './interview-performa.component.html',\r\n styleUrls: ['./interview-performa.component.scss']\r\n})\r\nexport class InterviewPerformaComponent implements OnInit {\r\n itapno: any | null = null;\r\n base64: any = ''\r\n username: string | null = null;\r\n isValid: boolean = false;\r\n getFileURL:any='';\r\n constructor(private route: ActivatedRoute, private printService: PrintService,\r\n private interviewformatService: InterviewFormatCandidateService,\r\n private userService: UserService,\r\n private snackBar: MatSnackBar,\r\n private notificationService: NotificationService,) { }\r\n\r\n ngOnInit(): void {\r\n this.itapno = this.route.snapshot.paramMap.get('itapno');\r\n this.username = this.route.snapshot.paramMap.get('username');\r\n this.route.params.subscribe((params) => {\r\n this.itapno = params['itapno'];\r\n this.username = params['username'];\r\n let newitapno = this.decryptNumber(this.itapno) //parseInt(this.itapno, 16)\r\n this.isValid = this.isValidItapno(newitapno.toString());\r\n if (this.isValid == true) {\r\n this.createInterviewPerforma(newitapno.toString(),this.username)\r\n }else{\r\n this.notificationService.showError('Please check your URL and try again!');\r\n }\r\n });\r\n }\r\n // generatePdf() {\r\n // const options: jsPDFOptions = {\r\n // orientation: 'p', \r\n // unit: 'mm', \r\n // format: 'a4', \r\n // encryption: { \r\n // userPassword: '123',\r\n // ownerPassword: '123',\r\n // userPermissions: []\r\n // }\r\n // };\r\n // var doc = new jsPDF(options);\r\n // doc.text('This is a password-protected PDF document.', 20, 30);\r\n // doc.save('protected-document.pdf');\r\n // }\r\n \r\n decryptNumber(encrypted: string): number {\r\n const key = defaultValue; \r\n const decryptedNumber = parseInt(encrypted, 12) ^ key; \r\n return decryptedNumber;\r\n }\r\n createInterviewPerforma(arg0: string,key:any) {\r\n this.userService.getRPTInterviewPerformaNewPer(arg0,key).subscribe((data: any) => {\r\n if(data[0]?.ERROR==\"Invalid Link\"){\r\n this.notificationService.showError(data[0]?.ERROR);\r\n return;\r\n\r\n }\r\n if (data.ListIntf.length > 0) {\r\n this.printService.setPrintData(data);\r\n let baseUrl = this.getBaseUrl();\r\n localStorage.setItem(\"PRINT_DATA\", JSON.stringify(data));\r\n // this.interviewformatService.interviewformatPDF(data);\r\n this.generatePDF(data);\r\n } else {\r\n this.notificationService.showError('No data available');\r\n }\r\n }, error => {\r\n console.log(\"Error from API: \", error)\r\n })\r\n }\r\n generatePDF(data: any): any {\r\n this.interviewformatService.interviewformatPDF(data).then((blobUrl: string) => {\r\n console.log('Base64 PDF generated:', blobUrl);\r\n this.getFileURL = blobUrl;\r\n window.location.href = blobUrl;\r\n })\r\n .catch((error: any) => {\r\n console.error('Error generating Base64 PDF:', error);\r\n });\r\n }\r\n isValidItapno(value: any | null): boolean {\r\n if (value && !isNaN(Number(value)) && value.trim() !== '') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n getBaseUrl(): string {\r\n const protocol = window.location.protocol;\r\n const host = window.location.host;\r\n return `${protocol}//${host}`;\r\n }\r\n download(){\r\n const link = document.createElement(\"a\");\r\n link.href = this.getFileURL;\r\n link.download = \"document.pdf\"; // Specify the file name\r\n link.click();\r\n }\r\n}","<mat-toolbar class=\"mat-toolbar mat-elevation-z1 bg-primary mat-toolbar-single-row header-position\">\r\n <div _ngcontent-yas-c264=\"\" class=\"d-flex justify-content-between align-items-center\" style=\"width: 100%;\">\r\n <div _ngcontent-yas-c264=\"\" class=\"d-flex align-items-center\">\r\n <img _ngcontent-yas-c264=\"\" src=\"./assets/mankind-logo.png\" height=\"50px\" alt=\"ITAP\">\r\n </div>\r\n <div _ngcontent-yas-c264=\"\" class=\"text-white flex-grow-1 text-center\" style=\"text-wrap: wrap;\">JOINING\r\n CONFIRMATION(MANAGER)</div>\r\n <div _ngcontent-yas-c264=\"\" aria-haspopup=\"true\" class=\"mat-menu-trigger d-flex align-items-center\">\r\n <img _ngcontent-yas-c264=\"\" src=\"./assets/iTapLogo.png\" height=\"50px\" alt=\"ITAP\" class=\"me-2\">\r\n\r\n </div>\r\n </div>\r\n</mat-toolbar>\r\n<div class=\"p-3 mr-top-head\">\r\n <div class=\"row\" style=\"padding-right: 12px; padding-left: 12px;\">\r\n <form [formGroup]=\"filterDataForm\">\r\n <mat-accordion class=\"example-headers-align p-0\">\r\n <mat-expansion-panel class=\"mat-expansion-panel\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <strong><u>CLICK TO ADD FILTERS</u></strong>\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n\r\n <div class=\" align-items-center\">\r\n\r\n <div class=\"row align-items-center px-2\">\r\n\r\n <div class=\"col-lg-2 col-md-4 col-sm-12 mb-1 p-1\">\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"joinee\">SELECT JOINEE</mat-label>\r\n <!-- (selectionChange)=\"setTrainingDates()\" -->\r\n <mat-select formControlName=\"joinee\" (selectionChange)=\"selectJoinee()\">\r\n <mat-form-field appearance=\"outline\" class=\"input-new-search\">\r\n <!-- (keyup)=\"applyFilterTraining($event)\" -->\r\n <input matInput class=\"input-new\" (keyup)=\"applyFilterJoinee($event)\"\r\n (keydown)=\"$event.stopPropagation()\"\r\n placeholder=\"Enter Training Date\" #input style=\"height: 30px !important;\r\n margin: 10px;\">\r\n </mat-form-field>\r\n <mat-option value=\"\">Select Joinee</mat-option>\r\n <mat-option *ngFor=\"let _joinee of filteredJoinee\"\r\n [value]=\"_joinee.T_CODE\">{{_joinee.T_NAME}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-3 col-md-5 col-sm-12 mb-1 p-1\">\r\n <label>ARE YOU FIRST LINE MANAGER OF JOINEE?</label>\r\n </div>\r\n <div class=\"col-lg-2 col-md-4 col-sm-12 mb-1 p-1\">\r\n <div class=\"input-group\">\r\n <!-- [(ngModel)]=\"isExperienced\" (ngModelChange)=\"expSelect()\" -->\r\n <mat-button-toggle-group formControlName=\"managerConfirmation\" name=\"fontStyle\">\r\n <mat-button-toggle value=\"Yes\">Yes</mat-button-toggle>\r\n <mat-button-toggle value=\"No\">No</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-lg-2 col-md-4 col-sm-12 mb-1 p-1\">\r\n <div class=\"input-group\">\r\n <button mat-raised-button color=\"primary\" (click)=\"applyFilter()\" type=\"submit\"\r\n style=\"width: 100%;\">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </form>\r\n <div class=\"button-header mt-3 d-flex justify-content-center align-items-center mr-header-align\">\r\n <mat-label class=\"header_al\">PLEASE PROVIDE INFORMATION</mat-label>\r\n </div>\r\n <form [formGroup]=\"joiningForm\" *ngIf=\"isManager=='JoineeForm'\">\r\n\r\n <div class=\"table-container-temp mb-5\">\r\n <div class=\"container\">\r\n <div class=\"row \">\r\n <div class=\"col-md-3\">\r\n <label for=\"status\" class=\"header_al\">STATUS: {{candidateDetail?.STATUS}}</label>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <label for=\"division\" class=\"header_al\">DIVISION: {{candidateDetail?.DIVISION_NAME}}</label>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <label for=\"hq\" class=\"header_al\">HQ: {{candidateDetail?.HQ_NAME}}</label>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <label for=\"Designation\" class=\"header_al\">DESIGNATION:\r\n {{candidateDetail?.DESIG_NAME}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row \">\r\n <div>\r\n\r\n <div class=\"container\">\r\n <div class=\"col-md-3\">\r\n <mat-form-field appearance=\"outline\" class=\"datepicker-full-width\">\r\n <mat-label>DATE OF JOINEE</mat-label>\r\n <!-- [max]=\"maxDate\" -->\r\n <input matInput formControlName=\"doj\" [matDatepicker]=\"datepicker3\"\r\n class=\"form-control\" placeholder=\"DD/MM/YYYY\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker3\"></mat-datepicker-toggle>\r\n <mat-datepicker #datepicker3></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"itapNo\">PHONE NUMBER </mat-label>\r\n <input matInput placeholder=\"PHONE NUMBER\" formControlName=\"phone\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"itapNo\">EMAIL </mat-label>\r\n <input matInput placeholder=\"EMAIL\" formControlName=\"email\" class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"container\">\r\n\r\n <div class=\"row table-border-form\">\r\n <div class=\"col-md-6 table-border-right\" formGroupName=\"address\">\r\n <label class=\"header_al\">CURRENT ADDRESS :</label>\r\n <div class=\"row mr-12\">\r\n <div class=\"col-12 mb-3\">\r\n <div class=\"input-group\">\r\n <section class=\"example-section\">\r\n <mat-checkbox (change)=\"onAddressAvailableChange($event)\"\r\n formControlName=\"addressAvailable\" color=\"primary\">ADDRESS NOT\r\n AVAILABLE</mat-checkbox>\r\n </section>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"line1\">ADDRESS LINE 1 </mat-label>\r\n <input matInput placeholder=\"ADDRESS LINE 1 \" formControlName=\"line1\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"line2\">ADDRESS LINE 2</mat-label>\r\n <input matInput placeholder=\"ADDRESS LINE 2\" formControlName=\"line2\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"line3\">ADDRESS LINE 3 </mat-label>\r\n <input matInput placeholder=\"ADDRESS LINE 3\" formControlName=\"line3\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"city\">CITY </mat-label>\r\n <input matInput placeholder=\"Enter city\" formControlName=\"city\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"pin\">PIN </mat-label>\r\n <input matInput placeholder=\"Enter pin\" formControlName=\"pin\"\r\n class=\"form-control\" (change)=\"onPinChange($event.target)\" />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"postalCode\">POSTAL CODE</mat-label>\r\n <mat-select formControlName=\"postalCode\"\r\n placeholder=\"SELECT POSTAL CODE\">\r\n <ng-container *ngFor=\"let _postalCode of postalCodeMaster\">\r\n <mat-option [value]=\"_postalCode?.T_CODE\">{{ _postalCode?.T_NAME\r\n }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"district\">DISCTRICT</mat-label>\r\n <mat-select formControlName=\"district\" placeholder=\"SELECT DISCTRICT\">\r\n <ng-container *ngFor=\"let _districtMaster of districtMaster\">\r\n <mat-option [value]=\"_districtMaster.T_CODE\">{{\r\n _districtMaster.T_NAME }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"state\">STATE</mat-label>\r\n <mat-select (selectionChange)=\"onStateChange($event.value)\"\r\n formControlName=\"state\" placeholder=\"SELECT STATE\">\r\n <ng-container *ngFor=\"let _state of stateMaster\">\r\n <mat-option [value]=\"_state.T_CODE\">{{ _state.T_NAME\r\n }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <!-- <div class=\"input-group\">\r\n <div class=\"col-md-3\">\r\n <label for=\"hq\" class=\"header_al\">COUNTRY : IND</label>\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-6\" formGroupName=\"bankDetails\">\r\n <label class=\"header_al\">Bank Details :</label>\r\n <div>\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"bank\">BANK</mat-label>\r\n <mat-select formControlName=\"bankName\" placeholder=\"SELECT BANK\">\r\n <ng-container *ngFor=\"let _bank of bankMaster\">\r\n <mat-option [value]=\"_bank.T_CODE\">{{ _bank.T_NAME\r\n }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"payment mode\">PAYMENT MODE</mat-label>\r\n <mat-select (selectionChange)=\"onPaymentModeChange($event.value)\"\r\n formControlName=\"paymentMode\">\r\n <mat-option value=\"\">Select Payment Mode</mat-option>\r\n <mat-option value=\"1\">Cheque</mat-option>\r\n <mat-option value=\"2\">Bank Transfer</mat-option>\r\n <mat-option value=\"9\">NEFT</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"ifsc\">IFSC </mat-label>\r\n <input matInput placeholder=\"ENTER IFSC\" formControlName=\"ifsc\"\r\n class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"account number\">ACCOUNT NUMBER </mat-label>\r\n <input matInput placeholder=\"ENTER ACCOUNT NUMBER\"\r\n formControlName=\"accountNumber\" class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"account number\">NAME AS PER BANK</mat-label>\r\n <input matInput placeholder=\"ENTER NAME AS PER BANK\"\r\n formControlName=\"nameAsPerBank\" class=\"form-control\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"row mr-12\">\r\n <div class=\"col-12 mb-3\">\r\n <div class=\"input-group\">\r\n <section class=\"example-section\">\r\n <mat-checkbox formControlName=\"newAccount\" color=\"primary\">OPEN NEW\r\n BANK ACCOUNT</mat-checkbox>\r\n </section>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"container\">\r\n <div class=\"col-lg-2 col-md-4 col-sm-12 mb-1 p-1\">\r\n <div class=\"input-group\">\r\n <!-- (click)=\"apply() -->\r\n <button mat-raised-button color=\"primary\" (click)=\"submit()\" type=\"submit\"\r\n style=\"width: 100%;\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n <form [formGroup]=\"mankindDivisions\" *ngIf=\"isManager=='managerForm'\">\r\n\r\n <div class=\"table-container-temp mb-5\">\r\n <div class=\"container\">\r\n <div class=\"row mr-20\">\r\n <div class=\"col-md-3\">\r\n <label for=\"status\" class=\"header_al\">JOINEE NAME: </label>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <label for=\"division\"\r\n class=\"header_al\">{{candidateDetail?.NAME}}({{candidateDetail?.T_CODE}})</label>\r\n </div>\r\n </div>\r\n <div class=\"row mr-20\">\r\n <div class=\"col-md-3\">\r\n <label for=\"status\" class=\"header_al\">SELECT FIRSTLINE : </label>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label for=\"joinee\">SELECT FIRSTLINE</mat-label>\r\n <mat-select formControlName=\"firstLine\">\r\n <mat-option value=\"\">Select FirstLine</mat-option>\r\n <mat-option *ngFor=\"let _manager of managerMaster\"\r\n [value]=\"_manager.T_CODE\">{{_manager.T_NAME}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"container mr-20\">\r\n <div class=\"col-lg-2 col-md-4 col-sm-12 mb-1 p-1\">\r\n <div class=\"input-group\">\r\n <button mat-raised-button color=\"primary\" (click)=\"submitManager()\" type=\"submit\"\r\n style=\"width: 100%;\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n </div>","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nconst defaultValue = environment.key;\r\n@Component({\r\n selector: 'app-joining-confirmation',\r\n templateUrl: './joining-confirmation.component.html',\r\n styleUrls: ['./joining-confirmation.component.scss']\r\n})\r\nexport class JoiningConfirmationComponent implements OnInit {\r\n joiningForm: FormGroup;\r\n filterDataForm: FormGroup;\r\n mankindDivisions: FormGroup;\r\n maxDate = new Date();\r\n candidateDetail: any;\r\n staffCode :any;\r\n joineeList!: any[];\r\n filteredJoinee!: any[];\r\n masterData: any;\r\n bankMaster: any;\r\n postalCodeMaster: any;\r\n districtMaster: any;\r\n stateMaster: any;\r\n districtMasterRecord: any;\r\n paymentModeMaster: any;\r\n isManager: string = '';\r\n managerMaster: any;\r\n constructor(private fb: FormBuilder,private route: ActivatedRoute,\r\n private userService: UserService, private snackBar: MatSnackBar, private notificationService: NotificationService,) {\r\n this.joiningForm = this.fb.group({\r\n doj: ['', Validators.required],\r\n phone: ['', [Validators.required, Validators.pattern('^[0-9]{10}$')]],\r\n email: ['', [Validators.required, Validators.email]],\r\n\r\n address: this.fb.group({\r\n addressAvailable: [true],\r\n line1: ['', Validators.required],\r\n line2: [''],\r\n line3: [''],\r\n city: ['', Validators.required],\r\n pin: ['', [Validators.required, Validators.pattern(/^\\d{6}$/)]],\r\n postalCode: ['', Validators.required],\r\n district: ['', Validators.required],\r\n state: ['', Validators.required],\r\n country: ['IND'],\r\n }),\r\n bankDetails: this.fb.group({\r\n bankName: ['', Validators.required],\r\n paymentMode: ['', Validators.required],\r\n ifsc: ['', [Validators.required, Validators.pattern(/^[A-Z]{4}0[A-Z0-9]{6}$/)]],\r\n accountNumber: ['', [Validators.required, Validators.pattern(/^\\d{9,18}$/)]],\r\n nameAsPerBank: ['', Validators.required],\r\n newAccount: [false],\r\n })\r\n });\r\n this.filterDataForm = this.fb.group({\r\n joinee: ['', Validators.required],\r\n managerConfirmation: ['Yes', Validators.required],\r\n })\r\n this.mankindDivisions = this.fb.group({\r\n firstLine: ['', Validators.required]\r\n })\r\n this.joiningForm.disable();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.params.subscribe((params) => {\r\n const code = params['managerTcode'];\r\n let newStaffCode = this.decryptNumber(code)\r\n this.staffCode =newStaffCode\r\n const isValid = this.isValidItapno(newStaffCode.toString());\r\n console.log(isValid)\r\n if (isValid == true) {\r\n this.getDataOnInit();\r\n }else{\r\n this.notificationService.showError('Please check your URL and try again !');\r\n }\r\n });\r\n\r\n\r\n }\r\n getDataOnInit() {\r\n this.getMasterDataInfo();\r\n this.LoadMasters();\r\n }\r\n LoadMasters() {\r\n this.userService.loadMasters(this.staffCode).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.masterData = res[0];\r\n this.bankMaster = res[0].ListBank;\r\n this.stateMaster = res[0].ListState;\r\n this.districtMasterRecord = res[0].ListHQ;\r\n this.managerMaster = res[0].ListUnderManager;\r\n }\r\n\r\n })\r\n }\r\n getMasterDataInfo() {\r\n\r\n this.userService.loadCandidate(this.staffCode).subscribe((res: any) => {\r\n this.joineeList = [];\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.joineeList = res;\r\n this.filteredJoinee = res;\r\n }\r\n\r\n })\r\n\r\n\r\n }\r\n applyFilterJoinee(event: Event): void {\r\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\r\n if (!this.joineeList || this.joineeList.length === 0) {\r\n console.warn(\"Joinee list is empty or undefined.\");\r\n return;\r\n }\r\n this.filteredJoinee = filterValue\r\n ? this.joineeList.filter((staff: any) =>\r\n staff?.T_NAME?.toLowerCase().includes(filterValue)\r\n )\r\n : this.joineeList;\r\n }\r\n onSubmit(): void {\r\n if (this.joiningForm.valid) {\r\n console.log(this.joiningForm.value);\r\n }\r\n }\r\n applyFilter() {\r\n const formValues = this.filterDataForm.value;\r\n this.mankindDivisions.reset();\r\n const candidateRecord = {\r\n staffCode: this.staffCode || '',\r\n candidateCode: formValues.joinee || '',\r\n managerConfirmation: formValues.managerConfirmation,\r\n };\r\n if (this.filterDataForm.valid) {\r\n\r\n if (formValues.managerConfirmation == 'Yes') {\r\n this.isManager = \"JoineeForm\";\r\n } else {\r\n this.isManager = \"managerForm\";\r\n }\r\n this.userService.loadRecord(candidateRecord).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.joiningForm.enable();\r\n this.candidateDetail = res[0];\r\n this.candidateDetail ? this.patchFormValue(res[0]) : this.notificationService.showError('NO RECORD FOUND');;\r\n }\r\n\r\n })\r\n }\r\n }\r\n patchFormValue(res: any) {\r\n this.getPostalCode(res.CURR_PINCODE);\r\n this.filterCItyBasedOnState(res.CURR_STATE)\r\n this.joiningForm.patchValue({\r\n doj: res.DOJ,\r\n phone: res.PHONE,\r\n email: res.EMAIL,\r\n\r\n address: {\r\n line1: res.TADD1,\r\n line2: res.TADD2,\r\n line3: res.TADD3,\r\n city: res.CURR_CITY,\r\n pin: res.CURR_PINCODE,\r\n postalCode: res.CURR_POSTAL_CODE,\r\n district: res.CURR_DIST,\r\n state: res.CURR_STATE,\r\n },\r\n\r\n bankDetails: {\r\n bankName: res.BANKNAME,\r\n paymentMode: res.PAYMENT_METHOD,\r\n ifsc: res.IFSC_CODE,\r\n accountNumber: res.ACCOUNT_NO,\r\n nameAsPerBank: res.NAME_AS_PER_BANK,\r\n newAccount: res.NEW_BANK_REQ === '1',\r\n },\r\n });\r\n this.onPaymentModeChange(res.PAYMENT_METHOD);\r\n }\r\n onPaymentModeChange(PAYMENT_METHOD: any) {\r\n PAYMENT_METHOD == 1 ? this.joiningForm.patchValue({\r\n bankDetails: {\r\n bankName: \"ICICI\",\r\n\r\n }\r\n }) : ''\r\n\r\n this.joiningForm.get('bankDetails.paymentMode')?.disable()\r\n this.joiningForm.get('bankDetails.bankName')?.disable()\r\n this.joiningForm.get('bankDetails.accountNumber')?.disable()\r\n this.joiningForm.get('bankDetails.ifsc')?.disable()\r\n this.joiningForm.get('bankDetails.nameAsPerBank')?.disable()\r\n // PAYMENT_METHOD == 1 || PAYMENT_METHOD == 2 ? this.joiningForm.get('bankDetails.paymentMode')?.disable() : this.joiningForm.get('bankDetails.paymentMode')?.enable() ;\r\n // PAYMENT_METHOD == 1 || PAYMENT_METHOD == 2 ? this.joiningForm.get('bankDetails.bankName')?.disable() : this.joiningForm.get('bankDetails.bankName')?.enable() ;\r\n // PAYMENT_METHOD == 1 || PAYMENT_METHOD == 2 ? this.joiningForm.get('bankDetails.ifsc')?.disable() : this.joiningForm.get('bankDetails.ifsc')?.enable() ;\r\n // PAYMENT_METHOD == 1 || PAYMENT_METHOD == 2 ? this.joiningForm.get('bankDetails.accountNumber')?.disable() : this.joiningForm.get('bankDetails.accountNumber')?.enable();\r\n // PAYMENT_METHOD == 1 || PAYMENT_METHOD == 2 ? this.joiningForm.get('bankDetails.nameAsPerBank')?.disable() : this.joiningForm.get('bankDetails.nameAsPerBank')?.enable();\r\n }\r\n clearFormValue() {\r\n this.joiningForm.reset();\r\n this.candidateDetail = ''\r\n this.joiningForm.disable();\r\n\r\n\r\n }\r\n selectJoinee() {\r\n this.clearFormValue();\r\n }\r\n getPostalCode(pinCode: string) {\r\n this.userService.loadPostalCode(pinCode).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.postalCodeMaster = res[0]?.ListPostalCode;\r\n }\r\n\r\n })\r\n }\r\n filterCItyBasedOnState(stateCode: string) {\r\n this.districtMaster = this.districtMasterRecord.filter(\r\n (district: { ROOT_STATE_CODE: string; }) => district.ROOT_STATE_CODE === stateCode\r\n );\r\n }\r\n\r\n onPinChange(event: any) {\r\n const pinCode = event.value;\r\n this.joiningForm.get('address.postalCode')?.setValue('');\r\n this.joiningForm.get('address.district')?.setValue('');\r\n this.joiningForm.get('address.state')?.setValue('');\r\n this.districtMaster = [];\r\n if (pinCode && /^\\d{6}$/.test(pinCode)) {\r\n this.getPostalCode(pinCode);\r\n }\r\n }\r\n onStateChange(stateCode: any) {\r\n if (stateCode) {\r\n this.joiningForm.get('address.district')?.setValue('');\r\n this.districtMaster = [];\r\n this.filterCItyBasedOnState(stateCode);\r\n }\r\n }\r\n\r\n onAddressAvailableChange(event: MatCheckboxChange) {\r\n const addressAvailable = event.checked;\r\n console.log('Address Available:', addressAvailable);\r\n this.toggleAddressFields(addressAvailable);\r\n }\r\n\r\n toggleAddressFields(addressAvailable: boolean) {\r\n const addressGroup = this.joiningForm.get('address') as FormGroup;\r\n if (addressAvailable) {\r\n addressGroup.get('line1')?.setValue('');\r\n addressGroup.get('line2')?.setValue('');\r\n addressGroup.get('line3')?.setValue('');\r\n addressGroup.get('city')?.setValue('');\r\n addressGroup.get('pin')?.setValue('');\r\n addressGroup.get('postalCode')?.setValue('');\r\n addressGroup.get('district')?.setValue('');\r\n addressGroup.get('state')?.setValue('');\r\n addressGroup.get('country')?.setValue('');\r\n\r\n addressGroup.get('line1')?.disable();\r\n addressGroup.get('line2')?.disable();\r\n addressGroup.get('line3')?.disable();\r\n addressGroup.get('city')?.disable();\r\n addressGroup.get('pin')?.disable();\r\n addressGroup.get('postalCode')?.disable();\r\n addressGroup.get('district')?.disable();\r\n addressGroup.get('state')?.disable();\r\n addressGroup.get('country')?.disable();\r\n } else {\r\n addressGroup.get('line1')?.enable();\r\n addressGroup.get('line2')?.enable();\r\n addressGroup.get('line3')?.enable();\r\n addressGroup.get('city')?.enable();\r\n addressGroup.get('pin')?.enable();\r\n addressGroup.get('postalCode')?.enable();\r\n addressGroup.get('district')?.enable();\r\n addressGroup.get('state')?.enable();\r\n addressGroup.get('country')?.enable();\r\n\r\n this.joiningForm.patchValue({\r\n address: {\r\n line1: this.candidateDetail.TADD1,\r\n line2: this.candidateDetail.TADD2,\r\n line3: this.candidateDetail.TADD3,\r\n city: this.candidateDetail.CURR_CITY,\r\n pin: this.candidateDetail.CURR_PINCODE,\r\n postalCode: this.candidateDetail.CURR_POSTAL_CODE,\r\n district: this.candidateDetail.CURR_DIST,\r\n state: this.candidateDetail.CURR_STATE,\r\n country: 'IND',\r\n }\r\n })\r\n }\r\n }\r\n submitManager() {\r\n const firstLine = this.mankindDivisions.get('firstLine')?.getRawValue();\r\n if (this.mankindDivisions.valid) {\r\n if (this.filterDataForm.get('managerConfirmation')?.value == \"No\") {\r\n this.userService.SaveFL(firstLine, this.candidateDetail.T_CODE).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.notificationService.showSuccess(res[0].ERROR);\r\n this.getDataOnInit();\r\n this.mankindDivisions.reset();\r\n this.isManager = '';\r\n }\r\n })\r\n }\r\n }\r\n }\r\n submit() {\r\n if (this.joiningForm.valid) {\r\n if (this.filterDataForm.get('managerConfirmation')?.value == \"No\") {\r\n this.userService.SaveFL(this.candidateDetail.T_CODE, this.staffCode).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n }\r\n })\r\n }\r\n const formDataJson = this.getFormDataAsJson();\r\n this.userService.candidateSaveData(formDataJson, this.staffCode).subscribe((res: any) => {\r\n if (res[0]?.ERRORCODE == 1) {\r\n this.notificationService.showError(res[0].ERROR);\r\n } else {\r\n this.getDataOnInit();\r\n this.notificationService.showSuccess(res[0].ERROR);\r\n this.clearFormValue();\r\n this.isManager = '';\r\n }\r\n\r\n })\r\n }\r\n\r\n }\r\n getFormDataAsJson(): any {\r\n const address = this.joiningForm.get('address')?.getRawValue();\r\n const bankDetails = this.joiningForm.get('bankDetails')?.getRawValue();\r\n const dojValue = this.joiningForm.get('doj')?.value;\r\n if (dojValue) {\r\n const localDate = new Date(dojValue);\r\n localDate.setMinutes(localDate.getMinutes() - localDate.getTimezoneOffset());\r\n const formattedDate = localDate.toISOString().split('T')[0];\r\n console.log(formattedDate);\r\n }\r\n const json = {\r\n T_CODE: this.candidateDetail.T_CODE,\r\n NAME: this.candidateDetail.NAME,\r\n DIV_CODE: this.candidateDetail.DIV_CODE,\r\n DIVISION_NAME: this.candidateDetail.DIVISION_NAME,\r\n DESIG_CODE: this.candidateDetail.DESIG_CODE,\r\n DESIG_NAME: this.candidateDetail.DESIG_NAME,\r\n STATE: this.candidateDetail?.STATE || '',\r\n STATE_NAME: this.candidateDetail?.STATE_NAME || '',\r\n HQ: this.candidateDetail.HQ,\r\n HQ_NAME: this.candidateDetail.HQ_NAME,\r\n DOJ: dojValue || '',\r\n MANAGER_ID: this.candidateDetail.MANAGER_ID,\r\n PHONE: this.joiningForm.get('phone')?.value || '',\r\n EMAIL: this.joiningForm.get('email')?.value || '',\r\n TADD1: address?.line1 || '',\r\n TADD2: address?.line2 || '',\r\n TADD3: address?.line3 || '',\r\n CURR_CITY: address?.city || '',\r\n CURR_STATE: address?.state || '',\r\n CURR_PINCODE: address?.pin || '',\r\n PAYMENT_METHOD: bankDetails?.paymentMode || '',\r\n BANKNAME: bankDetails?.bankName || '',\r\n IFSC_CODE: bankDetails?.ifsc || '',\r\n ACCOUNT_NO: bankDetails?.accountNumber || '',\r\n NAME_AS_PER_BANK: bankDetails?.nameAsPerBank || '',\r\n STATUS: this.candidateDetail.STATUS,\r\n NEW_BANK_REQ: bankDetails?.newAccount ? '1' : '0',\r\n NO_CURR_ADD: address?.addressAvailable ? '1' : '0',\r\n CURR_DIST: address?.district || '',\r\n TRN_DATE: this.candidateDetail.TRN_DATE,\r\n CURR_POSTAL_CODE: address?.postalCode || '',\r\n };\r\n\r\n return json;\r\n }\r\n decryptNumber(encrypted: string): number {\r\n const key = defaultValue; \r\n const decryptedNumber = parseInt(encrypted, 12) ^ key; \r\n return decryptedNumber;\r\n }\r\n isValidItapno(value: any | null): boolean {\r\n if (value && !isNaN(Number(value)) && value.trim() !== '') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { RegisterComponent } from './register/register.component';\r\nimport { JobApplicationFormComponent } from './job-application-form/job-application-form.component';\r\nimport { ResumeUploadConfirmComponent } from './resume-upload-confirm/resume-upload-confirm.component';\r\nimport { InterviewPerformaComponent } from './interview-performa/interview-performa.component';\r\nimport { JoiningConfirmationComponent } from './joining-confirmation/joining-confirmation.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'login', pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'register', component: RegisterComponent },\r\n { path: 'job-application-form', component: JobApplicationFormComponent },\r\n { path: 'confirmation', component: ResumeUploadConfirmComponent },\r\n { path: 'interview-proforma/:itapno/:username', component: InterviewPerformaComponent },\r\n { path: 'joining-confirmation/:managerTcode', component: JoiningConfirmationComponent },\r\n\r\n];\r\n@NgModule({\r\n imports: [CommonModule, RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AuthRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { AuthRoutingModule } from './auth-routing.module';\r\nimport { RegisterComponent } from './register/register.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { TimerDialogComponent } from './timer-dialog/timer-dialog.component';\r\nimport { CountdownTimerComponent } from '../shared-components/countdown-timer/countdown-timer.component';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LoadingInterceptor } from '../loading.interceptor';\r\nimport { JobApplicationFormComponent } from './job-application-form/job-application-form.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SharedModule } from \"../shared-components/shared.module\";\r\nimport { ResumeUploadConfirmComponent } from './resume-upload-confirm/resume-upload-confirm.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { AlphabetOnlyDirective } from '../services/alphabet-only.directive';\r\nimport { InterviewPerformaComponent } from './interview-performa/interview-performa.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TimeoutInterceptor } from '../timeout.interceptor';\r\nimport { JoiningConfirmationComponent } from './joining-confirmation/joining-confirmation.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, RegisterComponent,AlphabetOnlyDirective, TimerDialogComponent, CountdownTimerComponent, JobApplicationFormComponent, ResumeUploadConfirmComponent, InterviewPerformaComponent, JoiningConfirmationComponent],\r\n imports: [\r\n CommonModule,\r\n AuthRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatTabsModule,\r\n MatDialogModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatSelectModule,\r\n SharedModule,\r\n PdfViewerModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatButtonToggleModule,\r\n MatToolbarModule\r\n ],\r\n \r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoadingInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TimeoutInterceptor,\r\n multi: true,\r\n }\r\n ],\r\n})\r\nexport class AuthModule { }\r\n"],"x_google_ignoreList":[]}