{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/all-modules/accounts/_services/master.service.ts","./src/app/all-modules/hmo/services/hmohospital.service.ts","./src/app/all-modules/hmo/services/hmoplan.service.ts","./src/app/all-modules/hrm/services/branch.service.ts","./src/app/all-modules/hrm/services/city.service.ts","./src/app/all-modules/hrm/services/contenttype.service.ts","./src/app/all-modules/hrm/services/country.service.ts","./src/app/all-modules/hrm/services/data.service.ts","./src/app/all-modules/hrm/services/department.service.ts","./src/app/all-modules/hrm/services/departmentunit.service.ts","./src/app/all-modules/hrm/services/educationlevel.service.ts","./src/app/all-modules/hrm/services/educationqualification.service.ts","./src/app/all-modules/hrm/services/grade.service.ts","./src/app/all-modules/hrm/services/hrcommonservice.service.ts","./src/app/all-modules/hrm/services/jobdesk.service.ts","./src/app/all-modules/hrm/services/leave.service.ts","./src/app/all-modules/hrm/services/maritalstatus.service.ts","./src/app/all-modules/hrm/services/notch.service.ts","./src/app/all-modules/hrm/services/pfa.service.ts","./src/app/all-modules/hrm/services/position.service.ts","./src/app/all-modules/hrm/services/qualificationclass.service.ts","./src/app/all-modules/hrm/services/staff.service.ts","./src/app/all-modules/hrm/services/staffbiodata.service.ts","./src/app/all-modules/hrm/services/staffchildren.service.ts","./src/app/all-modules/hrm/services/staffcv.service.ts","./src/app/all-modules/hrm/services/staffeducation.service.ts","./src/app/all-modules/hrm/services/staffprofessional.service.ts","./src/app/all-modules/hrm/services/staffreferee.service.ts","./src/app/all-modules/hrm/services/staffwork.service.ts","./src/app/all-modules/hrm/services/state.service.ts","./src/app/all-modules/hrm/services/title.service.ts","./src/app/all-modules/loan/services/loancalculationmethod.service.ts","./src/app/all-modules/loan/services/loantype.service.ts","./src/app/all-modules/settings/_pipe/prefix.pipe.ts","./src/app/all-modules/settings/_services/accounttype.service.ts","./src/app/all-modules/settings/_services/alertify.service.ts","./src/app/all-modules/settings/_services/bank.service.ts","./src/app/all-modules/settings/_services/branch.service.ts","./src/app/all-modules/settings/_services/branchlimit.service.ts","./src/app/all-modules/settings/_services/charge.service.ts","./src/app/all-modules/settings/_services/chargetype.service.ts","./src/app/all-modules/settings/_services/city.service.ts","./src/app/all-modules/settings/_services/classtype.service.ts","./src/app/all-modules/settings/_services/companygroup.service.ts","./src/app/all-modules/settings/_services/companyprofile.service.ts","./src/app/all-modules/settings/_services/country.service.ts","./src/app/all-modules/settings/_services/currencycode.service.ts","./src/app/all-modules/settings/_services/department.service.ts","./src/app/all-modules/settings/_services/departmentunit.service.ts","./src/app/all-modules/settings/_services/disclosure.service.ts","./src/app/all-modules/settings/_services/frequency.service.ts","./src/app/all-modules/settings/_services/narration.service.ts","./src/app/all-modules/settings/_services/navigation.service.ts","./src/app/all-modules/settings/_services/paymenttype.service.ts","./src/app/all-modules/settings/_services/posttype.service.ts","./src/app/all-modules/settings/_services/reason.service.ts","./src/app/all-modules/settings/_services/role.service.ts","./src/app/all-modules/settings/_services/rolelimit.service.ts","./src/app/all-modules/settings/_services/state.service.ts","./src/app/all-modules/settings/_services/town.service.ts","./src/app/all-modules/settings/_services/vendor.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/core/auth/authentication.guard.ts","./src/app/core/services/event.service.ts","./src/app/core/utitlity/smart.util.ts","./src/app/http-interceptors/httperror-interceptor.service.ts","./src/app/http-interceptors/refresh-token.interceptor.ts","./src/app/http-interceptors/spinner-interceptor.ts","./src/app/login/_services/auth.service.ts","./src/app/login/_services/token.service.ts","./src/app/page-notfound/page-notfound.component.ts","./src/app/self-enrollment/core/api.service.ts","./src/app/self-enrollment/pages/edit-page/edit-page.component.ts","./src/app/self-enrollment/pages/enrollment-form/enrollment-form.component.ts","./src/app/self-enrollment/pages/enrollment-login/enrollment-login.component.ts","./src/app/self-enrollment/self-enrollment.component.ts","./src/app/self-enrollment/self-enrollment.module.ts","./src/app/self-service/core/academic.service.ts","./src/app/self-service/core/account.service.ts","./src/app/self-service/core/biodata.service.ts","./src/app/self-service/core/children.service.ts","./src/app/self-service/core/cv.service.ts","./src/app/self-service/core/leave.service.ts","./src/app/self-service/core/month-name.pipe.ts","./src/app/self-service/core/payslip.service.ts","./src/app/self-service/core/profession.service.ts","./src/app/self-service/core/referee.service.ts","./src/app/self-service/core/staffloan.service.ts","./src/app/self-service/core/work.service.ts","./src/app/self-service/pages/cooperative/cooperative.component.ts","./src/app/self-service/pages/dashboard/dashboard.component.ts","./src/app/self-service/pages/header/header.component.ts","./src/app/self-service/pages/hmo/hmo.component.ts","./src/app/self-service/pages/home/home.component.ts","./src/app/self-service/pages/leave-list/leave-list.component.ts","./src/app/self-service/pages/leave/leave.component.ts","./src/app/self-service/pages/loan-list/loan-list.component.ts","./src/app/self-service/pages/loan/loan.component.ts","./src/app/self-service/pages/login/login.component.ts","./src/app/self-service/pages/payslip/payslip.component.ts","./src/app/self-service/pages/sidenav/sidenav.component.ts","./src/app/self-service/pages/staff-exit/staff-exit.component.ts","./src/app/self-service/pages/staff-setup/staff-setup.component.ts","./src/app/self-service/self-service.component.ts","./src/app/self-service/self-service.module.ts","./src/app/sharing/my-table/my-table.component.ts","./src/app/sharing/option/option.component.ts","./src/app/sharing/search.pipe.ts","./src/app/sharing/searchable-dropdown/searchable-dropdown.component.ts","./src/app/sharing/sharing.module.ts","./src/app/sharing/spinner/spinner.component.ts","./src/app/sharing/spinner/spinner.service.ts","./src/app/sharing/tabs/tabs.component.ts","./src/assets/pipes/custom-date.pipe.ts","./src/environments/environment.prod.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { environment } from \"src/environments/environment.prod\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { BulkUploadTransaction } from \"../interface/bulkupload\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MasterService {\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v3`;\n\n constructor(private http: HttpClient) {}\n\n GetAllBatchSummary() {\n return this.http.get(this.baseUrl + \"/AccountPosting/BatchSummary\");\n }\n\n PostedBatchSummary(\n status: string,\n PageNumber: number,\n PageSize: number,\n fromdate: any,\n todate: any\n ) {\n const url = this.baseUrl + \"/AccountPosting/PostedBatchSummary\";\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"status\", status);\n queryParams = queryParams.append(\"PageNumber\", PageNumber);\n queryParams = queryParams.append(\"PageSize\", PageSize);\n queryParams = queryParams.append(\"fromdate\", fromdate);\n queryParams = queryParams.append(\"todate\", todate);\n return this.http.get(url, { params: queryParams });\n }\n\n genPostedBatch(refNo: string): Observable {\n const url =\n this.baseUrl + \"/AccountPosting/genPostedBatchItem?refNo=\" + refNo;\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"refNo\", refNo);\n return this.http.post(url, { params: queryParams }, {});\n }\n\n GetStatuses() {\n return this.http.get(this.baseUrl + \"/AccountPosting/statuses\");\n }\n\n GetBatchItembycode(refNo: any) {\n return this.http.get(this.baseUrl + \"/AccountPosting/refNo?refNo=\" + refNo);\n }\n\n GetBatchSummarybyRefNo(refNo: any) {\n return this.http.get(\n this.baseUrl + \"/AccountPosting/BatchSummaryByRefNo?RefNo=\" + refNo\n );\n }\n\n GetBatchItembyid(id: any) {\n return this.http.get(\n this.baseUrl + \"/AccountPosting/batchItemById?id=\" + id\n );\n }\n\n RemoveBatchSummary(id: any) {\n return this.http.delete(\n this.baseUrl + \"/AccountPosting/deleteBatchItemById?id=\" + id\n );\n }\n\n editBatch(id, data) {\n return this.http.put(\n `${this.baseUrl + \"/AccountType/updateBatchItemById?\"}/${id}`,\n data\n );\n }\n\n // UpdateAccounttype(id,data){\n // return this.http.put(`${environment.apiBaseURI + 'AccountType'}/${id}`,data)\n // }\n\n SaveBatch(batchdata: any) {\n const data = {\n drCompanyId: 2,\n crCompanyId: 2,\n draccount: \"3445\",\n craccount: \"344\",\n wacc: 10,\n rate: 10,\n lcy: 10,\n trancodeId: 1,\n currencycodeId: 1,\n valuedate: \"2022-12-02T02:48:08.939Z\",\n voucherno: \"45321\",\n baseamount: 110,\n tranamount: 110,\n batch_NarrationId: 1,\n referenceNo: \"123456\",\n companyId: 2,\n createdBy: \"admin\",\n approvedBy: \"admin\",\n modifiedBy: \"admin\",\n rejectedBy: \"admi\",\n createdDate: \"2022-12-02T02:48:08.939Z\",\n approvedDate: \"2022-12-02T02:48:08.939Z\",\n rejectionDate: \"2022-12-02T02:48:08.939Z\",\n modifiedDate: \"2022-12-02T02:48:08.939Z\",\n status: \"active\",\n };\n return this.http.post(\n this.baseUrl + \"/AccountPosting/addBatchItem\",\n batchdata\n );\n }\n\n // PostBatch(refNo:string) : Observable {\n // return this.http.post(this.baseUrl + '/AccountPosting/postBatchItem?refNo='+ {},refNo)\n // }\n // http://41.184.40.66:8040/api/v3/AccountPosting/rePostBatchItem?refNo=5f643ce0-1667-42f1-b0c2-56b0550a9836\n\n // PostBatch(refNo: string): Observable {\n // const url = this.baseUrl + \"/AccountPosting/postBatchItem?refNo=\" + refNo;\n // let queryParams = new HttpParams();\n // queryParams = queryParams.append(\"refNo\", refNo);\n // return this.http.post(url, { params: queryParams }, {});\n // }\n\n PostBatch(refNo: string, postType: string): Observable {\n const url = `${this.baseUrl}/AccountPosting/postBatchItem`;\n\n // Set up the HTTP options with parameters\n const options = {\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n }),\n params: {\n refNo: refNo,\n postType: postType,\n },\n };\n\n // Make the POST request\n return this.http.post(url, null, options);\n }\n\n rePostBatch(refNo: string): Observable {\n const url = this.baseUrl + \"/AccountPosting/rePostBatchItem?refNo=\" + refNo;\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"refNo\", refNo);\n return this.http.post(url, { params: queryParams }, {});\n }\n\n url = environment.apiBaseURI;\n\n // UploadExcel(formData: FormData) {\n // return this.http.post(this.url + 'AccountPosting/uploadFile', formData)\n // }\n\n // public uploadfile(file: File) {\n // let formParams = new FormData();\n // formParams.append('file', file)\n // return this.http.post(this.url + 'AccountPosting/uploadFile', formParams, {});\n // }\n\n searchPostCall(refNo: any) {\n return this.http.post(\n this.baseUrl + \"/AccountPosting/searchBatch?refNo=\" + refNo,\n {}\n );\n }\n\n createData(data: any): Observable {\n // return this.http.post(this.url + '/AccountPosting/uploadFile', data)\n return this.http.post(this.baseUrl + \"/AccountPosting/uploadFile\", data);\n }\n\n // bulkUpload(data: any): Observable {\n // return this.http.post(\n // this.baseUrl + \"/AccountPosting/postBulkUploadTrans\",\n // data\n // );\n // }\n\n bulkUpload(\n refno: string,\n transactions: BulkUploadTransaction[]\n ): Observable {\n const url = `${this.baseUrl}/AccountPosting/postBulkUploadTrans?refno=${refno}`;\n\n const headers = new HttpHeaders({\n \"Content-Type\": \"application/json\",\n });\n\n return this.http.post(url, transactions, { headers });\n }\n\n //Needed Later to print batch\n\n GenerateInvoicePDF(invoiceno: any) {\n return this.http.get(\n \"https://localhost:7118/Invoice/generatepdf?InvoiceNo=\" + invoiceno,\n { observe: \"response\", responseType: \"blob\" }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddHmohospitalModel } from './models/hmohospital.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HmohospitalService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getHMOHospitalAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/HMO_Hospital`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getHMOHospital(id: number): Observable {\n let url = `${this.baseUrl}/HMO_Hospital/${id}`;\n return this.http.get(url);\n }\n\n createHMOHospital(model: AddHmohospitalModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/HMO_Hospital`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateHMOHospital(model: AddHmohospitalModel) {\n return this.http.patch(`${this.baseUrl}/HMO_Hospital/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchHMOHospital(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/HMO_Hospital/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteHMOHospital(id: number) {\n return this.http.delete(`${this.baseUrl}/HMO_Hospital/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddHmoplanModel } from './models/hmoplan.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HmoplanService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getHMOPlanAll(status: string = null, pageNo, pageLength): Observable {\n let url = `${this.baseUrl}/HMO_Plan`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (pageNo)\n params[`pageNo`] = pageNo;\n if (pageLength)\n params[`pageLength`] = pageLength;\n\n return this.http.get(url, { params: params });\n }\n getHMOPlan(id: number): Observable {\n let url = `${this.baseUrl}/HMO_Plan/${id}`;\n return this.http.get(url);\n }\n\n createHMOPlan(model: AddHmoplanModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/HMO_Plan`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateHMOPlan(model: AddHmoplanModel) {\n return this.http.patch(`${this.baseUrl}/HMO_Plan/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchHMOPlan(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/HMO_Plan/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteHMOPlan(id: number) {\n return this.http.delete(`${this.baseUrl}/HMO_Plan/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddBranchModel } from './models/branch.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BranchService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getBranchAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Branch`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getBranch(id: number): Observable {\n let url = `${this.baseUrl}/Branch/${id}`;\n return this.http.get(url);\n }\n\n createBranch(model: AddBranchModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Branch`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateBranch(model: AddBranchModel) {\n return this.http.patch(`${this.baseUrl}/Branch/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchBranch(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Branch/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteBranch(id: number) {\n return this.http.delete(`${this.baseUrl}/Branch/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCityModel } from './models/city.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CityService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getCityAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/City`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getCity(id: number): Observable {\n let url = `${this.baseUrl}/City/${id}`;\n return this.http.get(url);\n }\n\n createCity(model: AddCityModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/City`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateCity(model: AddCityModel) {\n return this.http.patch(`${this.baseUrl}/City/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCity(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/City/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteCity(id: number) {\n return this.http.delete(`${this.baseUrl}/City/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddContenttypeModel } from './models/contenttype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContenttypeService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getContentTypeAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Filetype`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getContentType(id: number): Observable {\n let url = `${this.baseUrl}/Filetype/${id}`;\n return this.http.get(url);\n }\n\n createContentType(model: AddContenttypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Filetype`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateContentType(model: AddContenttypeModel) {\n return this.http.patch(`${this.baseUrl}/Filetype/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchContentType(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Filetype/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteContentType(id: number) {\n return this.http.delete(`${this.baseUrl}/Filetype/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCountryModel } from './models/country.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getCountryAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Country`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getCountry(id: number): Observable {\n let url = `${this.baseUrl}/Country/${id}`;\n return this.http.get(url);\n }\n\n createCountry(model: AddCountryModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Country`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateCountry(model: AddCountryModel) {\n return this.http.patch(`${this.baseUrl}/Country/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCountry(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Country/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteCountry(id: number) {\n return this.http.delete(`${this.baseUrl}/Country/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n\n private selectedItemSource = new BehaviorSubject(null);\n selectedItem$ = this.selectedItemSource.asObservable();\n\n setSelectedItem(item: any) {\n this.selectedItemSource.next(item);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddDepartmentModel } from './models/department.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DepartmentService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getDepartmentAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Department`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getDepartment(id: number): Observable {\n let url = `${this.baseUrl}/Department/${id}`;\n return this.http.get(url);\n }\n\n createDepartment(model: AddDepartmentModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Department`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateDepartment(model: AddDepartmentModel) {\n return this.http.patch(`${this.baseUrl}/Department/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchDepartment(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Department/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteDepartment(id: number) {\n return this.http.delete(`${this.baseUrl}/Department/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from \"@angular/core\";\nimport { environment } from \"../../../../environments/environment.prod\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddDepartmentunitModel } from \"./models/departmentunit.model\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { Operation } from \"fast-json-patch\";\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class DepartmentunitService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {}\n getDepartmentUnitAll(\n status: string = null,\n PageNumber,\n PageSize\n ): Observable {\n let url = `${this.baseUrl}/Departmentunit`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber) params[`PageNumber`] = PageNumber;\n if (PageSize) params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getDepartmentUnit(id: number): Observable {\n let url = `${this.baseUrl}/Departmentunit/${id}`;\n return this.http.get(url);\n }\n\n createDepartmentUnit(model: AddDepartmentunitModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, \"to post\");\n return this.http.post(`${this.baseUrl}/Departmentunit`, model).pipe(\n map((res) => {\n return res;\n })\n );\n }\n\n updateDepartmentUnit(model: AddDepartmentunitModel) {\n return this.http\n .patch(`${this.baseUrl}/Departmentunit/${model.id}`, model)\n .pipe(\n map((res) => {\n //console.log(res);\n return res;\n })\n //catchError(this.handleError)\n );\n }\n\n patchDepartmentUnit(id: number, operations: Operation[]) {\n let url = `${this.baseUrl}/Departmentunit/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n deleteDepartmentUnit(id: number) {\n return this.http.delete(`${this.baseUrl}/Departmentunit/${id}`).pipe(\n map((res) => {\n //console.log(res);\n return res;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddEducationlevelModel } from './models/educationlevel.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EducationlevelService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getEducationLevelAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/EducationLevel`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getEducationLevel(id: number): Observable {\n let url = `${this.baseUrl}/EducationLevel/${id}`;\n return this.http.get(url);\n }\n\n createEducationLevel(model: AddEducationlevelModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/EducationLevel`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateEducationLevel(model: AddEducationlevelModel) {\n return this.http.patch(`${this.baseUrl}/EducationLevel/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchEducationLevel(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/EducationLevel/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteEducationLevel(id: number) {\n return this.http.delete(`${this.baseUrl}/EducationLevel/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddEducationqualificationModel } from './models/educationqualification.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EducationqualificationService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getEducationQualificationAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/EducationQualification`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getEducationQualification(id: number): Observable {\n let url = `${this.baseUrl}/EducationQualification/${id}`;\n return this.http.get(url);\n }\n\n createEducationQualification(model: AddEducationqualificationModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/EducationQualification`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateEducationQualification(model: AddEducationqualificationModel) {\n return this.http.patch(`${this.baseUrl}/EducationQualification/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchEducationQualification(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/EducationQualification/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteEducationQualification(id: number) {\n return this.http.delete(`${this.baseUrl}/EducationQualification/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { environment } from \"../../../../environments/environment.prod\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\r\nimport {\r\n AddGradeModel,\r\n AddGradePayItemModel,\r\n AddStaffPayItemModel,\r\n} from \"./models/grade.model\";\r\nimport { Operation } from \"fast-json-patch\";\r\n// import { SmartUtil } from '../Utilities/SmartUtil';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class GradeService {\r\n loader = new BehaviorSubject(false);\r\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\r\n errorContent: any;\r\n sysMemberId: string;\r\n public expensesLoading: boolean = false;\r\n public minLengthTerm = 3;\r\n public expensesInput$ = new Subject();\r\n public expenses$: Observable;\r\n\r\n constructor(private http: HttpClient) {}\r\n //Grade Service\r\n getGradeAll(status: string = null, PageNumber, PageSize): Observable {\r\n let url = `${this.baseUrl}/Level`;\r\n\r\n const params = {};\r\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\r\n //console.log(params)\r\n params[`status`] = status;\r\n if (PageNumber) params[`PageNumber`] = PageNumber;\r\n if (PageSize) params[`pageSize`] = PageSize;\r\n\r\n return this.http.get(url, { params: params });\r\n }\r\n\r\n getGrade(id: number): Observable {\r\n let url = `${this.baseUrl}/Level/${id}`;\r\n return this.http.get(url);\r\n }\r\n\r\n createGrade(model: AddGradeModel) {\r\n let userProfile = SmartUtil.getUserInfo();\r\n if (userProfile) {\r\n model.createdBy = userProfile.userName;\r\n // model.approvedBy = userProfile.userName;\r\n // model.modifiedBy = userProfile.userName;\r\n // model.rejectedBy = userProfile.userName;\r\n model.companyId = userProfile.companyId;\r\n }\r\n\r\n model.createdDate = SmartUtil.formatDateTimeServer();\r\n // model.approvedDate = SmartUtil.formatDateTimeServer()\r\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\r\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\r\n console.log(model, \"to post\");\r\n return this.http.post(`${this.baseUrl}/Level`, model).pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n updateGradeType(model: AddGradeModel) {\r\n return this.http.patch(`${this.baseUrl}/Level/${model.id}`, model).pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n //catchError(this.handleError)\r\n );\r\n }\r\n\r\n patchGradeType(id: number, operations: Operation[]) {\r\n let url = `${this.baseUrl}/Level/${id}`;\r\n //const url = this.baseURL + id;\r\n return this.http.patch(url, operations);\r\n }\r\n\r\n deleteGrade(id: number) {\r\n return this.http.delete(`${this.baseUrl}/Level/${id}`).pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n //Grade PayItem Service\r\n getGradePayItemAll(\r\n status: string = null,\r\n pageNo,\r\n pageLength\r\n ): Observable {\r\n let url = `${this.baseUrl}/LevelPayItem`;\r\n\r\n const params = {};\r\n params[`status`] = status;\r\n if (pageNo) params[`pageNo`] = pageNo;\r\n if (pageLength) params[`pageLength`] = pageLength;\r\n\r\n return this.http.get(url, { params: params });\r\n }\r\n\r\n getGradePayItem(id: number): Observable {\r\n let url = `${this.baseUrl}/LevelPayItem/${id}`;\r\n return this.http.get(url);\r\n }\r\n\r\n getGradePayItemByLevelNotch(\r\n levelId: number,\r\n notchId: number\r\n ): Observable {\r\n let url = `${this.baseUrl}/LevelPayItem`;\r\n const params = {};\r\n if (levelId) params[`levelId`] = levelId;\r\n\r\n if (notchId) {\r\n params[`notch`] = notchId;\r\n url += `/searchNotch`;\r\n } else {\r\n url += `/searchLevel`;\r\n }\r\n\r\n return this.http.get(url, { params: params });\r\n }\r\n\r\n createGradePayItem(model: AddGradePayItemModel) {\r\n let userProfile = SmartUtil.getUserInfo();\r\n if (userProfile) {\r\n model.createdBy = userProfile.userName;\r\n // model.approvedBy = userProfile.userName;\r\n // model.modifiedBy = userProfile.userName;\r\n // model.rejectedBy = userProfile.userName;\r\n model.companyId = userProfile.companyId;\r\n }\r\n\r\n model.createdDate = SmartUtil.formatDateTimeServer();\r\n // model.approvedDate = SmartUtil.formatDateTimeServer()\r\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\r\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\r\n console.log(model, \"to post\");\r\n return this.http.post(`${this.baseUrl}/LevelPayItem`, model).pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n updateGradePayItem(model: AddGradePayItemModel) {\r\n return this.http.put(`${this.baseUrl}/Level/${model.id}`, model).pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n //catchError(this.handleError)\r\n );\r\n }\r\n\r\n patchGradePayItem(id: number, operations: Operation[]) {\r\n let url = `${this.baseUrl}/LevelPayItem/${id}`;\r\n //const url = this.baseURL + id;\r\n return this.http.patch(url, operations);\r\n }\r\n\r\n deleteGradePayItem(id: number) {\r\n return this.http.delete(`${this.baseUrl}/LevelPayItem/${id}`).pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n PostLevelNotch(inputdata: any) {\r\n return this.http\r\n .post(`${this.baseUrl}/LevelPayItem/PostLevelNotch`, inputdata)\r\n .pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n GetLevelNotchSummary(LevelId: number, Notch: number) {\r\n return this.http.get(\r\n `${this.baseUrl}/LevelPayItem/LevelNotchSummary/${LevelId}/${Notch}`\r\n );\r\n }\r\n\r\n //Staff PayItem Service\r\n getStaffPayItemAll(\r\n status: string = null,\r\n pageNo,\r\n pageLength\r\n ): Observable {\r\n let url = `${this.baseUrl}/StaffPayItem`;\r\n\r\n const params = {};\r\n params[`status`] = status;\r\n if (pageNo) params[`pageNo`] = pageNo;\r\n if (pageLength) params[`pageLength`] = pageLength;\r\n\r\n return this.http.get(url, { params: params });\r\n }\r\n\r\n getStaffPayItem(id: number): Observable {\r\n let url = `${this.baseUrl}/StaffPayItem/${id}`;\r\n return this.http.get(url);\r\n }\r\n\r\n getStaffPayItemByEmployeeId(Empid: string): Observable {\r\n let url = `${this.baseUrl}/StaffPayItem`;\r\n const params = {};\r\n if (Empid) params[`Empid`] = Empid;\r\n url += `/searchByEmployee`;\r\n\r\n return this.http.get(url, { params: params });\r\n }\r\n\r\n createStaffPayItem(model: AddStaffPayItemModel) {\r\n let userProfile = SmartUtil.getUserInfo();\r\n if (userProfile) {\r\n model.createdBy = userProfile.userName;\r\n // model.approvedBy = userProfile.userName;\r\n // model.modifiedBy = userProfile.userName;\r\n // model.rejectedBy = userProfile.userName;\r\n model.companyId = userProfile.companyId;\r\n }\r\n\r\n model.createdDate = SmartUtil.formatDateTimeServer();\r\n // model.approvedDate = SmartUtil.formatDateTimeServer()\r\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\r\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\r\n console.log(model, \"to post\");\r\n return this.http.post(`${this.baseUrl}/StaffPayItem`, model).pipe(\r\n map((res) => {\r\n return res;\r\n })\r\n );\r\n }\r\n\r\n updateStaffPayItem(model: AddGradePayItemModel) {\r\n return this.http\r\n .put(`${this.baseUrl}/StaffPayItem/${model.id}`, model)\r\n .pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n //catchError(this.handleError)\r\n );\r\n }\r\n\r\n patchStaffPayItem(id: number, operations: Operation[]) {\r\n let url = `${this.baseUrl}/StaffPayItem/${id}`;\r\n //const url = this.baseURL + id;\r\n return this.http.patch(url, operations);\r\n }\r\n\r\n deleteStaffPayItem(id: number) {\r\n return this.http.delete(`${this.baseUrl}/StaffPayItem/${id}`).pipe(\r\n map((res) => {\r\n //console.log(res);\r\n return res;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HrcommonserviceService {\n commonData: any;\n\n constructor() {\n this.commonData = {\n name: ''\n };\n }\n\n getItem(key) {\n return this.commonData[key];\n }\n\n setItem(key, value) {\n this.commonData[key] = value;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddJobdeskModel } from './models/jobdesk.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobdeskService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getJobDeskAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/JobDesk`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getJobDesk(id: number): Observable {\n let url = `${this.baseUrl}/JobDesk/${id}`;\n return this.http.get(url);\n }\n\n createJobDesk(model: AddJobdeskModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/JobDesk`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateJobDesk(model: AddJobdeskModel) {\n return this.http.patch(`${this.baseUrl}/JobDesk/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchJobDesk(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/JobDesk/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteJobDesk(id: number) {\n return this.http.delete(`${this.baseUrl}/JobDesk/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddLeaveTypeModel } from './models/leave.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeaveService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getLeaveTypeAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/LeaveType`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getLeaveType(id: number): Observable {\n let url = `${this.baseUrl}/LeaveType/${id}`;\n return this.http.get(url);\n }\n\n createLeaveType(model: AddLeaveTypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/LeaveType`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateLeaveType(model: AddLeaveTypeModel) {\n return this.http.patch(`${this.baseUrl}/LeaveType/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchLeaveType(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/LeaveType/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteLeaveType(id: number) {\n return this.http.delete(`${this.baseUrl}/LeaveType/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddMaritalstatusModel } from './models/maritalstatus.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaritalstatusService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getMaritalStatusAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/MaritalStatus`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getMaritalStatus(id: number): Observable {\n let url = `${this.baseUrl}/MaritalStatus/${id}`;\n return this.http.get(url);\n }\n\n createMaritalStatus(model: AddMaritalstatusModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/MaritalStatus`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateMaritalStatus(model: AddMaritalstatusModel) {\n return this.http.patch(`${this.baseUrl}/MaritalStatus/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchMaritalStatus(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/MaritalStatus/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteMaritalStatus(id: number) {\n return this.http.delete(`${this.baseUrl}/MaritalStatus/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddNotchModel } from './models/notch.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotchService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getNotchAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Notch`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getNotch(id: number): Observable {\n let url = `${this.baseUrl}/Notch/${id}`;\n return this.http.get(url);\n }\n\n getNotchByLevel(levelId: number): Observable {\n let url = `${this.baseUrl}/Notch/serachNotchByLevel?levelid=${levelId}`;\n return this.http.get(url);\n }\n\n createNotch(model: AddNotchModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Notch`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateNotch(model: AddNotchModel) {\n return this.http.patch(`${this.baseUrl}/Notch/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchNotch(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Notch/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteNotch(id: number) {\n return this.http.delete(`${this.baseUrl}/Notch/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddPfaModel } from './models/pfa.model';\nimport { AddTerminationTypeModel } from './models/exit.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PfaService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getPfaAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/PFA`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getPfa(id: number): Observable {\n let url = `${this.baseUrl}/PFA/${id}`;\n return this.http.get(url);\n }\n\n createPfa(model: AddPfaModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true;\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/PFA`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updatePfa(model: AddPfaModel) {\n return this.http.patch(`${this.baseUrl}/PFA/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchPfa(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/PFA/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deletePfa(id: number) {\n return this.http.delete(`${this.baseUrl}/PFA/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddPositionModel } from './models/position.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PositionService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getPositionAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Position`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getPosition(id: number): Observable {\n let url = `${this.baseUrl}/Position/${id}`;\n return this.http.get(url);\n }\n\n createPosition(model: AddPositionModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Position`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updatePosition(model: AddPositionModel) {\n return this.http.patch(`${this.baseUrl}/Position/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n patchPosition(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Position/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deletePosition(id: number) {\n return this.http.delete(`${this.baseUrl}/Position/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddQualificationclassModel } from './models/qualificationclass.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { AddEducationqualificationModel } from './models/educationqualification.model';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QualificationclassService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getEducationQualificationClassAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/EducationClassQualification`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getEducationQualificationClass(id: number): Observable {\n let url = `${this.baseUrl}/EducationClassQualification/${id}`;\n return this.http.get(url);\n }\n\n createEducationQualificationClass(model: AddQualificationclassModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/EducationClassQualification`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateEducationQualificationClass(model: AddQualificationclassModel) {\n return this.http.patch(`${this.baseUrl}/EducationClassQualification/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchEducationQualificationClass(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/EducationClassQualification/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteEducationQualificationClass(id: number) {\n return this.http.delete(`${this.baseUrl}/EducationClassQualification/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffModel, AddStaffTypeModel } from './models/staff.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffTypeAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/StaffType`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getStaffType(id: number): Observable {\n let url = `${this.baseUrl}/StaffType/${id}`;\n return this.http.get(url);\n }\n\n createStaffType(model: AddStaffTypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n\n }\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/StaffType`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n\n updateStaffType(model: AddStaffTypeModel) {\n return this.http.patch(`${this.baseUrl}/StaffType/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffType(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/StaffType/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteStaffType(id: number) {\n return this.http.delete(`${this.baseUrl}/StaffType/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n //Staff Service\n\n getStaffAll(status: string = null, pageNo, pageLength): Observable {\n let url = `${this.baseUrl}/Staff`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (pageNo)\n params[`pageNo`] = pageNo;\n if (pageLength)\n params[`pageLength`] = pageLength;\n\n return this.http.get(url, { params: params });\n }\n getStaff(id: number): Observable {\n let url = `${this.baseUrl}/StaffType/${id}`;\n return this.http.get(url);\n }\n\n createStaff(model: AddStaffModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.staffBioData.createdBy = userProfile.userName;\n }\n model.staffBioData.employeeId = '1234'\n model.staffBioData.createdDate = SmartUtil.formatDateTimeServer();\n // model.staffBioData.approvedDate = SmartUtil.formatDateTimeServer()\n // model.staffBioData.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.staffBioData.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaff(model: AddStaffTypeModel) {\n return this.http.put(`${this.baseUrl}/StaffType/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n\n deleteStaff(id: number) {\n return this.http.delete(`${this.baseUrl}/StaffType/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffbiodataModel } from './models/staffbiodata.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffbiodataService {\n employeeIdData: any;\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n this.employeeIdData = {\n name: ''\n };\n }\n getStaffBiodataAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_Biodata`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllStaffBiodata(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_Biodata/AllStaffList`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getStaffBiodata(id: number): Observable {\n let url = `${this.baseUrl}/Staff_Biodata/${id}`;\n return this.http.get(url);\n }\n\n getStaffByCode(code:any){\n return this.http.get(this.baseUrl + \"/Staff_Biodata\" + \"/\" + code)\n }\n\n getSearchStaffByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_Biodata\" + \"/\" + EmployeeId)\n }\n\n createStaffBiodata(model: AddStaffbiodataModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n //model.display = true;\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_Biodata`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffBiodata(model: AddStaffbiodataModel) {\n return this.http.patch(`${this.baseUrl}/Staff_Biodata/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffBiodata(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_Biodata/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n // deleteStaffBiodata(id: number) {\n // return this.http.delete(`${this.baseUrl}/Staff_Biodata/${id}`)\n // .pipe(map(res => {\n // //console.log(res);\n // return res;\n // }),\n // );\n // }\n\n deleteStaffBiodata(id: string): Observable {\n return this.http.post(`${this.baseUrl}/Staff_Biodata/${id}`, { id });\n }\n\n getItem(key) {\n return this.employeeIdData[key];\n }\n\n setItem(key, value){\n this.employeeIdData[key] = value;\n }\n\n removeItem(){\n this.employeeIdData = '';\n }\n\n resetUser(employeeId: string) {\n return this.http.post(`${this.baseUrl}/Staff_Biodata/ResetSelfServiceLogin?employeeId=${employeeId}`, {})\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffchildrenModel } from './models/staffchildren.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\nimport * as jsonPatch from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffchildrenService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffChildrenAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_Children`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffChildren(id: number): Observable {\n let url = `${this.baseUrl}/Staff_Children/${id}`;\n return this.http.get(url);\n }\n\n getSearchChildren(EmployeeId: string): Observable{\n const url = this.baseUrl + '/Staff_Children/serachChildrenByEmployeeId';\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(url,{params:queryParams});\n }\n\n // getSearchChildren(EmployeeId: string): Observable {\n // let url = `${this.baseUrl}/Staff_Children/serachChildrenByEmployeeId?EmployeeId=${EmployeeId}`;\n\n // return this.http.get(url);\n // }\n\n\n\n createStaffChildren(model: AddStaffchildrenModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n // model.display = true\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_Children`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n newStaffChildren(payload: { staffchildren: AddStaffchildrenModel[] }) {\n let userProfile = SmartUtil.getUserInfo();\n if (!userProfile) {\n // Handle the case where user profile is not available\n // You might want to throw an error, log a message, or handle it as needed\n }\n\n console.log(payload, 'to post');\n return this.http.post(`${this.baseUrl}/Staff_Children`, payload)\n .pipe(\n map(res => {\n return res;\n }),\n );\n }\n\n\n updateStaffChildren(model: AddStaffchildrenModel) {\n return this.http.patch(`${this.baseUrl}/Staff_Children/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffChildren(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_Children/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n deleteStaffChildren(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_Children/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { Staffcv } from './models/staffcv.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffcvService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffCvAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_CV`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffCv(id: number): Observable {\n let url = `${this.baseUrl}/Staff_CV/${id}`;\n return this.http.get(url);\n }\n\n getStaffCvByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_CV\" + \"/\" + EmployeeId)\n }\n\n\n createStaffCv(model: Staffcv) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n // model.display = true\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_CV`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffCv(model: Staffcv) {\n return this.http.patch(`${this.baseUrl}/Staff_CV/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffCv(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_CV/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteStaffCv(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_CV/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffeducationModel } from './models/staffeducation.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffeducationService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffEducationAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_Academic`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffEducation(id: number): Observable {\n let url = `${this.baseUrl}/Staff_Academic/${id}`;\n return this.http.get(url);\n }\n\n getStaffEducationByCode(code:any){\n return this.http.get(this.baseUrl + \"/Staff_Academic\" + \"/\" + code)\n }\n\n getSearchAcademicByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_Academic\" + \"/\" + EmployeeId)\n }\n\n createStaffEducation(model: AddStaffeducationModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n //model.display = true;\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_Academic`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffEducation(model: AddStaffeducationModel) {\n return this.http.patch(`${this.baseUrl}/Staff_Academic/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n // patchStaffEducation(id: number, operations: Operation[]){\n // let url = `${this.baseUrl}/Staff_Academic/${id}`;\n // return this.http.patch(url, operations);\n // }\n\n // Update academic record using JSON Patch\n patchStaffEducation(id: number, patch: any[]): Observable {\n let url = `${this.baseUrl}/Staff_Academic/${id}`;\n return this.http.patch(url, patch);\n }\n\n\n deleteStaffEducation(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_Academic/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffprofessionalModel } from './models/staffprofessional.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffprofessionalService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffProfessionalAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_ProfessionalAssociation`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffProfessional(id: number): Observable {\n let url = `${this.baseUrl}/Staff_ProfessionalAssociation/${id}`;\n return this.http.get(url);\n }\n\n getStaffProfessionalByCode(code:any){\n return this.http.get(this.baseUrl + \"/Staff_ProfessionalAssociation\" + \"/\" + code)\n }\n\n getSearchProfessionalByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_ProfessionalAssociation\" + \"/\" + EmployeeId)\n }\n\n createStaffProfessional(model: AddStaffprofessionalModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n //model.display = true;\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_ProfessionalAssociation`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffProfessional(model: AddStaffprofessionalModel) {\n return this.http.patch(`${this.baseUrl}/Staff_ProfessionalAssociation/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffProfessional(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_ProfessionalAssociation/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteStaffProfessional(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_ProfessionalAssociation/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffrefereeModel } from './models/staffreferee.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffrefereeService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffRefereeAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_RefereeData`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffReferee(id: number): Observable {\n let url = `${this.baseUrl}/Staff_RefereeData/${id}`;\n return this.http.get(url);\n }\n\n getStaffRefereeByCode(code:any){\n return this.http.get(this.baseUrl + \"/Staff_RefereeData\" + \"/\" + code)\n }\n\n getSearchRefereeByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_RefereeData\" + \"/\" + EmployeeId)\n }\n\n createStaffReferee(model: AddStaffrefereeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n //model.display = true;\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_RefereeData`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffReferee(model: AddStaffrefereeModel) {\n return this.http.patch(`${this.baseUrl}/Staff_RefereeData/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffReferee(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_RefereeData/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteStaffReferee(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_RefereeData/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffworkModel } from './models/staffwork.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StaffworkService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getStaffWorkExperienceAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Staff_WorkExperience`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStaffWorkExperience(id: number): Observable {\n let url = `${this.baseUrl}/Staff_WorkExperience/${id}`;\n return this.http.get(url);\n }\n\n getStaffWorkExperienceByCode(code:any){\n return this.http.get(this.baseUrl + \"/Staff_WorkExperience\" + \"/\" + code)\n }\n\n getSearchWorkByEmployee(EmployeeId: string): Observable{\n return this.http.get(this.baseUrl + \"/Staff_WorkExperience\" + \"/\" + EmployeeId)\n }\n\n createStaffWorkExperience(model: AddStaffworkModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n // model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n //model.display = true;\n // model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Staff_WorkExperience`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateStaffWorkExperience(model: AddStaffworkModel) {\n return this.http.patch(`${this.baseUrl}/Staff_WorkExperience/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchStaffWorkExperience(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Staff_WorkExperience/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteStaffWorkExperience(id: number) {\n return this.http.delete(`${this.baseUrl}/Staff_WorkExperience/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { AddStateModel } from './models/state.model';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StateService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n //State Service\n getStateAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/States`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getStateByCountry(countryId: number): Observable {\n let url = `${this.baseUrl}/States?serachStateByCountry?id=${countryId}`;\n\n return this.http.get(url);\n }\n\n getState(id: number): Observable {\n let url = `${this.baseUrl}/States/${id}`;\n return this.http.get(url);\n }\n\n createState(model: AddStateModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n\n }\n\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/States`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateState(model: AddStateModel) {\n return this.http.patch(`${this.baseUrl}/States/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchState(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/States/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteState(id: number) {\n return this.http.delete(`${this.baseUrl}/States/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddTitleModel } from './models/title.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TitleService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getTitleAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Title`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n getTitle(id: number): Observable {\n let url = `${this.baseUrl}/Title/${id}`;\n return this.http.get(url);\n }\n\n createTitle(model: AddTitleModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Title`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateTitle(model: AddTitleModel) {\n return this.http.patch(`${this.baseUrl}/Title/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchTitle(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Title/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteTitle(id: number) {\n return this.http.delete(`${this.baseUrl}/Title/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddLoancalculationmethodModel } from './models/loancalculationmethod.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoancalculationmethodService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v5`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getLoanCalculationMethodAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/LoanCalculationMethod`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getLoanCalculationMethod(id: number): Observable {\n let url = `${this.baseUrl}/LoanCalculationMethod/${id}`;\n return this.http.get(url);\n }\n\n createLoanCalculationMethod(model: AddLoancalculationmethodModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/LoanCalculationMethod`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateLoanCalculationMethod(model: AddLoancalculationmethodModel) {\n return this.http.patch(`${this.baseUrl}/LoanCalculationMethod/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchLoanCalculationMethod(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/LoanCalculationMethod/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteLoanCalculationMethod(id: number) {\n return this.http.delete(`${this.baseUrl}/LoanCalculationMethod/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddLoanTypeModel } from './models/loantype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoantypeService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v5`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getLoanTypeAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/LoanType`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getLoanType(id: number): Observable {\n let url = `${this.baseUrl}/LoanType/${id}`;\n return this.http.get(url);\n }\n\n createLoanType(model: AddLoanTypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/LoanType`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateLoanType(model: AddLoanTypeModel) {\n return this.http.patch(`${this.baseUrl}/LoanType/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchLoanType(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/LoanType/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteLoanType(id: number) {\n return this.http.delete(`${this.baseUrl}/LoanType/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n\n // toggleExpenseTypeStatus(model) {\n // return this.http.post(`${this.baseUrl}/expense/type/toggle/status`, model)\n // .pipe(map(res => {\n // return res;\n // }),\n // );\n // }\n\n // getExpense(id: number): Observable {\n // let url = `${this.baseUrl}/expense/${id}`;\n // return this.http.get(url);\n // }\n\n // refreshExpenseList(loanNo = null, expenseType = null, fromDate = null, toDate = null): ServerDataSource {\n // let url = `${this.baseUrl}/expense?loanNo=${loanNo ?? ''}`;\n // if (expenseType)\n // url += `&etype=${expenseType}`\n // if (fromDate)\n // url += `&fromDate=${fromDate}`\n // if (toDate)\n // url += `&toDate=${toDate}`\n\n\n // return new ServerDataSource(this.http,\n // {\n // dataKey: 'data',\n // endPoint: url,// 'https://api.instantwebtools.net/v1/passenger',\n // pagerPageKey: 'page', // this should be page number param name in endpoint (request not response) for example 'page'\n // pagerLimitKey: 'size', // this should page size param name in endpoint (request not response)\n // totalKey: 'totalRecords', // this is total records count in response, this will handle pager\n // });\n // }\n\n // getExpenseList(dataTablesParameters, loanNo = null, expenseType = null, fromDate = null, toDate = null): Observable {\n\n // let url = `${this.baseUrl}/expense`;\n // const params = {};\n // SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n // //console.log(params)\n // if (loanNo)\n // params[`loanNo`] = loanNo;\n // if (expenseType)\n // params[`expenseType`] = expenseType;\n // if (fromDate)\n // params[`fromDate`] = fromDate;\n // if (toDate)\n // params[`toDate`] = toDate;\n // return this.http.get(url, { params: params })\n // }\n\n\n // createExpense(model: AddExpenseModel) {\n // const formData = new FormData();\n // formData.append(\"expenseDate\", model.expenseDate);\n // formData.append(\"description\", model.description);\n // formData.append(\"amount\", model.amount.toString());\n // formData.append(\"expenseTypeId\", model.expenseTypeId.toString());\n\n\n // if (model.loanNo)\n // formData.append(\"loanNo\", model.loanNo);\n\n // if (model.documents) {\n // for (var i = 0; i < model.documents.length; i++) {\n // formData.append(\"documents\", model.documents[i], model.documents[i].name);\n // }\n // }\n\n // return this.http.post(`${this.baseUrl}/Expense`, formData)\n // .pipe(map(res => {\n // //console.log(res);\n // return res;\n // }),\n // );\n\n // }\n\n // updateExpense(model: AddExpenseModel) {\n // const formData = new FormData();\n\n // formData.append(\"expenseDate\", model.expenseDate);\n // formData.append(\"description\", model.description);\n // formData.append(\"amount\", model.amount.toString());\n // formData.append(\"expenseTypeId\", model.expenseTypeId.toString());\n\n // if (model.loanNo)\n // formData.append(\"loanNo\", model.loanNo);\n\n // if (model.documents) {\n // for (var i = 0; i < model.documents.length; i++) {\n // formData.append(\"documents\", model.documents[i], model.documents[i].name);\n // }\n // }\n\n // return this.http.put(`${this.baseUrl}/expense/${model.expenseId}`, formData)\n // .pipe(map(res => {\n // //console.log(res);\n // return res;\n // }),\n // //catchError(this.handleError)\n // );\n\n // }\n\n\n // deleteExpense(id: number) {\n // return this.http.delete(`${this.baseUrl}/expense/${id}`)\n // .pipe(map(res => {\n // //console.log(res);\n // return res;\n // }),\n // );\n // }\n\n // deleteExpenseFile(id: any) {\n // return this.http.delete(`${this.baseUrl}/expense/document/${id}`)\n // .pipe(map(res => {\n // //console.log(res);\n // return res;\n // }),\n // );\n // }\n\n // downloadFile(id: any): Observable {\n // let url = `${this.baseUrl}/expense/downloadFile/${id}`;\n // return this.http.get(url, { responseType: 'blob' });\n // }\n\n}\n","// // prefix.pipe.ts\r\n\r\n// import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// @Pipe({\r\n// name: 'addPrefix'\r\n// })\r\n// export class AddPrefixPipe implements PipeTransform {\r\n// transform(value: number): string {\r\n// return value <= 0 ? `${Math.abs(value)} CR` : `${value} DR`;\r\n// }\r\n// }\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'addPrefix'\r\n})\r\nexport class AddPrefixPipe implements PipeTransform {\r\n transform(value: number): string {\r\n const formattedValue = this.formatNumber(value);\r\n\r\n return value <= 0 ? `${formattedValue} CR` : `${formattedValue} DR`;\r\n }\r\n\r\n private formatNumber(value: number): string {\r\n const absoluteValue = Math.abs(value);\r\n const formattedAbsoluteValue = this.addCommas(absoluteValue);\r\n return formattedAbsoluteValue;\r\n }\r\n\r\n private addCommas(value: number): string {\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map, switchMap } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddAccounttypeModel } from './models/accounttype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation} from 'fast-json-patch';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { AuthService } from 'src/app/login/_services/auth.service';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AccounttypeService {\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v3`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(\n private http: HttpClient,\n private jwtHelper: JwtHelperService,\n private authService: AuthService\n ) {\n }\n\n getAllAccounttypes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/AccountType`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n\n GetAccounttypebyCode(id: number): Observable {\n let url = `${this.baseUrl}/AccountType/${id}`;\n return this.http.get(url);\n }\n\n SaveAccounttype(model: AddAccounttypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/AccountType`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateAccounttype(model: AddAccounttypeModel) {\n return this.http.patch(`${this.baseUrl}/AccountType/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchAccounttype(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/AccountType/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveAccounttype(id: number) {\n return this.http.delete(`${this.baseUrl}/AccountType/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport * as alertify from 'alertifyjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertifyService {\n\n constructor() { }\n\n confirm(message: string, okCallback: () => any) {\n alertify.confirm(message, function(e) {\n if (e) {\n okCallback();\n } else {}\n });\n }\n\n success(message: string) {\n alertify.set('notifier','position', 'top-right');\n alertify.success(message);\n }\n\n warning(message: string) {\n alertify.set('notifier','position', 'top-right');\n alertify.warning(message);\n }\n\n error(message: string) {\n alertify.set('notifier','position', 'top-right');\n alertify.error(message);\n }\n\n message(message: string) {\n alertify.message(message);\n }\n\n alert(title: string, message: string, callback?: () => void) {\n alertify.alert(title, message, callback);\n }\n\n setDelay(seconds: number) {\n alertify.set('notifier', 'delay', seconds);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddBankModel } from './models/bank.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BankService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllBanks(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Banks`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetBankbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Banks/${id}`;\n return this.http.get(url);\n }\n\n SaveBank(model: AddBankModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Banks`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateBank(model: AddBankModel) {\n return this.http.patch(`${this.baseUrl}/Banks/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchBank(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Banks/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveBank(id: number) {\n return this.http.delete(`${this.baseUrl}/Banks/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddBranchModel } from './models/branch.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BranchService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllBranches(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Branch`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/v2/States/');\n // }\n\n GetBranchbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Branch/${id}`;\n return this.http.get(url);\n }\n\n SaveBranch(model: AddBranchModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Branch`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateBranch(model: AddBranchModel) {\n return this.http.patch(`${this.baseUrl}/Branch/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchBranch(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Branch/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveBranch(id: number) {\n return this.http.delete(`${this.baseUrl}/Branch/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddBranchlimitModel } from './models/branchlimit.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BranchlimitService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllBranchlimits(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Branchlimit`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetBranchlimitbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Branchlimit/${id}`;\n return this.http.get(url);\n }\n\n SaveBranchlimit(model: AddBranchlimitModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Branchlimit`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateBranchlimit(model: AddBranchlimitModel) {\n return this.http.patch(`${this.baseUrl}/Branchlimit/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchBranchlimit(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Branchlimit/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveBranchlimit(id: number) {\n return this.http.delete(`${this.baseUrl}/Branchlimit/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddChargeModel } from './models/charge.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChargeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCharges(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Charges`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetChargebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Charges/${id}`;\n return this.http.get(url);\n }\n\n SaveCharge(model: AddChargeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Charges`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCharge(model: AddChargeModel) {\n return this.http.patch(`${this.baseUrl}/Charges/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCharge(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Charges/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCharge(id: number) {\n return this.http.delete(`${this.baseUrl}/Charges/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddChargetypeModel } from './models/chargetype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChargetypeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllChargetypes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Chargetype`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetChargetypebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Chargetype/${id}`;\n return this.http.get(url);\n }\n\n SaveChargetype(model: AddChargetypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Chargetype`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateChargetype(model: AddChargetypeModel) {\n return this.http.patch(`${this.baseUrl}/Chargetype/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchChargetype(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Chargetype/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveChargetype(id: number) {\n return this.http.delete(`${this.baseUrl}/Chargetype/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCityModel } from './models/city.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CityService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCities(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/City`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetCitybyCode(id: number): Observable {\n let url = `${this.baseUrl}/City/${id}`;\n return this.http.get(url);\n }\n\n SaveCity(model: AddCityModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/City`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCity(model: AddCityModel) {\n return this.http.patch(`${this.baseUrl}/City/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCity(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/City/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCity(id: number) {\n return this.http.delete(`${this.baseUrl}/City/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddClasstypeModel } from './models/classtype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClasstypeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllClasstypes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Classtype`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllFrequency() {\n // return this.http.get(environment.apiBaseURI + '/api/v2/Frequency/');\n // }\n\n GetClasstypebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Classtype/${id}`;\n return this.http.get(url);\n }\n\n SaveClasstype(model: AddClasstypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Classtype`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateClasstype(model: AddClasstypeModel) {\n return this.http.patch(`${this.baseUrl}/Classtype/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchClasstype(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Classtype/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveClasstype(id: number) {\n return this.http.delete(`${this.baseUrl}/Classtype/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCompanygroupModel } from './models/companygroup.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\n\n\nexport class CompanygroupService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCompanygroups(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/CompanyGroup`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllCompanyGroup() {\n return this.http.get(environment.apiBaseURI + '/api/v2/CompanyGroup/');\n }\n\n GetCompanygroupbyCode(id: number): Observable {\n let url = `${this.baseUrl}/CompanyGroup/${id}`;\n return this.http.get(url);\n }\n\n SaveCompanygroup(model: AddCompanygroupModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n //model.companyId = userProfile.companyId;\n }\n //model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/CompanyGroup`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCompanygroup(model: AddCompanygroupModel) {\n return this.http.patch(`${this.baseUrl}/CompanyGroup/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCompanygroup(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/CompanyGroup/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCompanygroup(id: number) {\n return this.http.delete(`${this.baseUrl}/CompanyGroup/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n getCurrentData(id){\n return this.http.get(`${environment.apiBaseURI + '/api/v2/CompanyGroup'}/${id}`)\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCompanyprofileModel } from './models/companyprofile.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CompanyprofileService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCompanyprofiles(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Companyprofile`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/v2/States/');\n // }\n\n GetCompanyprofilebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Companyprofile/${id}`;\n return this.http.get(url);\n }\n\n SaveCompanyprofile(model: AddCompanyprofileModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n // model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Companyprofile`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCompanyprofile(model: AddCompanyprofileModel) {\n return this.http.patch(`${this.baseUrl}/Companyprofile/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCompanyprofile(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Companyprofile/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCompanyprofile(id: number) {\n return this.http.delete(`${this.baseUrl}/Companyprofile/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n MigrateData(CompanyCode: string) : Observable {\n const url = this.baseUrl + '/Companyprofile/migratedata?CompanyCode=' + CompanyCode;\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"CompanyCode\", CompanyCode);\n return this.http.post(url, {params:queryParams}, {});\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCountryModel } from './models/country.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CountryService {\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCountries(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Country`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllCountry() {\n return this.http.get(environment.apiBaseURI + '/api/Country/');\n }\n\n GetCountrybyCode(id: number): Observable {\n let url = `${this.baseUrl}/Country/${id}`;\n return this.http.get(url);\n }\n\n SaveCountry(model: AddCountryModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n //model.companyId = userProfile.companyId;\n }\n //model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Country`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCountry(model: AddCountryModel) {\n return this.http.patch(`${this.baseUrl}/Country/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCountry(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Country/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCountry(id: number) {\n return this.http.delete(`${this.baseUrl}/Country/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddCurrencyModel } from './models/currency.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CurrencycodeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllCurrencycodes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Currencycode`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllCurrencycode() {\n return this.http.get(environment.apiBaseURI + '/api/v2/Currencycode/');\n }\n\n GetCurrencybyCode(id: number): Observable {\n let url = `${this.baseUrl}/Currencycode/${id}`;\n return this.http.get(url);\n }\n\n SaveCurrency(model: AddCurrencyModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Currencycode`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateCurrency(model: AddCurrencyModel) {\n return this.http.patch(`${this.baseUrl}/Currencycode/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchCurrency(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Currencycode/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveCurrency(id: number) {\n return this.http.delete(`${this.baseUrl}/Currencycode/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddDepartmentModel } from './models/department.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DepartmentService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllDepartments(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Department`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetDepartmentbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Department/${id}`;\n return this.http.get(url);\n }\n\n SaveDepartment(model: AddDepartmentModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Department`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateDepartment(model: AddDepartmentModel) {\n return this.http.patch(`${this.baseUrl}/Department/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchDepartment(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Department/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveDepartment(id: number) {\n return this.http.delete(`${this.baseUrl}/Department/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddDepartmentunitModel } from './models/departmentunit.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DepartmentunitService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllDepartmentunits(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Departmentunit`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetDepartmentunitbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Departmentunit/${id}`;\n return this.http.get(url);\n }\n\n SaveDepartmentunit(model: AddDepartmentunitModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Departmentunit`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateDepartmentunit(model: AddDepartmentunitModel) {\n return this.http.patch(`${this.baseUrl}/Departmentunit/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchDepartmentunit(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Departmentunit/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveDepartmentunit(id: number) {\n return this.http.delete(`${this.baseUrl}/Departmentunit/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddDisclosureModel } from './models/disclosure.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DisclosureService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v3`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n //State Service\n getDisclosureAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Disclosure`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getDisclosure(id: number): Observable {\n let url = `${this.baseUrl}/Disclosure/${id}`;\n return this.http.get(url);\n }\n\n createDisclosure(model: AddDisclosureModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n\n }\n\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Disclosure`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n updateDisclosure(model: AddDisclosureModel) {\n return this.http.patch(`${this.baseUrl}/Disclosure/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchDisclosure(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Disclosure/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n deleteDisclosure(id: number) {\n return this.http.delete(`${this.baseUrl}/Disclosure/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddFrequencyModel } from './models/frequency.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FrequencyService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllFrequencies(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Frequency`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllFrequency() {\n return this.http.get(environment.apiBaseURI + '/api/v2/Frequency/');\n }\n\n GetFrequencybyCode(id: number): Observable {\n let url = `${this.baseUrl}/Frequency/${id}`;\n return this.http.get(url);\n }\n\n SaveFrequency(model: AddFrequencyModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Frequency`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateFrequency(model: AddFrequencyModel) {\n return this.http.patch(`${this.baseUrl}/Frequency/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchFrequency(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Frequency/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveFrequency(id: number) {\n return this.http.delete(`${this.baseUrl}/Frequency/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddNarrationModel } from './models/narration.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NarrationService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllNarrations(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Narration`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllNarration() {\n return this.http.get(this.baseUrl + \"/Narration/\");\n }\n\n GetNarrationbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Narration/${id}`;\n return this.http.get(url);\n }\n\n SaveNarration(model: AddNarrationModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Narration`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateNarration(model: AddNarrationModel) {\n return this.http.patch(`${this.baseUrl}/Narration/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchNarration(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Narration/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveNarration(id: number) {\n return this.http.delete(`${this.baseUrl}/Narration/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n private _listeners = new Subject();\n listen(): Observable {\n return this._listeners.asObservable();\n }\n filter(filterBy: string) {\n this._listeners.next(filterBy);\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { Location } from '@angular/common'\nimport { Router, NavigationEnd } from '@angular/router'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n private history: string[] = []\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects)\n }\n })\n }\n\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back()\n } else {\n this.router.navigateByUrl(\"/\")\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddPaymenttypeModel } from './models/paymenttype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymenttypeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v5`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllPaymenttypes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Paymenttype`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetPaymenttypebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Paymenttype/${id}`;\n return this.http.get(url);\n }\n\n SavePaymenttype(model: AddPaymenttypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Paymenttype`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdatePaymenttype(model: AddPaymenttypeModel) {\n return this.http.patch(`${this.baseUrl}/Paymenttype/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchPaymenttype(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Paymenttype/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemovePaymenttype(id: number) {\n return this.http.delete(`${this.baseUrl}/Paymenttype/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddPosttypeModel } from './models/posttype.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PosttypeService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllPosttypes(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Posttype`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllNarration() {\n // return this.http.get(environment.apiBaseURI + \"/api/v2/Narration/\");\n // }\n\n GetPosttypebyCode(id: number): Observable {\n let url = `${this.baseUrl}/Posttype/${id}`;\n return this.http.get(url);\n }\n\n SavePosttype(model: AddPosttypeModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Posttype`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdatePosttype(model: AddPosttypeModel) {\n return this.http.patch(`${this.baseUrl}/Posttype/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchPosttype(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Posttype/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemovePosttype(id: number) {\n return this.http.delete(`${this.baseUrl}/Posttype/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddReasonModel } from './models/reason.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReasonService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllReasons(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Reason`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetReasonbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Reason/${id}`;\n return this.http.get(url);\n }\n\n SaveReason(model: AddReasonModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Reason`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateReason(model: AddReasonModel) {\n return this.http.patch(`${this.baseUrl}/Reason/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchReason(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Reason/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveReason(id: number) {\n return this.http.delete(`${this.baseUrl}/Reason/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddRoleModel } from './models/role.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v1`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllRoles(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/RoleControl`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetRolebyCode(id: number): Observable {\n let url = `${this.baseUrl}/RoleControl/${id}`;\n return this.http.get(url);\n }\n\n SaveRole(model: AddRoleModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/RoleControl`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateRole(model: AddRoleModel) {\n return this.http.patch(`${this.baseUrl}/RoleControl/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchRole(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/RoleControl/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveRole(id: number) {\n return this.http.delete(`${this.baseUrl}/RoleControl/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddRolelimitModel } from './models/rolelimit.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RolelimitService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v1`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllRolelimits(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/RoleLimit`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetRolelimitbyCode(id: number): Observable {\n let url = `${this.baseUrl}/RoleLimit/${id}`;\n return this.http.get(url);\n }\n\n SaveRolelimit(model: AddRolelimitModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/RoleLimit`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateRolelimit(model: AddRolelimitModel) {\n return this.http.patch(`${this.baseUrl}/RoleLimit/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchRolelimit(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/RoleLimit/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveRolelimit(id: number) {\n return this.http.delete(`${this.baseUrl}/RoleLimit/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStateModel } from './models/state.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StateService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllStates(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/States`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getAllState() {\n return this.http.get(environment.apiBaseURI + '/api/v2/States/');\n }\n\n GetStatebyCode(id: number): Observable {\n let url = `${this.baseUrl}/States/${id}`;\n return this.http.get(url);\n }\n\n SaveState(model: AddStateModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/States`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateState(model: AddStateModel) {\n return this.http.patch(`${this.baseUrl}/States/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchState(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/States/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveState(id: number) {\n return this.http.delete(`${this.baseUrl}/States/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n SearchStateByCountry(id:any) {\n const url = this.baseUrl + '/States/serachStateByCountry';\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"id\", id);\n return this.http.get(url,{params:queryParams});\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddTownModel } from './models/town.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TownService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllTowns(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Town`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetTownbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Town/${id}`;\n return this.http.get(url);\n }\n\n SaveTown(model: AddTownModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Town`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateTown(model: AddTownModel) {\n return this.http.patch(`${this.baseUrl}/Town/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchTown(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Town/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveTown(id: number) {\n return this.http.delete(`${this.baseUrl}/Town/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment.prod';\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddVendorModel } from './models/vendor.model';\nimport { SmartUtil } from 'src/app/core/utitlity/smart.util';\nimport { Operation } from 'fast-json-patch';\n// import { SmartUtil } from '../Utilities/SmartUtil';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VendorService {\n\n loader = new BehaviorSubject(false);\n\n private baseUrl = `${environment.apiBaseURIHrm}/v2`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {\n }\n getAllVendors(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Vendor`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getAllState() {\n // return this.http.get(environment.apiBaseURI + '/api/States/');\n // }\n\n GetVendorbyCode(id: number): Observable {\n let url = `${this.baseUrl}/Vendor/${id}`;\n return this.http.get(url);\n }\n\n SaveVendor(model: AddVendorModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, 'to post')\n return this.http.post(`${this.baseUrl}/Vendor`, model)\n .pipe(map(res => {\n return res;\n }),\n );\n\n }\n\n UpdateVendor(model: AddVendorModel) {\n return this.http.patch(`${this.baseUrl}/Vendor/${model.id}`, model)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n //catchError(this.handleError)\n );\n\n }\n\n patchVendor(id: number, operations: Operation[]){\n let url = `${this.baseUrl}/Vendor/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n\n RemoveVendor(id: number) {\n return this.http.delete(`${this.baseUrl}/Vendor/${id}`)\n .pipe(map(res => {\n //console.log(res);\n return res;\n }),\n );\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { AuthenticationGuard } from \"./core/auth/authentication.guard\";\nimport { PageNotfoundComponent } from \"./page-notfound/page-notfound.component\";\nimport { SelfServiceComponent } from \"./self-service/self-service.component\";\nimport { SelfEnrollmentComponent } from \"./self-enrollment/self-enrollment.component\";\nimport { HomeComponent } from \"./self-service/pages/home/home.component\";\nimport { LoginComponent } from \"./self-service/pages/login/login.component\";\nimport { DashboardComponent } from \"./self-service/pages/dashboard/dashboard.component\";\nimport { StaffSetupComponent } from \"./self-service/pages/staff-setup/staff-setup.component\";\nimport { PayslipComponent } from \"./self-service/pages/payslip/payslip.component\";\nimport { LeaveComponent } from \"./self-service/pages/leave/leave.component\";\nimport { CooperativeComponent } from \"./self-service/pages/cooperative/cooperative.component\";\nimport { LoanComponent } from \"./self-service/pages/loan/loan.component\";\nimport { StaffExitComponent } from \"./self-service/pages/staff-exit/staff-exit.component\";\nimport { HmoComponent } from \"./self-service/pages/hmo/hmo.component\";\nimport { EnrollmentLoginComponent } from \"./self-enrollment/pages/enrollment-login/enrollment-login.component\";\nimport { EnrollmentFormComponent } from \"./self-enrollment/pages/enrollment-form/enrollment-form.component\";\nimport { EditPageComponent } from \"./self-enrollment/pages/edit-page/edit-page.component\";\nimport { LoanListComponent } from \"./self-service/pages/loan-list/loan-list.component\";\nimport { LeaveListComponent } from \"./self-service/pages/leave-list/leave-list.component\";\n\nconst routes: Routes = [\n // { path: '', redirectTo: '', pathMatch: 'full' },\n {\n path: \"\",\n loadChildren: () =>\n import(`./login/login.module`).then((m) => m.LoginModule),\n },\n {\n path: \"error\",\n loadChildren: () =>\n import(`./errorpages/errorpages.module`).then((m) => m.ErrorpagesModule),\n },\n {\n path: \"layout\",\n loadChildren: () =>\n import(`./all-modules/all-modules.module`).then(\n (m) => m.AllModulesModule\n ),\n canActivate: [AuthenticationGuard],\n },\n {\n path: \"self-service\",\n component: SelfServiceComponent,\n children: [\n { path: \"login\", component: LoginComponent },\n {\n path: \"home\",\n component: HomeComponent,\n children: [\n { path: \"dashboard\", component: DashboardComponent },\n { path: \"staff-setup\", component: StaffSetupComponent },\n { path: \"payslip\", component: PayslipComponent },\n { path: \"leave\", component: LeaveComponent },\n { path: \"leave/edit/:id\", component: LeaveComponent }, \n { path: \"leave-list\", component: LeaveListComponent },\n { path: \"cooperative\", component: CooperativeComponent },\n { path: \"loan\", component: LoanComponent },\n { path: \"loan/edit/:id\", component: LoanComponent },\n { path: \"loan-list\", component: LoanListComponent },\n { path: \"staff-exit\", component: StaffExitComponent },\n { path: \"hmo\", component: HmoComponent },\n ],\n },\n ],\n },\n // { path: 'self-enrollment', component: SelfEnrollmentComponent, children:[\n // { path: 'enrollment-login', component: EnrollmentLoginComponent },\n // { path: 'enrollment-form', component: EnrollmentFormComponent},\n // { path: 'edit-page', component: EditPageComponent},\n // ]},\n // Updated Enrollment Routes\n { path: \"enrollment\", component: EnrollmentLoginComponent },\n { path: \"enrollment-form\", component: EnrollmentFormComponent },\n { path: \"edit-page\", component: EditPageComponent },\n {\n path: \"**\",\n component: PageNotfoundComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationEnd, Event, Router } from '@angular/router';\nimport { NgSelectConfig } from '@ng-select/ng-select';\nimport { SpinnerService } from './sharing/spinner/spinner.service';\nimport { BnNgIdleService } from 'bn-ng-idle';\nimport { AlertifyService } from './all-modules/settings/_services/alertify.service';\n\ndeclare const $: any;\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit {\n title = 'cliqaccount';\n url: string;\n\n constructor(\n private router: Router,\n private config: NgSelectConfig,\n public spinnerService: SpinnerService,\n private bnIdle: BnNgIdleService,\n private alertify: AlertifyService\n ){\n this.config.notFoundText = 'Custom not found';\n this.config.appendTo = 'body';\n\n this.config.bindValue = 'value';\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n const url = event.url.split('/');\n this.url = url[1];\n if (\n event.url == '/' ||\n event.url == '/login' ||\n event.url == '/login/register' ||\n event.url == '/login/forgot' ||\n event.url == '/login/otp' ||\n event.url == '/login/lockscreen'\n ) {\n document.querySelector('body').classList.add('account-page');\n } else {\n document.querySelector('body').classList.remove('account-page');\n }\n if (\n event.url == '/error/error404' ||\n event.url == '/error/error500'\n ) {\n document.querySelector('body').classList.add('error-page');\n } else {\n document.querySelector('body').classList.remove('error-page');\n }\n }\n });\n }\n ngOnInit() {\n $(document).on('click', '#toggle_btn', () => {\n if ($('body').hasClass('mini-sidebar')) {\n $('body').removeClass('mini-sidebar');\n $('.subdrop + ul').slideDown();\n } else {\n $('body').addClass('mini-sidebar');\n $('.subdrop + ul').slideUp();\n }\n return false;\n });\n\n $(document).on('mouseover', (e) => {\n e.stopPropagation();\n if ($('body').hasClass('mini-sidebar') && $('#toggle_btn').is(':visible')) {\n const targ = $(e.target).closest('.sidebar').length;\n if (targ) {\n $('body').addClass('expand-menu');\n $('.subdrop + ul').slideDown();\n } else {\n $('body').removeClass('expand-menu');\n $('.subdrop + ul').slideUp();\n }\n return false;\n }\n });\n\n $('body').append('
');\n $(document).on('click', '#mobile_btn', function() {\n var $wrapper = $('.main-wrapper');\n $wrapper.toggleClass('slide-nav');\n $('.sidebar-overlay').toggleClass('opened');\n $('html').addClass('menu-opened');\n $('#task_window').removeClass('opened');\n return false;\n });\n\n $(\".sidebar-overlay\").on(\"click\", function () {\n var $wrapper = $('.main-wrapper');\n $('html').removeClass('menu-opened');\n $(this).removeClass('opened');\n $wrapper.removeClass('slide-nav');\n $('.sidebar-overlay').removeClass('opened');\n $('#task_window').removeClass('opened');\n });\n\n this.bnIdle.startWatching(300).subscribe((isTimedOut: boolean) => {\n if (isTimedOut) {\n this.alertify.error('Session expired due to inactivity');\n localStorage.removeItem('LoginData');\n localStorage.removeItem('refreshtoken');\n localStorage.removeItem('Company');\n localStorage.removeItem('username');\n localStorage.removeItem('role');\n localStorage.removeItem('UserData');\n localStorage.removeItem('multicompanyaccess');\n this.router.navigate(['/']);\n this.bnIdle.stopTimer();\n }\n });\n\n }\n\n\n}\n","import { BrowserModule } from \"@angular/platform-browser\";\nimport { NgModule } from \"@angular/core\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { AppRoutingModule } from \"./app-routing.module\";\nimport { AppComponent } from \"./app.component\";\nimport { SpinnerService } from \"./sharing/spinner/spinner.service\";\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { BnNgIdleService } from \"bn-ng-idle\";\n\n// Bootstrap DataTable\nimport { DataTablesModule } from \"angular-datatables\";\nimport { ToastrModule } from \"ngx-toastr\";\nimport { RoleService } from \"./all-modules/settings/_services/role.service\";\nimport { HttpClientModule, HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { CountryService } from \"./all-modules/settings/_services/country.service\";\nimport { StateService } from \"./all-modules/settings/_services/state.service\";\nimport { CityService } from \"./all-modules/settings/_services/city.service\";\nimport { TownService } from \"./all-modules/settings/_services/town.service\";\nimport { BankService } from \"./all-modules/settings/_services/bank.service\";\nimport { VendorService } from \"./all-modules/settings/_services/vendor.service\";\nimport { PaymenttypeService } from \"./all-modules/settings/_services/paymenttype.service\";\nimport { AccounttypeService } from \"./all-modules/settings/_services/accounttype.service\";\nimport { NarrationService } from \"./all-modules/settings/_services/narration.service\";\nimport { DisclosureService } from \"./all-modules/settings/_services/disclosure.service\";\nimport { FrequencyService } from \"./all-modules/settings/_services/frequency.service\";\nimport { PosttypeService } from \"./all-modules/settings/_services/posttype.service\";\nimport { ClasstypeService } from \"./all-modules/settings/_services/classtype.service\";\nimport { ChargetypeService } from \"./all-modules/settings/_services/chargetype.service\";\nimport { ChargeService } from \"./all-modules/settings/_services/charge.service\";\nimport { CompanygroupService } from \"./all-modules/settings/_services/companygroup.service\";\nimport { CompanyprofileService } from \"./all-modules/settings/_services/companyprofile.service\";\nimport { BranchService } from \"./all-modules/settings/_services/branch.service\";\nimport { BranchlimitService } from \"./all-modules/settings/_services/branchlimit.service\";\nimport { ReasonService } from \"./all-modules/settings/_services/reason.service\";\nimport { DepartmentService } from \"./all-modules/settings/_services/department.service\";\nimport { DepartmentunitService } from \"./all-modules/settings/_services/departmentunit.service\";\nimport { CurrencycodeService } from \"./all-modules/settings/_services/currencycode.service\";\nimport { RolelimitService } from \"./all-modules/settings/_services/rolelimit.service\";\nimport { MasterService } from \"./all-modules/accounts/_services/master.service\";\nimport { AuthService } from \"./login/_services/auth.service\";\nimport { SharingModule } from \"./sharing/sharing.module\";\nimport { HttperrorInterceptorService } from \"./http-interceptors/httperror-interceptor.service\";\nimport { SpinnerInterceptor } from \"./http-interceptors/spinner-interceptor\";\nimport { AlertifyService } from \"./all-modules/settings/_services/alertify.service\";\nimport { JwtModule, JWT_OPTIONS, JwtHelperService } from \"@auth0/angular-jwt\";\nimport { PageNotfoundComponent } from \"./page-notfound/page-notfound.component\";\nimport { SelfServiceModule } from \"./self-service/self-service.module\";\nimport { SelfEnrollmentModule } from \"./self-enrollment/self-enrollment.module\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { RefreshTokenInterceptor } from \"./http-interceptors/refresh-token.interceptor\";\nimport { DataService } from \"./all-modules/hrm/services/data.service\";\nimport { AddPrefixPipe } from \"./all-modules/settings/_pipe/prefix.pipe\";\n\nexport function jwtOptionsFactory(jwtHelper: JwtHelperService) {\n // const apiBaseURI = environment.apiBaseURI;\n // const allowedDomains = [\n // new URL(apiBaseURI).host,\n // new URL(apiBaseURI.replace(\":8040\", \":8041\")).host,\n // ];\n\n // return {\n // tokenGetter: () => {\n // return localStorage.getItem(\"LoginData\");\n // },\n // allowedDomains: allowedDomains,\n // disallowedRoutes: [], // Exclude refresh token endpoint\n // };\n // }\n\n // allowedDomains: ['173.208.142.211:8040', '173.208.142.211:8041'],\n // allowedDomains: ['41.184.40.66:8040', '41.184.40.66:8041'],\n // 'https://siaoclickapi.com', 'https://siaoclick.com',\n\n return {\n tokenGetter: () => {\n return localStorage.getItem(\"LoginData\");\n },\n allowedDomains: [\n \"https://siaoclickapi.com\",\n \"https://siaoclick.com\",\n // '41.184.40.66:8040', '41.184.40.66:8041',\n ],\n disallowedRoutes: [],\n };\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n PageNotfoundComponent,\n //CustomCurrency,\n ],\n providers: [\n RoleService,\n CountryService,\n StateService,\n CityService,\n TownService,\n BankService,\n VendorService,\n PaymenttypeService,\n AccounttypeService,\n NarrationService,\n DisclosureService,\n FrequencyService,\n PosttypeService,\n ClasstypeService,\n ChargetypeService,\n ChargeService,\n CompanygroupService,\n CompanyprofileService,\n BranchService,\n BranchlimitService,\n ReasonService,\n DepartmentService,\n DepartmentunitService,\n CurrencycodeService,\n RolelimitService,\n MasterService,\n AuthService,\n SpinnerService,\n AlertifyService,\n BnNgIdleService,\n DataService,\n AddPrefixPipe,\n JwtHelperService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttperrorInterceptorService,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: RefreshTokenInterceptor,\n multi: true,\n },\n { provide: HTTP_INTERCEPTORS, useClass: SpinnerInterceptor, multi: true },\n ],\n bootstrap: [AppComponent],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n AppRoutingModule,\n DataTablesModule,\n HttpClientModule,\n FormsModule,\n NgSelectModule,\n NgbModule,\n BsDatepickerModule.forRoot(),\n SelfServiceModule,\n SelfEnrollmentModule,\n ToastrModule.forRoot({\n timeOut: 1500,\n positionClass: \"toast-bottom-right\",\n preventDuplicates: true,\n }),\n SharingModule,\n JwtModule.forRoot({\n jwtOptionsProvider: {\n provide: JWT_OPTIONS,\n useFactory: jwtOptionsFactory,\n deps: [JwtHelperService],\n },\n }),\n ],\n})\nexport class AppModule {}\n","import { Injectable } from '@angular/core';\nimport { AuthService } from 'src/app/login/_services/auth.service';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n UrlTree,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationGuard implements CanActivate {\n constructor(public router: Router) {}\n\n // canActivate(\n // route: ActivatedRouteSnapshot,\n // state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n // if(this.authService.IsLoggedIn()){\n // return true;\n // }else{\n // this.route.navigate(['/login']);\n // return false;\n // }\n\n // }\n\n canActivate(): boolean {\n if (!localStorage.getItem('LoginData')) {\n this.router.navigate([\"/login\"]);\n return false;\n }\n return true;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject, Subscription } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\ninterface Event {\n type: string;\n payload?: any;\n}\n\ntype EventCallback = (payload: any) => void;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventService {\n private handler = new Subject();\n constructor() { }\n\n /**\n * Broadcast the event\n * @param type type of event\n * @param payload payload\n */\n broadcast(type: string, payload = {}) {\n this.handler.next({ type, payload });\n }\n\n /**\n * Subscribe to event\n * @param type type of event\n * @param callback call back function\n */\n subscribe(type: string, callback: EventCallback): Subscription {\n return this.handler.pipe(\n filter(event => event.type === type)).pipe(\n map(event => event.payload))\n .subscribe(callback);\n }\n\n}\n","import { CurrencyPipe, DatePipe, DecimalPipe, PercentPipe, TitleCasePipe } from \"@angular/common\";\n\nexport class EventServiceConstant {\n static staffTypeAdded: string = \"staffTypeAdded\"\n static staffRefereeAdded: string = \"staffRefereeAdded\"\n static staffChildrenAdded: string = \"staffChildrenAdded\"\n static staffEducationAdded: string = \"staffEducationAdded\"\n static staffProfessionalAdded: string = \"staffProfessionalAdded\"\n static staffWorkAdded: string = \"staffWorkAdded\"\n static staffPayItemAdded: string = \"staffPayItemAdded\"\n static roleAssignmentAdded: string = \"roleAssignmentAdded\"\n static roleUserAdded: string = \"roleUserAdded\"\n static leaveTypeAdded: string = \"leaveTypeAdded\"\n static staffBiodataAdded: string = \"staffBiodataAdded\"\n static gradeAdded: string = \"gradeAdded\"\n static payItemAdded: string = \"payItemAdded\"\n static terminationTypeAdded: string = \"terminationTypeAdded\"\n static redeploymentAllowanceAdded: string = \"redeploymentAllowanceAdded\"\n static pfaAdded: string = \"pfaAdded\"\n static holidayAdded: string = \"holidayAdded\"\n static loanTypeAdded: string = \"loanTypeAdded\"\n static loanSetupAdded: string = \"loanSetupAdded\"\n static notchAdded: string = \"notchAdded\"\n static deploymentLocationAdded: string = \"deploymentLocationAdded\"\n static levelAdded: string = \"levelAdded\"\n static occupationAdded: string = \"occupationAdded\"\n static positionAdded: string = \"positionAdded\"\n static sbuAdded: string = \"sbuAdded\"\n static staffStatusAdded: string = \"staffStatusAdded\"\n static leavePurposeAdded: string = \"leavePurposeAdded\"\n static loanGuarantorAdded: string = \"loanGuarantorAdded\"\n static hmoHospitalAdded: string = \"hmoHospitalAdded\"\n static hmoBeneficiaryAdded: string = \"hmoBeneficiaryAdded\"\n static titleAdded: string = \"titleAdded\"\n static maritalStatusAdded: string = \"maritalStatusAdded\"\n static stateAdded: string = \"stateAdded\"\n static countryAdded: string = \"countryAdded\"\n static cityAdded: string = \"cityAdded\"\n static branchAdded: string = \"branchAdded\"\n static departmentAdded: string = \"departmentAdded\"\n static departmentUnitAdded: string = \"departmentUnitAdded\"\n static jobDeskAdded: string = \"jobDeskAdded\"\n static educationLevelAdded: string = \"educationLevelAdded\"\n static educationQualificationAdded: string = \"educationQualificationAdded\"\n static qualificationClassAdded: string = \"qualificationClassAdded\"\n static contentTypeAdded: string = \"contentTypeAdded\"\n static townAdded: string = \"townAdded\"\n static accountTypeAdded: string = \"accountTypeAdded\"\n static reasonAdded: string = \"reasonAdded\"\n static frequencyAdded: string = \"frequencyAdded\"\n static narrationAdded: string = \"narrationAdded\"\n static postTypeAdded: string = \"postTypeAdded\"\n static currencyAdded: string = \"currencyAdded\"\n static companyGroupAdded: string = \"companyGroupAdded\"\n static companyProfileAdded: string = \"companyProfileAdded\"\n static paymentTypeAdded: string = \"paymentTypeAdded\"\n static userMasterAdded: string = \"userMasterAdded\"\n static glclass1Added: string = \"glclass1Added\"\n static glclass2Added: string = \"glclass2Added\"\n static glclass3Added: string = \"glclass3Added\"\n static glaccountAdded: string = \"glaccountAdded\"\n static classTypeAdded: string = \"classTypeAdded\"\n static trancodeAdded: string = \"trancodeAdded\"\n static amortiseAdded: string = \"amortiseAdded\"\n static bankAdded: string = \"bankAdded\"\n static bankTypeAdded: string = \"bankTypeAdded\"\n static branchLimitAdded: string = \"branchLimitAdded\"\n static chargeTypeAdded: string = \"chargeTypeAdded\"\n static chargesAdded: string = \"chargesAdded\"\n static roleLimitAdded: string = \"roleLimitAdded\"\n static roleAdded: string = \"roleAdded\"\n static vendorAdded: string = \"vendorAdded\"\n static vendorTypeAdded: string = \"vendorTypeAdded\"\n static disclosureAdded: string = \"disclosureAdded\"\n static depreciationMethodAdded: string = \"depreciationMethodAdded\"\n static currencyControlAdded: string = \"currencyControlAdded\"\n static transactionAdded: string = \"transactionAdded\"\n static staffArrearsAdded: string = \"staffArrearsAdded\"\n static staffLeaveAdded: string = \"staffLeaveAdded\"\n static staffExitAdded: string = \"staffExitAdded\"\n static staffPromotionAdded: string = \"staffPromotionAdded\"\n static staffTransferAdded: string = \"staffTransferAdded\"\n static welfareLocationAdded: string = \"welfareLocationAdded\"\n static exitTypeAdded: string = \"exitTypeAdded\"\n static staffLoanAdded: string = \"staffLoanAdded\"\n static staffCooperativeAdded: string = \"staffCooperativeAdded\"\n static hmoGradeAdded: string = \"hmoGradeAdded\"\n static hmoRegistrationAdded: string = \"hmoRegistrationAdded\"\n static hmoFreezeAdded: string = \"hmoFreezeAdded\"\n static userLimitAdded: string = \"userLimitAdded\"\n static taxAdded: string = \"taxAdded\"\n static hmoCompanyAdded: string = \"hmoCompanyAdded\"\n static userProfileAdded: string = \"userProfileAdded\"\n static hmoPlanAdded: string = \"hmoPlanAdded\"\n\n}\nexport class SmartUtil {\n //Status\n static statuses = [\n { id: 1, name: 'active' },\n { id: 2, name: 'inactive' },\n ];\n\n static users = [\n { id: 1, name: 'admin' },\n { id: 2, name: 'accountant' },\n ];\n\n static getPayType(basis: string): string {\n if (basis?.toLowerCase() == \"a\") {\n return 'Allowance'\n } else if (basis?.toLowerCase() == \"d\") {\n return 'Deduction'\n }\n\n return \"\";\n }\n\n static getCalculationBasis(basis: string): string {\n if (basis?.toLowerCase() == \"f\") {\n return 'Fix'\n } else if (basis?.toLowerCase() == \"r\") {\n return 'Rate'\n }\n\n return \"\";\n }\n\n static replaceNewLine(message: any): string {\n return message.replace(/(?:\\r\\n|\\r|\\n)/g, '
')\n }\n constructor() { }\n static numRegex = /^-?\\d*[.,]?\\d{0,2}$/;\n static appUrl: string = 'http://localhost:4200';\n static modalConfig: { windowClass: 'modal-holder', scrollable: true, backdropClass: 'light-blue-backdrop' }\n\n static getFilenameFromContentDisposition(contentDisposition: string): string {\n\n return contentDisposition.split(';')[1].split('filename')[1].split('=')[1].trim();;\n }\n static formatDate = (dateConvert) => {\n let year = dateConvert.year;\n let month = dateConvert.month;\n let day = dateConvert[\"day\"] !== undefined ? dateConvert.day : 1;\n\n\n if (day < 10)\n day = '0' + day;\n\n if (month < 10)\n month = '0' + month;\n\n let completeDate = `${year}-${month}-${day}`;\n\n return completeDate;\n }\n\n static queryString(key, value) {\n if (value) return `&${key}=${value}`;\n return ''\n }\n\n static formatDateToYYMMDD = (dateConvert, split = '-') => {\n if (!dateConvert) return '';\n let date = dateConvert.split(split)\n\n let day: any = parseInt(date[0], 10)\n let month: any = parseInt(date[1], 10)\n let year = parseInt(date[2], 10)\n\n if (day < 10)\n day = '0' + day;\n\n if (month < 10)\n month = '0' + month;\n\n let completeDate = `${year}-${month}-${day}`;\n\n return completeDate;\n }\n\n static formatDateToDDMMYY = (dateConvert, split = '-') => {\n //alert(dateConvert)\n if (!dateConvert) return '';\n let date = dateConvert.split(split)\n\n let day: any = parseInt(date[0], 10)\n let month: any = parseInt(date[1], 10)\n let year = parseInt(date[2], 10)\n\n if (day < 10)\n day = '0' + day;\n\n if (month < 10)\n month = '0' + month;\n\n let completeDate = `${day}-${month}-${year}`;\n\n return completeDate;\n }\n\n static formatDateDDMMYY = (dateConvert) => {\n //console.log(dateConvert, 'dateconvert')\n let year = dateConvert.year;\n let month = dateConvert.month;\n let day = dateConvert[\"day\"] !== undefined ? dateConvert.day : 1;\n\n\n if (day < 10)\n day = '0' + day;\n\n if (month < 10)\n month = '0' + month;\n\n let completeDate = `${day}-${month}-${year}`;\n\n return completeDate;\n }\n static formatServerDateDDMMYY = (dateConvert) => {\n //console.log(dateConvert, 'server 1')\n if (dateConvert) {\n let regDate = new Date(dateConvert);\n //console.log(regDate, 'server 2')\n return SmartUtil.formatDateDDMMYY({ year: regDate.getFullYear(), month: regDate.getMonth() + 1, day: regDate.getDate() });\n }\n return '';\n }\n\n static formatDateToObject = (dateConvert: Date) => {\n return { year: dateConvert.getFullYear(), month: dateConvert.getMonth() + 1, day: dateConvert.getDate() };\n }\n\n\n\n static formatMoney(money: number) {\n //console.log(money, 'money')\n let cp: CurrencyPipe = new CurrencyPipe(\"en-US\");\n return cp.transform(money, 'NGN', 'symbol-narrow');\n }\n\n static formatMoney2(money: number) {\n //console.log(money, 'money')\n let cp: DecimalPipe = new DecimalPipe(\"en-US\");\n return cp.transform(money, '1.2-2');\n }\n static titleCase(value: string) {\n //console.log(money, 'money')\n let cp: TitleCasePipe = new TitleCasePipe();\n return cp.transform(value);\n }\n static decimalPipe(value: number) {\n //console.log(money, 'money')\n let dp: DecimalPipe = new DecimalPipe(\"en-US\");\n return dp.transform(value, '1.2-2');\n }\n static percentagePipe(value: number) {\n //console.log(money, 'money')\n let dp: PercentPipe = new PercentPipe(\"en-US\");\n return dp.transform(value);\n }\n static formatDate_m_y: string = \"MMM-y\";\n static formatDate_d_m_y: string = \"d-MM-y\";\n static formatDate_d_mm_y: string = \"d-MMM-y\";\n static formatDate_dd_mm_yy: string = \"dd/MM/y\";\n static format_date_time: string = \"d/MM/y, h:mm a\"\n static format_date_time_server: string = \"yyyy-MM-dd h:mm:ss\"\n static formatDate2(inputDate: Date, format: string = null) {\n if (!format)\n format = this.formatDate_d_m_y;\n let dp: DatePipe = new DatePipe(\"en-US\");\n return dp.transform(inputDate, format);\n }\n\n static formatDateTimeServer(inputDate: Date = null, format: string = null) {\n let dp: DatePipe = new DatePipe(\"en-US\");\n\n if (!format)\n format = this.format_date_time_server;\n\n if (inputDate == null)\n return dp.transform((new Date), format);\n\n return dp.transform(inputDate, format);\n }\n\n static getInterestRates() {\n return [\n { id: 1, name: 'Flat Rate' },\n { id: 2, name: 'Reducing Balance' },\n ];\n }\n\n static getInterestMethod(id: number) {\n const result = this.getInterestRates().find((obj) => {\n return obj.id === id;\n });\n return result.name;\n }\n static getFrequency() {\n return [\n { id: 'D', name: 'Daily' },\n { id: 'M', name: 'Monthly' },\n { id: 'Q', name: 'Quarterly' },\n { id: 'Y', name: 'Yearly' },\n { id: 'B', name: 'BI-Anual' },\n ];\n }\n\n static getDisbursedByList() {\n return [\n { id: 1, name: 'Cash' },\n { id: 2, name: 'Cheque' },\n { id: 3, name: 'Online Transfer' }\n ];\n }\n\n\n static getDaysInYearList() {\n const arrList = []\n for (let i = 1; i <= 360; i++) {\n arrList.push({ id: i, name: i });\n }\n return arrList;\n\n }\n\n static getDisbursedByName(id: number) {\n const result = this.getDisbursedByList().find((obj) => {\n return obj.id === id;\n });\n return result.name;\n }\n static getInterestPeriodList() {\n return [\n { id: 'D', name: 'Per Day' },\n { id: 'W', name: 'Per Week' },\n { id: 'M', name: 'Per Month' },\n { id: 'Y', name: 'Per year' },\n ];\n }\n\n static getRepaymentCycle() {\n return [\n { id: 'D', name: 'Daily' },\n // { id: 'D', name: 'Weekly' },\n { id: 'M', name: 'Monthly' },\n //{ id: 'Q', name: 'Quarterly' },\n { id: 'Y', name: 'Yearly' },\n ];\n }\n static getTransType() {\n return [\n { id: 'DR', name: 'Debit' },\n { id: 'CR', name: 'Credit' },\n ];\n }\n\n static getMaritalStatus() {\n return [\n { id: 'S', name: 'Single' },\n { id: 'M', name: 'Married' },\n { id: 'D', name: 'Divorced' },\n\n ];\n }\n\n static getPayrollType() {\n return [\n { id: 'Manual', name: 'Manual' },\n { id: 'Addendum', name: 'Addendum' },\n\n ];\n }\n\n static getBank() {\n return [\n { id: 1, name: 'First Bank' },\n { id: 2, name: 'GTB' },\n { id: 3, name: 'Zenith' },\n { id: 3, name: 'UBA' },\n ];\n }\n\n static getRegion() {\n return [\n { id: '1', name: 'South West' },\n { id: '2', name: 'South East' },\n { id: '3', name: 'South South' },\n { id: '4', name: 'North West' },\n { id: '5', name: 'North East' },\n { id: '6', name: 'North Central' }\n ];\n }\n\n static getHMOPlan() {\n return [\n { id: '1', name: 'Silver Plan' },\n { id: '2', name: 'Bronze Plan' },\n { id: '3', name: 'Gold Plan' },\n { id: '4', name: 'Premium Plan' },\n ];\n }\n\n // Helper Function\n static objectToHttpParams(params: any, data: any, currentPath: string) {\n\n Object.keys(data).forEach(key => {\n if (data[key] instanceof Object) {\n if (currentPath !== '') {\n this.objectToHttpParams(params, data[key], `${currentPath}[${key}]`);\n } else {\n this.objectToHttpParams(params, data[key], `${currentPath}${key}`);\n }\n } else {\n if (currentPath !== '') {\n params[`${currentPath}[${key}]`] = data[key];\n } else {\n params[`${currentPath}${key}`] = data[key];\n }\n }\n });\n }\n\n static getUserInfo() {\n return getLocalStorageByKey(\"UserData\");\n }\n\n}\nexport const saveLocalStorage = (key, data) => {\n const serializedState = JSON.stringify(data);\n localStorage.setItem(key, serializedState);\n}\n\nexport const getLocalStorageByKey = (key) => {\n try {\n const serializedState = localStorage.getItem(key);\n if (serializedState === null) { return undefined }\n return JSON.parse(serializedState);\n } catch (err) {\n return undefined\n }\n}\nexport const deleteLocalStorageByKey = (key) => localStorage.setItem(key, null)\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { empty, pipe, Observable, throwError } from 'rxjs';\nimport { catchError, switchMap, tap } from 'rxjs/operators';\nimport { AlertifyService } from '../all-modules/settings/_services/alertify.service';\nimport { AuthService } from '../login/_services/auth.service';\nimport { Router } from \"@angular/router\";\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport * as alertifyjs from 'alertifyjs'\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HttperrorInterceptorService implements HttpInterceptor {\n\n constructor(\n private alertify: AlertifyService,\n private authService: AuthService,\n private jwtHelper: JwtHelperService,\n private router: Router,\n ) { }\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n console.log(\"HTTP Request Started\");\n\n if(request.url.indexOf(\"login\") > -1 || request.url.indexOf(\"refresh-token\") > -1 ){\n return next.handle(request);\n }\n return next.handle(request).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 401 && this.jwtHelper.isTokenExpired()) {\n const refreshToken = localStorage.getItem('Authentication/refresh-token');\n\n if (refreshToken) {\n return this.authService.refreshToken().pipe(\n switchMap((refreshResponse: any) => {\n // Update the access token in local storage\n\n const newToken = localStorage.getItem('LoginData');\n // Clone the original request and update the authorization header\n const updatedRequest = request.clone({\n setHeaders: {\n Authorization: `Bearer ${refreshResponse.accessToken}`\n // Authorization: `Bearer ${newToken}`,\n }\n });\n\n // Retry the request with the new access token\n return next.handle(updatedRequest);\n }),\n catchError((refreshError) => {\n // Handle refresh token error, possibly log out the user\n // or perform other actions as needed\n return throwError(refreshError);\n })\n );\n }\n }\n\n // If not a refresh token scenario, throw the original error\n return throwError(error);\n })\n );\n }\n }\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { empty, pipe, Observable, throwError } from 'rxjs';\nimport { catchError, switchMap, tap } from 'rxjs/operators';\nimport { AlertifyService } from '../all-modules/settings/_services/alertify.service';\nimport { AuthService } from '../login/_services/auth.service';\nimport { Router } from \"@angular/router\";\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport * as alertifyjs from 'alertifyjs'\n\n@Injectable()\nexport class RefreshTokenInterceptor implements HttpInterceptor {\n\n constructor(\n private alertify: AlertifyService,\n private authService: AuthService,\n private jwtHelper: JwtHelperService,\n private router: Router,\n ) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n\n let token = localStorage.getItem('LoginData');\n\n if (!this.authService.isAuthenticated()) {\n return next.handle(request);\n }\n// return this.authService.refreshToken().pipe(\n// switchMap(() => {\n// request = request.clone({\n// setHeaders: {\n// Authorization: `Bearer ${this.authService.GetToken()}`,\n// },\n// });\n// return next.handle(request);\n// })\n// );\n// }\n// }\n\n let jwttoken = request.clone({\n setHeaders:{\n Authorization: 'bearer ' + token\n }\n })\n return next.handle(jwttoken);\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { SpinnerService } from '../sharing/spinner/spinner.service';\n\n@Injectable()\n\nexport class SpinnerInterceptor implements HttpInterceptor {\n\n constructor(\n private spinnerService: SpinnerService\n ) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n this.spinnerService.show();\n return next.handle(request).pipe(\n finalize(() => {\n this.spinnerService.hide();\n })\n );\n }\n }\n\n\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { User } from 'src/app/models/user';\nimport { BehaviorSubject, Observable, Subject, Subscription, of, pipe, throwError } from 'rxjs';\nimport { catchError, tap, switchMap } from 'rxjs/operators';\nimport { delay } from 'rxjs/operators';\nimport * as alertifyjs from 'alertifyjs'\nimport { TokenService } from './token.service';\n// import { RefreshTokenService } from './refresh-token.service';\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AuthService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v1`;\n\n private accessTokenKey = \"LoginData\";\n private refreshTokenKey = \"refreshtoken\";\n\n private apiUrl = environment.apiBaseURI + \"/Authentication/jwt-token\";\n private refreshTokenUrl = this.baseUrl + \"/Authentication/refresh-token\";\n\n jwtHelper: JwtHelperService;\n tokenresp: any;\n timeout;\n tokenSubscription = new Subscription();\n\n constructor(\n private http: HttpClient,\n private router: Router,\n private tokenService: TokenService\n ) // private jwtHelper: JwtHelperService,\n // private refresh: RefreshTokenService\n {\n this.jwtHelper = new JwtHelperService();\n }\n\n isAuthenticated(): boolean {\n const token = this.GetToken();\n return token && !this.jwtHelper.isTokenExpired(token);\n }\n\n GenerateRefreshToken() {\n const refreshToken = this.GetRefreshToken();\n \n const body = `\"${refreshToken}\"`; \n \n console.log('Request Body:', body);\n \n const headers = new HttpHeaders().set('Content-Type', 'application/json-patch+json');\n \n return this.http.post(this.baseUrl + '/Authentication/refresh-token', body, { headers });\n }\n \n \n \n\n // GenerateRefreshToken() {\n // let input = this.GetRefreshToken();\n // return this.http.post(this.baseUrl + '/Authentication/refresh-token', input);\n // }\n\n GetRefreshToken() {\n return localStorage.getItem(\"refreshtoken\") || \"\";\n }\n\n saveTokens(tokendata: any) {\n localStorage.setItem(\"LoginData\", tokendata.accessToken);\n localStorage.setItem(\"refreshtoken\", tokendata.refreshToken.tokenString);\n }\n\n refreshAccessToken(refreshToken: string): Observable {\n const token = localStorage.getItem('refreshtoken');\n return this.http.post(this.refreshTokenUrl, { token });\n }\n\n refreshToken(): Observable {\n const refreshToken = localStorage.getItem('refreshtoken');\n\n if (!refreshToken) {\n return throwError('Refresh token not available');\n }\n\n return this.GenerateRefreshToken().pipe(\n tap((response: any) => {\n console.log(response);\n localStorage.setItem('LoginData', response.accessToken);\n localStorage.setItem('refreshtoken', response.refreshToken.tokenString);\n localStorage.setItem('username', response.originalUserName);\n localStorage.setItem('UserData', JSON.stringify(response));\n localStorage.setItem('role', response.role);\n localStorage.setItem('expireAt', response.refreshToken.expireAt);\n localStorage.setItem('Company', response.companyId);\n }),\n catchError(error => {\n // Handle refresh error, possibly log out the user\n // or perform other actions as needed\n return throwError(error);\n })\n );\n }\n \n\n public async refreshingTokens(token: string | null): Promise {\n const refreshToken: string | null = localStorage.getItem(\"refreshtoken\");\n\n if (!token || !refreshToken) {\n return false;\n }\n\n const tokenModel = JSON.stringify({ accessToken: token, refreshToken: refreshToken });\n\n let isRefreshSuccess: boolean;\n try {\n\n const response = await this.GenerateRefreshToken();\n const newToken = (response).data.accessToken;\n const newRefreshToken = (response).data.refreshToken;\n localStorage.setItem(\"token\", newToken);\n localStorage.setItem(\"refreshToken\", newRefreshToken);\n //this.notification.showSuccess(\"Token renewed successfully\", \"Success\")\n isRefreshSuccess = true;\n }\n catch (ex) {\n isRefreshSuccess = false;\n }\n return isRefreshSuccess;\n  }\n\n isTokenExpired(): boolean {\n const token = localStorage.getItem(\"LoginData\");\n return this.jwtHelper.isTokenExpired(token);\n }\n\n logout(): void {\n localStorage.removeItem(this.accessTokenKey);\n localStorage.removeItem(this.refreshTokenKey);\n this.router.navigateByUrl(\"/\");\n }\n\n ProceedLogin(formValue: any): Observable {\n return this.http.post(\n `${environment.apiBaseURI}/Authentication/jwt-token`,\n formValue\n );\n }\n\n loginAgain(formValue: any, selectedCompany: string): Observable {\n const token = this.tokenService.getToken();\n const headers = new HttpHeaders().set(\"Authorization\", `bearer ${token}`);\n formValue.companyCode = selectedCompany;\n return this.http.post(\n `${environment.apiBaseURI}/Authentication/jwt-token`,\n formValue,\n { headers }\n );\n }\n\n verifyUser(credentials: {\n username: string;\n password: string;\n companyCode?: string;\n }): Observable {\n return this.http.post(\n `${environment.apiBaseURI}/Authentication/jwt-token`,\n {\n username: credentials.username,\n password: credentials.password,\n companyCode: credentials.companyCode || \"\",\n }\n );\n }\n\n IsLoggedIn() {\n return localStorage.getItem(\"LoginData\") != null;\n }\n\n GetToken() {\n return localStorage.getItem(\"LoginData\") || \"\";\n }\n\n GetRolebyToken() {\n let role = localStorage.getItem(\"role\");\n return role;\n }\n\n resetUser(loginid: string, companyid: number) {\n return this.http.post(\n `${this.baseUrl}/Authentication/resetuser/${loginid}/${companyid}`,\n {}\n );\n }\n resetCompany(companyid: number): Observable {\n let url = `${this.baseUrl}/Authentication/resetusercompany/${companyid}`;\n return this.http.get(url);\n }\n\n resetuserList(companyid: number): Observable {\n let url = `${this.baseUrl}/Authentication/resetuserlist/${companyid}`;\n return this.http.get(url);\n }\n\n getAllCompany(status: string = null, pageNo, pageLength): Observable {\n let url = `${this.baseUrl}/Authentication/multicompany`;\n\n const params = {};\n\n params[`status`] = status;\n if (pageNo) params[`pageNo`] = pageNo;\n if (pageLength) params[`pageLength`] = pageLength;\n\n return this.http.get(url, { params: params });\n }\n\n getAllUser(status: string = null, pageNo, pageLength): Observable {\n let url = `${this.baseUrl}/UserProfile`;\n\n const params = {};\n\n params[`status`] = status;\n if (pageNo) params[`pageNo`] = pageNo;\n if (pageLength) params[`pageLength`] = pageLength;\n\n return this.http.get(url, { params: params });\n }\n\n getAllUsers(status: string = null, pageNo, pageLength): Observable {\n let url = `${this.baseUrl}/UserProfile/AllUserList`;\n\n const params = {};\n\n params[`status`] = status;\n if (pageNo) params[`pageNo`] = pageNo;\n if (pageLength) params[`pageLength`] = pageLength;\n\n return this.http.get(url, { params: params });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenService {\n\n private loginDataKey = 'LoginData';\n private refreshTokenKey = 'refreshtoken';\n private companyKey = 'Company';\n private companyLogoKey = 'companylogo';\n private usernameKey = 'username';\n private roleKey = 'role';\n private userDataKey = 'UserData';\n private multiCompanyAccessKey = 'multicompanyaccess';\n\n getToken(): string | null {\n return localStorage.getItem(this.loginDataKey);\n }\n\n saveLoginData(respData: any): void {\n localStorage.setItem(this.loginDataKey, respData.accessToken);\n localStorage.setItem(this.refreshTokenKey, respData.refreshToken.tokenString);\n localStorage.setItem(this.companyKey, respData.companyId);\n localStorage.setItem(this.companyLogoKey, respData.companylogo);\n localStorage.setItem(this.usernameKey, respData.originalUserName);\n localStorage.setItem(this.roleKey, respData.role);\n localStorage.setItem(this.userDataKey, JSON.stringify(respData));\n localStorage.setItem(this.multiCompanyAccessKey, respData.multicompanyAccess);\n\n // localStorage.setItem('LoginData', respData.accessToken);\n // localStorage.setItem('refreshtoken', respData.refreshToken.tokenString);\n // localStorage.setItem('username', respData.originalUserName);\n // localStorage.setItem('UserData', JSON.stringify(respData));\n // localStorage.setItem('role', respData.role);\n // localStorage.setItem('expireAt', respData.refreshToken.expireAt);\n // localStorage.setItem('Company', respData.companyId);\n\n\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-page-notfound',\n templateUrl: './page-notfound.component.html',\n styleUrls: ['./page-notfound.component.css']\n})\nexport class PageNotfoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private baseUrl = `${environment.apiBaseURIHrm}/v4`;\n\n constructor(private http: HttpClient) { }\n\n\n // Method to send a POST request\n postEnrollmentAcademic(academicData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n staff_acsademic: academicData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentAcademic`, body, { headers });\n\n }\n\n postEnrollmentChildren(childrenData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n staffchildren: childrenData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentChidren`, body, { headers });\n\n }\n\n postEnrollmentProfession(professionData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n staff_professional: professionData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentProfession`, body, { headers });\n\n }\n\n postEnrollmentReferee(refereeData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n refreedata: refereeData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentReferee`, body, { headers });\n\n }\n\n\n postEnrollmentWork(workData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n staff_WorkExperience: workData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentWorkExpereience`, body, { headers });\n }\n\n postEnrollmentCV(cvData: any): Observable {\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = {\n staffs: cvData,\n };\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentStaffCV`, body, { headers });\n\n }\n\n postEmployeeBio(employeeBioData: any): Observable {\n // const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\n const body = employeeBioData;\n\n return this.http.post(`${this.baseUrl}/Enrollment/EnrollmentEmployeeBio`, body, { });\n\n }\n\n checkBiodata(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentEmployeeBioEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n checkBiodataExist(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentEmployeeBioIDexists?EmployeeId=${EmployeeId}`);\n }\n\n checkAcademic(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentAllacademicByEmployeeid?EmployeeId=${EmployeeId}`);\n }\n\n checkChildren(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentChildrenByEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n checkCv(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentStaffCVByEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n checkProfession(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentProfessionByEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n checkReferee(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentRefereeEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n checkWorkExperience(EmployeeId: string): Observable {\n return this.http.get(`${this.baseUrl}/Enrollment/EnrollmentWorkExpereienceByEmployeeId?EmployeeId=${EmployeeId}`);\n }\n\n getCountryAll(status: string = null, PageNumber, PageSize): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllCountry`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n getStateAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllStates`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getAllBanks(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllBank`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getTitleAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllTitle`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getStaffTypeAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllStaffType`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getGradeAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllLevel`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getNotchAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllNotch`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getBranchAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllBranch`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getDepartmentAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllDepartment`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getDepartmentUnitAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllDepartmentUnit`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getEducationLevelAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllEdLevel`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getEducationQualificationAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllEdQualification`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n getEducationQualificationClassAll(status: string = null, PageNumber, PageSize, employeeId: string): Observable {\n let url = `${this.baseUrl}/Enrollment/EnrollmentGetAllEdClassQualification`;\n\n const params = {};\n params[`status`] = status;\n if (PageNumber)\n params[`PageNumber`] = PageNumber;\n if (PageSize)\n params[`pageSize`] = PageSize;\n if (employeeId)\n params[`employeeId`] = employeeId;\n\n return this.http.get(url, { params: params });\n }\n\n patchEmployeeBio(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentEmployeeBioUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchChildren(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentChildrenUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchAcademic(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentAllacademicUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchWork(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentStaffWorkExperienceUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchProfession(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentProfessionalAssociationUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchReferee(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentStaffRefereeDataUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n\n patchCv(id: string, updateData: any[]): Observable {\n const url = `${this.baseUrl}/Enrollment/EnrollmentCVUpdate/${id}`;\n return this.http.patch(url, updateData);\n }\n}\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ApiService } from \"../../core/api.service\";\nimport { Router } from \"@angular/router\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { DatePipe } from \"@angular/common\";\n\n@Component({\n selector: 'app-edit-page',\n templateUrl: './edit-page.component.html',\n styleUrls: ['./edit-page.component.css']\n})\nexport class EditPageComponent implements OnInit {\n\n isEditMode: boolean = false;\n\n employee: string | null = null;\n countryList: any;\n stateList: any;\n titleList: any;\n staffTypeList: any;\n gradeList: any;\n notchList: any;\n branchList: any;\n jobDeskList: any;\n positionList: any;\n educationLevelList: any;\n educationQualificationList: any;\n qualificationClassList: any;\n contentTypeList: any;\n bankList: any;\n departmentList: any;\n departmentUnitList: any;\n maritalStatusList: any;\n\n defaultImage: string = \"src/assets/img/user2.png\";\n public pipe = new DatePipe(\"en-US\");\n\n passportImage: string | ArrayBuffer | null = \"\";\n spousePassportImage: string | ArrayBuffer | null = \"\";\n\n spousePassportBase64: string | null = null;\n passportBase64: string | null = null;\n\n @ViewChild(\"form\") form!: NgForm;\n\n academicRecords = [\n {\n institutionName: \"\",\n courseOfStudy: \"\",\n employeeId: \"\",\n educationLevel: 0,\n qualificationObtained: 0,\n classOfQualification: 0,\n address: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n workRecords = [\n {\n employeeId: \"\",\n companyName: \"\",\n position: \"\",\n jobDescription: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n professionRecords = [\n {\n employeeId: \"\",\n professionalAssociation: \"\",\n certificationObtained: \"\",\n membershipStatus: \"\",\n dateObtained: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n refereeRecords = [\n {\n ref_EmployeeId: \"\",\n ref_Title: \"\",\n ref_LastName: \"\",\n ref_FirstName: \"\",\n ref_MiddleName: \"\",\n ref_ContactAddress: \"\",\n ref_CountryId: \"\",\n ref_StateId: \"\",\n ref_City: \"\",\n ref_Email: \"\",\n ref_MobilePhone: \"\",\n ref_HomePhone: \"\",\n ref_WorkPhone: \"\",\n ref_Relationship: \"\",\n ref_CompanyName: \"\",\n ref_Position: \"\",\n ref_CompanyId: 0,\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n childrenRecords = [\n {\n employeeId: \"\",\n fullName: \"\",\n dob: \"\",\n passport: \"\",\n passportImage: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n cvRecords = [\n {\n employeeId: \"\",\n cvFileName: \"\",\n cvContent: \"\",\n fileSize: \"\",\n contentType: \"\",\n fileExtension: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n data: any;\n companyList: any;\n companyList2: any;\n\n constructor(\n private apiService: ApiService,\n private router: Router,\n private alertify: AlertifyService\n ) {}\n\n ngOnInit() {\n this.employee = sessionStorage.getItem(\"employeeId\");\n const employeeId = sessionStorage.getItem(\"employeeId\");\n\n if (employeeId) {\n this.isEditMode = this.router.url.includes(\"edit-page\");\n\n if (this.isEditMode) {\n this.loadExistingData(employeeId);\n }\n } else {\n this.alertify.error(\"Employee ID not found.\");\n this.router.navigate([\"/\"]);\n }\n this.bindCombo();\n this.loadData();\n }\n\n loadData(): void {\n const employeeId = sessionStorage.getItem('employeeId'); // Or however you get the employeeId\n\n if (employeeId) {\n this.apiService.checkChildren(employeeId).subscribe(data => {\n console.log(data);\n this.populateForm(data);\n\n });\n }\n }\n\n populateForm(data: any): void {\n // Assuming your form is named #combinedForm in the HTML template\n const form = document.querySelector('form') as HTMLFormElement;\n\n if (form) {\n const elements = form.elements;\n\n // Populate form controls by name or id\n elements['fullName'].value = data.fullName;\n elements['dob'].value = data.dob;\n // Repeat for other form controls\n }\n }\n\n bindCombo() {\n this.apiService\n .getAllBanks(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.bankList = res.responseData;\n console.log(this.bankList, \"me\");\n });\n\n this.apiService\n .getTitleAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.titleList = res.responseData;\n console.log(this.titleList, \"titleList\");\n });\n\n this.apiService.getCountryAll(\"Active\", 1, 200).subscribe((res) => {\n this.countryList = res.responseData;\n console.log(this.countryList, \"countyList\");\n });\n\n this.apiService\n .getStateAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.stateList = res.responseData;\n });\n\n this.apiService\n .getStaffTypeAll(\"Active\", 1, 100, this.employee)\n .subscribe((res) => {\n this.staffTypeList = res.responseData;\n });\n this.apiService\n .getGradeAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.gradeList = res.responseData;\n });\n this.apiService\n .getNotchAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.notchList = res.responseData;\n console.log(this.notchList, \"notchList\");\n });\n this.apiService\n .getBranchAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.branchList = res.responseData;\n });\n this.apiService\n .getDepartmentAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.departmentList = res.responseData;\n console.log(this.departmentList, \"departmentList\");\n });\n this.apiService\n .getDepartmentUnitAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.departmentUnitList = res.responseData;\n console.log(this.departmentUnitList, \"departmentUnitList\");\n });\n\n this.apiService\n .getEducationLevelAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.educationLevelList = res.responseData;\n console.log(this.educationLevelList, \"me\");\n });\n this.apiService\n .getEducationQualificationAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.educationQualificationList = res.responseData;\n console.log(this.educationQualificationList, \"me\");\n });\n this.apiService\n .getEducationQualificationClassAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.qualificationClassList = res.responseData;\n console.log(this.qualificationClassList, \"me\");\n });\n\n this.maritalStatusList = SmartUtil.getMaritalStatus();\n }\n\n addAcademicRecord() {\n this.academicRecords.push({\n institutionName: \"\",\n courseOfStudy: \"\",\n employeeId: \"\",\n educationLevel: 0,\n qualificationObtained: 0,\n classOfQualification: 0,\n address: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addWorkRecord() {\n this.workRecords.push({\n employeeId: \"\",\n companyName: \"\",\n position: \"\",\n jobDescription: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addProfessionRecord() {\n this.professionRecords.push({\n employeeId: \"\",\n professionalAssociation: \"\",\n certificationObtained: \"\",\n membershipStatus: \"\",\n dateObtained: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addRefereeRecord() {\n this.refereeRecords.push({\n ref_EmployeeId: \"\",\n ref_Title: \"\",\n ref_LastName: \"\",\n ref_FirstName: \"\",\n ref_MiddleName: \"\",\n ref_ContactAddress: \"\",\n ref_CountryId: \"\",\n ref_StateId: \"\",\n ref_City: \"\",\n ref_Email: \"\",\n ref_MobilePhone: \"\",\n ref_HomePhone: \"\",\n ref_WorkPhone: \"\",\n ref_Relationship: \"\",\n ref_CompanyName: \"\",\n ref_Position: \"\",\n ref_CompanyId: 0,\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addChildrenRecord() {\n this.childrenRecords.push({\n employeeId: \"\",\n fullName: \"\",\n dob: \"\",\n passport: \"\",\n passportImage: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addCvRecord() {\n this.cvRecords.push({\n employeeId: \"\",\n cvFileName: \"\",\n cvContent: \"\",\n fileSize: \"\",\n contentType: \"\",\n fileExtension: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n // Handle combined form submission\n onSubmitCombinedForm(form: NgForm) {\n if (!form.valid) {\n const invalidControls = [];\n\n for (const controlName in form.controls) {\n if (form.controls.hasOwnProperty(controlName)) {\n const control = form.controls[controlName];\n if (control.invalid) {\n invalidControls.push(controlName);\n }\n }\n }\n\n if (invalidControls.length > 0) {\n const alertMessage = `Please fill in the following required fields: ' ${invalidControls.join(\n \", \"\n )}`;\n this.alertify.alert(\"Validation Errors\", alertMessage);\n // this.alertify.warning('Please fill in the following required fields: ' + invalidControls.join(', '));\n }\n return;\n }\n\n const employeeId = sessionStorage.getItem(\"employeeId\");\n const companyId = sessionStorage.getItem(\"companyId\");\n console.log(companyId);\n console.log(employeeId);\n const status = sessionStorage.getItem(\"status\");\n\n if (employeeId) {\n const academicData = this.academicRecords.map((academic) => ({\n employeeId: employeeId,\n institutionName: academic.institutionName,\n courseOfStudy: academic.courseOfStudy,\n educationLevel: academic.educationLevel || 0,\n qualificationObtained: academic.qualificationObtained || 0,\n classOfQualification: academic.classOfQualification || 0,\n address: academic.address,\n startDate: academic.startDate,\n endDate: academic.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const workData = this.workRecords.map((work) => ({\n employeeId: employeeId,\n companyName: work.companyName,\n position: work.position,\n jobDescription: work.jobDescription,\n startDate: work.startDate,\n endDate: work.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const professionData = this.professionRecords.map((profession) => ({\n employeeId: employeeId,\n professionalAssociation: profession.professionalAssociation,\n certificationObtained: profession.certificationObtained,\n membershipStatus: profession.membershipStatus,\n dateObtained: profession.dateObtained,\n startDate: profession.startDate,\n endDate: profession.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const refereeData = this.refereeRecords.map((referee) => ({\n ref_EmployeeId: employeeId,\n ref_Title: referee.ref_Title,\n ref_LastName: referee.ref_LastName,\n ref_FirstName: referee.ref_FirstName,\n ref_MiddleName: referee.ref_MiddleName,\n ref_ContactAddress: referee.ref_ContactAddress,\n ref_CountryId: referee.ref_CountryId,\n ref_StateId: referee.ref_StateId,\n ref_City: referee.ref_City,\n ref_Email: referee.ref_Email,\n ref_MobilePhone: referee.ref_MobilePhone,\n ref_HomePhone: referee.ref_HomePhone,\n ref_WorkPhone: referee.ref_WorkPhone,\n ref_Relationship: referee.ref_Relationship,\n ref_CompanyName: referee.ref_CompanyName,\n ref_Position: referee.ref_Position,\n ref_CompanyId: companyId,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const childrenData = this.childrenRecords.map((children) => ({\n employeeId: employeeId,\n fullName: children.fullName,\n dob: children.dob,\n passport: children.passport,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const cvData = this.cvRecords.map((cv) => ({\n employeeId: employeeId,\n cvFileName: cv.cvFileName,\n cvContent: cv.cvContent,\n fileSize: cv.fileSize,\n contentType: cv.contentType,\n fileExtension: cv.fileExtension,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const employeeBioData = {\n employeeId: employeeId,\n lastName: form.value.lastName,\n firstName: form.value.firstName,\n middleName: form.value.middleName,\n gender: form.value.gender,\n dob: form.value.dob,\n placeOfBirth: form.value.placeOfBirth,\n nationality: form.value.nationality || 0,\n stateOrigin: form.value.stateOrigin || 0,\n localGovtOrigin: form.value.localGovtOrigin,\n marital_Status: form.value.marital_Status || 0,\n spouseFullName: form.value.spouseFullName,\n spouseDOB: form.value.spouseDOB,\n contactAddress: form.value.contactAddress,\n countryId: form.value.countryId || 0,\n stateId: form.value.stateId || 0,\n city: form.value.city,\n email: form.value.email,\n staffTypeCode: form.value.staffTypeCode || 0,\n levelCode: form.value.levelCode || 0,\n notchCode: form.value.notchCode || 0,\n branchId: form.value.branchId || 0,\n departmentId: form.value.departmentId || 0,\n unitId: form.value.unitId || 0,\n jobDeskId: form.value.jobDeskId || 0,\n dateOfEmployment: SmartUtil.formatDateTimeServer(),\n resumptionDate: form.value.resumptionDate,\n comfirmedDate: form.value.comfirmedDate,\n officeExtension: form.value.officeExtension,\n mobilePhone: form.value.mobilePhone,\n homePhone: form.value.homePhone,\n workPhone: form.value.workPhone,\n hmoCode: form.value.hmoCode,\n hmoEnabled: form.value.hmoEnabled,\n accountNo: form.value.accountNo,\n includePayroll: form.value.includePayroll,\n bvn: form.value.bvn,\n pfaCode: \"string\",\n kin_Title: 0,\n kin_LastName: form.value.kin_LastName,\n kin_FirstName: form.value.kin_FirstName,\n kin_MiddleName: form.value.kin_MiddleName,\n kin_ContactAddress: form.value.kin_ContactAddress,\n kin_Country: form.value.kin_Country || 0,\n kin_State: form.value.kin_State || 0,\n kin_City: form.value.kin_City,\n kin_Email: form.value.kin_Email,\n kin_MobilePhone: form.value.kin_MobilePhone,\n kin_WorkPhone: form.value.kin_WorkPhone,\n kin_Relationship: form.value.kin_Relationship,\n title: 0,\n passport: this.passportBase64,\n spousePassport: this.spousePassportBase64,\n complexion: \"black\",\n basicSalary: 0,\n designation: 0,\n isComfirmed: true,\n staffTypeDetail_Code: \"string\",\n comfirmedUserId: \"string\",\n noOfDays: 0,\n leaveBalance: form.value.leaveBalance,\n sectionCode: form.value.sectionCode,\n serviceAgeRetired: form.value.serviceAgeRetired,\n serviceAgeNow: form.value.serviceAgeNow,\n bankid: 0,\n planCode: \"string\",\n cvPath: \"string\",\n nyscCompleted: true,\n nsitf: \"\",\n itf: \"\",\n fullName: \"\",\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n };\n // new Date().toISOString(),\n // The rest of your API calls go here...\n this.apiService.checkAcademic(employeeId).subscribe(\n (academicResponse) => {\n if (\n academicResponse.isSuccess &&\n academicResponse.recordLength === 0 &&\n academicResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentAcademic(academicData).subscribe(\n (academicPostResponse) => {\n console.log(\n \"Academic Data POST Response:\",\n academicPostResponse\n );\n this.alertify.success(\"Employee academic record posted Successfully.\");\n },\n (academicPostError) => {\n console.error(\"Academic Data POST Error:\", academicPostError);\n this.alertify.error(\"Employee academic record not added.\");\n }\n );\n } else {\n console.log(\"Academic records already exist.\");\n this.alertify.error(\"Academic records already exist.\");\n }\n },\n (academicError) => {\n console.error(\"Error checking academic records:\", academicError);\n this.alertify.error(\"Error checking academic records.\");\n }\n );\n\n this.apiService.checkChildren(employeeId).subscribe(\n (childrenResponse) => {\n if (\n childrenResponse.isSuccess &&\n childrenResponse.recordLength === 0 &&\n childrenResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentChildren(childrenData).subscribe(\n (childrenPostResponse) => {\n console.log(this.childrenRecords);\n console.log(\n \"Children Data POST Response:\",\n childrenPostResponse\n );\n this.alertify.success(\"Employee children record posted Successfully.\");\n },\n (childrenPostError) => {\n console.error(\"Children Data POST Error:\", childrenPostError);\n this.alertify.error(\"Employee children record not added.\");\n }\n );\n } else {\n console.log(\"Children records already exist.\");\n this.alertify.error(\"Children records already exist.\");\n }\n },\n (childrenError) => {\n console.error(\"Error checking children records:\", childrenError);\n this.alertify.error(\"Error checking children records.\");\n }\n );\n\n this.apiService.checkProfession(employeeId).subscribe(\n (professionResponse) => {\n if (\n professionResponse.isSuccess &&\n professionResponse.recordLength === 0 &&\n professionResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentProfession(professionData).subscribe(\n (professionPostResponse) => {\n console.log(\n \"Profession Data POST Response:\",\n professionPostResponse\n );\n this.alertify.success(\"Professional Association posted Successfully.\");\n },\n (professionPostError) => {\n console.error(\n \"Profession Data POST Error:\",\n professionPostError\n );\n this.alertify.error(\"Professional Accociation record not added.\");\n }\n );\n } else {\n console.log(\"Profession records already exist.\");\n this.alertify.error(\"Profession records already exist.\");\n }\n },\n (professionError) => {\n console.error(\"Error checking profession records:\", professionError);\n this.alertify.error(\"Error checking profession records.\");\n }\n );\n\n this.apiService.checkReferee(employeeId).subscribe(\n (refereeResponse) => {\n if (\n refereeResponse.isSuccess &&\n refereeResponse.recordLength === 0 &&\n refereeResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentReferee(refereeData).subscribe(\n (refereePostResponse) => {\n console.log(\"Referee Data POST Response:\", refereePostResponse);\n this.alertify.success(\"Referee records posted Successfully.\");\n },\n (refereePostError) => {\n console.error(\"Referee Data POST Error:\", refereePostError);\n this.alertify.error(\"Referee records not added.\");\n }\n );\n } else {\n console.log(\"Referee records already exist.\");\n this.alertify.error(\"Referee records already exist.\");\n }\n },\n (refereeError) => {\n console.error(\"Error checking referee records:\", refereeError);\n this.alertify.error(\"Error checking referee records.\");\n }\n );\n\n this.apiService.checkWorkExperience(employeeId).subscribe(\n (workExpResponse) => {\n if (\n workExpResponse.isSuccess &&\n workExpResponse.recordLength === 0 &&\n workExpResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentWork(workData).subscribe(\n (workPostResponse) => {\n console.log(\n \"Work Experience Data POST Response:\",\n workPostResponse\n );\n this.alertify.success(\"Employee work experience posted Successfully.\");\n },\n (workPostError) => {\n console.error(\n \"Work Experience Data POST Error:\",\n workPostError\n );\n this.alertify.error(\"Employee work experience record not added.\");\n }\n );\n } else {\n console.log(\"Work experience records already exist.\");\n this.alertify.error(\"Work experience records already exist.\");\n }\n },\n (workExpError) => {\n console.error(\n \"Error checking work experience records:\",\n workExpError\n );\n this.alertify.error(\"Error checking work experience records.\");\n }\n );\n\n this.apiService.checkCv(employeeId).subscribe(\n (cvResponse) => {\n if (\n cvResponse.isSuccess &&\n cvResponse.recordLength === 0 &&\n cvResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentCV(cvData).subscribe(\n (cvPostResponse) => {\n console.log(\"CV Data POST Response:\", cvPostResponse);\n this.alertify.success(\"Employee CV posted Successfully.\");\n },\n (cvPostError) => {\n console.error(\"CV Data POST Error:\", cvPostError);\n this.alertify.error(\"Employee CV record not added.\");\n }\n );\n } else {\n console.log(\"CV records already exist.\");\n this.alertify.error(\"CV records already exist.\");\n }\n },\n (cvError) => {\n console.error(\"Error checking cv records:\", cvError);\n this.alertify.error(\"Error checking cv records.\");\n }\n );\n\n this.apiService.checkBiodata(employeeId).subscribe(\n (bioDataResponse) => {\n if (\n bioDataResponse.isSuccess &&\n bioDataResponse.recordLength === 0 &&\n bioDataResponse.responseData.length === 0\n ) {\n this.apiService.postEmployeeBio(employeeBioData).subscribe(\n (bioPostResponse) => {\n console.log(\"Employee Bio POST Response:\", bioPostResponse);\n this.alertify.success(\"Employee biodata posted Successfully.\");\n },\n (bioPostError) => {\n console.error(\"Employee Bio POST Error:\", bioPostError);\n this.alertify.error(\"Employee biodata record not added.\");\n }\n );\n } else {\n console.log(\"Employee biodata already exists.\");\n this.alertify.error(\"Employee biodata already exists.\");\n }\n },\n (bioDataError) => {\n console.error(\"Error checking employee biodata:\", bioDataError);\n this.alertify.error(\"Error checking employee biodata.\");\n }\n );\n this.router.navigate([\"/self-enrollment/edit-page\"]);\n } else {\n console.error(\"Employee ID not found.\");\n this.alertify.error(\"Employee ID not found.\");\n this.router.navigate([\"/\"]);\n }\n }\n\n // Function to get the names of invalid controls\n private getInvalidControls(form: NgForm): string[] {\n const invalidControls: string[] = [];\n\n for (const key in form.controls) {\n if (form.controls.hasOwnProperty(key) && form.controls[key].invalid) {\n invalidControls.push(key);\n }\n }\n\n return invalidControls;\n }\n\n onChildrenChange(event: Event, index: number): void {\n const file = (event.target as HTMLInputElement).files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = () => {\n this.childrenRecords[index].passportImage = reader.result as string;\n this.childrenRecords[index].passport = reader.result as string; // Store the base64 string\n };\n reader.readAsDataURL(file);\n }\n }\n\n // onChildrenChange(event: Event, index: number): void {\n // const file = (event.target as HTMLInputElement).files?.[0];\n // if (file) {\n // const reader = new FileReader();\n // reader.onload = () => {\n // this.childrenRecords[index].passportImage = reader.result as string;\n // this.childrenRecords[index].passport = file.name; // Optional: save file name or other metadata\n // };\n // reader.readAsDataURL(file);\n // }\n // }\n\n // onFileChange(event: any, imageType: string) {\n // const file = event.target.files[0];\n // if (file) {\n // const reader = new FileReader();\n // reader.onload = (e: any) => {\n // const base64String = e.target.result.split(',')[1];\n // if (imageType === 'spousePassport') {\n // this.spousePassportBase64 = base64String;\n // } else if (imageType === 'passport') {\n // this.passportBase64 = base64String;\n // }\n // };\n // reader.readAsDataURL(file);\n // }\n // }\n\n onFileChange(event: any, field: string): void {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = () => {\n const base64Image = reader.result;\n\n if (field === \"passport\") {\n this.passportImage = base64Image;\n } else if (field === \"spousePassport\") {\n this.spousePassportImage = base64Image;\n }\n\n // Add any additional logic you need for file handling here\n // For example, uploading the image to the server, or processing the file data\n };\n reader.readAsDataURL(file);\n }\n }\n\n onFileSelect(event: any, index: number) {\n const file = event.target.files[0];\n if (file) {\n this.cvRecords[index].cvFileName = file.name;\n\n const reader = new FileReader();\n\n reader.onload = (e: any) => {\n this.cvRecords[index].cvContent = e.target.result;\n this.cvRecords[index].fileSize = file.size + \" bytes\";\n this.cvRecords[index].contentType = file.type;\n this.cvRecords[index].fileExtension = file.name.split(\".\").pop();\n };\n\n reader.readAsDataURL(file);\n }\n }\n\n isAcademicRecordValid(academic: any): boolean {\n return (\n academic.institutionName &&\n academic.address &&\n academic.courseOfStudy &&\n academic.qualificationObtained &&\n academic.classOfQualification &&\n academic.startDate &&\n academic.endDate\n );\n }\n\n isWorkRecordValid(work: any): boolean {\n return (\n work.companyName &&\n work.position &&\n work.jobDescription &&\n work.startDate &&\n work.endDate\n );\n }\n\n isProfessionRecordValid(profession: any): boolean {\n return (\n profession.professionalAssociation &&\n profession.certificationObtained &&\n profession.membershipStatus &&\n profession.dateObtained\n );\n }\n\n isRefereeRecordValid(referee: any): boolean {\n return (\n referee.ref_Title &&\n referee.ref_LastName &&\n referee.ref_FirstName &&\n referee.ref_MiddleName &&\n referee.ref_ContactAddress &&\n referee.ref_CountryId &&\n referee.ref_StateId &&\n referee.ref_City &&\n referee.ref_Email &&\n referee.ref_MobilePhone &&\n referee.ref_HomePhone &&\n referee.ref_WorkPhone &&\n referee.ref_Relationship &&\n referee.ref_CompanyName &&\n referee.ref_Position\n );\n }\n\n isChildrenRecordValid(children: any): boolean {\n return children.fullName && children.dob && children.passport;\n }\n\n isCvRecordValid(cv: any): boolean {\n return cv.cvFileName;\n }\n\n // isBiodataRecordValid(biodata: any): boolean {\n // return (\n // biodata.lastName &&\n // biodata.address &&\n // biodata.courseOfStudy &&\n // biodata.educationLevel &&\n // biodata.qualificationObtained &&\n // biodata.classOfQualification &&\n // biodata.startDate &&\n // biodata.endDate\n // );\n // }\n\n loadExistingData(employeeId: string) {\n // Load existing children records\n this.apiService.checkChildren(employeeId).subscribe(\n childrenResponse => {\n if (childrenResponse.isSuccess && childrenResponse.recordLength > 0 && childrenResponse.responseData.length > 0) {\n this.childrenRecords = childrenResponse.responseData;\n // this.populateChildrenForm();\n }\n },\n error => {\n this.alertify.error(\"Error loading children records.\");\n }\n );\n\n // Load existing biodata\n this.apiService.checkBiodata(employeeId).subscribe(\n biodataResponse => {\n if (biodataResponse.isSuccess && biodataResponse.recordLength > 0 && biodataResponse.responseData.length > 0) {\n this.populateBiodataForm(biodataResponse.responseData[0]);\n }\n },\n error => {\n this.alertify.error(\"Error loading biodata.\");\n }\n );\n }\n\n populateBiodataForm(biodata: any) {\n this.form.form.patchValue({\n lastName: biodata.lastName,\n firstName: biodata.firstName,\n middleName: biodata.middleName,\n // Add other form fields here...\n });\n\n // Mark each control as pristine\n Object.keys(this.form.controls).forEach(controlName => {\n this.form.controls[controlName].markAsPristine();\n });\n }\n\n private markChildrenControlsAsPristine(form: NgForm) {\n if (this.childrenRecords && this.childrenRecords.length) {\n this.childrenRecords.forEach((childRecord, index) => {\n const childFormControl = form.controls[`children_${index}`];\n if (childFormControl) {\n childFormControl.markAsPristine();\n childFormControl.markAsUntouched();\n }\n });\n }\n }\n\n // populateChildrenFormControls() {\n // this.childrenRecords.forEach((child, index) => {\n // this.form.controls[`fullName${index}`].setValue(child.fullName);\n // this.form.controls[`dob${index}`].setValue(child.dob);\n // this.form.controls[`passport${index}`].setValue(child.passport);\n // });\n // }\n\n // populateBiodataFormControls(biodata: any) {\n // this.form.controls['lastName'].setValue(biodata.lastName);\n // this.form.controls['firstName'].setValue(biodata.firstName);\n // this.form.controls['middleName'].setValue(biodata.middleName);\n // this.form.controls['gender'].setValue(biodata.gender);\n // this.form.controls['dob'].setValue(biodata.dob);\n // this.form.controls['placeOfBirth'].setValue(biodata.placeOfBirth);\n // this.form.controls['nationality'].setValue(biodata.nationality);\n // this.form.controls['stateOrigin'].setValue(biodata.stateOrigin);\n\n // this.form.markAsPristine();\n // }\n\n\n}\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ApiService } from \"../../core/api.service\";\nimport { Router } from \"@angular/router\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { NgForm } from \"@angular/forms\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { DatePipe } from \"@angular/common\";\n\n@Component({\n selector: \"app-enrollment-form\",\n templateUrl: \"./enrollment-form.component.html\",\n styleUrls: [\"./enrollment-form.component.css\"],\n})\nexport class EnrollmentFormComponent implements OnInit {\n isEditMode: boolean = false;\n\n employee: string | null = null;\n countryList: any;\n stateList: any;\n titleList: any;\n staffTypeList: any;\n gradeList: any;\n notchList: any;\n branchList: any;\n jobDeskList: any;\n positionList: any;\n educationLevelList: any;\n educationQualificationList: any;\n qualificationClassList: any;\n contentTypeList: any;\n bankList: any;\n departmentList: any;\n departmentUnitList: any;\n maritalStatusList: any;\n\n defaultImage: string = \"src/assets/img/user2.png\";\n defaultBase64Image: string =\n \"data:image/jpeg;base64,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\";\n\n public pipe = new DatePipe(\"en-US\");\n\n passportImage: string | ArrayBuffer | null = \"\";\n spousePassportImage: string | ArrayBuffer | null = \"\";\n\n spousePassportBase64: string | null = null;\n passportBase64: string | null = null;\n\n @ViewChild(\"form\") form!: NgForm;\n\n academicRecords = [\n {\n institutionName: \"\",\n courseOfStudy: \"\",\n employeeId: \"\",\n educationLevel: 0,\n qualificationObtained: 0,\n classOfQualification: 0,\n address: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n workRecords = [\n {\n employeeId: \"\",\n companyName: \"\",\n position: \"\",\n jobDescription: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n professionRecords = [\n {\n employeeId: \"\",\n professionalAssociation: \"\",\n certificationObtained: \"\",\n membershipStatus: \"\",\n dateObtained: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n refereeRecords = [\n {\n ref_EmployeeId: \"\",\n ref_Title: \"\",\n ref_LastName: \"\",\n ref_FirstName: \"\",\n ref_MiddleName: \"\",\n ref_ContactAddress: \"\",\n ref_CountryId: \"\",\n ref_StateId: \"\",\n ref_City: \"\",\n ref_Email: \"\",\n ref_MobilePhone: \"\",\n ref_HomePhone: \"\",\n ref_WorkPhone: \"\",\n ref_Relationship: \"\",\n ref_CompanyName: \"\",\n ref_Position: \"\",\n ref_CompanyId: 0,\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n childrenRecords = [\n {\n employeeId: \"\",\n fullName: \"\",\n dob: \"\",\n passport: \"\",\n passportImage: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n },\n ];\n\n cvRecords = [\n {\n employeeId: \"\",\n cvFileName: \"\",\n cvContent: \"\",\n fileSize: \"\",\n contentType: \"\",\n fileExtension: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n approvedBy: \"\",\n modifiedBy: \"\",\n rejectedBy: \"\",\n approvedDate: \"\",\n rejectionDate: \"\",\n modifiedDate: \"\",\n },\n ];\n\n data: any;\n companyList: any;\n companyList2: any;\n\n constructor(\n private apiService: ApiService,\n private router: Router,\n private alertify: AlertifyService\n ) {\n this.spousePassportImage = this.defaultBase64Image;\n }\n\n ngOnInit() {\n this.employee = sessionStorage.getItem(\"employeeId\");\n const employeeId = sessionStorage.getItem(\"employeeId\");\n\n if (employeeId) {\n this.isEditMode = this.router.url.includes(\"edit-page\");\n\n if (this.isEditMode) {\n this.loadExistingData(employeeId);\n }\n } else {\n this.alertify.error(\"Employee ID not found.\");\n this.router.navigate([\"/\"]);\n }\n this.bindCombo();\n }\n\n bindCombo() {\n this.apiService\n .getAllBanks(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.bankList = res.responseData;\n console.log(this.bankList, \"me\");\n });\n\n this.apiService\n .getTitleAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.titleList = res.responseData;\n console.log(this.titleList, \"titleList\");\n });\n\n this.apiService.getCountryAll(\"Active\", 1, 200).subscribe((res) => {\n this.countryList = res.responseData;\n console.log(this.countryList, \"countyList\");\n });\n\n this.apiService\n .getStateAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.stateList = res.responseData;\n });\n\n this.apiService\n .getStaffTypeAll(\"Active\", 1, 100, this.employee)\n .subscribe((res) => {\n this.staffTypeList = res.responseData;\n });\n this.apiService\n .getGradeAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.gradeList = res.responseData;\n });\n this.apiService\n .getNotchAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.notchList = res.responseData;\n console.log(this.notchList, \"notchList\");\n });\n this.apiService\n .getBranchAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.branchList = res.responseData;\n });\n this.apiService\n .getDepartmentAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.departmentList = res.responseData;\n console.log(this.departmentList, \"departmentList\");\n });\n this.apiService\n .getDepartmentUnitAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.departmentUnitList = res.responseData;\n console.log(this.departmentUnitList, \"departmentUnitList\");\n });\n\n this.apiService\n .getEducationLevelAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.educationLevelList = res.responseData;\n console.log(this.educationLevelList, \"me\");\n });\n this.apiService\n .getEducationQualificationAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.educationQualificationList = res.responseData;\n console.log(this.educationQualificationList, \"me\");\n });\n this.apiService\n .getEducationQualificationClassAll(\"Active\", 1, 50, this.employee)\n .subscribe((res) => {\n this.qualificationClassList = res.responseData;\n console.log(this.qualificationClassList, \"me\");\n });\n\n this.maritalStatusList = SmartUtil.getMaritalStatus();\n }\n\n addAcademicRecord() {\n this.academicRecords.push({\n institutionName: \"\",\n courseOfStudy: \"\",\n employeeId: \"\",\n educationLevel: 0,\n qualificationObtained: 0,\n classOfQualification: 0,\n address: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addWorkRecord() {\n this.workRecords.push({\n employeeId: \"\",\n companyName: \"\",\n position: \"\",\n jobDescription: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addProfessionRecord() {\n this.professionRecords.push({\n employeeId: \"\",\n professionalAssociation: \"\",\n certificationObtained: \"\",\n membershipStatus: \"\",\n dateObtained: \"\",\n startDate: \"\",\n endDate: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addRefereeRecord() {\n this.refereeRecords.push({\n ref_EmployeeId: \"\",\n ref_Title: \"\",\n ref_LastName: \"\",\n ref_FirstName: \"\",\n ref_MiddleName: \"\",\n ref_ContactAddress: \"\",\n ref_CountryId: \"\",\n ref_StateId: \"\",\n ref_City: \"\",\n ref_Email: \"\",\n ref_MobilePhone: \"\",\n ref_HomePhone: \"\",\n ref_WorkPhone: \"\",\n ref_Relationship: \"\",\n ref_CompanyName: \"\",\n ref_Position: \"\",\n ref_CompanyId: 0,\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addChildrenRecord() {\n this.childrenRecords.push({\n employeeId: \"\",\n fullName: \"\",\n dob: \"\",\n passport: \"\",\n passportImage: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n });\n }\n\n addCvRecord() {\n this.cvRecords.push({\n employeeId: \"\",\n cvFileName: \"\",\n cvContent: \"\",\n fileSize: \"\",\n contentType: \"\",\n fileExtension: \"\",\n companyId: 0,\n createdBy: \"\",\n createdDate: \"\",\n status: \"\",\n approvedBy: \"\",\n modifiedBy: \"\",\n rejectedBy: \"\",\n approvedDate: \"\",\n rejectionDate: \"\",\n modifiedDate: \"\",\n });\n }\n\n // Handle combined form submission\n onSubmitCombinedForm(form: NgForm) {\n if (!form.valid) {\n const invalidControls = [];\n\n for (const controlName in form.controls) {\n if (form.controls.hasOwnProperty(controlName)) {\n const control = form.controls[controlName];\n if (control.invalid) {\n invalidControls.push(controlName);\n }\n }\n }\n\n if (invalidControls.length > 0) {\n const alertMessage = `Please fill in the following required fields: ' ${invalidControls.join(\n \", \"\n )}`;\n this.alertify.alert(\"Validation Errors\", alertMessage);\n // this.alertify.warning('Please fill in the following required fields: ' + invalidControls.join(', '));\n }\n return;\n }\n\n const employeeId = sessionStorage.getItem(\"employeeId\");\n const companyId = sessionStorage.getItem(\"companyId\");\n console.log(companyId);\n console.log(employeeId);\n const status = sessionStorage.getItem(\"status\");\n\n if (employeeId) {\n const academicData = this.academicRecords.map((academic) => ({\n employeeId: employeeId,\n institutionName: academic.institutionName,\n courseOfStudy: academic.courseOfStudy,\n educationLevel: academic.educationLevel || 0,\n qualificationObtained: academic.qualificationObtained || 0,\n classOfQualification: academic.classOfQualification || 0,\n address: academic.address,\n startDate: academic.startDate,\n endDate: academic.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const workData = this.workRecords.map((work) => ({\n employeeId: employeeId,\n companyName: work.companyName,\n position: work.position,\n jobDescription: work.jobDescription,\n startDate: work.startDate,\n endDate: work.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const professionData = this.professionRecords.map((profession) => ({\n employeeId: employeeId,\n professionalAssociation: profession.professionalAssociation,\n certificationObtained: profession.certificationObtained,\n membershipStatus: profession.membershipStatus,\n dateObtained: profession.dateObtained,\n startDate: profession.startDate,\n endDate: profession.endDate,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const refereeData = this.refereeRecords.map((referee) => ({\n ref_EmployeeId: employeeId,\n ref_Title: referee.ref_Title,\n ref_LastName: referee.ref_LastName,\n ref_FirstName: referee.ref_FirstName,\n ref_MiddleName: referee.ref_MiddleName,\n ref_ContactAddress: referee.ref_ContactAddress,\n ref_CountryId: referee.ref_CountryId,\n ref_StateId: referee.ref_StateId,\n ref_City: referee.ref_City,\n ref_Email: referee.ref_Email,\n ref_MobilePhone: referee.ref_MobilePhone,\n ref_HomePhone: referee.ref_HomePhone,\n ref_WorkPhone: referee.ref_WorkPhone,\n ref_Relationship: referee.ref_Relationship,\n ref_CompanyName: referee.ref_CompanyName,\n ref_Position: referee.ref_Position,\n ref_CompanyId: companyId,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const childrenData = this.childrenRecords.map((children) => ({\n employeeId: employeeId,\n fullName: children.fullName,\n dob: children.dob,\n passport: children.passport,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n }));\n\n const cvData = this.cvRecords.map((cv) => ({\n employeeId: employeeId,\n cvFileName: cv.cvFileName,\n cvContent: cv.cvContent,\n fileSize: cv.fileSize,\n contentType: cv.contentType,\n fileExtension: cv.fileExtension,\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n approvedBy: \"admin\",\n modifiedBy: \"admin\",\n rejectedBy: \"admin\",\n approvedDate: SmartUtil.formatDateTimeServer(),\n rejectionDate: SmartUtil.formatDateTimeServer(),\n modifiedDate: SmartUtil.formatDateTimeServer(),\n }));\n\n const employeeBioData = {\n employeeId: employeeId,\n lastName: form.value.lastName,\n firstName: form.value.firstName,\n middleName: form.value.middleName,\n gender: form.value.gender,\n dob: form.value.dob,\n placeOfBirth: form.value.placeOfBirth,\n nationality: form.value.nationality || 0,\n stateOrigin: form.value.stateOrigin || 0,\n localGovtOrigin: form.value.localGovtOrigin,\n marital_Status: form.value.marital_Status || 0,\n spouseFullName: form.value.spouseFullName,\n spouseDOB: form.value.spouseDOB,\n contactAddress: form.value.contactAddress,\n countryId: form.value.countryId || 0,\n stateId: form.value.stateId || 0,\n city: form.value.city,\n email: form.value.email,\n staffTypeCode: form.value.staffTypeCode || 0,\n levelCode: form.value.levelCode || 0,\n notchCode: form.value.notchCode || 0,\n branchId: form.value.branchId || 0,\n departmentId: form.value.departmentId || 0,\n unitId: form.value.unitId || 0,\n jobDeskId: form.value.jobDeskId || 0,\n dateOfEmployment: SmartUtil.formatDateTimeServer(),\n resumptionDate: form.value.resumptionDate,\n comfirmedDate: form.value.comfirmedDate,\n officeExtension: form.value.officeExtension,\n mobilePhone: form.value.mobilePhone,\n homePhone: form.value.homePhone,\n workPhone: form.value.workPhone,\n hmoCode: form.value.hmoCode,\n hmoEnabled: form.value.hmoEnabled,\n accountNo: form.value.accountNo,\n includePayroll: form.value.includePayroll,\n bvn: form.value.bvn,\n pfaCode: \"string\",\n kin_Title: 0,\n kin_LastName: form.value.kin_LastName,\n kin_FirstName: form.value.kin_FirstName,\n kin_MiddleName: form.value.kin_MiddleName,\n kin_ContactAddress: form.value.kin_ContactAddress,\n kin_Country: form.value.kin_Country || 0,\n kin_State: form.value.kin_State || 0,\n kin_City: form.value.kin_City,\n kin_Email: form.value.kin_Email,\n kin_MobilePhone: form.value.kin_MobilePhone,\n kin_WorkPhone: form.value.kin_WorkPhone,\n kin_Relationship: form.value.kin_Relationship,\n title: 0,\n passport: this.passportImage,\n spousePassport: this.spousePassportImage,\n complexion: \"black\",\n basicSalary: 0,\n designation: 0,\n isComfirmed: true,\n staffTypeDetail_Code: \"string\",\n comfirmedUserId: \"string\",\n noOfDays: 0,\n leaveBalance: form.value.leaveBalance,\n sectionCode: form.value.sectionCode,\n serviceAgeRetired: form.value.serviceAgeRetired,\n serviceAgeNow: form.value.serviceAgeNow,\n bankid: 0,\n planCode: \"string\",\n cvPath: \"string\",\n nyscCompleted: true,\n nsitf: \"\",\n itf: \"\",\n fullName: \"\",\n companyId: companyId,\n createdBy: employeeId,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: status,\n };\n // new Date().toISOString(),\n // The rest of your API calls go here...\n this.apiService.checkAcademic(employeeId).subscribe(\n (academicResponse) => {\n if (\n academicResponse.isSuccess &&\n academicResponse.recordLength === 0 &&\n academicResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentAcademic(academicData).subscribe(\n (academicPostResponse) => {\n console.log(\n \"Academic Data POST Response:\",\n academicPostResponse\n );\n // this.alertify.success(\"Employee academic record posted Successfully.\");\n },\n (academicPostError) => {\n console.error(\"Academic Data POST Error:\", academicPostError);\n // this.alertify.error(\"Employee academic record not added.\");\n }\n );\n } else {\n console.log(\"Academic records already exist.\");\n this.alertify.error(\"Academic records already exist.\");\n }\n },\n (academicError) => {\n console.error(\"Error checking academic records:\", academicError);\n this.alertify.error(\"Error checking academic records.\");\n }\n );\n\n this.apiService.checkChildren(employeeId).subscribe(\n (childrenResponse) => {\n if (\n childrenResponse.isSuccess &&\n childrenResponse.recordLength === 0 &&\n childrenResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentChildren(childrenData).subscribe(\n (childrenPostResponse) => {\n console.log(this.childrenRecords);\n console.log(\n \"Children Data POST Response:\",\n childrenPostResponse\n );\n // this.alertify.success(\"Employee children record posted Successfully.\");\n },\n (childrenPostError) => {\n console.error(\"Children Data POST Error:\", childrenPostError);\n // this.alertify.error(\"Employee children record not added.\");\n }\n );\n } else {\n console.log(\"Children records already exist.\");\n this.alertify.error(\"Children records already exist.\");\n }\n },\n (childrenError) => {\n console.error(\"Error checking children records:\", childrenError);\n this.alertify.error(\"Error checking children records.\");\n }\n );\n\n this.apiService.checkProfession(employeeId).subscribe(\n (professionResponse) => {\n if (\n professionResponse.isSuccess &&\n professionResponse.recordLength === 0 &&\n professionResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentProfession(professionData).subscribe(\n (professionPostResponse) => {\n console.log(\n \"Profession Data POST Response:\",\n professionPostResponse\n );\n // this.alertify.success(\"Professional Association posted Successfully.\");\n },\n (professionPostError) => {\n console.error(\n \"Profession Data POST Error:\",\n professionPostError\n );\n // this.alertify.error(\"Professional Accociation record not added.\");\n }\n );\n } else {\n console.log(\"Profession records already exist.\");\n this.alertify.error(\"Profession records already exist.\");\n }\n },\n (professionError) => {\n console.error(\"Error checking profession records:\", professionError);\n this.alertify.error(\"Error checking profession records.\");\n }\n );\n\n this.apiService.checkReferee(employeeId).subscribe(\n (refereeResponse) => {\n if (\n refereeResponse.isSuccess &&\n refereeResponse.recordLength === 0 &&\n refereeResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentReferee(refereeData).subscribe(\n (refereePostResponse) => {\n console.log(\"Referee Data POST Response:\", refereePostResponse);\n // this.alertify.success(\"Referee records posted Successfully.\");\n },\n (refereePostError) => {\n console.error(\"Referee Data POST Error:\", refereePostError);\n // this.alertify.error(\"Referee records not added.\");\n }\n );\n } else {\n console.log(\"Referee records already exist.\");\n this.alertify.error(\"Referee records already exist.\");\n }\n },\n (refereeError) => {\n console.error(\"Error checking referee records:\", refereeError);\n this.alertify.error(\"Error checking referee records.\");\n }\n );\n\n this.apiService.checkWorkExperience(employeeId).subscribe(\n (workExpResponse) => {\n if (\n workExpResponse.isSuccess &&\n workExpResponse.recordLength === 0 &&\n workExpResponse.responseData.length === 0\n ) {\n this.apiService.postEnrollmentWork(workData).subscribe(\n (workPostResponse) => {\n console.log(\n \"Work Experience Data POST Response:\",\n workPostResponse\n );\n // this.alertify.success(\"Employee work experience posted Successfully.\");\n },\n (workPostError) => {\n console.error(\n \"Work Experience Data POST Error:\",\n workPostError\n );\n // this.alertify.error(\"Employee work experience record not added.\");\n }\n );\n } else {\n console.log(\"Work experience records already exist.\");\n this.alertify.error(\"Work experience records already exist.\");\n }\n },\n (workExpError) => {\n console.error(\n \"Error checking work experience records:\",\n workExpError\n );\n this.alertify.error(\"Error checking work experience records.\");\n }\n );\n\n this.apiService.postEnrollmentCV(cvData).subscribe(\n (cvPostResponse) => {\n console.log(\"CV Data POST Response:\", cvPostResponse);\n // this.alertify.success(\"Employee CV posted Successfully.\");\n },\n (cvPostError) => {\n console.error(\"CV Data POST Error:\", cvPostError);\n // this.alertify.error(\"Employee CV record not added.\");\n }\n );\n\n this.apiService.checkBiodataExist(employeeId).subscribe(\n (bioDataResponse) => {\n // Directly attempt to post biodata without additional checks\n this.apiService.postEmployeeBio(employeeBioData).subscribe(\n (bioPostResponse) => {\n console.log(\"Employee Bio POST Response:\", bioPostResponse);\n // this.alertify.success(\"Employee biodata posted successfully.\");\n },\n (bioPostError) => {\n console.error(\"Employee Bio POST Error:\", bioPostError);\n // this.alertify.error(\"Employee biodata record not added.\");\n }\n );\n },\n (bioDataError) => {\n console.error(\"Error checking employee biodata:\", bioDataError);\n this.alertify.error(\"Error checking employee biodata.\");\n }\n );\n sessionStorage.removeItem(\"employeeId\");\n sessionStorage.removeItem(\"employee\");\n sessionStorage.removeItem(\"email\");\n sessionStorage.removeItem(\"companyId\");\n sessionStorage.removeItem(\"status\");\n this.alertify.success(\"Form submitted successfully.\");\n this.router.navigate([\"/enrollment\"]);\n } else {\n console.error(\"Employee ID not found.\");\n this.alertify.error(\"Employee ID not found.\");\n this.router.navigate([\"/enrollment\"]);\n }\n }\n\n // Function to get the names of invalid controls\n private getInvalidControls(form: NgForm): string[] {\n const invalidControls: string[] = [];\n\n for (const key in form.controls) {\n if (form.controls.hasOwnProperty(key) && form.controls[key].invalid) {\n invalidControls.push(key);\n }\n }\n\n return invalidControls;\n }\n\n onChildrenChange(event: Event, index: number): void {\n const file = (event.target as HTMLInputElement).files?.[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = () => {\n this.childrenRecords[index].passportImage = reader.result as string;\n this.childrenRecords[index].passport = reader.result as string; // Store the base64 string\n };\n reader.readAsDataURL(file);\n }\n }\n\n onFileChange(event: any, field: string): void {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.onload = () => {\n const base64Image = reader.result;\n\n if (field === \"passport\") {\n this.passportImage = base64Image;\n } else if (field === \"spousePassport\") {\n this.spousePassportImage = base64Image;\n }\n\n // Add any additional logic you need for file handling here\n // For example, uploading the image to the server, or processing the file data\n };\n reader.readAsDataURL(file);\n }\n }\n\n onFileSelect(event: any, index: number) {\n const file = event.target.files[0];\n if (file) {\n this.cvRecords[index].cvFileName = file.name;\n\n const reader = new FileReader();\n\n reader.onload = (e: any) => {\n // Base64-encoded data is often expected for file content\n this.cvRecords[index].cvContent = e.target.result.split(\",\")[1]; // Remove data URL prefix\n\n this.cvRecords[index].fileSize = file.size; // Send file size as a number\n this.cvRecords[index].contentType = file.type;\n this.cvRecords[index].fileExtension = file.name.split(\".\").pop();\n\n // Ensure that the `command` field is included if required by the API\n // this.cvRecords[index].command = \"Upload\";\n };\n\n reader.readAsDataURL(file);\n }\n }\n\n isAcademicRecordValid(academic: any): boolean {\n return (\n academic.institutionName &&\n academic.address &&\n academic.courseOfStudy &&\n academic.qualificationObtained &&\n academic.classOfQualification &&\n academic.startDate &&\n academic.endDate\n );\n }\n\n isWorkRecordValid(work: any): boolean {\n return (\n work.companyName &&\n work.position &&\n work.jobDescription &&\n work.startDate &&\n work.endDate\n );\n }\n\n isProfessionRecordValid(profession: any): boolean {\n return (\n profession.professionalAssociation &&\n profession.certificationObtained &&\n profession.membershipStatus &&\n profession.dateObtained\n );\n }\n\n isRefereeRecordValid(referee: any): boolean {\n return (\n referee.ref_Title &&\n referee.ref_LastName &&\n referee.ref_FirstName &&\n referee.ref_MiddleName &&\n referee.ref_ContactAddress &&\n referee.ref_CountryId &&\n referee.ref_StateId &&\n referee.ref_City &&\n referee.ref_Email &&\n referee.ref_MobilePhone &&\n referee.ref_HomePhone &&\n referee.ref_WorkPhone &&\n referee.ref_Relationship &&\n referee.ref_CompanyName &&\n referee.ref_Position\n );\n }\n\n isChildrenRecordValid(children: any): boolean {\n return children.fullName && children.dob && children.passport;\n }\n\n isCvRecordValid(cv: any): boolean {\n return cv.cvFileName;\n }\n\n loadExistingData(employeeId: string) {\n // Load existing children records\n this.apiService.checkChildren(employeeId).subscribe(\n (childrenResponse) => {\n if (\n childrenResponse.isSuccess &&\n childrenResponse.recordLength > 0 &&\n childrenResponse.responseData.length > 0\n ) {\n this.childrenRecords = childrenResponse.responseData;\n // this.populateChildrenForm();\n }\n },\n (error) => {\n this.alertify.error(\"Error loading children records.\");\n }\n );\n\n // Load existing biodata\n this.apiService.checkBiodata(employeeId).subscribe(\n (biodataResponse) => {\n if (\n biodataResponse.isSuccess &&\n biodataResponse.recordLength > 0 &&\n biodataResponse.responseData.length > 0\n ) {\n this.populateBiodataForm(biodataResponse.responseData[0]);\n }\n },\n (error) => {\n this.alertify.error(\"Error loading biodata.\");\n }\n );\n }\n\n populateBiodataForm(biodata: any) {\n this.form.form.patchValue({\n lastName: biodata.lastName,\n firstName: biodata.firstName,\n middleName: biodata.middleName,\n // Add other form fields here...\n });\n\n // Mark each control as pristine\n Object.keys(this.form.controls).forEach((controlName) => {\n this.form.controls[controlName].markAsPristine();\n });\n }\n\n private markChildrenControlsAsPristine(form: NgForm) {\n if (this.childrenRecords && this.childrenRecords.length) {\n this.childrenRecords.forEach((childRecord, index) => {\n const childFormControl = form.controls[`children_${index}`];\n if (childFormControl) {\n childFormControl.markAsPristine();\n childFormControl.markAsUntouched();\n }\n });\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { environment } from \"src/environments/environment\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n selector: 'app-enrollment-login',\n templateUrl: './enrollment-login.component.html',\n styleUrls: ['./enrollment-login.component.css']\n})\nexport class EnrollmentLoginComponent implements OnInit {\n\n loginForm: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private http: HttpClient,\n private alertify: AlertifyService,\n private router: Router,\n ) {}\n\n ngOnInit() {\n this.loginForm = this.fb.group({\n employeeId: ['', Validators.required],\n password: ['', Validators.required]\n });\n }\n\n // const url = `http://41.184.40.66:8040/api/v4/Enrollment/login?EmployeeId=${employeeId}&password=${password}`;\n // const url = `${environment.apiBaseURIHrm}/v4/Enrollment/login?EmployeeId=${employeeId}&password=${password}`;\n\n onSubmit() {\n if (this.loginForm.valid) {\n const employeeId = this.loginForm.value.employeeId;\n const password = this.loginForm.value.password;\n const url = `${environment.apiBaseURIHrm}/v4/Enrollment/login?EmployeeId=${employeeId}&password=${password}`;\n this.http.get(url).subscribe(\n response => {\n if (response && response['status'] === 'active') {\n // Handle the successful response data\n console.log('API Response:', response);\n const companyId = response['companyId']\n console.log(companyId);\n sessionStorage.setItem('companyId', companyId);\n console.log(sessionStorage.getItem('companyId'));\n // Save employeeId and email in sessionStorage\n sessionStorage.setItem('employeeId', response['employeeId']);\n sessionStorage.setItem('email', response['email']);\n sessionStorage.setItem('status', response['status']);\n this.router.navigate(['/enrollment-form']);\n } else {\n this.alertify.error('Login Failed, Contact Admin');\n }\n },\n error => {\n this.alertify.error('Login Failed, Contact Admin');\n }\n );\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-self-enrollment',\n templateUrl: './self-enrollment.component.html',\n styleUrls: ['./self-enrollment.component.css']\n})\nexport class SelfEnrollmentComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharingModule } from '../sharing/sharing.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DataTablesModule } from 'angular-datatables';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { RouterModule } from '@angular/router';\nimport { BsDatepickerModule, BsDatepickerConfig } from 'ngx-bootstrap/datepicker';\n\n\n// Perfect Scrollbar\nimport {\n PerfectScrollbarModule, PerfectScrollbarConfigInterface,\n PERFECT_SCROLLBAR_CONFIG\n} from 'ngx-perfect-scrollbar';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n// import { MonthNamePipe } from './core/month-name.pipe';\nimport { SelfEnrollmentComponent } from './self-enrollment.component';\nimport { EnrollmentLoginComponent } from './pages/enrollment-login/enrollment-login.component';\nimport { EnrollmentFormComponent } from './pages/enrollment-form/enrollment-form.component';\nimport { EditPageComponent } from './pages/edit-page/edit-page.component';\n\n\n\n@NgModule({\n declarations: [\n SelfEnrollmentComponent,\n EnrollmentLoginComponent,\n EnrollmentFormComponent,\n EditPageComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n SharingModule,\n ReactiveFormsModule,\n FormsModule,\n DataTablesModule,\n HttpClientModule,\n NgSelectModule,\n PerfectScrollbarModule,\n NgbModule,\n BsDatepickerModule.forRoot()\n ]\n})\nexport class SelfEnrollmentModule { }\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AcademicService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeAcademic';\n\n\n constructor(private http: HttpClient) { }\n\n getAcademic(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/jwt-tokenself';\n\n\n constructor(private http: HttpClient, private router: Router) { }\n\n onLogin(obj: any) : Observable {\n return this.http.post(this.apiUrl, obj);\n }\n\n GenerateRefreshToken() {\n let input = this.GetRefreshToken();\n return this.http.post(this.baseUrl + '/SelfService/jwt-tokenself', input);\n }\n\n GetToken() {\n return localStorage.getItem(\"LoginData\") || '';\n }\n\n GetRefreshToken() {\n return localStorage.getItem(\"refreshtoken\") || '';\n }\n\n saveTokens(tokendata: any) {\n localStorage.setItem('LoginData', tokendata.accessToken);\n localStorage.setItem('refreshtoken', tokendata.refreshToken.tokenString);\n }\n\n logout(): void {\n // alert(\"Your session expired!\")\n localStorage.removeItem('LoginData');\n localStorage.removeItem('refreshToken');\n this.router.navigateByUrl('/')\n }\n\n IsLoggedIn() {\n return localStorage.getItem('userName') != null;\n }\n\n isAuthenticated(): boolean {\n return false;\n }\n\n GetRolebyToken() {\n let role = localStorage.getItem('role');\n return role;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BiodataService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeBiodata';\n\n\n constructor(private http: HttpClient) { }\n\n getBiodata(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChildrenService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeChildren';\n\n\n constructor(private http: HttpClient) { }\n\n getChildren(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CvService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeCV';\n\n\n constructor(private http: HttpClient) { }\n\n getCv(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n\n","import { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment.prod\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffleaveModel } from \"src/app/all-modules/hrm/services/models/staffleave.model\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { Operation } from \"fast-json-patch\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class StaffLeaveService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {}\n getStaffLeaveAll(\n status: string = null,\n PageNumber,\n PageSize\n ): Observable {\n let url = `${this.baseUrl}/SelfService/EmployeeLeave`;\n\n const params = {};\n\n params[`status`] = status;\n if (PageNumber) params[`PageNumber`] = PageNumber;\n if (PageSize) params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getStaffLeave(EmployeeId: string): Observable {\n // let url = `${this.baseUrl}/SelfService/EmployeeLeave/${EmployeeId}`;\n // return this.http.get(url);\n // }\n\n getStaffLeave(employeeId: string, status: string): Observable {\n const url = `${this.baseUrl}/SelfService/EmployeeLeave/${employeeId}`;\n\n // Set the status as a query parameter\n let params = new HttpParams().set(\"status\", status);\n\n // Make the GET request and return the observable\n return this.http.get(url, { params });\n }\n\n createStaffLeave(model: AddStaffleaveModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, \"to post\");\n return this.http\n .post(`${this.baseUrl}/SelfService/EmployeeLeave`, model)\n .pipe(\n map((res) => {\n return res;\n })\n );\n }\n\n updateStaffLeave(model: AddStaffleaveModel) {\n return this.http\n .patch(`${this.baseUrl}/SelfService/EmployeeLeave/${model.id}`, model)\n .pipe(\n map((res) => {\n return res;\n })\n );\n }\n\n patchStaffLeave(id: number, operations: Operation[]) {\n let url = `${this.baseUrl}/SelfService/EmployeeLeaveUpdate/${id}`;\n return this.http.patch(url, operations);\n }\n\n deleteStaffLeave(id: number) {\n return this.http\n .delete(`${this.baseUrl}/SelfService/EmployeeLeave/${id}`)\n .pipe(\n map((res) => {\n return res;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monthName'\n})\nexport class MonthNamePipe implements PipeTransform {\n\n transform(month: number): string {\n const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ];\n\n // Ensure that the month value is within a valid range\n if (month >= 1 && month <= 12) {\n return months[month - 1];\n } else {\n return 'Invalid Month';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PayslipService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/Payslip';\n\n\n constructor(private http: HttpClient) { }\n\n GeneratePayslip(employeeid:any, month:any, year:any): Observable {\n const url = `${this.apiUrl}/${employeeid}/${month}/${year}`;\n return this.http.get(url);\n }\n\n // GeneratePayslip2(employeeid:any, month:any, year:any): Observable {\n // const url = `${this.apiUrl}/${employeeid}/${month}/${year}`;\n // return this.http.get(url);\n // }\n\n GeneratePayslip3(frodate:any, todate:any, employeeid:any): Observable {\n const url = `${this.apiUrl}/${frodate}/${todate}/${employeeid}`;\n return this.http.get(url);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfessionService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeProfession';\n\n\n constructor(private http: HttpClient) { }\n\n getProfession(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RefereeService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeReferee';\n\n\n constructor(private http: HttpClient) { }\n\n getReferee(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n\n","import { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment.prod\";\n// import { environment } from \"src/environments/environment\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { AddStaffloanModel } from \"src/app/all-modules/loan/services/models/staffloan.model\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { Operation } from \"fast-json-patch\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class StaffloanService {\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n errorContent: any;\n sysMemberId: string;\n public expensesLoading: boolean = false;\n public minLengthTerm = 3;\n public expensesInput$ = new Subject();\n public expenses$: Observable;\n\n constructor(private http: HttpClient) {}\n getStaffLoanAll(\n status: string = null,\n PageNumber,\n PageSize\n ): Observable {\n let url = `${this.baseUrl}/SelfService/EmployeeLoan`;\n\n const params = {};\n //SmartUtil.objectToHttpParams(params, dataTablesParameters, '');\n //console.log(params)\n params[`status`] = status;\n if (PageNumber) params[`PageNumber`] = PageNumber;\n if (PageSize) params[`pageSize`] = PageSize;\n\n return this.http.get(url, { params: params });\n }\n\n // getStaffLoan(EmployeeId: string): Observable {\n // let url = `${this.baseUrl}/SelfService/EmployeeLoan/${EmployeeId}`;\n // return this.http.get(url);\n // }\n\n getStaffLoan(employeeId: string, status: string): Observable {\n const url = `${this.baseUrl}/SelfService/EmployeeLoan/${employeeId}/${status}`;\n\n // Set the status as a query parameter\n let params = new HttpParams().set(\"status\", status);\n\n // Make the GET request and return the observable\n return this.http.get(url, { params });\n }\n\n createStaffLoan(model: AddStaffloanModel) {\n let userProfile = SmartUtil.getUserInfo();\n if (userProfile) {\n model.createdBy = userProfile.userName;\n // model.approvedBy = userProfile.userName;\n // model.modifiedBy = userProfile.userName;\n // model.rejectedBy = userProfile.userName;\n model.companyId = userProfile.companyId;\n }\n // model.display = true\n model.createdDate = SmartUtil.formatDateTimeServer();\n // model.approvedDate = SmartUtil.formatDateTimeServer()\n // model.rejectionDate = SmartUtil.formatDateTimeServer();\n // model.modifiedDate = SmartUtil.formatDateTimeServer();\n console.log(model, \"to post\");\n return this.http\n .post(`${this.baseUrl}/SelfService/EmployeeLoan`, model)\n .pipe(\n map((res) => {\n return res;\n })\n );\n }\n\n updateStaffLoan(model: AddStaffloanModel) {\n return this.http\n .patch(`${this.baseUrl}/SelfService/EmployeeLoan/${model.id}`, model)\n .pipe(\n map((res) => {\n //console.log(res);\n return res;\n })\n //catchError(this.handleError)\n );\n }\n\n patchStaffLoan(id: number, operations: Operation[]) {\n let url = `${this.baseUrl}/SelfService/EmployeeLoan/${id}`;\n //const url = this.baseURL + id;\n return this.http.patch(url, operations);\n }\n\n deleteStaffLoan(id: number) {\n return this.http\n .delete(`${this.baseUrl}/SelfService/EmployeeLoan/${id}`)\n .pipe(\n map((res) => {\n //console.log(res);\n return res;\n })\n );\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkService {\n\n loader = new BehaviorSubject(false);\n private baseUrl = `${environment.apiBaseURIHrm}/v6`;\n private apiUrl = this.baseUrl + '/SelfService/EmployeeWork';\n\n\n constructor(private http: HttpClient) { }\n\n getWork(EmployeeId: string) : Observable {\n let queryParams = new HttpParams();\n queryParams = queryParams.append(\"EmployeeId\", EmployeeId);\n return this.http.get(this.apiUrl, {params:queryParams});\n }\n\n}\n\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-cooperative',\n templateUrl: './cooperative.component.html',\n styleUrls: ['./cooperative.component.css']\n})\nexport class CooperativeComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\nexport class DashboardComponent implements OnInit {\n\n user: any;\n\n employeeId = localStorage.getItem('userName');\n\n constructor() { }\n\n ngOnInit(): void {\n this.user = localStorage.getItem('user') || 'Guest';\n }\n\n}\n","import { Component, EventEmitter, OnInit, Output } from \"@angular/core\";\nimport { AccountService } from \"../../core/account.service\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n selector: \"app-header\",\n templateUrl: \"./header.component.html\",\n styleUrls: [\"./header.component.css\"],\n})\nexport class HeaderComponent implements OnInit {\n //user: any;\n\n @Output() sideNavToggled = new EventEmitter();\n\n menuStatus: boolean = false;\n\n user = localStorage.getItem(\"user\");\n companylogo: string | null = null;\n\n constructor(private accountSrv: AccountService, private router: Router) {\n this.companylogo = localStorage.getItem(\"companylogo\");\n console.log(this.companylogo);\n }\n\n ngOnInit() {}\n\n SideNavToggle() {\n this.menuStatus = !this.menuStatus;\n this.sideNavToggled.emit(this.menuStatus);\n }\n\n Logout() {\n localStorage.removeItem(\"token\");\n this.accountSrv.logout();\n this.router.navigate([\"/\"]);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-hmo',\n templateUrl: './hmo.component.html',\n styleUrls: ['./hmo.component.css']\n})\nexport class HmoComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n\n sideNavStatus: boolean = false;\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, OnInit, ViewChild, TemplateRef } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { DataTableDirective } from \"angular-datatables\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { StaffLeaveService } from \"../../core/leave.service\";\nimport { AddStaffleaveModel } from \"src/app/all-modules/hrm/services/models/staffleave.model\";\nimport { EventService } from \"src/app/core/services/event.service\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\n\ndeclare const $: any;\n\n@Component({\n selector: \"app-leave-list\",\n templateUrl: \"./leave-list.component.html\",\n styleUrls: [\"./leave-list.component.css\"],\n})\nexport class LeaveListComponent implements OnInit {\n filterObj = {\n status: \"active\",\n PageNumber: 1,\n PageSize: 10,\n };\n\n searchText: any;\n\n user = localStorage.getItem(\"userName\");\n selectedStatus: string = \"pending\";\n status: string = \"pending\";\n\n @ViewChild(\"content\") modalContent: TemplateRef;\n private history: string[] = [];\n @ViewChild(DataTableDirective, { static: false })\n public dtElement: DataTableDirective;\n public dtOptions: DataTables.Settings = {};\n public estimates: any;\n public id;\n public dtTrigger: Subject = new Subject();\n fromParentId: number;\n staffLeaveModel: AddStaffleaveModel;\n subscription: Subscription;\n isEdit: boolean;\n constructor(\n private router: Router,\n private api: StaffLeaveService,\n private alertify: AlertifyService,\n private eventService: EventService,\n private modalService: NgbModal\n ) {}\n\n ngOnInit() {\n this.dtOptions = {\n // ... skipped ...\n pageLength: 10,\n dom: \"lrtip\",\n };\n console.log(this.user);\n this.refreshData();\n this.loadStaffLeave();\n }\n\n deleteEstimate(estimate) {\n this.id = estimate.id;\n }\n\n loadStaffLeave() {\n this.api.getStaffLeave(this.user, this.selectedStatus).subscribe((resp) => {\n this.estimates = resp.responseData;\n console.log(this.estimates);\n });\n }\n\n onPrevious() {\n this.filterObj.PageNumber--;\n this.filterData();\n }\n\n onNext() {\n this.filterObj.PageNumber++;\n this.filterData();\n }\n\n filterData() {\n this.api.getStaffLeave(this.user, this.selectedStatus).subscribe((resp) => {\n this.estimates = resp.responseData;\n });\n }\n\n delete() {\n let id: any = Number(this.id);\n this.api.deleteStaffLeave(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Staff Leave Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Staff Leave\");\n }\n\n this.loadStaffLeave();\n });\n }\n\n refreshData() {\n const that = this;\n this.dtOptions = {\n pagingType: \"full_numbers\",\n pageLength: 10,\n serverSide: true,\n searching: false,\n autoWidth: false,\n ajax: (dataTablesParameters: any, callback) => {\n console.log(dataTablesParameters);\n let pageNo =\n dataTablesParameters.start == 0\n ? 1\n : dataTablesParameters.start / dataTablesParameters.length + 1;\n let pageLength = dataTablesParameters.length;\n\n that.api\n .getStaffLeave(this.user, this.selectedStatus)\n .subscribe((resp) => {\n that.estimates = resp.responseData;\n\n callback({\n recordsTotal: resp.recordLength, // resp.totalRecords,\n recordsFiltered: resp.recordLength, //resp.totalRecords,\n data: [],\n });\n });\n },\n\n dom: \"lBfrtip\",\n };\n }\n\n onEdit(leaveId: string): void {\n this.router.navigate([\"/self-service/home/leave/edit\", leaveId], {\n queryParams: { status: this.selectedStatus },\n });\n }\n\n onStatusChange(): void {\n this.loadStaffLeave();\n this.filterData();\n this.refreshData();\n }\n}\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport { BiodataService } from \"../../core/biodata.service\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { DatePipe } from \"@angular/common\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport {\n EventServiceConstant,\n SmartUtil,\n} from \"src/app/core/utitlity/smart.util\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { AddStaffleaveModel } from \"src/app/all-modules/hrm/services/models/staffleave.model\";\nimport { EventService } from \"src/app/core/services/event.service\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { compare, Operation } from \"fast-json-patch\";\nimport { StaffbiodataService } from \"src/app/all-modules/hrm/services/staffbiodata.service\";\nimport { LeaveService } from \"src/app/all-modules/hrm/services/leave.service\";\nimport { StaffLeaveService } from \"../../core/leave.service\";\n\n@Component({\n selector: \"app-leave\",\n templateUrl: \"./leave.component.html\",\n styleUrls: [\"./leave.component.css\"],\n})\nexport class LeaveComponent implements OnInit {\n @Input() staffLeaveModel: AddStaffleaveModel;\n @Input() fromParentId: number;\n selectedStatus: string = \"pending\";\n userName = localStorage.getItem(\"userName\");\n company = localStorage.getItem(\"companyId\");\n photo: any;\n Phone: any;\n Email: any;\n Fullname: any;\n Staffid: any;\n Address: any;\n frequencyList: any;\n loanCalculationMethodList: any;\n loanTypeList: any;\n myImage!: any;\n status: string = \"pending\";\n\n staffBiodataList: any;\n leaveTypeList: any;\n leaveIdNum: any;\n leaveData: any;\n isEditMode: boolean = false;\n leaveId: string;\n isEdit: boolean;\n\n public frmModel: FormGroup;\n public pipe = new DatePipe(\"en-US\");\n isLoading: boolean;\n\n constructor(\n private biodataSrv: BiodataService,\n private sanitizer: DomSanitizer,\n private formBuilder: FormBuilder,\n private alertify: AlertifyService,\n private eventService: EventService,\n private router: Router,\n private staffLeaveService: StaffLeaveService,\n private staffSrv: StaffbiodataService,\n private leavetypeSrv: LeaveService,\n private route: ActivatedRoute\n ) {\n this.initFormModel();\n // this.user = localStorage.getItem(\"userName\");\n // this.company = localStorage.getItem(\"companyId\");\n }\n\n ngOnInit(): void {\n this.getBiodata();\n this.bindCombo();\n\n this.leaveId = this.route.snapshot.paramMap.get(\"id\");\n\n this.route.queryParams.subscribe((params) => {\n this.selectedStatus = params[\"status\"];\n console.log(\"Selected Status:\", this.selectedStatus);\n\n if (this.leaveId) {\n this.isEditMode = true;\n this.loadLeaveDetails(this.leaveId);\n }\n });\n }\n\n loadLeaveDetails(leaveId: string) {\n this.staffLeaveService\n .getStaffLeave(this.userName, this.selectedStatus)\n .subscribe(\n (resp) => {\n this.leaveIdNum = parseInt(leaveId, 10);\n\n this.leaveData = resp.responseData.find(\n (leave) => leave.id === this.leaveIdNum\n );\n\n if (this.leaveData) {\n this.frmModel.patchValue({\n leaveTypeId: this.leaveData.leaveTypeId,\n relievingEmployeeId: this.leaveData.relievingEmployeeId,\n leaveStart: this.leaveData.leaveStart,\n leaveEnd: this.leaveData.leaveEnd,\n reason: this.leaveData.reason,\n leaveAmount: this.leaveData.leaveAmount,\n processPayment: this.leaveData.processPayment,\n includeInPayroll: this.leaveData.includeInPayroll,\n appliedDays: this.leaveData.appliedDays,\n process: this.leaveData.process,\n designatingOfficerId: this.leaveData.designatingOfficerId,\n recallDate: this.leaveData.recallDate,\n docFile: this.leaveData.docFile,\n docName: this.leaveData.docName,\n docize: this.leaveData.docize,\n docType: this.leaveData.docType,\n leaveEndOld: this.leaveData.leaveEndOld,\n });\n } else {\n console.error(`Leave with ID ${leaveId} not found.`);\n }\n },\n (error) => {\n console.error(\"Error fetching leave data:\", error);\n }\n );\n }\n\n initFormModel() {\n this.frmModel = this.formBuilder.group({\n employeeId: [this.userName, [Validators.required]],\n leaveTypeId: [\"\", [Validators.required]],\n relievingEmployeeId: [\"\", [Validators.required]],\n leaveStart: [\"\", [Validators.required]],\n leaveEnd: [\"\", [Validators.required]],\n reason: [\"\"],\n leaveAmount: 0,\n processPayment: true,\n includeInPayroll: true,\n appliedDays: 0,\n process: true,\n designatingOfficerId: [\"\", [Validators.required]],\n recallDate: [\"\"],\n docFile: \"\",\n docName: \"\",\n docize: 0,\n docType: \"\",\n leaveEndOld: [\"\"],\n });\n }\n\n getBiodata() {\n this.biodataSrv.getBiodata(this.userName).subscribe((res: any) => {\n console.log(res, \"Biodata response\");\n this.photo = res.passport;\n this.Phone = res.mobilePhone;\n this.Email = res.email;\n this.Fullname = res.fullName;\n this.Staffid = res.employeeId;\n this.Address = res.contactAddress;\n console.log(this.photo);\n this.myImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${this.photo}`\n );\n });\n }\n\n bindCombo() {\n this.staffSrv.getStaffBiodataAll(\"Active\", 1, 50).subscribe((res) => {\n this.staffBiodataList = res.responseData;\n console.log(this.staffBiodataList, \"me\");\n });\n this.leavetypeSrv.getLeaveTypeAll(\"Active\", 1, 50).subscribe((res) => {\n this.leaveTypeList = res.responseData;\n console.log(this.leaveTypeList, \"me\");\n });\n }\n\n onSubmit() {\n let model: AddStaffleaveModel = this.frmModel.value;\n console.log(JSON.stringify(model));\n this.isLoading = true;\n\n if (!this.isEditMode) {\n model.employeeId = this.userName;\n console.log(model.employeeId);\n model.createdBy = this.userName;\n model.status = \"pending\";\n\n this.staffLeaveService.createStaffLeave(model).subscribe(\n (res: any) => {\n this.isLoading = false;\n this.alertify.success(\"Employee Leave Created Successfully\");\n this.frmModel.reset();\n this.eventService.broadcast(EventServiceConstant.staffLeaveAdded, {\n result: res,\n hasError: false,\n });\n this.router.navigate([\"/self-service/home/leave-list\"]);\n },\n (error: any) => {\n this.isLoading = false;\n this.alertify.error(\"Failed to create Employee Leave\");\n }\n );\n } else {\n const patchOperations = this.preparePatchOperations(model);\n this.staffLeaveService\n .patchStaffLeave(this.leaveIdNum, patchOperations)\n .subscribe(\n (res: any) => {\n console.log(res);\n this.isLoading = false;\n this.alertify.success(\"Employee Leave Updated Successfully\");\n this.router.navigate([\"/self-service/home/leave-list\"]);\n this.eventService.broadcast(EventServiceConstant.staffLeaveAdded, {\n result: res,\n hasError: false,\n });\n },\n (error: any) => {\n this.isLoading = false;\n this.alertify.error(\"Failed to update Employee Leave\");\n }\n );\n }\n }\n\n preparePatchOperations(model: AddStaffleaveModel): Operation[] {\n const operations: Operation[] = [];\n\n const originalData = this.leaveData;\n\n for (const key in model) {\n if (model.hasOwnProperty(key)) {\n const originalValue = originalData[key];\n const newValue = model[key];\n\n if (originalValue !== newValue) {\n operations.push({\n path: `/${key}`,\n op: \"replace\",\n value: newValue !== undefined ? newValue.toString() : \"\",\n });\n }\n }\n }\n\n return operations;\n }\n\n reloadCurrentRoute() {\n let currentUrl = this.router.url;\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\n this.router.navigate([currentUrl]);\n });\n }\n}\n","import { Component, OnInit, ViewChild, TemplateRef } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { DataTableDirective } from \"angular-datatables\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { StaffloanService } from \"../../core/staffloan.service\";\nimport { AddStaffloanModel } from \"src/app/all-modules/loan/services/models/staffloan.model\";\nimport { EventService } from \"src/app/core/services/event.service\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\n\ndeclare const $: any;\n\n@Component({\n selector: \"app-loan-list\",\n templateUrl: \"./loan-list.component.html\",\n styleUrls: [\"./loan-list.component.css\"],\n})\nexport class LoanListComponent implements OnInit {\n filterObj = {\n status: \"active\",\n PageNumber: 1,\n PageSize: 10,\n };\n\n searchText: any;\n user: any;\n estimatesEntries: any;\n selectedStatus: string = \"pending\";\n status: string = \"pending\";\n\n @ViewChild(\"content\") modalContent: TemplateRef;\n private history: string[] = [];\n @ViewChild(DataTableDirective, { static: false })\n public dtElement: DataTableDirective;\n public dtOptions: DataTables.Settings = {};\n public estimates: any;\n public id;\n public dtTrigger: Subject = new Subject();\n fromParentId: number;\n staffLoanModel: AddStaffloanModel;\n subscription: Subscription;\n isEdit: boolean;\n constructor(\n private router: Router,\n private api: StaffloanService,\n private alertify: AlertifyService,\n private eventService: EventService,\n private modalService: NgbModal\n ) {\n this.user = localStorage.getItem(\"userName\");\n }\n\n ngOnInit() {\n this.dtOptions = {\n // ... skipped ...\n pageLength: 10,\n dom: \"lrtip\",\n };\n\n this.refreshData();\n this.loadStaffLoan();\n }\n\n deleteEstimate(estimate) {\n this.id = estimate.id;\n }\n\n loadStaffLoan() {\n this.api.getStaffLoan(this.user, this.selectedStatus).subscribe((resp) => {\n this.estimates = resp.responseData.filter(\n (item: any) => item.status === \"active\" || item.status === \"pending\"\n );\n console.log(this.estimates);\n console.log(resp);\n });\n }\n\n onPrevious() {\n this.filterObj.PageNumber--;\n this.filterData();\n }\n\n onNext() {\n this.filterObj.PageNumber++;\n this.filterData();\n }\n\n filterData() {\n this.api.getStaffLoan(this.user, this.selectedStatus).subscribe((resp) => {\n this.estimates = resp.responseData;\n });\n }\n\n delete() {\n let id: any = Number(this.id);\n this.api.deleteStaffLoan(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Staff Loan Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Staff Loan\");\n }\n\n this.loadStaffLoan();\n });\n }\n\n refreshData() {\n const that = this;\n this.dtOptions = {\n pagingType: \"full_numbers\",\n pageLength: 10,\n serverSide: true,\n searching: false,\n //processing: true,\n autoWidth: false,\n ajax: (dataTablesParameters: any, callback) => {\n console.log(dataTablesParameters);\n let pageNo =\n dataTablesParameters.start == 0\n ? 1\n : dataTablesParameters.start / dataTablesParameters.length + 1;\n let pageLength = dataTablesParameters.length;\n\n that.api\n .getStaffLoan(this.user, this.selectedStatus)\n .subscribe((resp) => {\n that.estimates = resp.responseData;\n\n callback({\n recordsTotal: resp.recordLength,\n recordsFiltered: resp.recordLength,\n data: [],\n });\n });\n },\n\n dom: \"lBfrtip\",\n };\n }\n\n onEdit(loanId: string): void {\n this.router.navigate([\"/self-service/home/loan/edit\", loanId], {\n queryParams: { status: this.selectedStatus },\n });\n }\n\n onStatusChange(): void {\n this.loadStaffLoan();\n this.filterData();\n this.refreshData();\n }\n}\n","import { Component, OnInit, Input } from \"@angular/core\";\nimport { BiodataService } from \"../../core/biodata.service\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { DatePipe } from \"@angular/common\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { EventServiceConstant } from \"src/app/core/utitlity/smart.util\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { LoancalculationmethodService } from \"src/app/all-modules/loan/services/loancalculationmethod.service\";\nimport { LoantypeService } from \"src/app/all-modules/loan/services/loantype.service\";\nimport { FrequencyService } from \"src/app/all-modules/settings/_services/frequency.service\";\nimport { AddStaffloanModel } from \"src/app/all-modules/loan/services/models/staffloan.model\";\nimport { EventService } from \"src/app/core/services/event.service\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { StaffloanService } from \"../../core/staffloan.service\";\nimport { Operation } from \"fast-json-patch\";\n\n@Component({\n selector: \"app-loan\",\n templateUrl: \"./loan.component.html\",\n styleUrls: [\"./loan.component.css\"],\n})\nexport class LoanComponent implements OnInit {\n @Input() staffLoanModel: AddStaffloanModel;\n @Input() fromParentId: number;\n userName = localStorage.getItem(\"userName\");\n company = localStorage.getItem(\"companyId\");\n photo: any;\n Phone: any;\n Email: any;\n Fullname: any;\n Staffid: any;\n Address: any;\n frequencyList: any;\n loanCalculationMethodList: any;\n loanTypeList: any;\n myImage!: any;\n selectedStatus: string = \"pending\";\n status: string = \"pending\";\n loanIdNum: any;\n loanData: any;\n isEditMode: boolean = false;\n loanId: string;\n isEdit: boolean;\n\n public frmModel: FormGroup;\n public pipe = new DatePipe(\"en-US\");\n isLoading: boolean;\n\n constructor(\n private biodataSrv: BiodataService,\n private loanCalculationMethodService: LoancalculationmethodService,\n private loanTypeService: LoantypeService,\n private frequencyService: FrequencyService,\n private sanitizer: DomSanitizer,\n private formBuilder: FormBuilder,\n private alertify: AlertifyService,\n private eventService: EventService,\n private router: Router,\n private staffLoanService: StaffloanService,\n private route: ActivatedRoute\n ) {\n this.initFormModel();\n }\n\n ngOnInit(): void {\n this.getBiodata();\n this.bindCombo();\n this.userName;\n console.log(this.userName);\n\n this.loanId = this.route.snapshot.paramMap.get(\"id\");\n\n this.route.queryParams.subscribe((params) => {\n this.selectedStatus = params[\"status\"];\n console.log(\"Selected Status:\", this.selectedStatus);\n\n if (this.loanId) {\n this.isEditMode = true;\n this.loadLoanDetails(this.loanId);\n }\n });\n }\n\n loadLoanDetails(loanId: string) {\n this.staffLoanService\n .getStaffLoan(this.userName, this.selectedStatus)\n .subscribe(\n (resp) => {\n this.loanIdNum = parseInt(loanId, 10);\n\n this.loanData = resp.responseData.find(\n (loan) => loan.id === this.loanIdNum\n );\n\n if (this.loanData) {\n this.frmModel.patchValue({\n // employeeId: this.loanData.employeeId,\n employeeId: this.userName,\n loanTypeId: this.loanData.loanTypeId,\n frequency: this.loanData.frequency,\n calcMethodId: this.loanData.calcMethodId,\n amountTaken: this.loanData.amountTaken,\n totalInterest: this.loanData.totalInterest,\n startDate: this.loanData.startDate,\n endDate: this.loanData.endDate,\n duration: this.loanData.duration,\n rate: this.loanData.rate,\n totalPrincipalPaid: this.loanData.totalPrincipalPaid,\n totalInterestpaid: this.loanData.totalInterestpaid,\n noOfPayment: this.loanData.noOfPayment,\n loanAcctNo: this.loanData.loanAcctNo,\n });\n } else {\n console.error(`Loan with ID ${loanId} not found.`);\n }\n },\n (error) => {\n console.error(\"Error fetching loan data:\", error);\n }\n );\n }\n\n initFormModel() {\n this.frmModel = this.formBuilder.group({\n employeeId: [this.userName, [Validators.required]],\n frequency: [\"\", [Validators.required]],\n loanTypeId: [\"\", [Validators.required]],\n amountTaken: [\"\", [Validators.required]],\n totalInterest: [\"\", [Validators.required]],\n duration: [\"\", [Validators.required]],\n rate: [\"\", [Validators.required]],\n startDate: [\"\", [Validators.required]],\n endDate: [\"\", [Validators.required]],\n totalPrincipalPaid: [\"\", []],\n totalInterestpaid: [\"\", []],\n noOfPayment: [\"\", [Validators.required]],\n loanAcctNo: [\"\", [Validators.required]],\n deduct: [\"true\", []],\n process: [\"true\", []],\n calcMethodId: [\"\", [Validators.required]],\n });\n }\n\n getBiodata() {\n this.biodataSrv.getBiodata(this.userName).subscribe((res: any) => {\n console.log(res, \"Biodata response\");\n this.photo = res.passport;\n this.Phone = res.mobilePhone;\n this.Email = res.email;\n this.Fullname = res.fullName;\n this.Staffid = res.employeeId;\n this.Address = res.contactAddress;\n console.log(this.photo);\n this.myImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${this.photo}`\n );\n });\n }\n\n bindCombo() {\n this.loanCalculationMethodService\n .getLoanCalculationMethodAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.loanCalculationMethodList = res.responseData;\n console.log(this.loanCalculationMethodList, \"me\");\n });\n this.loanTypeService.getLoanTypeAll(\"Active\", 1, 50).subscribe((res) => {\n this.loanTypeList = res.responseData;\n console.log(this.loanTypeList, \"me\");\n });\n this.frequencyService\n .getAllFrequencies(\"Active\", 1, 50)\n .subscribe((res) => {\n this.frequencyList = res.responseData;\n console.log(this.frequencyList, \"me\");\n });\n }\n\n onSubmit() {\n let model: AddStaffloanModel = this.frmModel.value;\n console.log(JSON.stringify(model));\n this.isLoading = true;\n\n if (!this.isEditMode) {\n model.employeeId = this.userName;\n console.log(model.employeeId);\n model.createdBy = this.userName;\n model.status = \"pending\";\n\n this.staffLoanService.createStaffLoan(model).subscribe(\n (res: any) => {\n this.isLoading = false;\n this.alertify.success(\"Employee Loan Created Successfully\");\n this.frmModel.reset();\n this.eventService.broadcast(EventServiceConstant.staffLoanAdded, {\n result: res,\n hasError: false,\n });\n this.router.navigate([\"/self-service/home/loan-list\"]);\n },\n (error: any) => {\n this.isLoading = false;\n this.alertify.error(\"Failed to create Employee Loan\");\n }\n );\n } else {\n const patchOperations = this.preparePatchOperations(model);\n this.staffLoanService\n .patchStaffLoan(this.loanIdNum, patchOperations)\n .subscribe(\n (res: any) => {\n console.log(res);\n this.isLoading = false;\n this.alertify.success(\"Employee Loan Updated Successfully\");\n this.router.navigate([\"/self-service/home/loan-list\"]);\n this.eventService.broadcast(EventServiceConstant.staffLoanAdded, {\n result: res,\n hasError: false,\n });\n },\n (error: any) => {\n this.isLoading = false;\n this.alertify.error(\"Failed to update Employee Loan\");\n }\n );\n }\n }\n\n preparePatchOperations(model: AddStaffloanModel): Operation[] {\n const operations: Operation[] = [];\n\n const originalData = this.loanData;\n console.log(this.loanData);\n for (const key in model) {\n if (model.hasOwnProperty(key)) {\n const originalValue = originalData[key];\n const newValue = model[key];\n\n if (originalValue !== newValue) {\n operations.push({\n path: `/${key}`,\n op: \"replace\",\n value: newValue !== undefined ? newValue.toString() : \"\",\n });\n }\n }\n }\n\n return operations;\n }\n\n reloadCurrentRoute() {\n let currentUrl = this.router.url;\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\n this.router.navigate([currentUrl]);\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AccountService } from '../../core/account.service';\nimport { Router } from '@angular/router';\nimport { environment } from \"src/environments/environment\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { AlertifyService } from 'src/app/all-modules/settings/_services/alertify.service';\n\n@Component({\n selector: \"app-login\",\n templateUrl: \"./login.component.html\",\n styleUrls: [\"./login.component.css\"],\n})\nexport class LoginComponent implements OnInit {\n public Toggledata = true;\n\n selectedCompany: string = \"\";\n companyList: any;\n\n loginObj: any = {\n EmployeeId: \"\",\n password: \"\",\n companyCode: \"\",\n };\n\n constructor(\n private accountSrv: AccountService,\n private router: Router,\n private http: HttpClient,\n private alertify: AlertifyService\n ) {}\n\n ngOnInit(): void {\n this.bindCombo();\n }\n\n bindCombo() {\n return this.http\n .get(\n `${environment.apiBaseURI}/Authentication/multicompany?status=active&PageNumber=1&PageSize=50`,\n {}\n )\n .subscribe((res) => {\n this.companyList = res.responseData;\n console.log(res, \"me\");\n });\n }\n\n onLogin() {\n // Make sure the selectedCompany value is properly set\n this.loginObj.companyCode = this.selectedCompany;\n\n this.accountSrv.onLogin(this.loginObj).subscribe(\n (res: any) => {\n console.log(\"res\", res);\n localStorage.setItem(\"userName\", res.refreshToken.userName);\n localStorage.setItem(\"user\", res.userName);\n localStorage.setItem(\"LoginData\", res.accessToken);\n localStorage.setItem(\"refreshtoken\", res.refreshToken.tokenString);\n localStorage.setItem(\"companylogo\", res.companylogo);\n localStorage.setItem(\"companyId\", res.companyId);\n console.log(localStorage.getItem(\"LoginData\"));\n console.log(localStorage.getItem(\"userName\"));\n console.log(localStorage.getItem(\"refreshtoken\"));\n console.log(localStorage.getItem(\"companylogo\"));\n console.log(localStorage.getItem(\"companyId\"));\n this.router.navigateByUrl(\"self-service/home/dashboard\");\n },\n (error) => {\n console.error(\"Login failed\", error);\n this.alertify.error(\"Invalid login credentials\");\n }\n );\n }\n\n iconLogle() {\n this.Toggledata = !this.Toggledata;\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n AfterViewInit,\n Input,\n HostListener,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { AllModulesService } from \"src/app/all-modules/all-modules.service\";\nimport { DatePipe } from \"@angular/common\";\nimport { Subject } from \"rxjs\";\nimport { DataTableDirective } from \"angular-datatables\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { PayrollService } from \"src/app/all-modules/payroll/_services/payroll.service\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { StaffbiodataService } from \"src/app/all-modules/hrm/services/staffbiodata.service\";\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\nimport { NgbDateStruct, NgbCalendar } from \"@ng-bootstrap/ng-bootstrap\";\ndeclare const $: any;\nimport _ from \"lodash\";\n// const _ = require('lodash');\nimport { PayslipService } from \"../../core/payslip.service\";\n\n@Component({\n selector: \"app-payslip\",\n templateUrl: \"./payslip.component.html\",\n styleUrls: [\"./payslip.component.css\"],\n})\nexport class PayslipComponent implements OnInit {\n isNewDiv: boolean = false;\n model: NgbDateStruct;\n date: { year: number; month: number };\n\n generateButtonClicked = false;\n\n // tabs: string[] = [\"Single\", \"Multiple\"];\n tabs: string[] = [\"Single\"];\n activatedTabIndex: number = 0;\n\n payrolldata: any;\n payrolldata2: any;\n month!: any;\n year!: any;\n changedMonth: any;\n changedYear: any;\n staffList: any;\n employeeId: any;\n\n fromdate!: any;\n todate!: any;\n changedFromDate: any;\n changedToDate: any;\n reportdata: any;\n summarizedData?: any;\n groupedByMonth?: any;\n\n //Payslip Variables\n referenceId: any;\n staffName: any;\n deptName: any;\n createdDate: any;\n levelDesc: any;\n pay_Month: any;\n pay_Year: any;\n staffTypeCode: any;\n staffAcctNo: any;\n jobDescription: any;\n phoneNo: any;\n companyName: any;\n companyPhoneNo: any;\n companyEmail: any;\n earningDescription: any;\n earningAmount: any;\n deductionDescription: any;\n deductionAmount: any;\n\n //Filter\n earning: any;\n deduction: any;\n monthFilter: any;\n\n //Salary Calculation\n totalEarning: any;\n totalDeductable: any;\n netPayment: any;\n netPaymentInword: any;\n sumTotalEarning: any;\n sumTotalDeduction: any;\n netSalary: any;\n\n consolidatedEarnings = [];\n consolidatedDeductions = [];\n // let totalEarning = 0;\n // let totalDeductable = 0;\n // let netPayment = 0;\n\n user = localStorage.getItem(\"userName\");\n\n private history: string[] = [];\n @ViewChild(DataTableDirective, { static: false })\n public dtElement: DataTableDirective;\n public dtOptions: DataTables.Settings = {};\n public estimates: any;\n public id;\n public rows = [];\n public srch = [];\n public pipe = new DatePipe(\"en-US\");\n public dtTrigger: Subject = new Subject();\n public frmModel: FormGroup;\n constructor(\n private router: Router,\n private payslipSrv: PayslipService,\n private alertify: AlertifyService,\n private route: ActivatedRoute,\n private formBuilder: FormBuilder,\n private staffSrv: StaffbiodataService,\n private calendar: NgbCalendar\n ) {}\n\n ngOnInit() {\n this.bindCombo();\n // let user = localStorage.getItem(\"userName\");\n console.log(this.user);\n }\n\n selectToday() {\n this.model = this.calendar.getToday();\n }\n\n bindCombo() {\n this.staffSrv.getStaffBiodataAll(\"Active\", 1, 50).subscribe((res) => {\n this.staffList = res.responseData;\n console.log(this.staffList, \"me\");\n });\n }\n\n getStaff() {}\n\n reloadCurrentRoute() {\n let currentUrl = this.router.url;\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\n this.router.navigate([currentUrl]);\n });\n }\n\n // for unsubscribe datatable\n ngOnDestroy(): void {\n // Do not forget to unsubscribe the event\n this.dtTrigger.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n this.dtTrigger.next(null);\n }\n\n changedMonthFormat(month) {\n let ChangedFormat = this.pipe.transform(this.month, \"MM\");\n this.changedMonth = ChangedFormat;\n console.log(this.changedMonth);\n }\n\n changedYearFormat(year) {\n let ChangedFormat = this.pipe.transform(this.year, \"YYYY\");\n this.changedYear = ChangedFormat;\n console.log(this.changedYear);\n }\n\n changedFromDateFormat(fromdate) {\n let ChangedFormat = this.pipe.transform(this.fromdate, \"YYYY-MM-dd\");\n this.changedFromDate = ChangedFormat;\n console.log(this.changedFromDate);\n }\n\n changedToDateFormat(todate) {\n let ChangedFormat = this.pipe.transform(this.todate, \"YYYY-MM-dd\");\n this.changedToDate = ChangedFormat;\n console.log(this.changedToDate);\n }\n\n GeneratePayslip() {\n this.generateButtonClicked = true;\n this.payslipSrv\n .GeneratePayslip(this.user, this.date.month, this.date.year)\n .subscribe((res) => {\n this.payrolldata = res.responseData;\n\n this.staffName = this.payrolldata[0].staffName;\n this.employeeId = this.payrolldata[0].employeeId;\n this.deptName = this.payrolldata[0].deptName;\n this.createdDate = this.payrolldata[0].createdDate;\n this.levelDesc = this.payrolldata[0].levelDesc;\n this.pay_Month = this.payrolldata[0].pay_Month;\n this.pay_Year = this.payrolldata[0].pay_Year;\n this.staffTypeCode = this.payrolldata[0].staffTypeCode;\n this.staffAcctNo = this.payrolldata[0].staffAcctNo;\n this.referenceId = this.payrolldata[0].referenceId;\n this.jobDescription = this.payrolldata[0].jobDescription;\n this.phoneNo = this.payrolldata[0].phoneNo;\n this.companyName = this.payrolldata[0].companyName;\n this.companyPhoneNo = this.payrolldata[0].companyPhoneNo;\n this.companyEmail = this.payrolldata[0].companyEmail;\n\n this.totalEarning = this.payrolldata[0].totalEarning;\n this.totalDeductable = this.payrolldata[0].totalDeductable;\n this.netPayment = this.totalEarning - this.totalDeductable;\n\n // console.log(this.payrolldata)\n // for (let i = 0; i < this.payrolldata.length; i++) {\n // if (this.payrolldata[i].earning) {\n // this.consolidatedEarnings.push(...this.payrolldata[i].earning);\n\n // for (let earning of this.payrolldata[i].earning) {\n // this.totalEarning += earning.amount;\n // }\n // }\n // }\n\n // console.log(\"Total Earnings:\", this.totalEarning);\n // for (let i = 0; i < this.payrolldata.length; i++) {\n // if (this.payrolldata[i].deductable) {\n // this.consolidatedDeductions.push(...this.payrolldata[i].deductable);\n\n // for (let deductable of this.payrolldata[i].deductable) {\n // this.totalDeductable += deductable.amount;\n // }\n // }\n // }\n\n // console.log(\"Total Deductable:\", this.totalDeductable);\n\n // this.totalEarning = this.payrolldata[0].totalEarning;\n // this.totalDeductable = this.payrolldata[0].totalDeductable;\n // this.netPayment = this.totalEarning - this.totalDeductable;\n\n // const lastArrayIndex = this.payrolldata.length - 1;\n // this.totalEarning = this.payrolldata[lastArrayIndex].totalEarning;\n // this.totalDeductable = this.payrolldata[lastArrayIndex].totalDeductable;\n // this.netPayment = this.totalEarning - this.totalDeductable;\n });\n }\n\n PrintPayslip() {\n var data = document.getElementById(\"content\");\n html2canvas(data).then((canvas) => {\n // Few necessary setting options\n var imgWidth = 208;\n var pageHeight = 295;\n var imgHeight = (canvas.height * imgWidth) / canvas.width;\n var heightLeft = imgHeight;\n\n const contentDataURL = canvas.toDataURL(\"image/png\");\n let pdf = new jsPDF(\"p\", \"mm\", \"a4\"); // A4 size page of PDF\n // const pdf = new jsPDF();\n var position = 0;\n pdf.addImage(contentDataURL, \"PNG\", 0, position, imgWidth, imgHeight);\n pdf.save(\"payslip.pdf\"); // Generated PDF\n });\n this.reloadCurrentRoute(); \n }\n\n PrintPayslip2() {\n const data = document.getElementById(\"content\");\n html2canvas(data).then((canvas: any) => {\n const imgWidth = 208;\n const pageHeight = 295;\n const imgHeight = (canvas.height * imgWidth) / canvas.width;\n let heightLeft = imgHeight;\n let position = 0;\n heightLeft -= pageHeight;\n const doc = new jsPDF(\"p\", \"mm\");\n doc.addImage(canvas, \"PNG\", 0, position, imgWidth, imgHeight, \"\", \"FAST\");\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(\n canvas,\n \"PNG\",\n 0,\n position,\n imgWidth,\n imgHeight,\n \"\",\n \"FAST\"\n );\n heightLeft -= pageHeight;\n }\n doc.save(\"payslip.pdf\");\n });\n }\n\n tabChange(tabIndex: number) {\n this.activatedTabIndex = tabIndex;\n }\n\n GetMultiplePayslip() {\n this.payslipSrv\n .GeneratePayslip3(this.changedFromDate, this.changedToDate, this.user)\n .subscribe((res) => {\n this.reportdata = res.responseData;\n console.log(this.reportdata);\n\n this.groupedByMonth = _.groupBy(this.reportdata, \"pay_Month\");\n console.log(this.groupedByMonth);\n\n //Delete starts from Here\n // Group the payroll data by employee, pay month, and pay year\n const groupedData = _.groupBy(this.reportdata, (item) => {\n return `${item.employeeId}-${item.pay_Month}-${item.pay_Year}-${item.staffName}-${item.deptName}-${item.companyName}-${item.companyPhoneNo}-${item.companyEmail}-${item.referenceId}`;\n });\n\n // Summarize the earnings and deductions for each employee and month\n this.summarizedData = _.map(groupedData, (group) => {\n const employeeId = group[0].employeeId;\n const staffName = group[0].staffName;\n const departmentName = group[0].deptName;\n const companyName = group[0].companyName;\n const companyPhoneNo = group[0].companyPhoneNo;\n const companyEmail = group[0].companyEmail;\n const referenceId = group[0].referenceId;\n\n const payMonth = group[0].pay_Month;\n const payYear = group[0].pay_Year;\n\n let totalEarnings = 0;\n let totalDeductions = 0;\n\n group.forEach((item) => {\n item.earning.forEach((earning) => {\n totalEarnings += earning.amount;\n });\n\n item.deductable.forEach((deduction) => {\n totalDeductions += deduction.amount;\n });\n });\n\n return {\n employeeId,\n staffName,\n departmentName,\n companyName,\n companyPhoneNo,\n companyEmail,\n referenceId,\n payMonth,\n payYear,\n totalEarnings,\n totalDeductions,\n };\n });\n\n this.earning = this.reportdata.filter((obj) => {\n return obj.payItemType == \"A\";\n });\n console.log(this.earning, \"Earning\");\n\n this.deduction = this.reportdata.filter((obj) => {\n return obj.payItemType == \"D\";\n });\n console.log(this.deduction, \"Deduction\");\n\n console.log(this.summarizedData);\n\n const pdf = new jsPDF();\n });\n\n //Delete Ends Here\n }\n\n getMonths(): string[] {\n return Object.keys(this.groupedByMonth);\n }\n\n getPayslips(month: string) {\n return this.groupedByMonth[month] || [];\n }\n\n // Calculate totalEarning, totalDeductable, and netSalary for a given month\n calculateTotalsForMonth(month: string): {\n totalEarning: number;\n totalDeductable: number;\n netSalary: number;\n } {\n const payslips = this.getPayslips(month);\n\n const totalEarning = payslips.reduce(\n (total, payslip) => total + payslip.totalEarning,\n 0\n );\n const totalDeductable = payslips.reduce(\n (total, payslip) => total + payslip.totalDeductable,\n 0\n );\n const netSalary = totalEarning - totalDeductable;\n\n return { totalEarning, totalDeductable, netSalary };\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\n@Component({\n selector: 'app-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.css']\n})\nexport class SidenavComponent implements OnInit {\n\n urlComplete = {\n mainUrl: \"\",\n subUrl: \"\",\n childUrl: \"\",\n };\n\n sidebarMenus = {\n default: true,\n chat: false,\n settings: false,\n };\n\n @Input() sideNavStatus: boolean = false;\n\n list = [\n {\n number: '1',\n name: 'Dashboard',\n icon: 'fa fa-tachometer',\n link: 'dashboard',\n },\n {\n number: '2',\n name: 'Biodata',\n icon: 'fa fa-address-book',\n link: 'staff-setup',\n },\n {\n number: '3',\n name: 'Payslip',\n icon: 'fa fa-money',\n link: 'payslip',\n },\n // {\n // number: '4',\n // name: 'Leave',\n // icon: 'fa fa-leaf',\n // link: 'leave',\n // },\n // {\n // number: '5',\n // name: 'Cooperative',\n // icon: 'fa fa-handshake-o',\n // link: 'cooperative',\n // },\n // {\n // number: '6',\n // name: 'Loan',\n // icon: 'fa fa-credit-card',\n // link: 'loan',\n // },\n // {\n // number: '7',\n // name: 'Staff Exit',\n // icon: 'fa fa-external-link',\n // link: 'staff-exit',\n // },\n // {\n // number: '8',\n // name: 'HMO',\n // icon: 'fa fa-medkit',\n // link: 'hmo',\n // },\n ];\n\n constructor(\n\n ) {\n\n }\n\n\n\n ngOnInit() {\n\n\n }\n\n\n\n}\n\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-staff-exit',\n templateUrl: './staff-exit.component.html',\n styleUrls: ['./staff-exit.component.css']\n})\nexport class StaffExitComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {\n Component,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n} from \"@angular/core\";\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n FormArray,\n FormControl,\n ControlContainer,\n} from \"@angular/forms\";\nimport { Router, ActivatedRoute, Params } from \"@angular/router\";\nimport { AllModulesService } from \"src/app/all-modules/all-modules.service\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { of } from \"rxjs\";\nimport { DatePipe } from \"@angular/common\";\nimport { DataTableDirective } from \"angular-datatables\";\nimport { Observable, Subject, Subscriber } from \"rxjs\";\nimport { NavigationService } from \"src/app/all-modules/settings/_services/navigation.service\";\nimport { EventService } from \"src/app/core/services/event.service\";\nimport { EventServiceConstant } from \"src/app/core/utitlity/smart.util\";\nimport { TitleService } from \"src/app/all-modules/hrm/services/title.service\";\nimport { MaritalstatusService } from \"src/app/all-modules/hrm/services/maritalstatus.service\";\nimport { CountryService } from \"src/app/all-modules/hrm/services/country.service\";\nimport { StateService } from \"src/app/all-modules/hrm/services/state.service\";\nimport { CityService } from \"src/app/all-modules/hrm/services/city.service\";\nimport { StaffService } from \"src/app/all-modules/hrm/services/staff.service\";\nimport { GradeService } from \"src/app/all-modules/hrm/services/grade.service\";\nimport { NotchService } from \"src/app/all-modules/hrm/services/notch.service\";\nimport { BranchService } from \"src/app/all-modules/hrm/services/branch.service\";\nimport { DepartmentService } from \"src/app/all-modules/hrm/services/department.service\";\nimport { DepartmentunitService } from \"src/app/all-modules/hrm/services/departmentunit.service\";\nimport { JobdeskService } from \"src/app/all-modules/hrm/services/jobdesk.service\";\nimport { PositionService } from \"src/app/all-modules/hrm/services/position.service\";\nimport { PfaService } from \"src/app/all-modules/hrm/services/pfa.service\";\nimport { EducationlevelService } from \"src/app/all-modules/hrm/services/educationlevel.service\";\nimport { EducationqualificationService } from \"src/app/all-modules/hrm/services/educationqualification.service\";\nimport { QualificationclassService } from \"src/app/all-modules/hrm/services/qualificationclass.service\";\nimport { ContenttypeService } from \"src/app/all-modules/hrm/services/contenttype.service\";\nimport { HmohospitalService } from \"src/app/all-modules/hmo/services/hmohospital.service\";\nimport { HmoplanService } from \"src/app/all-modules/hmo/services/hmoplan.service\";\nimport { AddStaffModel, StaffBioData } from \"src/app/all-modules/hrm/services/models/staff.model\";\nimport { SmartUtil } from \"src/app/core/utitlity/smart.util\";\nimport { AlertifyService } from \"src/app/all-modules/settings/_services/alertify.service\";\nimport { StaffbiodataService } from \"src/app/all-modules/hrm/services/staffbiodata.service\";\nimport { StaffeducationService } from \"src/app/all-modules/hrm/services/staffeducation.service\";\nimport { StaffworkService } from \"src/app/all-modules/hrm/services/staffwork.service\";\nimport { StaffprofessionalService } from \"src/app/all-modules/hrm/services/staffprofessional.service\";\nimport { StaffrefereeService } from \"src/app/all-modules/hrm/services/staffreferee.service\";\nimport { StaffchildrenService } from \"src/app/all-modules/hrm/services/staffchildren.service\";\nimport { AddStaffbiodataModel } from \"src/app/all-modules/hrm/services/models/staffbiodata.model\";\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\nimport { applyPatch, compare, Operation, validator } from \"fast-json-patch\";\nimport { AddStaffeducationModel } from \"src/app/all-modules/hrm/services/models/staffeducation.model\";\nimport { AddStaffworkModel } from \"src/app/all-modules/hrm/services/models/staffwork.model\";\nimport { AddStaffprofessionalModel } from \"src/app/all-modules/hrm/services/models/staffprofessional.model\";\nimport { AddStaffchildrenModel } from \"src/app/all-modules/hrm/services/models/staffchildren.model\";\nimport { AddStaffrefereeModel } from \"src/app/all-modules/hrm/services/models/staffreferee.model\";\nimport { HrcommonserviceService } from \"src/app/all-modules/hrm/services/hrcommonservice.service\";\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\";\nimport { StaffcvService } from 'src/app/all-modules/hrm/services/staffcv.service';\nimport { BankService } from \"src/app/all-modules/settings/_services/bank.service\";\nimport { DataService } from \"src/app/all-modules/hrm/services/data.service\";\nimport { get } from \"jquery\";\nimport { BiodataService } from \"../../core/biodata.service\";\nimport { AcademicService } from \"../../core/academic.service\";\nimport { WorkService } from \"../../core/work.service\";\nimport { ProfessionService } from \"../../core/profession.service\";\nimport { RefereeService } from \"../../core/referee.service\";\nimport { ChildrenService } from \"../../core/children.service\";\nimport { CvService } from \"../../core/cv.service\";\n\n@Component({\n selector: 'app-staff-setup',\n templateUrl: './staff-setup.component.html',\n styleUrls: ['./staff-setup.component.css']\n})\nexport class StaffSetupComponent implements OnInit {\n\n user = localStorage.getItem(\"userName\");\n\n selectedItem: any;\n academicData: any;\n workData: any;\n professionalData: any;\n refereeData: any;\n childrenData: any;\n cVData: any;\n currentIndex = 0;\n\n filterObj = {\n status: \"active\",\n PageNumber: 1,\n PageSize: 10,\n };\n\n onPrevious() {\n this.filterObj.PageNumber--;\n this.filterData();\n }\n\n onNext() {\n this.filterObj.PageNumber++;\n this.filterData();\n }\n\n filterData() {\n this.staffBiodataService\n .getStaffBiodataAll(\n \"active\",\n this.filterObj.PageNumber,\n this.filterObj.PageSize\n )\n .subscribe((resp) => {\n this.employeeList = resp.responseData;\n });\n }\n\n searchText: any;\n\n @Input() staffBiodataModel: AddStaffbiodataModel;\n @Input() fromParentId: number;\n tabs: string[] = [\n \"Personal Info\",\n \"Educational Info\",\n \"Work Experience\",\n \"Professional Qualification\",\n \"Referee Info\",\n \"Children Info\",\n \"Employee CV\",\n ];\n activatedTabIndex: number = 0;\n data: any;\n\n payload: any;\n staffimage: any;\n spouseimage: any;\n childrenimage: any;\n myImage!: any;\n // myImage!: Observable;\n base64code!: any;\n // spouseImage!: Observable;\n spouseImage!: any;\n spousebase64code!: any;\n childrenImage!: any;\n childrenbase64code!: any;\n compressedBase64!: any;\n spousecompressedBase64!: any;\n childrencompressedBase64!: any;\n employeeIdValue: any;\n childrenImages: string[] = [];\n // childrenImage: SafeUrl;\n childrenPhotos:SafeUrl[] = [];\n\n //Declare variable\n isNewDiv: boolean = false;\n\n isClickedOnce = false;\n statusdata: any; //data for select\n personalresp: any;\n educationalresp: any;\n workresp: any;\n professionalresp: any;\n refereeresp: any;\n nokresp: any;\n childrenresp: any;\n cvresp: any;\n isEdit: boolean;\n empSelected: Number;\n\n educationList: any;\n workList: any;\n professionList: any;\n refereeList: any;\n childrenList: any;\n cvList: any;\n cvdata: any;\n cvFile: any;\n fileSiz: any;\n contentTyp: any;\n cvid: number;\n academicid: number;\n workid: number;\n professionid: number;\n refereeid: number;\n childrenid: number;\n\n //Forms\n // staffForm: FormGroup;\n academicForm: FormGroup;\n workForm: FormGroup;\n professionForm: FormGroup;\n refereeForm: FormGroup;\n childrenForm: FormGroup;\n cvForm: FormGroup;\n\n @ViewChild(\"content\") modalContent: TemplateRef;\n @ViewChild(\"workcontent\") workmodalContent: TemplateRef;\n @ViewChild(\"professionalcontent\") professionalmodalContent: TemplateRef;\n @ViewChild(\"refereecontent\") refereemodalContent: TemplateRef;\n @ViewChild(\"childrencontent\") childrenmodalContent: TemplateRef;\n staffEducationModel: AddStaffeducationModel;\n staffWorkModel: AddStaffworkModel;\n staffProfessionalModel: AddStaffprofessionalModel;\n staffRefereeModel: AddStaffrefereeModel;\n staffChildrenModel: AddStaffchildrenModel;\n public frmStaffModel: FormGroup;\n public frmRefereeModel: FormGroup;\n public frmChildrenModel: FormGroup;\n public pipe = new DatePipe(\"en-US\");\n public id;\n titleList: any;\n maritalStatusList: any;\n bankList: any;\n countryList: any;\n stateList: any;\n stateList2: any;\n kinStateList: any;\n cityList: any;\n branchList: any;\n staffTypeList: any;\n gradeList: any;\n notchList: any;\n departmentList: any;\n departmentUnitList: any;\n jobDeskList: any;\n positionList: any;\n pfaList: any;\n educationLevelList: any;\n educationQualificationList: any;\n qualificationClassList: any;\n contentTypeList: any;\n academicList: any;\n staffworkList: any[] = [];\n staffprofessionalList: any[] = [];\n staffrefereeList: any[] = [];\n staffchildrenList: any[] = [];\n professionalList: any;\n employeeList: any[] = [];\n employeeObj: any;\n hmoHospitalList: any;\n hmoPlanList: any;\n isLoading: boolean;\n constructor(\n private formBuilder: FormBuilder,\n private builder: FormBuilder,\n private titleService: TitleService,\n private maritalStatusService: MaritalstatusService,\n private countryService: CountryService,\n private stateService: StateService,\n private cityService: CityService,\n private staffService: StaffService,\n private gradeService: GradeService,\n private notchService: NotchService,\n private staffEducationService: StaffeducationService,\n private staffWorkService: StaffworkService,\n private staffProfessionalService: StaffprofessionalService,\n private staffRefereeService: StaffrefereeService,\n private staffChildrenService: StaffchildrenService,\n private branchService: BranchService,\n private departmentService: DepartmentService,\n private departmentUnitService: DepartmentunitService,\n private jobDeskService: JobdeskService,\n private positionService: PositionService,\n private pfaService: PfaService,\n private modalService: NgbModal,\n private router: Router,\n private eventService: EventService,\n private educationLevelService: EducationlevelService,\n private educationQualificationService: EducationqualificationService,\n private qualificationClassService: QualificationclassService,\n private contentTypeService: ContenttypeService,\n private hmoHospitalService: HmohospitalService,\n private staffBiodataService: StaffbiodataService,\n private hmoPlanService: HmoplanService,\n public navigation: NavigationService,\n private alertify: AlertifyService,\n private commonSrv: HrcommonserviceService,\n private sanitizer: DomSanitizer,\n private staffcvSrv: StaffcvService,\n private bankSrv: BankService,\n private dataService: DataService,\n private biodataSrv: BiodataService,\n private academicSrv: AcademicService,\n private workSrv: WorkService,\n private professionalSrv: ProfessionService,\n private refereeSrv: RefereeService,\n private childrenSrv: ChildrenService,\n private cvSrv: CvService\n ) {\n this.initFormModel();\n this.bindCombo();\n // this.createAcademicForm();\n this.createWorkForm();\n this.createProfessionForm();\n this.createRefereeForm();\n this.createChildrenForm();\n this.createCvForm();\n // this.createStaffForm();\n }\n\n ngOnInit() {\n this.getAllEmployee();\n this.loadEducation();\n this.loadChildren();\n this.loadWork();\n this.loadProfession();\n this.loadReferee();\n this.loadCv();\n this.createAcademicForm();\n this.dataService.selectedItem$.subscribe((item) => {\n this.selectedItem = item;\n console.log((this.selectedItem = item));\n });\n // this.selectedItem = localStorage.getItem(this.user);\n // this.selectedItem = item;\n this.callApi();\n }\n\n ngAfterViewInit() {\n console.log(this.staffBiodataModel, \"after view\");\n if (this.staffBiodataModel) {\n this.editFormView();\n }\n }\n\n createAcademicForm() {\n this.academicForm = new FormGroup({\n staff_acsademic: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n educationLevel: new FormControl(0),\n institutionName: new FormControl(\"\"),\n courseOfStudy: new FormControl(\"\"),\n qualificationObtained: new FormControl(0),\n classOfQualification: new FormControl(0),\n address: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n createWorkForm() {\n this.workForm = new FormGroup({\n staff_WorkExperience: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n companyName: new FormControl(\"\"),\n position: new FormControl(\"\"),\n jobDescription: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n createProfessionForm() {\n this.professionForm = new FormGroup({\n staff_professional: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n professionalAssociation: new FormControl(\"\"),\n certificationObtained: new FormControl(\"\"),\n membershipStatus: new FormControl(\"\"),\n dateObtained: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n createRefereeForm() {\n this.refereeForm = new FormGroup({\n refreedata: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n ref_EmployeeId: new FormControl(\"\"),\n ref_Title: new FormControl(0),\n ref_LastName: new FormControl(\"\"),\n ref_FirstName: new FormControl(\"\"),\n ref_MiddleName: new FormControl(\"\"),\n ref_ContactAddress: new FormControl(\"\"),\n ref_CountryId: new FormControl(0),\n ref_StateId: new FormControl(0),\n ref_City: new FormControl(\"\"),\n ref_Email: new FormControl(\"\"),\n ref_MobilePhone: new FormControl(\"\"),\n ref_HomePhone: new FormControl(\"\"),\n ref_WorkPhone: new FormControl(\"\"),\n ref_Relationship: new FormControl(\"\"),\n ref_CompanyName: new FormControl(\"\"),\n ref_Position: new FormControl(\"\"),\n // ref_CompanyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n createChildrenForm() {\n this.childrenForm = new FormGroup({\n staffchildren: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n fullName: new FormControl(\"\"),\n dob: new FormControl(\"\"),\n passport: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n createCvForm() {\n this.cvForm = new FormGroup({\n staffs: new FormArray([\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n cvFileName: new FormControl(\"\"),\n cvContent: new FormControl(\"\"),\n fileSize: new FormControl(0),\n contentType: new FormControl(\"\"),\n fileExtension: new FormControl(\"\"),\n approvedBy: new FormControl(\"\"),\n modifiedBy: new FormControl(\"\"),\n rejectedBy: new FormControl(\"\"),\n approvedDate: new FormControl(\"\"),\n rejectionDate: new FormControl(\"\"),\n modifiedDate: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n //Add\n addAcademic() {\n const control = this.academicForm.controls[\"staff_acsademic\"];\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n educationLevel: new FormControl(0),\n institutionName: new FormControl(\"\"),\n courseOfStudy: new FormControl(\"\"),\n qualificationObtained: new FormControl(0),\n classOfQualification: new FormControl(0),\n address: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n addWork() {\n const control = this.workForm.controls[\"staff_WorkExperience\"];\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n companyName: new FormControl(\"\"),\n position: new FormControl(\"\"),\n jobDescription: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n addProfession() {\n const control = (\n this.professionForm.controls[\"staff_professional\"]\n );\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n professionalAssociation: new FormControl(\"\"),\n certificationObtained: new FormControl(\"\"),\n membershipStatus: new FormControl(\"\"),\n dateObtained: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n addReferee() {\n const control = this.refereeForm.controls[\"refreedata\"];\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n ref_EmployeeId: new FormControl(\"\"),\n ref_Title: new FormControl(\"\"),\n ref_LastName: new FormControl(\"\"),\n ref_FirstName: new FormControl(\"\"),\n ref_MiddleName: new FormControl(\"\"),\n ref_ContactAddress: new FormControl(\"\"),\n ref_CountryId: new FormControl(0),\n ref_StateId: new FormControl(0),\n ref_City: new FormControl(\"\"),\n ref_Email: new FormControl(\"\"),\n ref_MobilePhone: new FormControl(\"\"),\n ref_HomePhone: new FormControl(\"\"),\n ref_WorkPhone: new FormControl(\"\"),\n ref_Relationship: new FormControl(\"\"),\n ref_CompanyName: new FormControl(\"\"),\n ref_Position: new FormControl(\"\"),\n ref_CompanyId: new FormControl(SmartUtil.getUserInfo().companyId),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n addChildren() {\n const control = this.childrenForm.controls[\"staffchildren\"];\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n fullName: new FormControl(\"\"),\n dob: new FormControl(\"\"),\n passport: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n addCv() {\n const control = this.cvForm.controls[\"staffs\"];\n control.push(\n new FormGroup({\n // id: new FormControl(''),\n employeeId: new FormControl(\"\"),\n cvFileName: new FormControl(\"\"),\n cvContent: new FormControl(\"\"),\n fileSize: new FormControl(0),\n contentType: new FormControl(\"\"),\n fileExtension: new FormControl(\"\"),\n approvedBy: new FormControl(\"\"),\n modifiedBy: new FormControl(\"\"),\n rejectedBy: new FormControl(\"\"),\n approvedDate: new FormControl(\"\"),\n rejectionDate: new FormControl(\"\"),\n modifiedDate: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n })\n );\n }\n\n //Remove\n\n removeAcademic(index) {\n // Get the 'staff_acsademic' FormArray\n const staffAcsademicArray = this.academicForm.get('staff_acsademic') as FormArray;\n\n // Check if the form at the specified index has an 'id' greater than 0\n const formToDelete = staffAcsademicArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n // Form has an 'id' greater than 0, indicating an existing form - you may want to delete on the server side\n // Uncomment the following line if you want to make a delete request to the server\n this.staffEducationService.deleteStaffEducation(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Education Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Education\");\n //this.loading = false;\n }\n\n });\n }\n\n // Remove the form at the specified index\n // staffAcsademicArray.removeAt(index);\n const control = this.academicForm.controls[\"staff_acsademic\"];\n control.removeAt(index);\n }\n\n // removeAcademic(index) {\n // const control = this.academicForm.controls[\"staff_acsademic\"];\n // control.removeAt(index);\n // }\n\n removeWork(index) {\n const control = this.workForm.controls[\"staff_WorkExperience\"];\n control.removeAt(index);\n }\n\n removeProfession(index) {\n const control = (\n this.professionForm.controls[\"staff_professional\"]\n );\n control.removeAt(index);\n }\n\n removeReferee(index) {\n const control = this.refereeForm.controls[\"refreedata\"];\n control.removeAt(index);\n }\n\n removeChildren(index) {\n const control = this.childrenForm.controls[\"staffchildren\"];\n control.removeAt(index);\n }\n\n removeCv(index) {\n const control = this.cvForm.controls[\"staffs\"];\n control.removeAt(index);\n }\n\n loadEmployee() {\n this.staffBiodataService\n .getStaffBiodataAll(\"active\", 1, 50)\n .subscribe((res) => {\n this.employeeList = res.responseData;\n console.log(this.employeeList, \"employeeList\");\n });\n }\n\n loadEducation() {\n this.academicSrv\n .getAcademic(this.user)\n .subscribe((res) => {\n this.educationList = res.responseData;\n console.log(this.educationList, \"educationList\");\n });\n }\n\n loadWork() {\n this.staffWorkService\n .getStaffWorkExperienceAll(\"active\", 1, 50)\n .subscribe((res) => {\n this.workList = res.responseData;\n console.log(this.workList, \"workList\");\n });\n }\n\n loadProfession() {\n this.staffProfessionalService\n .getStaffProfessionalAll(\"active\", 1, 50)\n .subscribe((res) => {\n this.professionList = res.responseData;\n console.log(this.professionList, \"professionList\");\n });\n }\n\n loadReferee() {\n this.staffRefereeService\n .getStaffRefereeAll(\"active\", 1, 50)\n .subscribe((res) => {\n this.refereeList = res.responseData;\n console.log(this.refereeList, \"refereeList\");\n });\n }\n\n loadChildren() {\n this.staffChildrenService\n .getStaffChildrenAll(\"active\", 1, 50)\n .subscribe((res) => {\n this.childrenList = res.responseData;\n // this.childrenImage = res.responseData.data[0].attributes.image_value\n // this.childrenImage = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64, ${this.childrenForm.controls.passport}`);\n console.log(this.childrenList, \"childrenList\");\n });\n }\n\n loadCv() {\n this.staffcvSrv.getStaffCvAll(\"active\", 1, 50).subscribe((res) => {\n this.cvList = res.responseData;\n console.log(this.cvList, \"cvList\");\n });\n }\n\n //Initialize Form\n\n initializeForm() {\n this.academicForm.reset();\n this.workForm.reset();\n this.professionForm.reset();\n this.refereeForm.reset();\n this.childrenForm.reset();\n this.cvForm.reset();\n // this.staffForm.reset();\n }\n\n //ID From Edit Button\n\n getStaffId(id: number) {\n this.cvid = id;\n }\n\n getAcademicId(id: number) {\n this.academicid = id;\n }\n\n getWorkId(id: number) {\n this.workid = id;\n }\n\n getProfessionId(id: number) {\n this.professionid = id;\n }\n\n getRefereeId(id: number) {\n this.refereeid = id;\n }\n\n getChildrenId(id: number) {\n this.childrenid = id;\n }\n\n getCvId(id: number) {\n this.cvid = id;\n }\n\n //Update\n saveAcademic() {\n if (\n this.academicData.forEach((x) => {\n x.id = 0;\n })\n ) {\n this.academicForm.value.staff_acsademic[0].employeeId =\n this.employeeObj.employeeId;\n this.academicForm.value.staff_acsademic[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.academicForm.value.staff_acsademic[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.academicForm.value.staff_acsademic[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.academicForm.value.staff_acsademic[0].status = \"active\";\n this.staffEducationService\n .createStaffEducation(this.academicForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Academic Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Academic Record\");\n }\n );\n } else {\n if (this.academicData && this.academicData.length > 0) {\n this.academicData.forEach((academicItem) => {\n const academicItemId = academicItem.id;\n\n const academicFormValue =\n this.academicForm.value.staff_acsademic.find(\n (item) => item.id === academicItemId\n );\n\n if (academicFormValue) {\n const patchesArray = compare(0, academicFormValue);\n\n this.staffEducationService\n .patchStaffEducation(academicItemId, patchesArray)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Academic Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to Update Employee Academic Records\"\n );\n }\n );\n } else {\n console.error(\n `Form value not found for academic with ID: ${academicItemId}`\n );\n const staffAcademicArray = this.academicForm.value.staff_acsademic;\n\n const recordsToPost = staffAcademicArray.filter(\n (academicRecord) => !academicRecord.id || academicRecord.id <= 0\n );\n\n for (const academicRecord of recordsToPost) {\n if (academicRecord) {\n academicRecord.employeeId = this.employeeObj.employeeId;\n academicRecord.companyId = SmartUtil.getUserInfo().companyId;\n academicRecord.createdBy = SmartUtil.getUserInfo().userName;\n academicRecord.createdDate = SmartUtil.formatDateTimeServer();\n academicRecord.status = \"active\";\n }\n }\n\n this.payload = {\n staff_acsademic: recordsToPost,\n };\n\n this.staffEducationService\n .createStaffEducation(this.payload)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Academic Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Academic Record\"\n );\n }\n );\n }\n });\n } else {\n console.error(\"Academic data is empty\");\n this.academicForm.value.staff_acsademic[0].employeeId =\n this.employeeObj.employeeId;\n this.academicForm.value.staff_acsademic[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.academicForm.value.staff_acsademic[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.academicForm.value.staff_acsademic[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.academicForm.value.staff_acsademic[0].status = \"active\";\n this.staffEducationService\n .createStaffEducation(this.academicForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Academic Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Academic Record\");\n }\n );\n }\n }\n }\n\n saveWork() {\n if (\n this.workData.forEach((x) => {\n x.id = 0;\n })\n ) {\n this.workForm.value.staff_WorkExperience[0].employeeId =\n this.employeeObj.employeeId;\n this.workForm.value.staff_WorkExperience[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.workForm.value.staff_WorkExperience[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.workForm.value.staff_WorkExperience[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.workForm.value.staff_WorkExperience[0].status = \"active\";\n this.staffWorkService\n .createStaffWorkExperience(this.workForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Work Experience Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Work Experience Record\"\n );\n }\n );\n } else {\n if (this.workData && this.workData.length > 0) {\n this.workData.forEach((workItem) => {\n const workItemId = workItem.id;\n\n const workFormValue = this.workForm.value.staff_WorkExperience.find(\n (item) => item.id === workItemId\n );\n\n if (workFormValue) {\n const patchesArray = compare(0, workFormValue);\n\n this.staffWorkService\n .patchStaffWorkExperience(workItemId, patchesArray)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Work Experience Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to Update Employee Work Experience Records\"\n );\n }\n );\n } else {\n console.error(\n `Form value not found for work experience with ID: ${workItemId}`\n );\n const staffWorkArray = this.workForm.value.staff_WorkExperience;\n\n const recordsToPost = staffWorkArray.filter(\n (workRecord) => !workRecord.id || workRecord.id <= 0\n );\n\n for (const workRecord of recordsToPost) {\n if (workRecord) {\n workRecord.employeeId = this.employeeObj.employeeId;\n workRecord.companyId = SmartUtil.getUserInfo().companyId;\n workRecord.createdBy = SmartUtil.getUserInfo().userName;\n workRecord.createdDate = SmartUtil.formatDateTimeServer();\n workRecord.status = \"active\";\n }\n }\n\n this.payload = {\n staff_WorkExperience: recordsToPost,\n };\n\n this.staffWorkService\n .createStaffWorkExperience(this.payload)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Work Experience Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Work Experience Record\"\n );\n }\n );\n }\n });\n } else {\n console.error(\"Work Experience data is empty\");\n this.workForm.value.staff_WorkExperience[0].employeeId =\n this.employeeObj.employeeId;\n this.workForm.value.staff_WorkExperience[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.workForm.value.staff_WorkExperience[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.workForm.value.staff_WorkExperience[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.workForm.value.staff_WorkExperience[0].status = \"active\";\n this.staffWorkService\n .createStaffWorkExperience(this.workForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Work Experience Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Work Experience Record\"\n );\n }\n );\n }\n }\n }\n\n saveProfession() {\n if (\n this.professionalData.forEach((x) => {\n x.id = 0;\n })\n ) {\n this.professionForm.value.staff_professional[0].employeeId =\n this.employeeObj.employeeId;\n this.professionForm.value.staff_professional[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.professionForm.value.staff_professional[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.professionForm.value.staff_professional[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.professionForm.value.staff_professional[0].status = \"active\";\n this.staffProfessionalService\n .createStaffProfessional(this.professionForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Professional Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Professional Record\");\n }\n );\n } else {\n if (this.professionalData && this.professionalData.length > 0) {\n this.professionalData.forEach((professionalItem) => {\n const professionalItemId = professionalItem.id;\n\n const professionalFormValue =\n this.professionForm.value.staff_professional.find(\n (item) => item.id === professionalItemId\n );\n\n if (professionalFormValue) {\n const patchesArray = compare(0, professionalFormValue);\n\n this.staffProfessionalService\n .patchStaffProfessional(professionalItemId, patchesArray)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee professional Experience Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to Update Employee professional Experience Records\"\n );\n }\n );\n } else {\n console.error(\n `Form value not found for professional experience with ID: ${professionalItemId}`\n );\n const staffProfessionalArray =\n this.professionForm.value.staff_professional;\n\n const recordsToPost = staffProfessionalArray.filter(\n (professionalRecord) =>\n !professionalRecord.id || professionalRecord.id <= 0\n );\n\n for (const professionalRecord of recordsToPost) {\n if (professionalRecord) {\n professionalRecord.employeeId = this.employeeObj.employeeId;\n professionalRecord.companyId =\n SmartUtil.getUserInfo().companyId;\n professionalRecord.createdBy = SmartUtil.getUserInfo().userName;\n professionalRecord.createdDate =\n SmartUtil.formatDateTimeServer();\n professionalRecord.status = \"active\";\n }\n }\n\n this.payload = {\n staff_professional: recordsToPost,\n };\n\n this.staffProfessionalService\n .createStaffProfessional(this.payload)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Professional Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Professional Record\"\n );\n }\n );\n }\n });\n } else {\n console.error(\"professional Experience data is empty\");\n this.professionForm.value.staff_professional[0].employeeId =\n this.employeeObj.employeeId;\n this.professionForm.value.staff_professional[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.professionForm.value.staff_professional[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.professionForm.value.staff_professional[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.professionForm.value.staff_professional[0].status = \"active\";\n this.staffProfessionalService\n .createStaffProfessional(this.professionForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Professional Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to save Employee Professional Record\"\n );\n }\n );\n }\n }\n }\n\n saveReferee() {\n if (\n this.refereeData.forEach((x) => {\n x.id = 0;\n })\n ) {\n this.refereeForm.value.refreedata[0].ref_EmployeeId =\n this.employeeObj.employeeId;\n this.refereeForm.value.refreedata[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.refereeForm.value.refreedata[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.refereeForm.value.refreedata[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.refereeForm.value.refreedata[0].status = \"active\";\n this.staffRefereeService\n .createStaffReferee(this.refereeForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Referee Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Referee Record\");\n }\n );\n } else {\n if (this.refereeData && this.refereeData.length > 0) {\n this.refereeData.forEach((refereeItem) => {\n const refereeItemId = refereeItem.id;\n\n const refereeFormValue = this.refereeForm.value.refreedata.find(\n (item) => item.id === refereeItemId\n );\n\n if (refereeFormValue) {\n const patchesArray = compare(0, refereeFormValue);\n\n this.staffRefereeService\n .patchStaffReferee(refereeItemId, patchesArray)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Referee Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\n \"Failed to Update Employee Referee Records\"\n );\n }\n );\n } else {\n console.error(\n `Form value not found for referee with ID: ${refereeItemId}`\n );\n const staffRefereeArray = this.refereeForm.value.refreedata;\n\n const recordsToPost = staffRefereeArray.filter(\n (refereeRecord) => !refereeRecord.id || refereeRecord.id <= 0\n );\n\n for (const refereeRecord of recordsToPost) {\n if (refereeRecord) {\n refereeRecord.ref_EmployeeId = this.employeeObj.employeeId;\n refereeRecord.companyId = SmartUtil.getUserInfo().companyId;\n refereeRecord.createdBy = SmartUtil.getUserInfo().userName;\n refereeRecord.createdDate = SmartUtil.formatDateTimeServer();\n refereeRecord.status = \"active\";\n }\n }\n\n this.payload = {\n refreedata: recordsToPost,\n };\n\n this.staffRefereeService.createStaffReferee(this.payload).subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Referee Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Referee Record\");\n }\n );\n }\n });\n } else {\n console.error(\"referee data is empty\");\n this.refereeForm.value.refreedata[0].ref_EmployeeId =\n this.employeeObj.employeeId;\n this.refereeForm.value.refreedata[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.refereeForm.value.refreedata[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.refereeForm.value.refreedata[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.refereeForm.value.refreedata[0].status = \"active\";\n this.staffRefereeService\n .createStaffReferee(this.refereeForm.value)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Referee Records Saved Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee Referee Record\");\n }\n );\n }\n }\n }\n\n saveChildren() {\n const staffChildrenArray = this.childrenForm.get('staffchildren') as FormArray;\n const existingChildren = this.childrenData || [];\n\n // Check for new children and set default values\n staffChildrenArray.controls.forEach((childForm) => {\n if (!childForm.value.id || childForm.value.id <= 0) {\n childForm.patchValue({\n employeeId: this.employeeObj.employeeId,\n companyId: SmartUtil.getUserInfo().companyId,\n createdBy: SmartUtil.getUserInfo().userName,\n createdDate: SmartUtil.formatDateTimeServer(),\n status: 'active',\n });\n }\n });\n\n // Filter out existing children from staffChildrenArray\nconst newChildren = staffChildrenArray.controls.filter((childForm) => !childForm.value.id);\n\n const existingChildrenForms = staffChildrenArray.controls.filter(\n (childForm) => childForm.value.id && childForm.value.id > 0\n );\n\n // Update existing children using fast-json-patch\nexistingChildrenForms.forEach((childForm, i) => {\n const childItemId = childForm.value.id;\n const existingChild = existingChildren.find((item) => item.id === childItemId);\n\n if (existingChild) {\n // Update the passport value in the form using this.childrenImages\n childForm.get('passport').setValue(this.childrenImages[i]);\n\n // Get the original passport value from childrenData\n const originalPassport = existingChild.passport;\n\n // Create a patch array only for the 'passport' field\n const passportPatchArray: Operation[] = [\n {\n op: 'replace',\n path: '/passport',\n value: childForm.value.passport,\n },\n ];\n\n // Merge the passport patch array with the full patch array\n const patchesArray = [...passportPatchArray, ...compare(existingChild, childForm.value) as Operation[]];\n\n // Modify the path in the passport patch array to target the 'passport' field\n if (originalPassport) {\n const passportPatchIndex = patchesArray.findIndex((op) => op.path === '/passport');\n if (passportPatchIndex !== -1) {\n patchesArray[passportPatchIndex].path = `/passport${patchesArray[passportPatchIndex].path}`;\n }\n }\n\n this.staffChildrenService.patchStaffChildren(childItemId, patchesArray).subscribe(\n (result: any) => {\n this.alertify.success('Employee Children Records Updated Successfully');\n },\n (error) => {\n this.alertify.error('Failed to Update Employee Children Records');\n }\n );\n } else {\n console.error(`Form value not found for child with ID: ${childItemId}`);\n }\n});\n\n // Debug: Log the childrenImages array\n console.log('childrenImages:', this.childrenImages);\n\n // Save new children\nconst newChildrenPayload = {\n staffchildren: newChildren.map((childForm, i) => {\n const isExistingChild = childForm.value.id && childForm.value.id > 0;\n\n // Skip existing children\n if (isExistingChild) {\n return null;\n }\n\n const passportValue = this.childrenImage;\n\n // const passportValue = childForm.get('passport').setValue(this.childrenImages[i]);\n // const passportValue = this.childrenImages[i];\n\n\n return {\n id: 0,\n employeeId: childForm.value.employeeId,\n fullName: childForm.value.fullName,\n dob: childForm.value.dob,\n passport: passportValue,\n // passport: childForm.value.passport,\n createdBy: childForm.value.createdBy,\n approvedBy: null,\n modifiedBy: null,\n rejectedBy: null,\n createdDate: childForm.value.createdDate,\n approvedDate: null,\n rejectionDate: null,\n modifiedDate: null,\n status: 'active',\n companyId: SmartUtil.getUserInfo().companyId,\n display: true,\n\n };\n\n }).filter(child => child !== null), // Remove null entries (existing children)\n};\n\n\n\nconsole.log('New Children Payload:', newChildrenPayload); // Debugging line\n\nif (newChildrenPayload.staffchildren.length > 0) {\n this.staffChildrenService.newStaffChildren({ staffchildren: newChildrenPayload.staffchildren }).subscribe(\n (result: any) => {\n this.alertify.success('Employee Children Records Saved Successfully');\n },\n (error) => {\n this.alertify.error('Failed to save Employee Children Record');\n }\n );\n}\n}\n\n\n saveCv() {\n if (\n this.cVData.forEach((x) => {\n x.id = 0;\n })\n ) {\n this.cvForm.value.staffs[0].employeeId = this.employeeObj.employeeId;\n this.cvForm.value.staffs[0].companyId = SmartUtil.getUserInfo().companyId;\n this.cvForm.value.staffs[0].createdBy = SmartUtil.getUserInfo().userName;\n this.cvForm.value.staffs[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.cvForm.value.staffs[0].status = \"active\";\n this.staffcvSrv.createStaffCv(this.cvForm.value).subscribe(\n (result: any) => {\n this.alertify.success(\"Employee CV Records Saved Successfully\");\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee CV Record\");\n }\n );\n } else {\n if (this.cVData && this.cVData.length > 0) {\n this.cVData.forEach((cvItem) => {\n const cvItemId = cvItem.id;\n\n const cvFormValue = this.cvForm.value.staffs.find(\n (item) => item.id === cvItemId\n );\n\n if (cvFormValue) {\n const patchesArray = compare(0, cvFormValue);\n\n this.staffcvSrv.patchStaffCv(cvItemId, patchesArray).subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee CV Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to Update Employee CV Records\");\n }\n );\n } else {\n console.error(`Form value not found for CV with ID: ${cvItemId}`);\n const staffCVArray = this.cvForm.value.staffs;\n\n const recordsToPost = staffCVArray.filter(\n (cvRecord) => !cvRecord.id || cvRecord.id <= 0\n );\n\n for (const cvRecord of recordsToPost) {\n if (cvRecord) {\n cvRecord.employeeId = this.employeeObj.employeeId;\n cvRecord.companyId = SmartUtil.getUserInfo().companyId;\n cvRecord.createdBy = SmartUtil.getUserInfo().userName;\n cvRecord.createdDate = SmartUtil.formatDateTimeServer();\n cvRecord.status = \"active\";\n }\n }\n\n this.payload = {\n staffs: recordsToPost,\n };\n\n this.staffcvSrv.createStaffCv(this.payload).subscribe(\n (result: any) => {\n this.alertify.success(\"Employee CV Records Saved Successfully\");\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee CV Record\");\n }\n );\n }\n });\n } else {\n console.error(\"CV data is empty\");\n this.cvForm.value.staffs[0].employeeId = this.employeeObj.employeeId;\n this.cvForm.value.staffs[0].companyId =\n SmartUtil.getUserInfo().companyId;\n this.cvForm.value.staffs[0].createdBy =\n SmartUtil.getUserInfo().userName;\n this.cvForm.value.staffs[0].createdDate =\n SmartUtil.formatDateTimeServer();\n this.cvForm.value.staffs[0].status = \"active\";\n this.staffcvSrv.createStaffCv(this.cvForm.value).subscribe(\n (result: any) => {\n this.alertify.success(\"Employee CV Records Saved Successfully\");\n },\n (error) => {\n this.alertify.error(\"Failed to save Employee CV Record\");\n }\n );\n }\n }\n }\n\n //Edit\n\n onEditStaff(item: any) {\n this.myImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${item.passport}`\n );\n this.spouseImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${item.spousePassport}`\n );\n this.frmStaffModel = new FormGroup({\n employeeId: new FormControl(item.employeeId),\n title: new FormControl(item.title),\n lastName: new FormControl(item.lastName),\n firstName: new FormControl(item.firstName),\n middleName: new FormControl(item.middleName),\n gender: new FormControl(item.gender),\n complexion: new FormControl(item.complexion),\n contactAddress: new FormControl(item.contactAddress),\n countryId: new FormControl(item.countryId),\n stateId: new FormControl(item.stateId),\n city: new FormControl(item.city),\n email: new FormControl(item.email),\n marital_Status: new FormControl(item.marital_Status),\n levelCode: new FormControl(item.levelCode),\n notchCode: new FormControl(item.notchCode),\n dob: new FormControl(item.dob),\n placeOfBirth: new FormControl(item.placeOfBirth),\n stateOrigin: new FormControl(item.stateOrigin),\n localGovtOrigin: new FormControl(item.localGovtOrigin),\n mobilePhone: new FormControl(item.mobilePhone),\n homePhone: new FormControl(item.homePhone),\n workPhone: new FormControl(item.workPhone),\n accountNo: new FormControl(item.accountNo),\n branchId: new FormControl(item.branchId),\n departmentId: new FormControl(item.departmentId),\n unitId: new FormControl(item.unitId),\n jobDeskId: new FormControl(item.jobDeskId),\n positionId: new FormControl(item.positionId),\n dateOfEmployment: new FormControl(item.dateOfEmployment),\n resumptionDate: new FormControl(item.resumptionDate),\n basicSalary: new FormControl(item.basicSalary),\n kin_Title: new FormControl(item.kin_Title),\n kin_LastName: new FormControl(item.kin_LastName),\n kin_FirstName: new FormControl(item.kin_FirstName),\n kin_MiddleName: new FormControl(item.kin_MiddleName),\n kin_ContactAddress: new FormControl(item.kin_ContactAddress),\n kin_Country: new FormControl(item.kin_Country),\n kin_State: new FormControl(item.kin_State),\n kin_City: new FormControl(item.kin_City),\n kin_Email: new FormControl(item.kin_Email),\n kin_MobilePhone: new FormControl(item.kin_MobilePhone),\n kin_WorkPhone: new FormControl(item.kin_WorkPhone),\n kin_Relationship: new FormControl(item.kin_Relationship),\n officeExtension: new FormControl(item.officeExtension),\n passport: new FormControl(),\n designation: new FormControl(item.designation),\n isComfirmed: new FormControl(item.isComfirmed),\n comfirmedDate: new FormControl(item.comfirmedDate),\n staffTypeCode: new FormControl(item.staffTypeCode),\n staffTypeDetail_Code: new FormControl(item.staffTypeDetail_Code),\n comfirmedUserId: new FormControl(item.comfirmedUserId),\n includePayroll: new FormControl(item.includePayroll),\n noOfDays: new FormControl(item.noOfDays),\n leaveBalance: new FormControl(item.leaveBalance),\n sectionCode: new FormControl(item.sectionCode),\n serviceAgeRetired: new FormControl(item.serviceAgeRetired),\n serviceAgeNow: new FormControl(item.serviceAgeNow),\n nationality: new FormControl(item.nationality),\n planCode: new FormControl(item.planCode),\n hmoCode: new FormControl(item.hmoCode),\n hmoEnabled: new FormControl(item.hmoEnabled),\n spouseFullName: new FormControl(item.spouseFullName),\n spouseDOB: new FormControl(item.spouseDOB),\n spousePassport: new FormControl(),\n cvPath: new FormControl(item.cvPath),\n bvn: new FormControl(item.bvn),\n pfaCode: new FormControl(item.pfaCode),\n nyscCompleted: new FormControl(item.nyscCompleted),\n nsitf: new FormControl(item.nsitf),\n itf: new FormControl(item.itf),\n fullName: new FormControl(item.fullName),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n }\n\n onEditAcademic(item: any) {\n this.isEdit = true;\n this.academicForm = new FormGroup({\n staff_acsademic: new FormArray([\n new FormGroup({\n id: new FormControl(item.id),\n employeeId: new FormControl(item.employeeId),\n educationLevel: new FormControl(item.educationLevel),\n institutionName: new FormControl(item.institutionName),\n courseOfStudy: new FormControl(item.courseOfStudy),\n qualificationObtained: new FormControl(item.qualificationObtained),\n classOfQualification: new FormControl(item.classOfQualification),\n address: new FormControl(item.address),\n startDate: new FormControl(item.startDate),\n endDate: new FormControl(item.endDate),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n onEditWork(item: any) {\n this.isEdit = true;\n this.workForm = new FormGroup({\n staff_WorkExperience: new FormArray([\n new FormGroup({\n id: new FormControl(item.id),\n employeeId: new FormControl(item.employeeId),\n companyName: new FormControl(item.companyName),\n position: new FormControl(item.position),\n jobDescription: new FormControl(item.jobDescription),\n startDate: new FormControl(item.startDate),\n endDate: new FormControl(item.endDate),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n onEditProfession(item: any) {\n this.isEdit = true;\n this.professionForm = new FormGroup({\n staff_professional: new FormArray([\n new FormGroup({\n id: new FormControl(item.id),\n employeeId: new FormControl(item.employeeId),\n professionalAssociation: new FormControl(\n item.professionalAssociation\n ),\n certificationObtained: new FormControl(item.certificationObtained),\n membershipStatus: new FormControl(item.membershipStatus),\n dateObtained: new FormControl(item.dateObtained),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n onEditReferee(item: any) {\n this.isEdit = true;\n this.refereeForm = new FormGroup({\n refreedata: new FormArray([\n new FormGroup({\n id: new FormControl(item.id),\n ref_EmployeeId: new FormControl(item.ref_EmployeeId),\n ref_Title: new FormControl(item.ref_Title),\n ref_LastName: new FormControl(item.ref_LastName),\n ref_FirstName: new FormControl(item.ref_FirstName),\n ref_MiddleName: new FormControl(item.ref_MiddleName),\n ref_ContactAddress: new FormControl(item.ref_ContactAddress),\n ref_CountryId: new FormControl(item.ref_CountryId),\n ref_StateId: new FormControl(item.ref_StateId),\n ref_City: new FormControl(item.ref_City),\n ref_Email: new FormControl(item.ref_Email),\n ref_MobilePhone: new FormControl(item.ref_MobilePhone),\n ref_HomePhone: new FormControl(item.ref_HomePhone),\n ref_WorkPhone: new FormControl(item.ref_WorkPhone),\n ref_Relationship: new FormControl(item.ref_Relationship),\n ref_CompanyName: new FormControl(item.ref_CompanyName),\n ref_Position: new FormControl(item.ref_Position),\n ref_CompanyId: new FormControl(SmartUtil.getUserInfo().companyId),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n onEditChildren(item: any) {\n this.staffChildrenService\n .getSearchChildren(this.selectedItem)\n .subscribe((res6: any) => {\n this.childrenData = res6.responseData;\n console.log(this.childrenData, \"children result\");\n\n const childrenArray = res6.responseData.map((childrenItem) => {\n const passportImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${childrenItem.passport}`\n );\n\n return new FormGroup({\n id: new FormControl(childrenItem.id),\n employeeId: new FormControl(childrenItem.employeeId),\n fullName: new FormControl(childrenItem.fullName),\n dob: new FormControl(childrenItem.dob),\n passport: new FormControl(passportImage),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.childrenForm = new FormGroup({\n staffchildren: new FormArray(childrenArray),\n });\n });\n }\n\n\n // onEditChildren(item: any) {\n // this.childrenImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n // `data:image/png;base64, ${item.passport}`\n // );\n // this.isEdit = true;\n // this.childrenForm = new FormGroup({\n // staffchildren: new FormArray([\n // new FormGroup({\n // id: new FormControl(item.id),\n // employeeId: new FormControl(item.employeeId),\n // fullName: new FormControl(item.fullName),\n // dob: new FormControl(item.dob),\n // passport: new FormControl(),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n // status: new FormControl(\"active\"),\n // }),\n // ]),\n // });\n // }\n\n onEditCv(item: any) {\n this.isEdit = true;\n this.cvForm = new FormGroup({\n staffs: new FormArray([\n new FormGroup({\n id: new FormControl(item.id),\n employeeId: new FormControl(item.employeeId),\n // cvFileName: new FormControl(item.cvFileName),\n cvContent: new FormControl(item.cvContent),\n fileSize: new FormControl(item.fileSize),\n contentType: new FormControl(item.contentType),\n fileExtension: new FormControl(item.fileExtension),\n approvedBy: new FormControl(item.approvedBy),\n modifiedBy: new FormControl(item.modifiedBy),\n rejectedBy: new FormControl(item.rejectedBy),\n approvedDate: new FormControl(item.approvedDate),\n rejectionDate: new FormControl(item.rejectionDate),\n modifiedDate: new FormControl(item.modifiedDate),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n }),\n ]),\n });\n }\n\n deleteStaff(id) {\n this.id = id;\n }\n\n deleteAcademic(id) {\n this.id = id;\n }\n\n deleteWork(id) {\n this.id = id;\n }\n\n deleteProfession(id) {\n this.id = id;\n }\n\n deleteReferee(id) {\n this.id = id;\n }\n\n deleteChildren(id) {\n this.id = id;\n }\n\n deleteCv(id) {\n this.id = id;\n }\n\n deleteStaffs() {\n let id: any = Number(this.id);\n this.staffBiodataService.deleteStaffBiodata(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Record Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Record\");\n //this.loading = false;\n }\n\n this.loadEmployee();\n });\n }\n\n deleteAcademics() {\n let id: any = Number(this.id);\n this.staffEducationService.deleteStaffEducation(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Education Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Education\");\n //this.loading = false;\n }\n\n this.loadEducation();\n });\n }\n\n deleteWorks() {\n let id: any = Number(this.id);\n this.staffWorkService.deleteStaffWorkExperience(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Work Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Work\");\n //this.loading = false;\n }\n\n this.loadWork();\n });\n }\n\n deleteProfessions() {\n let id: any = Number(this.id);\n this.staffProfessionalService\n .deleteStaffProfessional(id)\n .subscribe((res) => {\n if (res) {\n this.alertify.success(\n \"Employee Professional Qualification Deleted Successfully\"\n );\n } else {\n this.alertify.error(\n \"Failed to delete Employee Professional Qualification\"\n );\n //this.loading = false;\n }\n\n this.loadProfession();\n });\n }\n\n deleteReferees() {\n let id: any = Number(this.id);\n this.staffRefereeService.deleteStaffReferee(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Referee Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Referee\");\n //this.loading = false;\n }\n\n this.loadReferee();\n });\n }\n\n deleteChildrens() {\n let id: any = Number(this.id);\n this.staffChildrenService.deleteStaffChildren(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Children Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Children\");\n //this.loading = false;\n }\n\n this.loadChildren();\n });\n }\n\n deleteCvs() {\n let id: any = Number(this.id);\n this.staffcvSrv.deleteStaffCv(id).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Cv Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Cv\");\n //this.loading = false;\n }\n\n this.loadCv();\n });\n }\n\n //Next Page\n nextPage() {\n this.activatedTabIndex = this.activatedTabIndex + 1;\n }\n\n uploadCv(event: any) {\n this.cvdata = event.currentTarget.files[0];\n if (\n this.cvdata.type == \"application/pdf\" ||\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n ) {\n console.log((this.cvForm.controls.cvFileName = this.cvdata.name));\n console.log((this.cvForm.controls.fileSize = this.cvdata.size));\n console.log((this.cvForm.controls.contentType = this.cvdata.type));\n } else {\n alert(\"Only pdf and word Files are allowed\");\n }\n }\n\n getVal(item) {\n console.log(item.target.value);\n this.employeeIdValue = item.target.value;\n\n this.staffBiodataService.setItem(\"employeeId\", this.employeeIdValue);\n // this.employeeIdValue = localStorage.getItem('userName')\n console.log(this.employeeIdValue);\n }\n\n getData() {\n // this.data = this.staffBiodataService.getItem(\"employeeId\");\n this.data = localStorage.getItem(\"userName\");\n console.log(this.data);\n }\n\n removeData() {\n this.staffBiodataService.removeItem();\n this.alertify.success(\"Employee Cv Records Saved Successfully\");\n this.initializeForm();\n this.reloadCurrentRoute();\n }\n\n bindCombo() {\n this.bankSrv.getAllBanks(\"Active\", 1, 50).subscribe((res) => {\n this.bankList = res.responseData;\n console.log(this.bankList, \"me\");\n });\n this.titleService.getTitleAll(\"Active\", 1, 50).subscribe((res) => {\n this.titleList = res.responseData;\n console.log(this.titleList, \"titleList\");\n });\n\n this.countryService.getCountryAll(\"Active\", 1, 50).subscribe((res) => {\n this.countryList = res.responseData;\n console.log(this.countryList, \"countyList\");\n });\n\n this.stateService.getStateAll(\"Active\", 1, 50).subscribe((res) => {\n this.stateList = res.responseData;\n });\n\n this.staffService.getStaffTypeAll(\"Active\", 1, 50).subscribe((res) => {\n this.staffTypeList = res.responseData;\n });\n this.gradeService.getGradeAll(\"Active\", 1, 50).subscribe((res) => {\n this.gradeList = res.responseData;\n });\n this.notchService.getNotchAll(\"Active\", 1, 50).subscribe((res) => {\n this.notchList = res.responseData;\n console.log(this.notchList, \"notchList\");\n });\n this.branchService.getBranchAll(\"Active\", 1, 50).subscribe((res) => {\n this.branchList = res.responseData;\n });\n this.departmentService\n .getDepartmentAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.departmentList = res.responseData;\n console.log(this.departmentList, \"departmentList\");\n });\n this.departmentUnitService\n .getDepartmentUnitAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.departmentUnitList = res.responseData;\n console.log(this.departmentUnitList, \"departmentUnitList\");\n });\n this.jobDeskService.getJobDeskAll(\"Active\", 1, 50).subscribe((res) => {\n this.jobDeskList = res.responseData;\n console.log(this.jobDeskList, \"jobDeskList\");\n });\n this.positionService.getPositionAll(\"Active\", 1, 50).subscribe((res) => {\n this.positionList = res.responseData;\n console.log(this.positionList, \"positionList\");\n });\n\n this.educationLevelService\n .getEducationLevelAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.educationLevelList = res.responseData;\n console.log(this.educationLevelList, \"me\");\n });\n this.educationQualificationService\n .getEducationQualificationAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.educationQualificationList = res.responseData;\n console.log(this.educationQualificationList, \"me\");\n });\n this.qualificationClassService\n .getEducationQualificationClassAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.qualificationClassList = res.responseData;\n console.log(this.qualificationClassList, \"me\");\n });\n this.contentTypeService\n .getContentTypeAll(\"Active\", 1, 50)\n .subscribe((res) => {\n this.contentTypeList = res.responseData;\n console.log(this.contentTypeList, \"me\");\n });\n\n this.maritalStatusList = SmartUtil.getMaritalStatus();\n }\n\n onCountryChange(countryId: number) {\n this.stateService.getStateByCountry(countryId).subscribe((res) => {\n this.stateList = res.responseData;\n });\n }\n\n onKinCountryChange(countryId: number) {\n this.stateService.getStateByCountry(countryId).subscribe((res) => {\n this.kinStateList = res.responseData;\n });\n }\n\n loadChildrenList() {\n const data = this.commonSrv.getItem(\"employeeId\");\n this.staffChildrenService.getSearchChildren(data).subscribe((res) => {\n this.staffchildrenList = res.responseData;\n this.childrenImage = res.responseData.data[0].attributes.image_value;\n this.isNewDiv = true;\n console.log(this.staffchildrenList, \"childrenList\");\n });\n }\n\n loadEducationList() {\n // const data = this.commonSrv.getItem(\"employeeId\");\n this.academicSrv\n .getAcademic(this.user)\n .subscribe((res) => {\n this.educationList = res.responseData;\n // this.childrenImage = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64, ${this.childrenObj.passport}`);\n this.isNewDiv = true;\n console.log(this.educationList, \"educationList\");\n });\n }\n\n loadWorkList() {\n const data = this.commonSrv.getItem(\"employeeId\");\n this.staffWorkService.getSearchWorkByEmployee(data).subscribe((res) => {\n this.staffworkList = res.responseData;\n this.isNewDiv = true;\n console.log(this.staffworkList, \"workList\");\n });\n }\n\n loadProfessionalList() {\n const data = this.commonSrv.getItem(\"employeeId\");\n this.staffProfessionalService\n .getSearchProfessionalByEmployee(data)\n .subscribe((res) => {\n this.staffprofessionalList = res.responseData;\n this.isNewDiv = true;\n console.log(this.staffprofessionalList, \"professionalList\");\n });\n }\n\n loadRefereeList() {\n const data = this.commonSrv.getItem(\"employeeId\");\n this.staffRefereeService\n .getSearchRefereeByEmployee(data)\n .subscribe((res) => {\n this.staffrefereeList = res.responseData;\n this.isNewDiv = true;\n console.log(this.staffrefereeList, \"refereeList\");\n });\n }\n\n getAllEmployee() {\n this.biodataSrv\n .getBiodata(this.user)\n .subscribe((res) => {\n this.employeeList = res.responseData;\n console.log(this.employeeList, \"employeeList\");\n });\n }\n\n getEmployee(employeeId) {\n this.biodataSrv\n .getBiodata(this.user)\n .subscribe((res) => {\n this.employeeObj = res;\n console.log(this.employeeObj)\n this.myImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${this.employeeObj.passport}`\n );\n this.spouseImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${this.employeeObj.spousePassport}`\n );\n console.log(this.staffimage);\n this.commonSrv.setItem(\"employeeId\", employeeId);\n this.isNewDiv = true;\n this.frmStaffModel.patchValue(this.employeeObj);\n console.log(this.employeeObj, \"employeeObj\");\n });\n }\n\n //Tab\n\n tabChange(tabIndex: number) {\n this.activatedTabIndex = tabIndex;\n if (this.activatedTabIndex == 0) {\n console.log(\"Tab 1 is selected!\");\n this.initializeForm();\n }\n if (this.activatedTabIndex == 1) {\n console.log(\"Tab 2 is selected!\");\n this.initializeForm();\n this.loadEducation();\n }\n if (this.activatedTabIndex == 2) {\n console.log(\"Tab 3 is selected!\");\n this.initializeForm();\n this.loadWork();\n }\n if (this.activatedTabIndex == 3) {\n console.log(\"Tab 4 is selected!\");\n this.initializeForm();\n this.loadProfession();\n }\n if (this.activatedTabIndex == 4) {\n console.log(\"Tab 5 is selected!\");\n this.initializeForm();\n this.loadReferee();\n }\n if (this.activatedTabIndex == 5) {\n console.log(\"Tab 6 is selected!\");\n this.initializeForm();\n this.loadChildren();\n }\n if (this.activatedTabIndex == 6) {\n console.log(\"Tab 7 is selected!\");\n this.initializeForm();\n this.loadCv();\n }\n }\n\n onChange = ($event: Event) => {\n const target = $event.target as HTMLInputElement;\n const file: File = (target.files as FileList)[0];\n console.log(file);\n this.convertToBase64(file);\n };\n\n onSpouseChange = ($event: Event) => {\n const spousetarget = $event.target as HTMLInputElement;\n const spousefile: File = (spousetarget.files as FileList)[0];\n console.log(spousefile);\n this.spouseconvertToBase64(spousefile);\n };\n\n onChildrenChange = ($event: Event, childIndex: number) => {\n const childrentarget = $event.target as HTMLInputElement;\n const childrenfile: File = (childrentarget.files as FileList)[0];\n\n // Ensure the childrenImages array is initialized\n if (!this.childrenImages) {\n this.childrenImages = [];\n }\n\n this.childrenconvertToBase64(childrenfile, childIndex);\n };\n\n convertToBase64(file: File) {\n const observable = new Observable((subscriber: Subscriber) => {\n this.readFile(file, subscriber);\n });\n\n observable.subscribe((d) => {\n console.log(d);\n this.myImage = d;\n this.base64code = d;\n const img = new Image();\n img.src = this.base64code;\n\n img.onload = () => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n this.compressedBase64 = canvas.toDataURL(\"image/jpeg\", 0.5);\n // this.myImage = this.compressedBase64;\n console.log(this.compressedBase64);\n };\n });\n }\n\n spouseconvertToBase64(file: File) {\n const observable = new Observable((subscriber: Subscriber) => {\n this.readFile(file, subscriber);\n });\n\n observable.subscribe((e) => {\n console.log(e);\n this.spouseImage = e;\n this.spousebase64code = e;\n const img = new Image();\n img.src = this.spousebase64code;\n\n img.onload = () => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n this.spousecompressedBase64 = canvas.toDataURL(\"image/jpeg\", 0.5);\n // this.spouseImage = this.spousecompressedBase64;\n console.log(this.spousecompressedBase64);\n };\n });\n }\n\n childrenconvertToBase64(file: File, childIndex: number) {\n const observable = new Observable((subscriber: Subscriber) => {\n this.readFile(file, subscriber);\n });\n\n observable.subscribe((f) => {\n console.log(f);\n // Update the individual image source for each child\n this.childrenImages[childIndex] = f;\n\n // Rest of the code remains the same\n this.childrenImage = this.childrenImages[childIndex];\n this.childrenbase64code = f;\n const img = new Image();\n img.src = this.childrenbase64code;\n\n img.onload = () => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n this.childrencompressedBase64 = canvas.toDataURL(\"image/jpeg\", 0.5);\n console.log(this.childrencompressedBase64);\n };\n });\n }\n\n readFile(file: File, subscriber: Subscriber) {\n const filereader = new FileReader();\n filereader.readAsDataURL(file);\n\n filereader.onload = () => {\n subscriber.next(filereader.result);\n subscriber.complete();\n };\n\n filereader.onerror = () => {\n subscriber.error();\n subscriber.complete();\n };\n }\n\n initFormModel() {\n this.frmStaffModel = this.builder.group({\n employeeId: this.builder.control(\"\", [Validators.required]),\n lastName: this.builder.control(\"\", [Validators.required]),\n firstName: this.builder.control(\"\", [Validators.required]),\n middleName: this.builder.control(\"\", []),\n gender: this.builder.control(\"\", []),\n dob: this.builder.control(\"\", []),\n placeOfBirth: this.builder.control(\"\", []),\n nationality: this.builder.control(\"\", []),\n stateOrigin: this.builder.control(\"\", []),\n localGovtOrigin: this.builder.control(\"\", []),\n marital_Status: this.builder.control(\"\", []),\n spouseFullName: this.builder.control(\"\", []),\n spouseDOB: this.builder.control(\"\", []),\n contactAddress: this.builder.control(\"\", []),\n countryId: this.builder.control(\"\", []),\n stateId: this.builder.control(\"\", []),\n city: this.builder.control(1, []),\n email: this.builder.control(\"\", [Validators.email]),\n staffTypeCode: this.builder.control(\"string\", []),\n levelCode: this.builder.control(\"\", []),\n notchCode: this.builder.control(\"\", []),\n branchId: this.builder.control(\"\", []),\n departmentId: this.builder.control(\"\", []),\n unitId: this.builder.control(\"\", []),\n jobDeskId: this.builder.control(1, []),\n dateOfEmployment: this.builder.control(\n SmartUtil.formatDateTimeServer(),\n []\n ),\n resumptionDate: this.builder.control(\"\", []),\n comfirmedDate: this.builder.control(\"\", [Validators.required]),\n officeExtension: this.builder.control(\"\", []),\n mobilePhone: this.builder.control(\"\", []),\n homePhone: this.builder.control(\"\", []),\n workPhone: this.builder.control(\"\", []),\n hmoCode: this.builder.control(\"string\", []),\n hmoEnabled: this.builder.control(\"true\", []),\n accountNo: this.builder.control(\"\", []),\n includePayroll: this.builder.control(\"\", []),\n bvn: this.builder.control(\"\", []),\n pfaCode: this.builder.control(\"string\", []),\n kin_Title: this.builder.control(\"string\", []),\n kin_LastName: this.builder.control(\"\", [Validators.required]),\n kin_FirstName: this.builder.control(\"\", [Validators.required]),\n kin_MiddleName: this.builder.control(\"\", [Validators.required]),\n kin_ContactAddress: this.builder.control(\"\", [Validators.required]),\n kin_Country: this.builder.control(\"\", []),\n kin_State: this.builder.control(\"\", []),\n kin_City: this.builder.control(\"\", []),\n kin_Email: this.builder.control(\"\", [\n Validators.required,\n Validators.email,\n ]),\n kin_MobilePhone: this.builder.control(\"\", [Validators.required]),\n kin_WorkPhone: this.builder.control(\"\", [Validators.required]),\n kin_Relationship: this.builder.control(\"\", [Validators.required]),\n title: this.builder.control(0, []),\n passport: this.builder.control(null, []),\n spousePassport: this.builder.control(null, []),\n complexion: this.builder.control(\"black\", [Validators.required]),\n basicSalary: this.builder.control(0, []),\n designation: this.builder.control(0, []),\n isComfirmed: this.builder.control(\"true\", []),\n staffTypeDetail_Code: this.builder.control(\"string\", []),\n comfirmedUserId: this.builder.control(\"string\", []),\n noOfDays: this.builder.control(0, []),\n leaveBalance: this.builder.control(0, []),\n sectionCode: this.builder.control(\"string\", []),\n serviceAgeRetired: this.builder.control(0, []),\n serviceAgeNow: this.builder.control(0, []),\n bankid: this.builder.control(0, []),\n planCode: this.builder.control(\"string\", []),\n cvPath: this.builder.control(\"string\", []),\n nyscCompleted: this.builder.control(\"true\", []),\n nsitf: this.builder.control(\"\", []),\n itf: this.builder.control(\"\", []),\n fullName: this.builder.control(\"\", []),\n });\n }\n\n onSubmit() {\n this.frmStaffModel.value.passport = this.compressedBase64;\n this.frmStaffModel.value.spousePassport = this.spousecompressedBase64;\n console.log(this.frmStaffModel.value);\n const patch = compare(0, this.frmStaffModel.value);\n console.log(patch, \"patch\");\n this.staffBiodataService\n .patchStaffBiodata(this.employeeObj.id, patch)\n .subscribe(\n (result: any) => {\n this.alertify.success(\n \"Employee Biodata Records Updated Successfully\"\n );\n },\n (error) => {\n this.alertify.error(\"Failed to Update Employee Biodata Records\");\n }\n );\n }\n\n reloadCurrentRoute() {\n let currentUrl = this.router.url;\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\n this.router.navigate([currentUrl]);\n });\n }\n\n editFormView() {\n this.isEdit = true;\n }\n\n // title = 'angular13bestcode';\n personalDetails!: FormGroup;\n addressDetails!: FormGroup;\n educationalDetails!: FormGroup;\n personal_step = false;\n academic_step = false;\n address_step = false;\n work_step = false;\n professional_step = false;\n referee_step = false;\n children_step = false;\n cv_step = false;\n step = 1;\n\n get personal() {\n return this.personalDetails.controls;\n }\n\n get address() {\n return this.addressDetails.controls;\n }\n\n get education() {\n return this.educationalDetails.controls;\n }\n\n next() {\n this.getData();\n if (this.step == 1) {\n this.personal_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n } else if (this.step == 2) {\n this.academic_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n } else if (this.step == 3) {\n this.work_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n } else if (this.step == 4) {\n this.professional_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n } else if (this.step == 5) {\n this.referee_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n } else if (this.step == 6) {\n this.children_step = true;\n this.getData();\n console.log(this.data);\n this.step++;\n }\n }\n\n previous() {\n this.step--;\n\n if (this.step == 1) {\n this.academic_step = false;\n }\n if (this.step == 2) {\n this.work_step = false;\n }\n if (this.step == 3) {\n this.professional_step = false;\n }\n if (this.step == 4) {\n this.referee_step = false;\n }\n if (this.step == 5) {\n this.children_step = false;\n }\n if (this.step == 6) {\n this.cv_step = false;\n }\n }\n\n callApi() {\n if (this.step == 1) {\n this.biodataSrv\n .getBiodata(this.user)\n .subscribe((res: any) => {\n this.employeeObj = res;\n console.log(res, \"result1\");\n // this.initFormModel.controls.lastName.setValue(res.lastName)\n this.myImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${res.passport}`\n );\n this.spouseImage = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${res.spousePassport}`\n );\n this.frmStaffModel = new FormGroup({\n employeeId: new FormControl(res.employeeId),\n title: new FormControl(res.title),\n lastName: new FormControl(res.lastName),\n firstName: new FormControl(res.firstName),\n middleName: new FormControl(res.middleName),\n gender: new FormControl(res.gender),\n complexion: new FormControl(res.complexion),\n contactAddress: new FormControl(res.contactAddress),\n countryId: new FormControl(res.countryId),\n stateId: new FormControl(res.stateId),\n city: new FormControl(res.city),\n email: new FormControl(res.email),\n marital_Status: new FormControl(res.marital_Status),\n levelCode: new FormControl(res.levelCode),\n notchCode: new FormControl(res.notchCode),\n dob: new FormControl(res.dob),\n placeOfBirth: new FormControl(res.placeOfBirth),\n stateOrigin: new FormControl(res.stateOrigin),\n localGovtOrigin: new FormControl(res.localGovtOrigin),\n mobilePhone: new FormControl(res.mobilePhone),\n homePhone: new FormControl(res.homePhone),\n workPhone: new FormControl(res.workPhone),\n accountNo: new FormControl(res.accountNo),\n branchId: new FormControl(res.branchId),\n departmentId: new FormControl(res.departmentId),\n unitId: new FormControl(res.unitId),\n jobDeskId: new FormControl(res.jobDeskId),\n positionId: new FormControl(res.positionId),\n dateOfEmployment: new FormControl(res.dateOfEmployment),\n resumptionDate: new FormControl(res.resumptionDate),\n basicSalary: new FormControl(res.basicSalary),\n kin_Title: new FormControl(res.kin_Title),\n kin_LastName: new FormControl(res.kin_LastName),\n kin_FirstName: new FormControl(res.kin_FirstName),\n kin_MiddleName: new FormControl(res.kin_MiddleName),\n kin_ContactAddress: new FormControl(res.kin_ContactAddress),\n kin_Country: new FormControl(res.kin_Country),\n kin_State: new FormControl(res.kin_State),\n kin_City: new FormControl(res.kin_City),\n kin_Email: new FormControl(res.kin_Email),\n kin_MobilePhone: new FormControl(res.kin_MobilePhone),\n kin_WorkPhone: new FormControl(res.kin_WorkPhone),\n kin_Relationship: new FormControl(res.kin_Relationship),\n officeExtension: new FormControl(res.officeExtension),\n passport: new FormControl(),\n designation: new FormControl(res.designation),\n isComfirmed: new FormControl(res.isComfirmed),\n comfirmedDate: new FormControl(res.comfirmedDate),\n staffTypeCode: new FormControl(res.staffTypeCode),\n staffTypeDetail_Code: new FormControl(res.staffTypeDetail_Code),\n comfirmedUserId: new FormControl(res.comfirmedUserId),\n includePayroll: new FormControl(res.includePayroll),\n noOfDays: new FormControl(res.noOfDays),\n leaveBalance: new FormControl(res.leaveBalance),\n sectionCode: new FormControl(res.sectionCode),\n serviceAgeRetired: new FormControl(res.serviceAgeRetired),\n serviceAgeNow: new FormControl(res.serviceAgeNow),\n nationality: new FormControl(res.nationality),\n planCode: new FormControl(res.planCode),\n hmoCode: new FormControl(res.hmoCode),\n hmoEnabled: new FormControl(res.hmoEnabled),\n spouseFullName: new FormControl(res.spouseFullName),\n spouseDOB: new FormControl(res.spouseDOB),\n spousePassport: new FormControl(),\n cvPath: new FormControl(res.cvPath),\n bvn: new FormControl(res.bvn),\n pfaCode: new FormControl(res.pfaCode),\n nyscCompleted: new FormControl(res.nyscCompleted),\n nsitf: new FormControl(res.nsitf),\n itf: new FormControl(res.itf),\n fullName: new FormControl(res.fullName),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n }\n\n this.academicSrv\n .getAcademic(this.user)\n .subscribe((res2: any) => {\n this.academicData = res2.responseData.filter((record) => record.status === \"active\");\n console.log(this.academicData, \"academic result\");\n\n const academicArray = this.academicData.map((academicItem) => {\n return new FormGroup({\n id: new FormControl(academicItem.id),\n employeeId: new FormControl(academicItem.employeeId),\n educationLevel: new FormControl(academicItem.educationLevel),\n institutionName: new FormControl(academicItem.institutionName),\n courseOfStudy: new FormControl(academicItem.courseOfStudy),\n qualificationObtained: new FormControl(\n academicItem.qualificationObtained\n ),\n classOfQualification: new FormControl(\n academicItem.classOfQualification\n ),\n address: new FormControl(academicItem.address),\n startDate: new FormControl(academicItem.startDate),\n endDate: new FormControl(academicItem.endDate),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.academicForm = new FormGroup({\n staff_acsademic: new FormArray(academicArray),\n });\n });\n\n this.workSrv\n .getWork(this.user)\n .subscribe((res3: any) => {\n this.workData = res3.responseData.filter((record) => record.status === \"active\");\n console.log(this.workData, \"work result\");\n\n const workArray = this.workData.map((workItem) => {\n return new FormGroup({\n id: new FormControl(workItem.id),\n employeeId: new FormControl(workItem.employeeId),\n companyName: new FormControl(workItem.companyName),\n position: new FormControl(workItem.position),\n jobDescription: new FormControl(workItem.jobDescription),\n startDate: new FormControl(workItem.startDate),\n endDate: new FormControl(workItem.endDate),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.workForm = new FormGroup({\n staff_WorkExperience: new FormArray(workArray),\n });\n });\n\n this.professionalSrv\n .getProfession(this.user)\n .subscribe((res4: any) => {\n this.professionalData = res4.responseData.filter((record) => record.status === \"active\");\n console.log(this.professionalData, \"professional result\");\n\n const professionalArray = this.professionalData.map((professionalItem) => {\n return new FormGroup({\n id: new FormControl(professionalItem.id),\n employeeId: new FormControl(professionalItem.employeeId),\n professionalAssociation: new FormControl(\n professionalItem.professionalAssociation\n ),\n certificationObtained: new FormControl(\n professionalItem.certificationObtained\n ),\n membershipStatus: new FormControl(\n professionalItem.membershipStatus\n ),\n dateObtained: new FormControl(professionalItem.dateObtained),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.professionForm = new FormGroup({\n staff_professional: new FormArray(professionalArray),\n });\n });\n\n this.refereeSrv\n .getReferee(this.user)\n .subscribe((res5: any) => {\n this.refereeData = res5.responseData.filter((record) => record.status === \"active\");\n console.log(this.refereeData, \"referee result\");\n\n const refereeArray = this.refereeData.map((refereeItem) => {\n return new FormGroup({\n id: new FormControl(refereeItem.id),\n ref_EmployeeId: new FormControl(refereeItem.ref_EmployeeId),\n ref_Title: new FormControl(refereeItem.ref_Title),\n ref_LastName: new FormControl(refereeItem.ref_LastName),\n ref_FirstName: new FormControl(refereeItem.ref_FirstName),\n ref_MiddleName: new FormControl(refereeItem.ref_MiddleName),\n ref_ContactAddress: new FormControl(refereeItem.ref_ContactAddress),\n ref_CountryId: new FormControl(refereeItem.ref_CountryId),\n ref_StateId: new FormControl(refereeItem.ref_StateId),\n ref_City: new FormControl(refereeItem.ref_City),\n ref_Email: new FormControl(refereeItem.ref_Email),\n ref_MobilePhone: new FormControl(refereeItem.ref_MobilePhone),\n ref_HomePhone: new FormControl(refereeItem.ref_HomePhone),\n ref_WorkPhone: new FormControl(refereeItem.ref_WorkPhone),\n ref_Relationship: new FormControl(refereeItem.ref_Relationship),\n ref_CompanyName: new FormControl(refereeItem.ref_CompanyName),\n ref_Position: new FormControl(refereeItem.ref_Position),\n // ref_CompanyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.refereeForm = new FormGroup({\n refreedata: new FormArray(refereeArray),\n });\n });\n\n this.childrenSrv\n . getChildren(this.user)\n .subscribe((res6: any) => {\n this.childrenData = res6.responseData.filter((record) => record.status === \"active\");\n console.log(this.childrenData, \"children result\");\n\n const childrenArray = this.childrenData.map((childrenItem) => {\n return new FormGroup({\n id: new FormControl(childrenItem.id),\n employeeId: new FormControl(childrenItem.employeeId),\n fullName: new FormControl(childrenItem.fullName),\n dob: new FormControl(childrenItem.dob),\n passport: new FormControl(\n (this.childrenImage =\n this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${childrenItem.passport}`\n ))\n ),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.childrenForm = new FormGroup({\n staffchildren: new FormArray(childrenArray),\n });\n });\n\n this.cvSrv\n .getCv(this.user)\n .subscribe((res7: any) => {\n this.cVData = res7.filter((record) => record.status === \"active\");\n console.log(this.cVData, \"CV result\");\n\n const cvArray = this.cVData.map((cvItem) => {\n return new FormGroup({\n id: new FormControl(cvItem.id),\n employeeId: new FormControl(cvItem.employeeId),\n // cvFileName: new FormControl(item.cvFileName),\n cvContent: new FormControl(cvItem.cvContent),\n fileSize: new FormControl(cvItem.fileSize),\n contentType: new FormControl(cvItem.contentType),\n fileExtension: new FormControl(cvItem.fileExtension),\n approvedBy: new FormControl(cvItem.approvedBy),\n modifiedBy: new FormControl(cvItem.modifiedBy),\n rejectedBy: new FormControl(cvItem.rejectedBy),\n approvedDate: new FormControl(cvItem.approvedDate),\n rejectionDate: new FormControl(cvItem.rejectionDate),\n modifiedDate: new FormControl(cvItem.modifiedDate),\n // companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n // createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n // createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n });\n\n this.cvForm = new FormGroup({\n staffs: new FormArray(cvArray),\n });\n });\n }\n\n addNewAcademicForm() {\n const newAcademicFormGroup = new FormGroup({\n id: new FormControl(\"\"), // You can initialize with default values or leave it empty\n employeeId: new FormControl(\"\"),\n educationLevel: new FormControl(\"\"),\n institutionName: new FormControl(\"\"),\n courseOfStudy: new FormControl(\"\"),\n qualificationObtained: new FormControl(\"\"),\n classOfQualification: new FormControl(\"\"),\n address: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n // Get the 'staff_acsademic' FormArray and push the new FormGroup to it\n const staffAcsademicArray = this.academicForm.get(\n \"staff_acsademic\"\n ) as FormArray;\n staffAcsademicArray.push(newAcademicFormGroup);\n }\n\n deleteAcademicForm(index: number) {\n const staffAcsademicArray = this.academicForm.get('staff_acsademic') as FormArray;\n\n const formToDelete = staffAcsademicArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffEducationService.deleteStaffEducation(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Education Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Education\");\n }\n\n });\n }\n\n const control = this.academicForm.controls[\"staff_acsademic\"];\n control.removeAt(index);\n }\n\n addNewWorkForm() {\n const newWorkFormGroup = new FormGroup({\n id: new FormControl(\"\"), // You can initialize with default values or leave it empty\n employeeId: new FormControl(\"\"),\n companyName: new FormControl(\"\"),\n position: new FormControl(\"\"),\n jobDescription: new FormControl(\"\"),\n startDate: new FormControl(\"\"),\n endDate: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n // Get the 'staff_acsademic' FormArray and push the new FormGroup to it\n const staffWorkExperienceArray = this.workForm.get(\n \"staff_WorkExperience\"\n ) as FormArray;\n staffWorkExperienceArray.push(newWorkFormGroup);\n }\n\n deleteWorkForm(index: number) {\n const staffWorkExperienceArray = this.workForm.get('staff_WorkExperience') as FormArray;\n\n const formToDelete = staffWorkExperienceArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffWorkService.deleteStaffWorkExperience(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Work Experience Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Work Experience\");\n }\n\n });\n }\n\n const control = this.workForm.controls[\"staff_WorkExperience\"];\n control.removeAt(index);\n }\n\n addNewProfessionalForm() {\n const newProfessionalFormGroup = new FormGroup({\n id: new FormControl(\"\"),\n employeeId: new FormControl(\"\"),\n professionalAssociation: new FormControl(\"\"),\n certificationObtained: new FormControl(\"\"),\n membershipStatus: new FormControl(\"\"),\n dateObtained: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n const staffProfessionalArray = this.professionForm.get(\n \"staff_professional\"\n ) as FormArray;\n staffProfessionalArray.push(newProfessionalFormGroup);\n }\n\n // Inside your component class\n deleteProfessionalForm(index: number) {\n const staffProfessionalArray = this.professionForm.get('staff_professional') as FormArray;\n\n const formToDelete = staffProfessionalArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffProfessionalService.deleteStaffProfessional(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Professional Record Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Professional Record\");\n }\n\n });\n }\n\n const control = this.professionForm.controls[\"staff_professional\"];\n control.removeAt(index);\n }\n\n addNewRefereeForm() {\n const newRefereeFormGroup = new FormGroup({\n id: new FormControl(\"\"),\n ref_EmployeeId: new FormControl(\"\"),\n ref_Title: new FormControl(0),\n ref_LastName: new FormControl(\"\"),\n ref_FirstName: new FormControl(\"\"),\n ref_MiddleName: new FormControl(\"\"),\n ref_ContactAddress: new FormControl(\"\"),\n ref_CountryId: new FormControl(0),\n ref_StateId: new FormControl(0),\n ref_City: new FormControl(\"\"),\n ref_Email: new FormControl(\"\"),\n ref_MobilePhone: new FormControl(\"\"),\n ref_HomePhone: new FormControl(\"\"),\n ref_WorkPhone: new FormControl(\"\"),\n ref_Relationship: new FormControl(\"\"),\n ref_CompanyName: new FormControl(\"\"),\n ref_Position: new FormControl(\"\"),\n ref_CompanyId: new FormControl(SmartUtil.getUserInfo().companyId),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n const staffRefereeArray = this.refereeForm.get(\"refreedata\") as FormArray;\n staffRefereeArray.push(newRefereeFormGroup);\n }\n\n // Inside your component class\n deleteRefereeForm(index: number) {\n const staffRefereeArray = this.refereeForm.get('refreedata') as FormArray;\n\n const formToDelete = staffRefereeArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffRefereeService.deleteStaffReferee(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Referee Record Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Referee Record\");\n }\n\n });\n }\n\n const control = this.refereeForm.controls[\"refreedata\"];\n control.removeAt(index);\n }\n\n\n addNewChildrenForm(): FormGroup {\n const newChildrenFormGroup = new FormGroup({\n // id: new FormControl(\"\"),\n employeeId: new FormControl(this.employeeObj.employeeId),\n fullName: new FormControl(\"\"),\n dob: new FormControl(\"\"),\n passport: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n const staffChildrenArray = this.childrenForm.get(\n \"staffchildren\"\n ) as FormArray;\n staffChildrenArray.push(newChildrenFormGroup);\n\n return newChildrenFormGroup; // Explicitly return the created form group\n }\n\n // Inside your component class\n deleteChildrenForm(index: number) {\n const staffChildrenArray = this.childrenForm.get('staffchildren') as FormArray;\n\n const formToDelete = staffChildrenArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffChildrenService.deleteStaffChildren(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee Children Record Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee Children Record\");\n }\n\n });\n }\n\n const control = this.childrenForm.controls[\"staffchildren\"];\n control.removeAt(index);\n }\n\n\n\n addNewCvForm() {\n const newCvFormGroup = new FormGroup({\n id: new FormControl(\"\"),\n employeeId: new FormControl(\"\"),\n cvFileName: new FormControl(\"\"),\n cvContent: new FormControl(\"\"),\n fileSize: new FormControl(0),\n contentType: new FormControl(\"\"),\n fileExtension: new FormControl(\"\"),\n approvedBy: new FormControl(\"\"),\n modifiedBy: new FormControl(\"\"),\n rejectedBy: new FormControl(\"\"),\n approvedDate: new FormControl(\"\"),\n rejectionDate: new FormControl(\"\"),\n modifiedDate: new FormControl(\"\"),\n companyId: new FormControl(SmartUtil.getUserInfo().companyId),\n createdBy: new FormControl(SmartUtil.getUserInfo().userName),\n createdDate: new FormControl(SmartUtil.formatDateTimeServer()),\n status: new FormControl(\"active\"),\n });\n\n const staffCvArray = this.cvForm.get(\"staffs\") as FormArray;\n staffCvArray.push(newCvFormGroup);\n }\n\n // Inside your component class\n deleteCvForm(index: number) {\n const staffCvArray = this.cvForm.get('staffs') as FormArray;\n\n const formToDelete = staffCvArray.at(index) as FormGroup;\n const formId = formToDelete.get('id').value;\n console.log(formId);\n\n if (formId && formId > 0) {\n this.staffcvSrv.deleteStaffCv(formId).subscribe((res) => {\n if (res) {\n this.alertify.success(\"Employee CV Record Deleted Successfully\");\n } else {\n this.alertify.error(\"Failed to delete Employee CV Record\");\n }\n\n });\n }\n\n const control = this.cvForm.controls[\"staffs\"];\n control.removeAt(index);\n }\n\n // Assuming you have a function where you want to access a specific child by index\n getSpecificChild(index: number) {\n const staffChildrenArray = this.childrenForm.get(\n \"staffchildren\"\n ) as FormArray;\n\n if (staffChildrenArray && index >= 0 && index < staffChildrenArray.length) {\n const specificChild = staffChildrenArray.at(index) as FormGroup;\n // Now 'specificChild' holds the FormGroup for the child at the specified index\n // You can access individual form controls within this FormGroup using their names\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-self-service',\n templateUrl: './self-service.component.html',\n styleUrls: ['./self-service.component.css']\n})\nexport class SelfServiceComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CooperativeComponent } from './pages/cooperative/cooperative.component';\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\nimport { HeaderComponent } from './pages/header/header.component';\nimport { HmoComponent } from './pages/hmo/hmo.component';\nimport { HomeComponent } from './pages/home/home.component';\nimport { LeaveComponent } from './pages/leave/leave.component';\nimport { LoanComponent } from './pages/loan/loan.component';\nimport { LoginComponent } from './pages/login/login.component';\nimport { PayslipComponent } from './pages/payslip/payslip.component';\nimport { SidenavComponent } from './pages/sidenav/sidenav.component';\nimport { StaffExitComponent } from './pages/staff-exit/staff-exit.component';\nimport { StaffSetupComponent } from './pages/staff-setup/staff-setup.component';\nimport { SharingModule } from '../sharing/sharing.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DataTablesModule } from 'angular-datatables';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { RouterModule } from '@angular/router';\nimport { SelfServiceComponent } from './self-service.component';\nimport {\n BsDatepickerModule,\n BsDatepickerConfig,\n} from \"ngx-bootstrap/datepicker\";\n\n// Perfect Scrollbar\nimport {\n PerfectScrollbarModule, PerfectScrollbarConfigInterface,\n PERFECT_SCROLLBAR_CONFIG\n} from 'ngx-perfect-scrollbar';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MonthNamePipe } from './core/month-name.pipe';\nimport { LoanListComponent } from './pages/loan-list/loan-list.component';\nimport { LeaveListComponent } from './pages/leave-list/leave-list.component';\n\n\n\n@NgModule({\n declarations: [\n CooperativeComponent,\n DashboardComponent,\n HeaderComponent,\n HmoComponent,\n HomeComponent,\n LeaveComponent,\n LoanComponent,\n LoginComponent,\n PayslipComponent,\n SidenavComponent,\n StaffExitComponent,\n StaffSetupComponent,\n SelfServiceComponent,\n MonthNamePipe,\n LoanListComponent,\n LeaveListComponent,\n ],\n imports: [\n CommonModule,\n SharingModule,\n ReactiveFormsModule,\n FormsModule,\n DataTablesModule,\n HttpClientModule,\n NgSelectModule,\n RouterModule,\n PerfectScrollbarModule,\n NgbModule,\n BsDatepickerModule.forRoot(),\n ],\n exports: [\n LoginComponent,\n CooperativeComponent,\n DashboardComponent,\n HeaderComponent,\n HmoComponent,\n HomeComponent,\n LeaveComponent,\n LoanComponent,\n PayslipComponent,\n SidenavComponent,\n StaffExitComponent,\n StaffSetupComponent,\n ],\n})\nexport class SelfServiceModule {}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-my-table',\n templateUrl: './my-table.component.html',\n styleUrls: ['./my-table.component.css']\n})\nexport class MyTableComponent implements OnInit {\n\n @Input() columnHeadingArray:any [] = [];\n @Input() gridData: any[] = [];\n @Input() isAction: boolean = false;\n \n @Output() editCallback = new EventEmitter();\n @Output() deleteCallback = new EventEmitter();\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n onEdit(data: any){\n this.editCallback.emit(data);\n }\n\n onDelete(data: any){\n this.deleteCallback.emit(data);\n }\n\n}\n","import { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-option',\n templateUrl: './option.component.html',\n styleUrls: ['./option.component.scss']\n})\nexport class OptionComponent implements OnInit {\n\n @Input()\n value: string | null = null;\n\n @Output()\n selected = new EventEmitter();\n\n @HostListener('click')\n select() {\n this.isSelected = true;\n this.selected.emit(this);\n }\n\n @HostBinding('class.selected')\n\n protected isSelected = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n deselect() {\n this.isSelected = false;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\n transform(value: any, args?: any): any {\n if(!value) return null;\n if(!args) return value;\n\n args = args.toLowerCase();\n\n return value.filter((item: any) => {\n return JSON.stringify(item).toLowerCase().includes(args);\n })\n }\n\n\n}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { Component, OnInit, Input, HostListener, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'app-searchable-dropdown',\n templateUrl: './searchable-dropdown.component.html',\n styleUrls: ['./searchable-dropdown.component.scss'],\n animations: [\n trigger('dropDown', [\n state('void', style({ transform: 'scaleY(0)', opacity: 0 })),\n state('*', style({ transform: 'scaleY(1)', opacity: 1 })),\n transition('void => *', [animate('320ms cubic-bezier(0, 1, 0.45, 1.34)')]),\n transition('* => void', [animate('420ms cubic-bezier(0.88, -0.7, 0.86, 0.85)')]),\n ])\n ]\n})\nexport class SearchableDropdownComponent implements OnInit {\n\n @Input()\n label = '';\n\n @Input()\n searchable = false;\n\n @Input()\n value: string | null = null;\n\n @Output()\n readonly opened = new EventEmitter();\n\n @Output()\n readonly closed = new EventEmitter();\n\n @Output()\n readonly searchChanged = new EventEmitter();\n\n @HostListener('click')\n open() {\n this.isOpen = true;\n if (this.searchable) {\n setTimeout(() => {\n this.searchInputEl.nativeElement.focus();\n }, 0);\n }\n }\n\n close() {\n this.isOpen = false;\n }\n\n @ViewChild('input')\n searchInputEl!: ElementRef;\n\n isOpen = false;\n\n // @Input() options: string[] = [];\n // filteredOptions: string[] = [];\n // searchTerm = '';\n\n\n constructor() {}\n\n ngOnInit(): void {\n // this.filteredOptions = this.options;\n }\n\n protected onPanelAnimationDone({ fromState, toState }: AnimationEvent) {\n if (fromState === 'void' && toState === null && this.isOpen) {\n this.opened.emit();\n }\n if (fromState === null && toState === 'void' && !this.isOpen) {\n this.closed.emit();\n }\n }\n\n protected onHandleInput(e: Event) {\n this.searchChanged.emit((e.target as HTMLInputElement).value);\n }\n\n // filterOptions() {\n // this.filteredOptions = this.options.filter(option =>\n // option.toLowerCase().includes(this.searchTerm.toLowerCase())\n // );\n // }\n\n // selectOption(option: string) {\n // this.searchTerm = option;\n // this.filteredOptions = [];\n // }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomDatePipe } from 'src/assets/pipes/custom-date.pipe';\nimport { SpinnerComponent } from './spinner/spinner.component';\nimport { SearchPipe } from './search.pipe';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SearchableDropdownComponent } from './searchable-dropdown/searchable-dropdown.component';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport { OptionComponent } from './option/option.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { MyTableComponent } from './my-table/my-table.component';\n\n\n@NgModule({\n declarations: [CustomDatePipe, SpinnerComponent, SearchPipe, SearchableDropdownComponent, OptionComponent, TabsComponent, MyTableComponent],\n exports: [\n CustomDatePipe,\n SearchPipe,\n SpinnerComponent,\n SearchableDropdownComponent,\n OptionComponent,\n TabsComponent,\n MyTableComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n OverlayModule\n ]\n})\nexport class SharingModule { }\n","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { SpinnerService } from './spinner.service';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.css']\n})\nexport class SpinnerComponent implements OnInit {\n showSpinner = false;\n loader;\n\n constructor(\n private spinnerService: SpinnerService,\n private cdRef: ChangeDetectorRef\n ) {\n }\n\n ngOnInit() {\n \n }\n\n\n}\n\n","import { Injectable } from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpinnerService {\n \n private spinnerCounter = 0;\n spinnerCounter$ = new BehaviorSubject(0);\n\n constructor() { }\n\n show() {\n this.spinnerCounter++;\n this.spinnerCounter$.next(this.spinnerCounter);\n }\n\n hide() {\n if (this.spinnerCounter > 0) {\n this.spinnerCounter--;\n }\n this.spinnerCounter$.next(this.spinnerCounter);\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.css']\n})\nexport class TabsComponent implements OnInit {\n\n @Input() tabsArray: string[] = [];\n @Output() onTabChange = new EventEmitter();\n activatedTab: number = 0;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n setTab(index: number){\n this.activatedTab = index;\n this.onTabChange.emit(this.activatedTab);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({\n name: 'customDate'\n})\nexport class CustomDatePipe implements PipeTransform {\n\n transform(value: any, ...args: any[]): any {\n let myDate = value\n let changeFormat = myDate.replace(/(\\d{2})-(\\d{2})-(\\d{4})/, \"$2/$1/$3\")\n return new DatePipe('en-US').transform(changeFormat, 'MMM d, y');\n }\n\n}\n","export const environment = {\n // production: true,\n // apiBaseURI: 'http://41.184.40.66:8040/api/v1',\n // apiBaseURIHrm: 'http://41.184.40.66:8040/api',\n production: true,\n apiBaseURI: \"https://siaoclickapi.com/api/v1\",\n apiBaseURIHrm: \"https://siaoclickapi.com/api\",\n};\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n // production: true,\n // apiBaseURI: \"http://41.184.40.66:8040/api/v1\",\n // apiBaseURIHrm: \"http://41.184.40.66:8040/api\",\n production: true,\n apiBaseURI: \"https://siaoclickapi.com/api/v1\",\n apiBaseURIHrm: \"https://siaoclickapi.com/api\",\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":[],"sourceRoot":"webpack:///"}