{ "version": 3, "sources": ["src/app/contracts/contracts.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Observable, forkJoin, of } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { KreditorService } from '../shared/kreditor.service';\nimport { IClaimStatusStatistics, IContractCase, IContractClaimStatusFee, IContractClaimTypeSummary, IContractClosingType, IContractDebtorInfo, IContractExecutedAction, IContractNote, IContractNoteEdit, IContractSummary, IExternalContractStatus, IFilterContracts, IUpdateContractClosingTypeRequest, IUpdatedContractsMultipleStatuses } from './models';\nimport { UtilsService } from '../shared/utils.service';\nimport { AdminService } from '../admin/admin.service';\nimport { IAppUser } from '../shared/models';\nimport { LoginService } from '../login/login.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContractsService {\n\n constructor(private kreditorWs: KreditorService,\n private utils: UtilsService,\n private adminService: AdminService,\n private loginService: LoginService) { }\n\n get user$(): Observable {\n return this.loginService.currentUser$;\n }\n\n getClaimTypesWithStatuses(catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/claimtypes/statuses`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of([]); } throw e; }));\n }\n\n getContracts(filters: IFilterContracts, catchException: boolean = false): Observable {\n var url = this.utils.getUrlFromObject(`contracts`, filters);\n return this.kreditorWs.getServiceResult(url)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of([]); } throw e; }));\n }\n\n exportExcel(filters: IFilterContracts, language: string): Observable {\n var url = this.utils.getUrlFromObject(`contracts/exportExcel/${language}`, filters);\n return this.kreditorWs.getFile(url);\n }\n\n getSelectedClaimTypesForUser(): Observable {\n return this.user$.pipe(switchMap(user => {\n if (user?.isAuthenticated != true) return [];\n return forkJoin([this.adminService.getUser(user.code), this.getClaimTypesWithStatuses()])\n .pipe(map(([user, claimTypesWithStatuses]) => {\n if (user.userClaimTypes && user.userClaimTypes.length > 0) {\n var selectedClaimTypes = claimTypesWithStatuses.filter(x => user.userClaimTypes.findIndex(y => y.claimTypeCode == x.claimTypeCode) != -1);\n var defaultClaimTypeOnUser = user.userClaimTypes.find(p => p.isDefault == true);\n if (defaultClaimTypeOnUser) {\n for (var index in selectedClaimTypes) {\n if (selectedClaimTypes[index].claimTypeCode == defaultClaimTypeOnUser.claimTypeCode) {\n selectedClaimTypes[index].isDefault = true;\n break;\n }\n }\n }\n return selectedClaimTypes;\n }\n else return claimTypesWithStatuses;\n }))\n }))\n }\n\n changeStatus(updatedStatuses: IUpdatedContractsMultipleStatuses[], useSecondaryFee: boolean): Observable {\n return this.kreditorWs.postServiceResult(`contracts/updateStatus?useSecondaryFee=${useSecondaryFee}`, updatedStatuses)\n .pipe(map(_ => _.result));\n }\n\n changeClosingType(selectedContractId: number, newContractClosingTypeId: number): Observable {\n let input = { contractIdToUpdate: selectedContractId, contractClosingTypeId: newContractClosingTypeId };\n return this.kreditorWs.postServiceResult(`contracts/updateClosingType`, input)\n .pipe(map(_ => _.result));\n }\n\n getClosingFees(statusId: number, contractIds: number[]): Observable {\n var url = `contracts/claimtypes/statuses/${statusId}/fees`;\n contractIds.forEach(x => url += (url.indexOf('?') > -1 ? '&' : '?') + `contractIds=${x}`);\n\n return this.kreditorWs.getServiceResult(url).pipe(map(_ => _.result));\n }\n\n getStatistics(claimTypeCode: string, customerNumber?: number): Observable {\n var url = `contracts/claimtypes/${claimTypeCode}/statusStatistics`;\n if (customerNumber) url += `?customerNumber=${customerNumber}`;\n\n return this.kreditorWs.getServiceResult(url)\n .pipe(map(_ => _.result));\n }\n\n getCases(contractStatusId: number, catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/${contractStatusId}/cases`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of([]); } throw e; }));\n }\n\n getExternalStatus(contractStatusId: number, catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/${contractStatusId}/externalStatus`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of(null); } throw e; }));\n }\n\n getContractNotes(contractStatusId: number, catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/${contractStatusId}/notes`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of([]); } throw e; }));\n }\n\n getContractDebtor(contractStatusId: number, catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/${contractStatusId}/debtor`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of(null); } throw e; }));\n }\n\n addNote(contractStatusId: number, note: IContractNoteEdit): Observable {\n return this.kreditorWs.postServiceResult(`contracts/${contractStatusId}/notes`, note)\n .pipe(map(_ => _.result));\n }\n\n updateNote(contractStatusId: number, note: IContractNoteEdit): Observable {\n return this.kreditorWs.postServiceResult(`contracts/${contractStatusId}/notes/${note.id}`, note)\n .pipe(map(_ => _.result));\n }\n\n deleteNote(contractStatusId: number, noteId: number): Observable {\n return this.kreditorWs.deleteServiceResult(`contracts/${contractStatusId}/notes/${noteId}`)\n .pipe(map(_ => _.result));\n }\n\n getClosingTypes(): Observable {\n return this.kreditorWs.getServiceResult('contracts/closingTypes')\n .pipe(map(_ => _.result));\n }\n\n getContractActions(contractStatusId: number, catchException: boolean = false): Observable {\n return this.kreditorWs.getServiceResult(`contracts/${contractStatusId}/actions`)\n .pipe(map(_ => _.result))\n .pipe(catchError(e => { if (catchException) { return of([]); } throw e; }));\n }\n\n\n}\n"], "mappings": "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", "names": ["user"] }