{"version":3,"sources":["./src/app/pages/data-capture/deferral.component.ts","./src/app/pages/data-capture/deferral.component.html","./src/app/pages/page-not-found/page-not-found.module.ts","./src/app/pages/page-not-found/page-not-found.service.ts","./src/app/pages/home/index.ts","./src/app/pages/home/home.component.ts","./src/app/pages/home/home.component.html","./src/app/pages/data-capture/miscellaneous-income.component.ts","./src/app/pages/data-capture/miscellaneous-income.component.html","./src/app/pages/data-capture/data-capture-forms.service.ts","./src/app/shared/nav-bar/nav-bar.component.ts","./src/app/shared/nav-bar/nav-bar.component.html","./src/app/shared/dialog-content.html","./src/app/pages/home/home.module.ts","./src/app/shared/pipes/pipes.module.ts","./src/app/pages/data-capture/data-capture-forms.module.ts","./src/app/shared/svg-viewer/index.ts","./src/app/pages/data-capture/index.ts","./src/app/pages/adjustment/adjustment.module.ts","./src/app/pages/page-not-found/page-not-found.component.ts","./src/app/pages/page-not-found/page-not-found.component.html","./src/app/pages/data-capture/business-unit-adjustment-transfer.model.ts","./src/app/pages/data-capture/business-unit-adjustment-transfer.component.ts","./src/app/pages/data-capture/business-unit-adjustment-transfer.component.html","./src/app/shared/services/cacheinterceptor.service.ts","./src/app/pages/data-capture/data-capture-forms-material.module.ts","./src/app/pages/data-capture/business-unit-adjustment.component.ts","./src/app/pages/data-capture/business-unit-adjustment.component.html","./src/app/shared/svg-viewer/svg-viewer.component.ts","./src/app/shared/svg-viewer/svg-viewer.component.html","./src/app/shared/user-authorization/user-authorization.component.ts","./src/app/shared/user-authorization/user-authorization.component.html","./src/app/shared/services/auth.service.ts","./src/app/app.date-adapter.ts","./src/app/shared/pipes/amount.pipe.ts","./src/app/pages/adjustment/adjustment.service.ts","./src/app/pages/data-capture/snackBarDefault.component.ts","./src/app/pages/data-capture/snackBarDefault.component.html","./src/app/pages/data-capture/accrual.model.ts","./src/app/shared/nav-bar/index.ts","./src/app/shared/svg-viewer/svg-viewer.module.ts","./src/app/shared/services/window-ref.service.ts","./src/app/pages/data-capture/business-unit-adjustment.model.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/pages/data-capture/summary-action.component.ts","./src/app/pages/data-capture/summary-action.component.html","./src/app/pages/data-capture/accrual.component.ts","./src/app/pages/data-capture/accrual.component.html","./src/app/pages/data-capture/accrual-dialog-content.html","./src/app/snack-bar-service.service.ts","./src/app/shared/user-authorization/user-authorization.service.ts","./src/app/app.module.ts","./src/app/app.config.ts","./src/app/shared/nav-bar/nav-bar.model.ts","./src/app/shared/directives/user-session.directive.ts","./src/assets/auth-config.ts","./src/app/shared/nav-bar/nav-bar.module.ts","./src/app/pages/adjustment/adjustment-list.component.ts","./src/app/pages/adjustment/adjustment-list.component.html","./src/app/shared/services/app-insight.service.ts","./src/app/shared/services/utils.service.ts","./src/app/pages/adjustment/index.ts","./src/app/shared/user-authorization/index.ts","./src/app/shared/directives/directive.moudle.ts","./src/app/shared/user-authorization/user-authorization.module.ts","./src/app/shared/models/adjustment.model.ts","./src/app/pages/data-capture/deferral.model.ts","./src/app/app-routing.module.ts","./src/app/pages/data-capture/miscellaneous-income.model.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { WindowRef } from '../../shared/services/window-ref.service';\r\nimport { DataCaptureFormsService } from './data-capture-forms.service';\r\n\r\nimport DeferralModel from './deferral.model';\r\nimport { AdjustmentStatus, AdjustmentType } from '../../shared/models/adjustment.model';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'deferral',\r\n templateUrl: './deferral.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\nexport class DeferralComponent implements OnInit, OnDestroy {\r\n\r\n request: DeferralModel = new DeferralModel();;\r\n\r\n transactionNumbers: any;\r\n isTransactionNumbersExists: boolean = true;\r\n reasonsForDeferralOptions: any;\r\n\r\n hideSummary: boolean = true;\r\n errorMsg: string = '';\r\n brokerageAmountErrMsg: string;\r\n brokerageDateErrMsg: string;\r\n\r\n currentDate: Date = new Date();\r\n nextMonthStartingDate : Date;\r\n\r\n subActivatedRoute: any;\r\n currentWindow: any;\r\n\r\n userDetails: object = {};\r\n\r\n isslipUploaded = false;\r\n slipUploaded = false;\r\n activePeriodDate: Date;\r\n\r\n constructor(private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private winRef: WindowRef,\r\n private dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService\r\n ) {\r\n\r\n this.currentWindow = winRef.nativeWindow;\r\n }\r\n\r\n ngOnInit() {\r\n this.dataCaptureFormsService.getReasonsForAdjustment(this.request.adjTypeID)\r\n .subscribe(\r\n (data) => {\r\n this.reasonsForDeferralOptions = data;\r\n }\r\n );\r\n //Getting the details for edit in case required\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(params => {\r\n if (params['actionType'] == 'reDeferral') {\r\n this.request.actionType = 'reDeferral';\r\n }\r\n if (+params['id']) {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.id = +params['id'];\r\n this.dataCaptureFormsService.getRequestDetails(+params['id'], AdjustmentType.Deferral)\r\n .subscribe((result) => {\r\n this.request.setValuesFromAPIObj(result);\r\n //this.utilsService.showLoadingIcon(false);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n });\r\n }\r\n });\r\n this.dataCaptureFormsService.getUserDetails()\r\n .subscribe(\r\n (data) => {\r\n this.userDetails = data;\r\n this.activePeriodDate = this.utilsService.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n }\r\n ); \r\n }\r\n\r\n ngOnDestroy() {\r\n this.subActivatedRoute.unsubscribe();\r\n }\r\n\r\n toggleFormSummaryDisplay(event: Event, form: NgForm): void {\r\n\r\n if(this.formValidations(form)){\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n addDeferralRequests(event: Event, currency): void {\r\n if(this.request.multiCurrencies.length > 1) {\r\n this.request.deferralRequests.push({\r\n curencyId: null,\r\n currency: null,\r\n brokerage: 0,\r\n brokerageRecognitionDate: null,\r\n isDisabled: false,\r\n isCurrentPeriodId:true\r\n });\r\n } else {\r\n this.request.deferralRequests.push({\r\n curencyId: this.request.currencyID,\r\n currency: this.request.currency,\r\n brokerage: 0,\r\n brokerageRecognitionDate: null,\r\n isDisabled: false,\r\n isCurrentPeriodId:true\r\n });\r\n }\r\n }\r\n\r\n removeDeferralRequests(event: Event, index: number): void {\r\n let newDeferralRequests = this.request.deferralRequests.filter((currentVal, i) => {\r\n return i != index;\r\n });\r\n this.request.deferralRequests = newDeferralRequests;\r\n this.deferralRequestsDatesValidation();\r\n this.checkTotalBrokerageAmounts();\r\n }\r\n\r\n checkTotalBrokerageAmounts(): boolean {\r\n\r\n let deferralRequestTotal: number = 0;\r\n let numberWithoutComma;\r\n let hasValueAsZero: boolean = false;\r\n \r\n this.request.deferralRequests.forEach((deferralRequest: object) => {\r\n if(deferralRequest['brokerage']==0){\r\n hasValueAsZero = true;\r\n }\r\n numberWithoutComma = (deferralRequest['brokerage'] && deferralRequest['brokerage'].replace) ? deferralRequest['brokerage'].replace(/,/g, '') : deferralRequest['brokerage'];\r\n deferralRequestTotal += Number(numberWithoutComma);\r\n });\r\n if(hasValueAsZero){\r\n this.brokerageAmountErrMsg = 'Please update the brokerage amount to a value other than 0';\r\n return false;\r\n }\r\n if (deferralRequestTotal.toFixed(2) != this.request.amount) {\r\n this.brokerageAmountErrMsg = 'Total brokerage amount entered should be equal to the current brokerage amount by currency';\r\n return false;\r\n }\r\n if(this.request.selectedBrokerageDetails.length > 1) {\r\n let brokerageAmountErrorFlag = [];\r\n this.request.selectedBrokerageDetails.forEach((val, index) => {\r\n let filteredCurrencyData = this.request.deferralRequests.filter((value, ind) => {\r\n return val['currencyCode'] === value['currency'];\r\n });\r\n let filteredCurrencySum;\r\n if(filteredCurrencyData.length > 1) {\r\n filteredCurrencySum = this.sumFilteredCurrencyData(filteredCurrencyData);\r\n } else {\r\n filteredCurrencySum = filteredCurrencyData[0]['brokerage'];\r\n }\r\n if(this.convertedCurrencyString(filteredCurrencySum) !== val['brokerageAmount']) {\r\n brokerageAmountErrorFlag.push(true);\r\n }\r\n });\r\n if(brokerageAmountErrorFlag.length) {\r\n this.brokerageAmountErrMsg = 'Total brokerage amount entered should be equal to the current brokerage amount by currency.';\r\n return false;\r\n }\r\n }\r\n this.brokerageAmountErrMsg = '';\r\n return true;\r\n }\r\n\r\n sumFilteredCurrencyData(data) {\r\n let sum: number = 0;\r\n for(let i =0; i < data.length; i++) {\r\n let brokerageAmountWithoutComma = (data[i]['brokerage'] && data[i]['brokerage'].replace) ? data[i]['brokerage'].replace(/,/g, '') : data[i]['brokerage'];\r\n sum = Number(Number(sum + parseFloat(brokerageAmountWithoutComma)).toFixed(2));\r\n }\r\n return sum;\r\n }\r\n\r\n autoCompleteTransactionNumbers(): void {\r\n this.isTransactionNumbersExists = true;\r\n if (this.request.transactionNumber.length < 3) {\r\n return;\r\n }\r\n this.transactionNumbers = this.dataCaptureFormsService\r\n .getTransactionNumbers(this.request.transactionNumber, '')\r\n .pipe(\r\n map(transactionNumbers => this.filterTransactionNumbers(transactionNumbers))\r\n );\r\n }\r\n\r\n filterTransactionNumbers(values) {\r\n if(values.length) {\r\n this.isTransactionNumbersExists = true;\r\n return values.filter(trNo =>\r\n trNo.transactionNumber.toLowerCase().includes(this.request.transactionNumber.toLowerCase())\r\n )\r\n } else {\r\n this.isTransactionNumbersExists = false;\r\n }\r\n }\r\n\r\n transactionNumberSelected(e: Event): void {\r\n\r\n //Commenting this below as blur being used for fetching the data for now\r\n /*this.dataCaptureFormsService\r\n .getTransactionNumberDetails(this.request.transactionNumber, 'Deferral')\r\n .subscribe(\r\n data => {\r\n this.request.updateFieldsFromTransactionNumberDetails(data);\r\n }\r\n );*/\r\n }\r\n\r\n transactionNumberBlur(e: Event): void {\r\n\r\n if (this.request.transactionNumber) {\r\n this.dataCaptureFormsService\r\n .getTransactionNumberDetails(this.request.transactionNumber, 'Deferral')\r\n .subscribe(\r\n data => {\r\n if (data) {\r\n this.request.updateFieldsFromTransactionNumberDetails(false, data);\r\n } else {\r\n this.request.updateFieldsFromTransactionNumberDetails(true, null);\r\n }\r\n }\r\n );\r\n } else {\r\n this.request.updateFieldsFromTransactionNumberDetails(true, null);\r\n }\r\n }\r\n\r\n reasonForDeferralChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.reasonsForDeferralOptions.filter(\r\n currentVal => {\r\n return currentVal['reasonID'] == this.request.reasonForDeferralId;\r\n }\r\n )\r\n this.request.reasonForDeferral = selectedOptionArr[0]['name'];\r\n }\r\n\r\n brokerageAccountChange(e: Event): void {\r\n let groupByData;\r\n let selectedOptionArr = this.request.brokerageDetails.filter(\r\n currentVal => {\r\n return currentVal['id'] == this.request.deferredBrokerageAccountID;\r\n }\r\n )\r\n\r\n this.request.selectedBrokerageDetails = [...selectedOptionArr];\r\n this.request.brokerageAccount = selectedOptionArr[0]['name'];\r\n this.request.accountCode = selectedOptionArr[0]['accountCode'];\r\n this.request.businessUnitGroup2 = selectedOptionArr[0]['businessUnitGroup2'];\r\n this.request.businessUnitGroup3 = selectedOptionArr[0]['businessUnitGroup3'];\r\n this.request.businessUnitGroup4 = selectedOptionArr[0]['businessUnitGroup4'];\r\n this.request.currency = selectedOptionArr[0]['currencyCode'];\r\n this.request.currencyID = selectedOptionArr[0]['currencyID'];\r\n this.request.amount = selectedOptionArr[0]['brokerageAmount'];\r\n this.request.incomeBrokerageRecognitionDate = selectedOptionArr[0]['brokerageRecogDate'];\r\n\r\n //Giving default values to deferral requests first row\r\n this.request.deferralRequests[0]['curencyId'] = this.request.currencyID;\r\n this.request.deferralRequests[0]['currency'] = this.request.currency;\r\n this.request.deferralRequests[0]['brokerage'] = this.request.amount;\r\n this.request.deferralRequests[0]['brokerageRecognitionDate'] = this.request.incomeBrokerageRecognitionDate;\r\n }\r\n\r\n slipFileUploadChange(files: FileList) {\r\n if( this.isslipUploaded ) {\r\n this.slipUploaded = true;\r\n }\r\n if(files.length) {\r\n this.request.slipFile = files[0];\r\n this.request.slipFileName = files[0].name;\r\n this.request.slipExistingFileName = null;\r\n this.isslipUploaded = true;\r\n }\r\n }\r\n \r\n chooseFile(event) {\r\n // this.utilsService.isSessionExists().then((isSessionExists)=>{\r\n if(!this.utilsService.isSessionExists()) {\r\n event.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n event.stopPropagation();\r\n }else {\r\n let ele: HTMLElement = document.getElementById('slipfileUpload') as HTMLElement;\r\n ele.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n // });\r\n return false;\r\n }\r\n\r\n slipFileRemove(e: Event, slipFileUploadField) {\r\n\r\n slipFileUploadField.value = '';\r\n this.request.slipFile = null;\r\n this.request.slipFileName = null;\r\n }\r\n\r\n saveConfirmRequest ( e: Event, form: NgForm, actionType): void{\r\n if(!this.formValidations(form)){\r\n\r\n this.hideSummary = true;\r\n return;\r\n }\r\n let isRequestIDExists = this.request.id ? true : false;\r\n let isFileExists: boolean = false;\r\n\r\n let sendTransitionOne = false;//Used to determine if workflow with transition 1 should be called or not\r\n let userEmail = localStorage.getItem('userEmail');\r\n\r\n if (!this.request.id) {\r\n sendTransitionOne = true;\r\n } else if (this.request.status == AdjustmentStatus.Rejected) {\r\n sendTransitionOne = true;\r\n }\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let expectedSaveObj = this.request.getSaveObject();\r\n let formData;\r\n if(this.request.slipFileName) {\r\n formData = new FormData();\r\n isFileExists = true;\r\n formData.append('file', this.request.slipFile, this.request.slipFileName);\r\n formData.append('data', JSON.stringify(expectedSaveObj));\r\n } else {\r\n isFileExists = false;\r\n formData = expectedSaveObj;\r\n }\r\n\r\n this.utilsService.showLoadingIcon(true);\r\n this.dataCaptureFormsService.saveRequest(formData, AdjustmentType.Deferral, isFileExists)\r\n .subscribe(data => {\r\n if(isRequestIDExists) {\r\n this.dataCaptureFormsService.workflowSaveConfirmUpdate(actionType, sendTransitionOne, userEmail, this.request);\r\n } else {\r\n this.request.id = data;\r\n }\r\n\r\n this.utilsService.showMessageTip(\"Request saved successfully\");\r\n this.utilsService.adjustmentsViewType=\"Current\";\r\n this.router.navigate(['adjustments']);\r\n },\r\n error => {\r\n this.utilsService.showMessageTip(error['error']['error']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n getNextMonthStartingDate(): Date{\r\n \r\n let currentDateObj = new Date();\r\n\r\n let\r\n fullYear = currentDateObj.getFullYear(),\r\n month = currentDateObj.getMonth(),\r\n date = currentDateObj.getDate(),\r\n hours = currentDateObj.getHours(),\r\n minutes = currentDateObj.getMinutes(),\r\n seconds = currentDateObj.getSeconds();\r\n\r\n let\r\n newDate,\r\n newMonth,\r\n newFullYear;\r\n\r\n newMonth = (month == 11) ? 0 : month + 1;\r\n newFullYear = (newMonth == 0) ? fullYear + 1 : fullYear;\r\n newDate = 1;\r\n\r\n return new Date(newFullYear, newMonth, newDate, 0, 0, 0);\r\n }\r\n\r\n deferralRequestsDatesValidation(): boolean{\r\n \r\n let datesArr = [];\r\n let duplicateValues = [];\r\n let pastValues = [];\r\n //let nextMonthStartingDate = this.getNextMonthStartingDate();\r\n let nextMonthStartingDate = this.utilsService.getFormatedDate(this.userDetails[\"futureActivePeriodID\"]);\r\n let nextMonthStartingDateTimeMs = nextMonthStartingDate.getTime();\r\n let currentEarningDate = this.utilsService.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n let currentEarningDateMs = currentEarningDate.getTime();\r\n \r\n let currentBrokerageEarningDate = new Date(this.request.incomeBrokerageRecognitionDate);\r\n\r\n let formattedNextMonthBrokerageEarningDate;\r\n if (currentBrokerageEarningDate.getMonth() == 11) {\r\n formattedNextMonthBrokerageEarningDate = 1 + \"/\" + 1 + \"/\" + (currentBrokerageEarningDate.getFullYear() + 1);\r\n } else {\r\n formattedNextMonthBrokerageEarningDate = (currentBrokerageEarningDate.getMonth() + 2) + \"/\" + 1 + \"/\" + currentBrokerageEarningDate.getFullYear();\r\n }\r\n // let formattedNextMonthBrokerageEarningDate = (currentBrokerageEarningDate.getMonth() + 2) + \"/\" + 1 + \"/\" + currentBrokerageEarningDate.getFullYear();\r\n let nextMonthToCurrentBrokerageEarningDate = new Date(formattedNextMonthBrokerageEarningDate);\r\n let currentBrokerageEarningDateMS = nextMonthToCurrentBrokerageEarningDate.getTime();\r\n\r\n // let hasAtLeastOneFutureDate = false;\r\n // let isNotValidBrokerageEarningDate = false;\r\n // let isValidBrokerageEarningDate = true;\r\n \r\n let dateErrMsgArr = [];\r\n\r\n this.brokerageDateErrMsg = '';\r\n let filteredCurrencies = [];\r\n \r\n\r\n this.request.deferralRequests.forEach(function(element){\r\n datesArr.push(new Date(element['brokerageRecognitionDate']).getTime());\r\n });\r\n \r\n if(datesArr.indexOf(0)>-1){\r\n dateErrMsgArr.push('');//Adding a blank value as mandatory validation provied by form validation as well\r\n }\r\n\r\n this.request.multiCurrencies.forEach((value, index) => {\r\n let filteredDatesArray = [];\r\n let hasAtLeastOneFutureDate = false;\r\n let isNotValidBrokerageEarningDate = false;\r\n let isValidBrokerageEarningDate = true;\r\n\r\n filteredCurrencies = this.request.deferralRequests.filter((val) => {\r\n return val['currency'] === value;\r\n });\r\n filteredCurrencies.forEach((data) => {\r\n filteredDatesArray.push(new Date(data['brokerageRecognitionDate']).getTime());\r\n });\r\n\r\n duplicateValues = filteredDatesArray.reduce(function (acc, el, i, arr) {\r\n \r\n if (arr.indexOf(el, i + 1) != -1 && acc.indexOf(el) < 0) {\r\n acc.push(el);\r\n }\r\n return acc;\r\n }, []);\r\n\r\n if (duplicateValues && duplicateValues.length>0){\r\n if(dateErrMsgArr.indexOf('
Please provide unique values for all brokerage dates by currency') === -1) {\r\n dateErrMsgArr.push('
Please provide unique values for all brokerage dates by currency');\r\n }\r\n return false;\r\n }\r\n\r\n filteredDatesArray.forEach( (value, index) => {\r\n let isPastDateRedeferral =false; \r\n isPastDateRedeferral=(this.request.actionType =='reDeferral')||(this.request.id!=null && this.request.reDeferralAllowed)\r\n if((value=nextMonthStartingDateTimeMs){\r\n hasAtLeastOneFutureDate = true;\r\n }\r\n if(value >= currentBrokerageEarningDateMS) {\r\n isNotValidBrokerageEarningDate = true;\r\n }\r\n if(value < currentBrokerageEarningDateMS) {\r\n isValidBrokerageEarningDate = false;\r\n }\r\n });\r\n \r\n if(pastValues.length>0 || !hasAtLeastOneFutureDate || !isNotValidBrokerageEarningDate){\r\n if(dateErrMsgArr.indexOf('
Please provide at least one date in a future period to the current brokerage earning period') === -1){\r\n dateErrMsgArr.push('
Please provide at least one date in a future period to the current brokerage earning period');\r\n return false;\r\n }\r\n //dateErrMsgArr.push('
Please provide future date(s) for ' + pastValues.join(', '); \r\n }\r\n })\r\n\r\n\r\n // datesArr.forEach( (value, index) => {\r\n // if((value=nextMonthStartingDateTimeMs){\r\n // hasAtLeastOneFutureDate = true;\r\n // }\r\n // if(value > currentBrokerageEarningDateMS) {\r\n // isNotValidBrokerageEarningDate = true;\r\n // }\r\n // if(value < currentBrokerageEarningDateMS) {\r\n // isValidBrokerageEarningDate = false;\r\n // }\r\n // });\r\n\r\n // if(pastValues.length>0 || !hasAtLeastOneFutureDate || !isNotValidBrokerageEarningDate){\r\n // dateErrMsgArr.push('
Please provide future period date(s) and it should be next month dates to current brokerage earning period date(s).');\r\n // //dateErrMsgArr.push('
Please provide future date(s) for ' + pastValues.join(', '); \r\n // }\r\n\r\n if(dateErrMsgArr.length>0){\r\n this.brokerageDateErrMsg = dateErrMsgArr.join('');\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getFormattedDate(dateVal) {\r\n\r\n let dateObj = new Date(dateVal);\r\n let month = dateObj.getMonth() + 1;\r\n let day = dateObj.getDate();\r\n let year = dateObj.getFullYear();\r\n return day + \"/\" + month + \"/\" + year;\r\n }\r\n\r\n formValidations(form: NgForm): boolean{\r\n\r\n let errorMsgArr = [];\r\n this.errorMsg = '';\r\n\r\n if (!form.valid) {\r\n\r\n errorMsgArr.push('
Provide correct values for all mandatory fields');\r\n } \r\n \r\n if (!this.checkTotalBrokerageAmounts()) {\r\n\r\n errorMsgArr.push('
Resolve errors related to brokerage amount(s) provided');\r\n } \r\n \r\n if (!this.deferralRequestsDatesValidation()) {\r\n\r\n errorMsgArr.push('
Resolve errors related to brokerage date(s) provided');\r\n } \r\n \r\n if (!this.request.slipFileName && !this.request.slipExistingFileName) {\r\n\r\n errorMsgArr.push('
Upload a slip');\r\n } \r\n\r\n if (errorMsgArr.length > 0) {\r\n\r\n this.errorMsg = 'Please resolve following errors:
' + errorMsgArr.join('');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onDownloadCurrentFile() {\r\n this.dataCaptureFormsService.downloadAttachment('Deferral', this.request.id);\r\n }\r\n validateAmountField(value) {\r\n this.brokerageAmountErrMsg = \"\";\r\n let amountValidator = this.utilsService.validateIncomeAmount(value);\r\n if(!amountValidator[\"valid\"]) {\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n }\r\n\r\n deferralRequestCurrencyChange(event) {\r\n let changedRequest = this.request.deferralRequests.filter((val) => {\r\n return val['currency'] == event.value;\r\n });\r\n let changedRequestCurrencyId = this.request.brokerageDetails.filter((val) => {\r\n return val['currencyCode'] == event.value;\r\n });\r\n changedRequest.forEach((value, index) => {\r\n value['curencyId'] = changedRequestCurrencyId[0]['currencyID'];\r\n })\r\n }\r\n\r\n convertedCurrencyString(val) {\r\n let numberWithoutComma = (val && val.replace) ? val.replace(/,/g, '') : val;\r\n return Number(numberWithoutComma);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n

{{ request.type }} Data Capture

\r\n
Request Date: {{ request.requestDate | date:'d/MM/yyyy' }}  |  Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n Please type any 3 letters to search transaction\r\n No transactions found\r\n Please provide a Transaction Number\r\n \r\n\r\n \r\n \r\n {{trNo.transactionNumber}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a reason\r\n \r\n\r\n \r\n \r\n \r\n Please provide details\r\n \r\n\r\n

Insured

\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n

Brokerage Account

\r\n
\r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a Brokerage Account\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n

Current

\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n

Deferral Request

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n 1\">\r\n \r\n \r\n {{ currentVal.currencyCode }}\r\n \r\n \r\n Please select a Currency \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Please provide unique dates by currency with at least one date in a future period\r\n \r\n \r\n\r\n 0\" class=\"icon-cls icon-add-req\" (click)=\"addDeferralRequests($event, deferralRequestVar.currency)\" userSessionExists>add_circle_outline \r\n delete\r\n \r\n 0)\" class=\"icon-cls icon-add-req\" (click)=\"removeDeferralRequests($event, i)\" userSessionExists>delete\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
\r\n Upload Slip:   \r\n \r\n \r\n \r\n delete\r\n
\r\n
\r\n\r\n
\r\n
\r\n Current File*:   \r\n {{\r\n request.slipExistingFileName }}\r\n
\r\n
\r\n
*Uploading new file will replace existing file. If file exists
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Summary\r\n \r\n \r\n\r\n
\r\n
Transaction Number:
\r\n
{{ request.transactionNumber }}
\r\n
\r\n\r\n
\r\n
Effective Date
\r\n
{{ request.effectiveDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Reason for Deferral:
\r\n
{{ request.reasonForDeferral }}
\r\n
{{ request.otherReason }}
\r\n
\r\n\r\n

Insured

\r\n\r\n \r\n
\r\n
Insured:
\r\n
{{ currentVal.name }}
\r\n
\r\n
\r\n
Insured Code:
\r\n
{{ currentVal.code }}
\r\n
\r\n
\r\n\r\n

Brokerage Account

\r\n\r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageAccount }}
\r\n\r\n
Account Code:
\r\n
{{ request.accountCode }}
\r\n
\r\n\r\n
\r\n
Business Unit:
\r\n
{{ request.businessUnitGroup2\r\n }}        {{ request.businessUnitGroup3\r\n }}        {{ request.businessUnitGroup4 }}\r\n
\r\n
\r\n\r\n

Current

\r\n \r\n
\r\n
Brokerage:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}
\r\n
Brokerage Earning Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n
\r\n\r\n

Deferral Requests

\r\n\r\n
\r\n
Brokerage:
\r\n
{{ deferralRequestVar.currency }} {{ deferralRequestVar.brokerage\r\n | amountPipe }}
\r\n
Brokerage Earning Date:
\r\n
{{ deferralRequestVar.brokerageRecognitionDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n

Supporting Documentation

\r\n
\r\n
Slip:
\r\n
{{ request.slipFileName }}
\r\n
\r\n\r\n
\r\n
Current Slip:
\r\n \r\n
\r\n\r\n
\r\n \r\n     \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n import {MatButtonModule} from '@angular/material/button';\r\n import {MatCardModule} from '@angular/material/card';\r\n import {MatIconModule} from '@angular/material/icon';\r\n\r\nimport { PageNotFoundComponent } from './page-not-found.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatIconModule\r\n ],\r\n declarations: [PageNotFoundComponent]\r\n})\r\nexport class PageNotFoundModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PageNotFoundService {\r\n\r\n headerTitle: string = \"Page not found\";\r\n errorCode: string = \"404\";\r\n errorMessage: string = \"Requested record could not be found.\";\r\n\r\n constructor() {\r\n }\r\n}\r\n","export * from './home.module';\r\nexport * from './home.component';\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n isAuthenticated: boolean;\r\n\r\n constructor(\r\n public router: Router,\r\n public utilsService: UtilsService,\r\n private title: Title,\r\n ) {\r\n // Subscribe to authentication state changes\r\n // this.oktaAuth.$authenticationState.subscribe(\r\n // (isAuthenticated: boolean) => this.isAuthenticated = isAuthenticated\r\n // );\r\n }\r\n\r\n async ngOnInit() {\r\n this.title.setTitle('Home');\r\n // Get the authentication state for immediate use\r\n // this.isAuthenticated = await this.utilsService.isSessionExists();\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

Accelerator Data Capture

\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Deferrals

\r\n

An adjustment to postpone revenue that has been processed and earned to future period(s)

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Accruals

\r\n

An adjustment for revenues that have been earned but not yet processed on the system

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Business Unit Adjustments

\r\n

The only other adjustment that has been put forward as a requirement from the business is the ability to change the\r\n business unit that revenue has been allocated to

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Adjustment Status Screens

\r\n

View the requests you need to take action on and also track the requests in progress

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { OnInit, OnDestroy, Component } from \"@angular/core\";\r\nimport MiscellaneousIncomeModel from \"./miscellaneous-income.model\";\r\nimport { UtilsService } from \"src/app/shared/services/utils.service\";\r\nimport { DataCaptureFormsService } from \"./data-capture-forms.service\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { NgForm } from \"@angular/forms\";\r\nimport { WindowRef } from \"src/app/shared/services/window-ref.service\";\r\nimport { AdjustmentStatus, AdjustmentType } from \"src/app/shared/models/adjustment.model\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { SnackBarService } from \"src/app/snack-bar-service.service\";\r\n\r\n@Component({\r\n selector: 'miscellaneous-income',\r\n templateUrl: './miscellaneous-income.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\n\r\nexport class MiscellaneousIncomeComponent implements OnInit, OnDestroy {\r\n request: MiscellaneousIncomeModel = new MiscellaneousIncomeModel();\r\n reasonForAdjustmentOptions: any;\r\n \r\n incomeTypeOptions: any;\r\n currencyTypeOptions: any;\r\n\r\n isCostCenterOptionsExists: boolean = true;\r\n\r\n costCenterOptions: any;\r\n\r\n costCentreCompanyCodes: object[] = [];\r\n\r\n brokerageAmountErrMsg: String;\r\n userDetails;\r\n activePeriodID;\r\n\r\n hideSummary = true;\r\n\r\n currentWindow;\r\n\r\n errMsg: string = \"\";\r\n\r\n subActivatedRoute;\r\n\r\n isSlipUploaded: boolean = false;\r\n slipUploaded: boolean = false;\r\n\r\n constructor(public utilsService: UtilsService,\r\n private dataCaptureFormService: DataCaptureFormsService,\r\n private winRef: WindowRef,\r\n private snackBarService : SnackBarService,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute) {\r\n this.currentWindow = winRef.nativeWindow;\r\n }\r\n\r\n ngOnInit() {\r\n this.populateDropdown();\r\n this.dataCaptureFormService.getUserDetails().subscribe(\r\n data => {\r\n this.userDetails = data;\r\n this.activePeriodID = this.utilsService.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n }\r\n );\r\n\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(\r\n (params) => {\r\n if(+params[\"id\"]) {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.id = +params.id;\r\n this.dataCaptureFormService.getRequestDetails(+params[\"id\"], AdjustmentType.MiscellaneousIncome)\r\n .subscribe(\r\n (data) => {\r\n this.request.setValuesFromAPIObj(data);\r\n //this.utilsService.showLoadingIcon(false);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n )\r\n }\r\n }\r\n )\r\n\r\n this.snackBarService.currentMessage.subscribe(data => {\r\n if(data){\r\n this.saveConfirmMiscellaneousIncomeRequest(null, null, 'confirm',true);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {}\r\n\r\n populateDropdown() {\r\n this.dataCaptureFormService.getMiscellaneousIncomeAdjustmentDropdownData(this.request.adjTypeID).subscribe(\r\n (responseList) => {\r\n this.reasonForAdjustmentOptions = responseList[0];\r\n this.incomeTypeOptions = responseList[1];\r\n this.currencyTypeOptions = responseList[2];\r\n }\r\n )\r\n }\r\n\r\n /**\r\n * \r\n */\r\n autoCompleteCostCenter() {\r\n this.isCostCenterOptionsExists = true;\r\n if (this.request.brokerageDetails[0]['costCentre'].length < 3) {\r\n return;\r\n }\r\n\r\n this.costCenterOptions = this.dataCaptureFormService.getMiscellaneousIncomeCostCenter(this.request.brokerageDetails[0][\"costCentre\"])\r\n .pipe(\r\n map(costCenter => this.filterCostCenterOptions(costCenter))\r\n );\r\n }\r\n\r\n filterCostCenterOptions(values) {\r\n let costCenter = this.request.brokerageDetails[0][\"costCentre\"];\r\n if(values.length > 0) {\r\n this.isCostCenterOptionsExists = true;\r\n return values.filter(costCenterRef =>\r\n costCenterRef['costCentre'].toLowerCase().includes(costCenter.toLowerCase())\r\n );\r\n } else {\r\n this.isCostCenterOptionsExists = false;\r\n }\r\n }\r\n\r\n reasonsForAdjustmentChange() {\r\n let selectedOptionArr = this.reasonForAdjustmentOptions.filter(\r\n currentVal => {\r\n return currentVal['reasonID'] == this.request.reasonForMiscellaneousId;\r\n }\r\n )\r\n this.request.reasonForMiscellaneous = selectedOptionArr[0]['name'];\r\n }\r\n\r\n incomeTypeChange(e: Event){\r\n let selectedIncomeType = this.incomeTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['incomeTypeId'] == this.request.incomeTypeId;\r\n }\r\n );\r\n this.request.incomeType = selectedIncomeType[0][\"name\"];\r\n }\r\n\r\n currencyTypeChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.currencyTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['currencyID'] == this.request.currencyTypeId;\r\n }\r\n )\r\n this.request.currencyTypeCode = selectedOptionArr[0]['code'];\r\n }\r\n\r\n validateAmountField(value) {\r\n this.brokerageAmountErrMsg = \"\";\r\n let amountValidator = this.utilsService.validateIncomeAmount(value);\r\n if(!amountValidator[\"valid\"]) {\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n }\r\n\r\n onCostCentreBlur() {\r\n this.costCenterOptions.subscribe(\r\n (data) => {\r\n if(data) {\r\n let enteredCostCentre = data.filter(\r\n (obj) => {\r\n return this.request.brokerageDetails[0][\"costCentre\"] === obj.costCentre;\r\n }\r\n );\r\n if(enteredCostCentre.length > 0){\r\n this.costCentreCompanyCodes = enteredCostCentre[0][\"businessUnitWithCompanyList\"];\r\n this.request.brokerageDetails[0][\"base\"] = enteredCostCentre[0][\"base\"];\r\n this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n // if company codes are greaterthan 2 clearing previously selected values.\r\n if(data[0][\"businessUnitWithCompanyList\"].length < 2) {\r\n this.request.setBrokerageDetailsValuesFromCostCentre(this.costCentreCompanyCodes);\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n } else {\r\n this.costCentreCompanyCodes = []; \r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n })\r\n }\r\n\r\n toggleMiscellaneousIncomeFormSummaryDisplay(e: Event, form: NgForm) {\r\n if(this.validateForm(form)) {\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0,0);\r\n this.errMsg = \"\";\r\n }\r\n }\r\n\r\n costCenterSelected(e: Event) {\r\n this.costCenterOptions.subscribe(\r\n (data) => {\r\n this.costCentreCompanyCodes = data[0][\"businessUnitWithCompanyList\"];\r\n this.request.brokerageDetails[0][\"base\"] = data[0][\"base\"];\r\n this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n if(this.costCentreCompanyCodes.length < 2){\r\n this.request.setBrokerageDetailsValuesFromCostCentre(this.costCentreCompanyCodes);\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n }\r\n )\r\n }\r\n\r\n companyCodeSelected(e: Event) {\r\n let selectedCompanyCode: object[] = [];\r\n if(e[\"value\"]) {\r\n selectedCompanyCode = this.costCentreCompanyCodes.filter(\r\n (value) => {\r\n return value[\"fyBusinessUnitID\"] === e[\"value\"];\r\n }\r\n );\r\n if(selectedCompanyCode.length > 0) {\r\n this.request.setBrokerageDetailsValuesFromCostCentre(selectedCompanyCode);\r\n //this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n }\r\n }\r\n }\r\n\r\n validateForm(form) {\r\n let amountValidator = this.utilsService.validateIncomeAmount(this.request.amount);\r\n let errorMsgArr = [];\r\n this.brokerageAmountErrMsg = \"\";\r\n if(!form.valid) {\r\n errorMsgArr.push('
Provide correct values for all mandatory fields');\r\n }\r\n if(!amountValidator[\"valid\"]) {\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n\r\n if(!this.request.brokerageDetails[0][\"fyBusinessUnitID\"]) {\r\n errorMsgArr.push('
Please Select valid Costcentre / Companycode');\r\n }\r\n\r\n if (!this.request.slipFileName && !this.request.slipExistingFileName) {\r\n errorMsgArr.push('
Upload a slip.');\r\n }\r\n\r\n if( errorMsgArr.length > 0 ) {\r\n this.errMsg = 'Please resolve following errors:
' + errorMsgArr.join('');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n saveConfirmMiscellaneousIncomeRequest(e: Event, form: NgForm, actionType: string, allowDuplicates : boolean = false) {\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let userEmail = localStorage.getItem(\"userEmail\"),\r\n expectedSaveObj = this.request.getSaveObject();\r\n expectedSaveObj['allowDuplicates'] = allowDuplicates;\r\n let sendTransitionOne = false;\r\n let isFileExists = false;\r\n \r\n let formData\r\n if (this.request.slipFileName) {\r\n isFileExists = true;\r\n formData = new FormData();\r\n formData.append('file', this.request.slipFile, this.request.slipFileName);\r\n formData.append('data', JSON.stringify(expectedSaveObj));\r\n } else {\r\n isFileExists = false;\r\n formData = expectedSaveObj;\r\n }\r\n if (!this.request.id) {\r\n sendTransitionOne = true;\r\n } else if (this.request.status == AdjustmentStatus.Rejected) {\r\n sendTransitionOne = true;\r\n }\r\n\r\n this.utilsService.showLoadingIcon(true);\r\n\r\n this.dataCaptureFormService.saveUpdateMiscellaneousIncomeRequest(formData, isFileExists, this.request['id'])\r\n .subscribe( (response) => {\r\n if(this.request.id) {\r\n this.dataCaptureFormService.workflowSaveConfirmUpdate(actionType, sendTransitionOne, userEmail, this.request);\r\n } else {\r\n this.request.id = response;\r\n }\r\n this.utilsService.showMessageTip(\"Request saved successfully\");\r\n this.router.navigate(['adjustments']);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTipOnFormComponent(error['error']['error']);\r\n this.snackBarService.onChange(null);\r\n this.utilsService.showLoadingIcon(false);\r\n })\r\n\r\n }\r\n\r\n slipFileUploadChange(files: FileList) {\r\n\r\n if(this.isSlipUploaded) {\r\n this.slipUploaded = true;\r\n }\r\n if(files.length) {\r\n this.request.slipFile = files[0];\r\n this.request.slipFileName = files[0].name;\r\n this.request.slipExistingFileName = null;\r\n this.isSlipUploaded = true;\r\n }\r\n };\r\n\r\n chooseFile(event) {\r\n // this.utilsService.isSessionExists().then((isSessionExists)=>{\r\n if(!this.utilsService.isSessionExists()) {\r\n event.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n event.stopPropagation();\r\n }else {\r\n let ele: HTMLElement = document.getElementById('slipfileUpload') as HTMLElement;\r\n ele.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n // });\r\n return false;\r\n}\r\n\r\n onDownloadMiscIncomeCurrentFile() {\r\n this.dataCaptureFormService.downloadAttachment('MiscellaneousIncomeAdjustment', this.request.id);\r\n }\r\n\r\n slipFileRemove(e: Event, slipFileUploadField) {\r\n\r\n slipFileUploadField.value = '';\r\n this.request.slipFile = null;\r\n this.request.slipFileName = null;\r\n }\r\n\r\n}","
\r\n \r\n
\r\n

{{ request.type }} Data Capture

\r\n
Request Date: {{ request.requestDate | date:'d/MM/yyyy' }}  |  Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy'}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a reason\r\n \r\n\r\n \r\n \r\n \r\n Please provide details\r\n \r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a Income type\r\n \r\n\r\n
\r\n \r\n \r\n \r\n {{ currentVal.code }}\r\n \r\n \r\n Please select Currency\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Please select a date in active period.\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Please type any 3 letters to search cost centre\r\n No Data found\r\n \r\n \r\n {{costCenter.costCentre}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\">\r\n \r\n \r\n {{ currentVal.companyCode }}\r\n \r\n \r\n Please select a Company Code\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
\r\n Upload Slip:   \r\n \r\n \r\n \r\n delete\r\n
\r\n
\r\n
*Uploading new file will replace existing file. If file exists
\r\n\r\n
\r\n
\r\n Current File:   \r\n {{ request.slipExistingFileName }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Summary\r\n \r\n \r\n
\r\n
Reason for Adjustment:
\r\n
{{ request.reasonForMiscellaneous }}
\r\n
{{ request.otherReason }}
\r\n
\r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n \r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n \r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Cost Centre:
\r\n
{{ request.brokerageDetails[0]['costCentre'] }}
\r\n
Company Code:
\r\n
{{ request.brokerageDetails[0]['companyCode'] }}\r\n
\r\n
\r\n\r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0]['businessUnitGroup2'] }}        {{ request.brokerageDetails[0]['businessUnitGroup3']\r\n }}        {{ request.brokerageDetails[0]['businessUnitGroup4'] }}
\r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
Slip:
\r\n
{{ request.slipFileName }}
\r\n
\r\n\r\n
\r\n
Current Slip:
\r\n \r\n
\r\n\r\n
\r\n \r\n     \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Observable, of, BehaviorSubject, forkJoin } from 'rxjs';\r\n\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport { AdjustmentType, Adjustment } from '../../shared/models/adjustment.model';\r\nimport { PageNotFoundService } from '../page-not-found/page-not-found.service';\r\nimport { AppConfig } from 'src/app/app.config';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataCaptureFormsService {\r\n\r\n requestDetails: BehaviorSubject = new BehaviorSubject(null);\r\n transactionNumberUrl = this.appConfig.apiUrl+'api/Deferral/Transactions';\r\n transactionNumberDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/TransactionDetails';\r\n saveDeferralRequestUrl = this.appConfig.apiUrl + 'api/Deferral/Save';\r\n updateDeferralRequestUrl = this.appConfig.apiUrl + 'api/Deferral/SaveRequestModel';\r\n deferralRequestDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/GetRequestDetails';\r\n deferralFileUploadUrl = this.appConfig.apiUrl + 'api/Deferral/upload';\r\n deferralFileDownloadUrl = this.appConfig.apiUrl + 'api/Deferral/download?AdjRequestID=';\r\n reasonsForAdjustmentUrl = this.appConfig.apiUrl + 'api/Common/adjustmentreasons';\r\n reversalTransactionNumberUrl = this.appConfig.apiUrl+'api/Deferral/GetReversalTransactionsByKey';\r\n reversalTransactionNumberDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/GetCorrectedTransactionDetails';\r\n correctedTransactionNumberUrl = this.appConfig.apiUrl+'api/Deferral/GetCorrectedTransactionByKey';\r\n correctedTransactionNumberDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/GetCorrectedTransactionDetails';\r\n saveBusinessUnitAdjustmentUrl = this.appConfig.apiUrl+'api/Deferral/SaveBusinessUnitAdjRequest';\r\n updateBusinessUnitAdjustmentUrl = this.appConfig.apiUrl+'api/Deferral/SaveBusinessUnitAdjRequestModel';\r\n businessUnitAdjustmentRequestDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/GetBusinessUnitAdjRequestById';\r\n businessUnitAdjustmentFileUploadUrl = this.appConfig.apiUrl + 'api/Deferral/upload';\r\n businessUnitAdjustmentFileDownloadUrl = this.appConfig.apiUrl + 'api/Deferral/download?AdjRequestID=';\r\n policyReferenceAccrualUrl = this.appConfig.apiUrl +'api/Accrual/GetPolicyReferences';\r\n policyReferenceDetailsAccrualUrl = this.appConfig.apiUrl +'api/Accrual/GetPolicyDetails';\r\n insuredAccrualUrl = this.appConfig.apiUrl +'api/Accrual/GetInsureds';\r\n brokerageAccrualUrl = this.appConfig.apiUrl +'api/Accrual/GetBrokerageAccounts';\r\n renewalTypesAccrualUrl = this.appConfig.apiUrl +'api/Accrual/GetRenewalTypes';\r\n incomeTypesAccrualUrl = this.appConfig.apiUrl +'api/Common/incometypes';\r\n currenciesAccrualUrl = this.appConfig.apiUrl +'api/Common/currencies';\r\n saveAccrualUrl = this.appConfig.apiUrl +'api/Accrual/Save';\r\n updateAccuralModalUrl = this.appConfig.apiUrl +'/api/Accrual/SaveAccrualModel';\r\n updateAccrualUrl = this.appConfig.apiUrl +'api/Accrual/Update';\r\n accrualRequestDetailsUrl = this.appConfig.apiUrl + 'api/Accrual/GetRequest';\r\n accrualFileUploadUrl = this.appConfig.apiUrl + 'api/Accrual/upload';\r\n accrualFileDownloadUrl = this.appConfig.apiUrl + 'api/Accrual/download?AdjRequestID=';\r\n workFlowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlow';\r\n updateDescriptionUrl = this.appConfig.apiUrl+ 'api/WorkFlow/UpdateFieldsForFinanceUsers';\r\n getUserDetailsUrl = this.appConfig.apiUrl + 'api/Deferral/GetUserDetails';\r\n summaryTransactionUrl = this.appConfig.apiUrl+ 'api/Summary/Transactions';\r\n businessUnitTransferRequestPolicyReference = this.appConfig.apiUrl+ 'api/BusinessUnitTransfer/GetPolicyReferences';\r\n businessUnitTransferIncomeType = this.appConfig.apiUrl+ 'api/Common/incometypes';\r\n businessUnitTransferCurrencies = this.appConfig.apiUrl+ 'api/Common/currencies';\r\n businessUnitTransferCostCenter = this.appConfig.apiUrl+ 'api/Common/costcentres';\r\n businessUnitTransferBrokarageAccount = this.appConfig.apiUrl+ 'api/BusinessUnitTransfer/GetBrokerageAccounts';\r\n saveBusinessUnitTransferRequest = this.appConfig.apiUrl+ 'api/BusinessUnitTransfer/Save';\r\n businessUnitTransferBase = this.appConfig.apiUrl+ 'api/BusinessUnitTransfer/GetBases';\r\n businessUnitTransferRequestDetails = this.appConfig.apiUrl+ 'api/BusinessUnitTransfer/GetRequest';\r\n // Workflow API URL'S\r\n deferralWorkFlowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlowForDeferral';\r\n accrualWorkFlowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlowForAccrual';\r\n businessUnitCorrectionWorkflowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlowForBusinessCorrection';\r\n businessUnitTransferWorkflowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlowForUnitTransfer';\r\n miscellaneousIncomeWorkFlowUrl = this.appConfig.apiUrl + 'api/WorkFlow/IntiateWorkFlowForMiscellaneous';\r\n\r\n //Miscellaneous income API Url\r\n miscellaneousIncomeTypeUrl = this.appConfig.apiUrl + \"api/Common/incometypes\";\r\n miscellaneousGetCurrencies = this.appConfig.apiUrl + 'api/Common/currencies';\r\n miscellaneousCostCentre = this.appConfig.apiUrl + 'api/Common/costcentres';\r\n saveMiscellaneousRequest = this.appConfig.apiUrl + 'api/Miscellaneous/Save';\r\n updateMiscellaneousRequest = this.appConfig.apiUrl + 'api/Miscellaneous/Update';\r\n miscellaneousIncomeRequestDetails = this.appConfig.apiUrl + 'api/Miscellaneous/GetRequestDetails';\r\n updateMiscellaneousRequestModal = this.appConfig.apiUrl + 'api/Miscellaneous/UpdateModel';\r\n miscellaneousFileDownloadUrl = this.appConfig.apiUrl + 'api/Miscellaneous/download';\r\n requestObjectData: object ;\r\n //Accrual Request Exists\r\n accrualRequestExists = this.appConfig.apiUrl + 'api/Accrual/IsAccrualRequestExists';\r\n exportSummaryAsPDF = this.appConfig.apiUrl + 'api/Common/ExportAsPdf';\r\n\r\n constructor(\r\n private router: Router, \r\n private http: HttpClient,\r\n private utilsService: UtilsService,\r\n private pageNotfound: PageNotFoundService,\r\n private appConfig: AppConfig\r\n ) {}\r\n\r\n getTransactionNumbers(currentVal: string, transactionType: string, type?: number, year?:number, month?:number): Observable{\r\n \r\n let url: string;\r\n \r\n switch(transactionType){\r\n case 'reversal':\r\n url = this.reversalTransactionNumberUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n break;\r\n case 'corrected':\r\n url = this.correctedTransactionNumberUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n break;\r\n case 'adjustment': \r\n url = this.summaryTransactionUrl;\r\n url += '?userEmail=' + localStorage.getItem('userEmail');\r\n url += '&type=' + type;\r\n if(year)\r\n url += '&year=' + year;\r\n if(month)\r\n url += '&month=' + month;\r\n break;\r\n default:\r\n url = this.transactionNumberUrl;\r\n url += '?userEmail=' + localStorage.getItem('userEmail');\r\n }\r\n \r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get(url);\r\n }\r\n\r\n getTransactionNumberDetails(transactionNumber: string, adjTypeId: string): Observable{\r\n let url = this.transactionNumberDetailsUrl + '?TransactionNumber=' + transactionNumber + '&adjTypeId=' + adjTypeId;\r\n return this.http.get(url);\r\n }\r\n\r\n getCorrectedTransactionNumberDetails(transactionNumber: string): Observable {\r\n let url = this.correctedTransactionNumberDetailsUrl + '?TransactionNumber=' + transactionNumber;\r\n return this.http.get(url);\r\n }\r\n\r\n getReversalTransactionNumberDetails(transactionNumber: string): Observable {\r\n let url = this.reversalTransactionNumberDetailsUrl + '?TransactionNumber=' + transactionNumber;\r\n return this.http.get(url);\r\n }\r\n\r\n getReasonsForAdjustment(adjustmentTypeId: number): Observable {\r\n let url = this.reasonsForAdjustmentUrl+ '?adjType=' + adjustmentTypeId;\r\n return this.http.get(url);\r\n }\r\n\r\n //@ToDo: Change type to object when API returns an object later\r\n saveRequest(requestObj: object, requestType: string, fileExists: boolean): Observable{\r\n let url: string;\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n let saveRequest;\r\n if(fileExists) {\r\n switch(requestType){\r\n case AdjustmentType.Deferral:\r\n url = this.saveDeferralRequestUrl;\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n url = this.saveBusinessUnitAdjustmentUrl;\r\n break;\r\n }\r\n saveRequest = this.http.post(url, requestObj, httpOptions);\r\n } else {\r\n switch(requestType){\r\n case AdjustmentType.Deferral:\r\n url = this.updateDeferralRequestUrl;\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n url = this.updateBusinessUnitAdjustmentUrl;\r\n break;\r\n }\r\n saveRequest = this.http.post(url, requestObj);\r\n }\r\n return saveRequest;\r\n }\r\n\r\n getRequestDetails(requestId: number, requestType: string): Observable{\r\n this.requestDetails.next(null);\r\n let url: string;\r\n let email:string;\r\n email=localStorage.getItem('userEmail');\r\n switch (requestType) {\r\n case AdjustmentType.Deferral:\r\n url = this.deferralRequestDetailsUrl;\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n url = this.businessUnitAdjustmentRequestDetailsUrl;\r\n break;\r\n case AdjustmentType.Accrual:\r\n url = this.accrualRequestDetailsUrl;\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustmentTransfer:\r\n url = this.businessUnitTransferRequestDetails;\r\n break;\r\n case AdjustmentType.MiscellaneousIncome:\r\n url = this.miscellaneousIncomeRequestDetails;\r\n break;\r\n }\r\n url += '?requestId=' + requestId;\r\n url += '&email=' + email;\r\n this.http.get(url).subscribe(data => {\r\n this.utilsService.showLoadingIcon(false);\r\n if(!data){\r\n this.pageNotfound.headerTitle = \"Record not found\";\r\n this.router.navigate(['404']);\r\n }\r\n else{\r\n this.requestDetails.next(data);\r\n }\r\n }, \r\n err => {\r\n this.utilsService.showLoadingIcon(false);\r\n if(err.status==401){\r\n this.router.navigate(['not-authorised']);\r\n }\r\n else{\r\n this.pageNotfound.headerTitle = \"Record not found\";\r\n this.router.navigate(['404']);\r\n }\r\n });\r\n return this.requestDetails.asObservable();\r\n }\r\n \r\n\r\n getPolicyReferenceAccrual(currentVal: string): Observable {\r\n\r\n let url = this.policyReferenceAccrualUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get(url);\r\n }\r\n\r\n getPolicyReferenceDetailsAccrual(policyReference: string, financialYear?: number): Observable {\r\n let url = this.policyReferenceDetailsAccrualUrl + '?policy=' + policyReference;\r\n if(financialYear) {\r\n url += \"&financialYear=\" + financialYear;\r\n }\r\n return this.http.get(url);\r\n }\r\n\r\n getInsuredsAccrual(currentVal: string): Observable {\r\n\r\n let url = this.insuredAccrualUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get(url);\r\n }\r\n\r\n getBrokerageAccountsAccrual(currentVal: string): Observable {\r\n\r\n let url = this.brokerageAccrualUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get(url);\r\n }\r\n\r\n getRenewalTypesForAccrual(): Observable {\r\n return this.http.get(this.renewalTypesAccrualUrl);\r\n }\r\n\r\n getIncomeTypesForAccrual(): Observable {\r\n return this.http.get(this.incomeTypesAccrualUrl);\r\n }\r\n\r\n getCurrenciesForAccrual(): Observable {\r\n return this.http.get(this.currenciesAccrualUrl);\r\n }\r\n\r\n saveUpdateAccrualRequest(requestObj: object): Observable {\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n \r\n if(requestObj['requestId']){\r\n return this.http.put(this.updateAccrualUrl, requestObj, httpOptions);\r\n } else {\r\n if (requestObj['reAccrualAllowed'])\r\n return this.http.put(this.updateAccuralModalUrl, requestObj, httpOptions);\r\n else\r\n return this.http.post(this.saveAccrualUrl, requestObj, httpOptions);\r\n } \r\n }\r\n getUserDetails(): Observable {\r\n let userEmail = localStorage.getItem('userEmail');\r\n let url = this.getUserDetailsUrl +'?email='+userEmail;\r\n return this.http.get(url);\r\n }\r\n\r\n updateWorkFlow(request: object, userEmail: string, transition: number, comment: string, journalType?: number, description?: string): Observable{\r\n let url:any;\r\n switch(request[\"type\"]) {\r\n case AdjustmentType.Deferral: \r\n url = this.deferralWorkFlowUrl;\r\n request[\"insuredName\"] = request[\"insuredName\"] ? request[\"insuredName\"] : request[\"insureds\"][0][\"name\"] ;\r\n request[\"brokerageAmount\"] = request[\"amount\"];\r\n request[\"brokerageRecognitionDate\"] = request[\"incomeBrokerageRecognitionDate\"];\r\n break;\r\n case AdjustmentType.Accrual: \r\n url = this.accrualWorkFlowUrl;\r\n request[\"insuredName\"] = request[\"insuredName\"] ? request[\"insuredName\"] : request[\"insureds\"][0][\"name\"] ;\r\n request[\"incomeAmount\"] = request[\"amount\"];\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n url = this.businessUnitCorrectionWorkflowUrl;\r\n request[\"insuredName\"] = request[\"insuredName\"] ? request[\"insuredName\"] : request[\"insureds\"][0][\"name\"];\r\n request[\"correctedBrokerageAccount\"] = request[\"correctedBrokerageDetails\"][0][\"name\"];\r\n request[\"correctedBrokerageIncome\"] = request[\"correctedBrokerageDetails\"][0][\"brokerageAmount\"];\r\n request[\"currentBrokerageAccountName\"] = request[\"brokerageDetails\"][0][\"name\"];\r\n request[\"currency\"] = request[\"correctedBrokerageDetails\"][0][\"currencyCode\"];\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustmentTransfer:\r\n url = this.businessUnitTransferWorkflowUrl;\r\n request[\"incomeAmount\"] = request[\"amount\"];\r\n request[\"currentBUBase\"] = request[\"brokerageDetails\"][0][\"base\"];\r\n request[\"transferBUBase\"] = request[\"transferBusinessUnit\"][0][\"base\"];\r\n break;\r\n case AdjustmentType.MiscellaneousIncome:\r\n request[\"brokerageAmount\"] = request[\"amount\"];\r\n request[\"businessUnitBase\"] = request[\"brokerageDetails\"][0][\"base\"];\r\n url = this.miscellaneousIncomeWorkFlowUrl;\r\n break;\r\n };\r\n request[\"requestId\"] = request[\"id\"];\r\n request[\"userEmail\"] = userEmail;\r\n request[\"requestComment\"] = comment;\r\n request[\"brokerageAccountName\"] = request[\"brokerageDetails\"].length > 0 ?request[\"brokerageDetails\"][0][\"name\"]: null;\r\n if(journalType) request[\"journalType\"] = journalType;\r\n if(description) request[\"description\"] = description;\r\n url += '?transition=' + transition;\r\n return this.http.post(url, request);\r\n }\r\n\r\n deferralFileUpload(formData, requestId){\r\n let url = this.deferralFileUploadUrl + '?AdjRequestID=' + requestId;\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n return this.http.post(url, formData, httpOptions);\r\n }\r\n\r\n businessUnitAdjustmentFileUpload(formData, requestId) {\r\n let url = this.businessUnitAdjustmentFileUploadUrl + '?AdjRequestID=' + requestId;\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n return this.http.post(url, formData, httpOptions);\r\n }\r\n\r\n accrualFileUpload(formData, requestId, isConfirmationOrder: boolean = false) {\r\n let url = this.accrualFileUploadUrl + '?AdjRequestID=' + requestId + '&IsConfirmationOrder=' + isConfirmationOrder;\r\n let httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Accept': 'application/json'\r\n })\r\n };\r\n return this.http.post(url, formData, httpOptions);\r\n }\r\n\r\n workflowSaveConfirmUpdate(actionType: string, sendTransitionOne: boolean, userEmail: string, request){\r\n \r\n switch(actionType){\r\n\r\n case 'save':\r\n if(sendTransitionOne){\r\n this.updateWorkFlow(request, userEmail, 1, '')\r\n .subscribe(dataWorkFlow1 => {\r\n\r\n this.utilsService.showMessageTip('Request saved successfully');\r\n this.utilsService.showLoadingIcon(false);\r\n this.router.navigate(['adjustments']);\r\n },\r\n errorDataWorkFlow1 => {\r\n this.utilsService.showMessageTip('Workflow could not be updated due to server error - ' + errorDataWorkFlow1['statusText']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n } else {\r\n\r\n this.utilsService.showMessageTip('Request saved successfully');\r\n this.utilsService.showLoadingIcon(false);\r\n this.router.navigate(['adjustments']);\r\n }\r\n break;\r\n \r\n case 'confirm':\r\n \r\n if (sendTransitionOne) {\r\n this.updateWorkFlow(request, userEmail, 1, '')\r\n .subscribe(dataWorkFlow1 => {\r\n this.updateWorkFlow(request, userEmail, 2, '')\r\n .subscribe(dataWorkFlow2 => {\r\n this.utilsService.showMessageTip('Request submitted successfully');\r\n this.utilsService.showLoadingIcon(false);\r\n this.router.navigate(['adjustments']);\r\n },\r\n errorDataWorkFlow2 => {\r\n this.utilsService.showMessageTip('Workflow could not be updated due to server error - ' + errorDataWorkFlow2['statusText']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n },\r\n errorDataWorkFlow1 => {\r\n this.utilsService.showMessageTip('Workflow could not be updated due to server error - ' + errorDataWorkFlow1['statusText']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n } else {\r\n let userTransition: number;\r\n if(request.userRoles.length > 0 && request.userRoles.indexOf('Tier 4') !== -1){\r\n userTransition = 2;\r\n } else if( request.userRoles.length > 0 && request.userRoles.indexOf('Tier 2') !== -1) {\r\n userTransition = 10;\r\n }\r\n this.updateWorkFlow(request, userEmail, userTransition, '')\r\n .subscribe(dataWorkFlow2 => {\r\n this.utilsService.showMessageTip('Request submitted successfully');\r\n this.utilsService.showLoadingIcon(false);\r\n this.router.navigate(['adjustments']);\r\n },\r\n errorDataWorkFlow2 => {\r\n this.utilsService.showMessageTip('Workflow could not be updated due to server error - ' + errorDataWorkFlow2['statusText']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n break;\r\n \r\n case 'edit': \r\n this.updateWorkFlow(request, userEmail, 1, '')\r\n .subscribe(\r\n workflowResp => {\r\n this.utilsService.chooseAdjustmentRequestType(request.type, request.id);\r\n }\r\n )\r\n }\r\n }\r\n\r\n downloadAttachment(type: string, id: number, isConfirmationOrder?: boolean) {\r\n let url;\r\n if(type == \"Accrual\") {\r\n url = this.accrualFileDownloadUrl;\r\n } else if(type == \"Deferral\") {\r\n url = this.deferralFileDownloadUrl;\r\n } else if(type == \"BusinessUnitAdjustment\") {\r\n url = this.businessUnitAdjustmentFileDownloadUrl;\r\n } else if(type == \"MiscellaneousIncomeAdjustment\") {\r\n url = this.businessUnitAdjustmentFileDownloadUrl;\r\n }\r\n if(id) {\r\n url += id;\r\n }\r\n if(typeof isConfirmationOrder == 'boolean') {\r\n url += \"&IsConfirmationOrder=\"+isConfirmationOrder;\r\n }\r\n\r\n this.http.get(url, {observe: 'response', responseType: 'arraybuffer' }).subscribe(\r\n response => {\r\n this.downloadFile(response)\r\n }\r\n );\r\n }\r\n\r\n getPolicyReferenceBusinessAdjustmentTransferReq(currentVal: string): Observable {\r\n\r\n let url = this.businessUnitTransferRequestPolicyReference;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get (url);\r\n }\r\n\r\n getBusinessAdjustmentTransferDropdownData(adjTypeId: number) {\r\n let reasons, incomeType, currencyList;\r\n reasons = this.getReasonsForAdjustment(adjTypeId);;\r\n incomeType = this.http.get(this.businessUnitTransferIncomeType);\r\n currencyList = this.http.get(this.businessUnitTransferCurrencies);\r\n return forkJoin([reasons, incomeType, currencyList]);\r\n }\r\n\r\n getBusinessAdjustmentTransferCostCenter(currentVal) {\r\n \r\n let url = this.businessUnitTransferCostCenter;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get (url);\r\n }\r\n\r\n getBusinessAdjustmentTransferBrokerageAccounts(currentVal) {\r\n\r\n let url = this.businessUnitTransferBrokarageAccount;\r\n\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get (url);\r\n }\r\n\r\n saveUpdateBusinessUnitTransferRequest(requestObj: object): Observable {\r\n return this.http.post(this.saveBusinessUnitTransferRequest, requestObj);\r\n }\r\n\r\n getBusinessAdjustmentTransferBases(currentVal) {\r\n \r\n let url = this.businessUnitTransferBase;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get (url);\r\n }\r\n\r\n updateDescription(data) {\r\n let url = this.updateDescriptionUrl;\r\n return this.http.put(url, data);\r\n }\r\n\r\n getMiscellaneousIncomeAdjustmentDropdownData(adjTypeId: number) {\r\n let reasons,incomeType, currencyList;\r\n reasons = this.getReasonsForAdjustment(adjTypeId);\r\n incomeType = this.http.get(this.miscellaneousIncomeTypeUrl);\r\n currencyList = this.http.get(this.miscellaneousGetCurrencies);\r\n return forkJoin([reasons, incomeType, currencyList]);\r\n }\r\n\r\n getMiscellaneousIncomeCostCenter(currentVal) {\r\n let url = this.miscellaneousCostCentre;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get (url);\r\n }\r\n\r\n saveUpdateMiscellaneousIncomeRequest(requestObj: object, fileExists: boolean, requestId): Observable {\r\n if(requestId){\r\n if(fileExists) {\r\n return this.http.put(this.updateMiscellaneousRequest, requestObj);\r\n } else {\r\n return this.http.put(this.updateMiscellaneousRequestModal, requestObj);\r\n } \r\n }else{\r\n return this.http.post(this.saveMiscellaneousRequest, requestObj);\r\n } \r\n }\r\n\r\n isAccrualRequestExists(data) {\r\n return this.http.post(this.accrualRequestExists, data);\r\n }\r\n\r\n exportAsPDF(data) {\r\n //let url = this.exportSummaryAsPDF + '?userEmail=' + localStorage.getItem('userEmail');\r\n let url = this.exportSummaryAsPDF;\r\n return this.http.post(url, data ,{observe: 'response', responseType: 'arraybuffer' });\r\n }\r\n\r\n downloadFile(response) {\r\n const blob = new Blob([response.body]);\r\n const fileName = response.headers.get('Content-Disposition').split(';')[1].trim().split('=')[1].replace('\"', '').replace('\"', '');\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, fileName);\r\n } else {\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.setAttribute('visibility', 'hidden');\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { NavBarItem } from './nav-bar.model';\r\nimport { Router } from '@angular/router';\r\nimport { DataCaptureFormsService } from '../../pages/data-capture/data-capture-forms.service';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AppInsightService } from '../services/app-insight.service';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\nexport interface DialogData {\r\n message: string\r\n}\r\n\r\n@Component({\r\n selector: 'app-nav-bar',\r\n templateUrl: './nav-bar.component.html',\r\n styleUrls: ['./nav-bar.component.scss']\r\n})\r\nexport class NavBarComponent implements OnInit {\r\n\r\n navbarItems: Array;\r\n username: string;\r\n tier: string;\r\n isAuthenticated: boolean;\r\n isSessionExists: boolean;\r\n constructor(\r\n public router: Router,\r\n private dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService,\r\n public dialog: MatDialog,\r\n private appInsights: AppInsightService,\r\n private baseService: AuthService\r\n ) {\r\n this.utilsService.isAuthenticated.subscribe(res => {\r\n this.isAuthenticated = res;\r\n });\r\n }\r\n async ngOnInit() {\r\n\r\n this.navbarItems = [\r\n new NavBarItem('Adjustments', 'adjustments')\r\n ];\r\n\r\n this.baseService.isLoginSuccess.subscribe(status => {\r\n setTimeout(() => {\r\n this.GetUserDetails();\r\n localStorage.setItem('loggedIn', 'UNDONE');\r\n return true;\r\n }, 1000);\r\n })\r\n }\r\n\r\n login() {\r\n this.router.navigate(['/adjustments']);\r\n }\r\n\r\n logout() {\r\n this.utilsService.logout();\r\n }\r\n\r\n private async GetUserDetails() {\r\n this.dataCaptureFormsService.getUserDetails()\r\n .subscribe(data => {\r\n if (data) {\r\n this.utilsService.setTier(false, data['role']);\r\n this.tier = this.utilsService.getUserRolesDisplay();\r\n localStorage.setItem('username', data['name']);\r\n localStorage.setItem('userId', data['id']);\r\n this.username = data['name'];\r\n this.utilsService.userDetails = data;\r\n }\r\n },\r\n (error => {\r\n if (error[\"error\"] && error[\"error\"][\"error\"] == \"User Not Found\") {\r\n const dialogRef = this.dialog.open(DialogContent, {\r\n height: '250px',\r\n width: '580px',\r\n data: { message: error[\"error\"] },\r\n disableClose: true\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.utilsService.logout();\r\n })\r\n }\r\n }));\r\n }\r\n\r\n onAdjustments() {\r\n this.utilsService.adjustmentsViewType = \"Current\";\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'dialog-content',\r\n templateUrl: '../dialog-content.html'\r\n})\r\nexport class DialogContent {\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData, public utilsService: UtilsService) { }\r\n\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n \r\n home\r\n \r\n {{item.name}}\r\n \r\n
\r\n
\r\n\r\n \r\n lock_open\r\n \r\n\r\n \r\n
\r\n \r\n {{ username }} ({{ tier }})\r\n \r\n \r\n
\r\n","

warning
User Not Configured

\r\n\r\n

Application security has not been configured for this user. Please contact acceleratorsupport@hyperiongrp.com

\r\n

Clicking OK will take you back to the log in screen

\r\n
\r\n\r\n \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HomeComponent } from './home.component';\r\nimport { SvgViewerModule } from '../../shared/svg-viewer';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SvgViewerModule,\r\n MatButtonModule\r\n ],\r\n declarations: [HomeComponent],\r\n exports: [HomeComponent]\r\n})\r\nexport class HomeModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AmountPipe } from \"./amount.pipe\";\r\n\r\n@NgModule({\r\n imports: [\r\n\r\n ],\r\n declarations: [\r\n AmountPipe\r\n ],\r\n exports: [\r\n AmountPipe\r\n ]\r\n})\r\n\r\nexport class PipesModule {}","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { WindowRef } from '../../shared/services/window-ref.service';\r\n\r\nimport { DataCaptureFormsMaterialModule } from './data-capture-forms-material.module';\r\n\r\nimport { AmountPipe } from '../../shared/pipes/amount.pipe';\r\n\r\nimport { DeferralComponent } from './deferral.component';\r\nimport { AccrualComponent, IsRequestExists } from './accrual.component';\r\nimport { BusinessUnitAdjustmentComponent } from './business-unit-adjustment.component';\r\nimport { BusinessUnitAdjustmentTransferComponent } from './business-unit-adjustment-transfer.component';\r\n\r\nimport { SummaryActionComponent } from './summary-action.component';\r\nimport { DataCaptureFormsService } from './data-capture-forms.service';\r\nimport { MiscellaneousIncomeComponent } from './miscellaneous-income.component';\r\nimport DirectiveModuel from 'src/app/shared/directives/directive.moudle';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { PipesModule } from 'src/app/shared/pipes/pipes.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n BrowserAnimationsModule,\r\n DataCaptureFormsMaterialModule,\r\n DirectiveModuel,\r\n PipesModule\r\n ],\r\n declarations: [\r\n DeferralComponent,\r\n AccrualComponent,\r\n BusinessUnitAdjustmentComponent,\r\n BusinessUnitAdjustmentTransferComponent,\r\n MiscellaneousIncomeComponent,\r\n SummaryActionComponent,\r\n //AmountPipe,\r\n IsRequestExists\r\n ],\r\n providers: [\r\n WindowRef,\r\n DataCaptureFormsService\r\n ],\r\n exports: [IsRequestExists]\r\n})\r\nexport class DataCaptureFormsModule { }\r\n","export * from './svg-viewer.component';\r\nexport * from './svg-viewer.module';\r\n","export * from './deferral.component';\r\nexport * from './deferral.model';\r\nexport * from './accrual.component';\r\nexport * from './accrual.model';\r\nexport * from './business-unit-adjustment.component';\r\nexport * from './business-unit-adjustment.model';\r\nexport * from './summary-action.component';\r\nexport * from './data-capture-forms.module';\r\nexport * from './business-unit-adjustment-transfer.component';\r\nexport * from './business-unit-adjustment-transfer.model';\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AdjustmentListComponent } from './adjustment-list.component';\r\n\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\n\r\n\r\nimport { userSessionDirective } from 'src/app/shared/directives/user-session.directive';\r\nimport DirectiveModuel from 'src/app/shared/directives/directive.moudle';\r\nimport { PipesModule } from 'src/app/shared/pipes/pipes.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatTableModule,\r\n MatSelectModule,\r\n MatPaginatorModule,\r\n DirectiveModuel,\r\n PipesModule\r\n ],\r\n declarations: [AdjustmentListComponent]\r\n})\r\nexport class AdjustmentModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { PageNotFoundService } from '../page-not-found/page-not-found.service';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor(public pageNotFound: PageNotFoundService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n

{{pageNotFound.headerTitle}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n {{pageNotFound.errorCode}}!\r\n {{pageNotFound.errorMessage}} \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { AdjustmentType, AdjustmentStatus } from '../../shared/models/adjustment.model';\r\n\r\nexport default class BusinessUnitAdjustmentTransferModel {\r\n type: string = AdjustmentType.BusinessUnitAdjustmentTransfer;\r\n id: number;\r\n requestDate: Date = new Date();\r\n\r\n policyReferenceId: number;\r\n policyReference: string;\r\n\r\n journalType: number = 2;\r\n description: string =\"\";\r\n workFlowType: number;\r\n\r\n userRoles: string[];\r\n\r\n adjBusinessTransferDetailID: number;\r\n\r\n adjTypeID: number = 4;\r\n\r\n reasonForTransferId:number;\r\n reasonForTransfer: string;\r\n\r\n brokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null,\r\n fyBusinessUnitID: null,\r\n costCentre: null,\r\n companyCode: null,\r\n base: null\r\n }];\r\n\r\n transferBusinessUnit: object[] = [{\r\n fyBusinessUnitID: null,\r\n businessUnitBKey: null,\r\n financialYear: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null,\r\n base: null,\r\n costCentre: null\r\n }];\r\n\r\n incomeTypeId: number;\r\n incomeType: string;\r\n\r\n currencyTypeId: number;\r\n currencyTypeCode: string;\r\n\r\n amount: any;\r\n\r\n brokerageEarningDate: Date;\r\n\r\n costCentre: string;\r\n\r\n otherReason: string;\r\n\r\n status: string = AdjustmentStatus.Incomplete;\r\n statusId: number;\r\n\r\n //@ToDo: move comments out and use updated variables like submittedComments etc.. as per status\r\n comments: string;\r\n //@ToDo: move processedBy out and use updated variables like authorizedBy etc..\r\n processedBy: string;\r\n requestedBy: string;\r\n requestedById: number;\r\n submittedBy: string;\r\n submittedById: number;\r\n submittedComments: string;\r\n authorizedBy: string;\r\n authorizedById: number;\r\n authorizedComments: string;\r\n approvedBy: string;\r\n approvedById: number;\r\n approvedComments: string;\r\n rejectedBy: string;\r\n rejectedById: number;\r\n rejectedComments: string;\r\n\r\n constructor() {}\r\n\r\n setValuesFromAPIObj(requestObj: object): void {\r\n if(requestObj) {\r\n this.id = requestObj['requestId'];\r\n this.policyReferenceId = (requestObj['policyID']) ? requestObj['policyID'] : null;\r\n this.policyReference = (requestObj['riskReference']) ? requestObj['riskReference'] : null;\r\n this.adjBusinessTransferDetailID = requestObj['adjBusinessTransferDetailID'] ? requestObj['adjBusinessTransferDetailID'] : null; \r\n this.adjTypeID = requestObj[\"adjTypeID\"]; \r\n this.reasonForTransferId = requestObj[\"reasonId\"];\r\n this.reasonForTransfer = requestObj[\"reason\"];\r\n this.brokerageDetails = [requestObj[\"fyBusinessUnitDetails\"]];\r\n this.transferBusinessUnit = [requestObj[\"transferBusinessUnitDetails\"]];\r\n this.incomeType = requestObj[\"incomeName\"];\r\n this.incomeTypeId = requestObj[\"incomeTypeId\"];\r\n if(requestObj[\"transRequest\"] && requestObj[\"transRequest\"][\"currency\"]) {\r\n this.currencyTypeCode = requestObj[\"transRequest\"][\"currency\"][\"code\"];\r\n this.currencyTypeId = requestObj[\"transRequest\"][\"currency\"][\"currencyID\"];\r\n }\r\n if(requestObj[\"transRequest\"]){\r\n this.amount = requestObj[\"transRequest\"][\"brokerageAmount\"];\r\n this.brokerageEarningDate = requestObj[\"transRequest\"][\"brokerageDate\"];\r\n }\r\n if(requestObj[\"description\"]) this.description = requestObj[\"description\"];\r\n if(requestObj[\"journalType\"]) this.journalType = requestObj[\"journalType\"];\r\n\r\n if(requestObj[\"workFlowType\"]) this.workFlowType = requestObj[\"workFlowType\"];\r\n\r\n this.otherReason = requestObj[\"otherReason\"];\r\n this.requestedById = (requestObj['requestedBy'] && requestObj['requestedBy']['id']) ? requestObj['requestedBy']['id'] : null;\r\n this.requestedBy = (requestObj['requestedBy'] && requestObj['requestedBy']['name']) ? requestObj['requestedBy']['name'] : null;\r\n this.submittedById = (requestObj['submittedBy'] && requestObj['submittedBy']['id']) ? requestObj['submittedBy']['id'] : null;\r\n this.submittedBy = (requestObj['submittedBy'] && requestObj['submittedBy']['name']) ? requestObj['submittedBy']['name'] : null;\r\n this.submittedComments = (requestObj['submittedBy'] && requestObj['submittedBy']['comments']) ? requestObj['submittedBy']['comments'] : null;\r\n\r\n this.authorizedById = (requestObj['authorizedBy'] && requestObj['authorizedBy']['id']) ? requestObj['authorizedBy']['id'] : null;\r\n this.authorizedBy = (requestObj['authorizedBy'] && requestObj['authorizedBy']['name']) ? requestObj['authorizedBy']['name'] : null;\r\n this.authorizedComments = (requestObj['authorizedBy'] && requestObj['authorizedBy']['comments']) ? requestObj['authorizedBy']['comments'] : null;\r\n\r\n this.approvedById = (requestObj['approvedBy'] && requestObj['approvedBy']['id']) ? requestObj['approvedBy']['id'] : null;\r\n this.approvedBy = (requestObj['approvedBy'] && requestObj['approvedBy']['name']) ? requestObj['approvedBy']['name'] : null;\r\n this.approvedComments = (requestObj['approvedBy'] && requestObj['approvedBy']['comments']) ? requestObj['approvedBy']['comments'] : null;\r\n\r\n this.rejectedById = (requestObj['rejectedBy'] && requestObj['rejectedBy']['id']) ? requestObj['rejectedBy']['id'] : null;\r\n this.rejectedBy = (requestObj['rejectedBy'] && requestObj['rejectedBy']['name']) ? requestObj['rejectedBy']['name'] : null;\r\n this.rejectedComments = (requestObj['rejectedBy'] && requestObj['rejectedBy']['comments']) ? requestObj['rejectedBy']['comments'] : null;\r\n\r\n this.status = requestObj[\"status\"];\r\n }\r\n }\r\n\r\n setBrokerageDetailsValues(respObj, dataSource = null) {\r\n if (dataSource){\r\n respObj = respObj.filter(el => el.dataSource === dataSource);\r\n }\r\n if(respObj.length > 0) {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n this.brokerageDetails[0]['name'] = respObj[0].name;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = respObj[0].businessUnitGroup2;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = respObj[0].businessUnitGroup3;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = respObj[0].businessUnitGroup4;\r\n this.brokerageDetails[0]['id'] = respObj[0].id;\r\n this.brokerageDetails[0]['brokerageAmount'] = respObj[0].brokerageAmount;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = respObj[0].brokerageRecogDate;\r\n this.brokerageDetails[0]['currencyID'] = respObj[0].currencyID;\r\n this.brokerageDetails[0]['currencyCode'] = respObj[0].currencyCode;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = respObj[0].fyBusinessUnitID;\r\n this.brokerageDetails[0][\"costCentre\"] = respObj[0].costCentre;\r\n this.brokerageDetails[0][\"companyCode\"] = respObj[0].companyCode;\r\n this.brokerageDetails[0][\"base\"] = respObj[0].base;\r\n } else {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = null;\r\n this.brokerageDetails[0]['id'] = null;\r\n this.brokerageDetails[0]['brokerageAmount'] = null;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = null;\r\n this.brokerageDetails[0]['currencyID'] = null;\r\n this.brokerageDetails[0]['currencyCode'] = null;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = null;\r\n this.brokerageDetails[0][\"costCentre\"] = null;\r\n this.brokerageDetails[0][\"companyCode\"] = null;\r\n this.brokerageDetails[0][\"base\"] = null;\r\n \r\n }\r\n }\r\n\r\n setBrokerageDetailsValuesFromCostCentre(respObj) {\r\n if(respObj.length) {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n this.brokerageDetails[0]['name'] = respObj[0].name;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = respObj[0].businessUnitGroup2;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = respObj[0].businessUnitGroup3;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = respObj[0].businessUnitGroup4;\r\n this.brokerageDetails[0]['id'] = respObj[0].id;\r\n this.brokerageDetails[0]['brokerageAmount'] = respObj[0].brokerageAmount;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = respObj[0].brokerageRecogDate;\r\n this.brokerageDetails[0]['currencyID'] = respObj[0].currencyID;\r\n this.brokerageDetails[0]['currencyCode'] = respObj[0].currencyCode;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = respObj[0].fyBusinessUnitID;\r\n this.brokerageDetails[0]['companyCode'] = respObj[0].companyCode;\r\n } else {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n this.brokerageDetails[0]['name'] = null;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = null;\r\n this.brokerageDetails[0]['id'] = null;\r\n this.brokerageDetails[0]['brokerageAmount'] = null;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = null;\r\n this.brokerageDetails[0]['currencyID'] = null;\r\n this.brokerageDetails[0]['currencyCode'] = null;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = null;\r\n //this.brokerageDetails[0][\"costCentre\"] = null;\r\n this.brokerageDetails[0][\"companyCode\"] = null;\r\n this.brokerageDetails[0]['companyCode'] = null;\r\n }\r\n }\r\n\r\n getSaveObject() {\r\n let brokerageEarningDateObj;\r\n let brokerageEarningDateateTimeMs;\r\n let brokerageEarningDateTimeZoneDate;\r\n const monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n let userRoleStatus: string;\r\n\r\n brokerageEarningDateObj = new Date(this.brokerageEarningDate);\r\n brokerageEarningDateateTimeMs = brokerageEarningDateObj.getTime() - (brokerageEarningDateObj.getTimezoneOffset() * 60 * 1000);\r\n brokerageEarningDateTimeZoneDate = new Date(brokerageEarningDateateTimeMs);\r\n this.description = `${monthNames[brokerageEarningDateObj.getMonth()]} transfer - ${this.brokerageDetails[0]['businessUnitGroup3']} to ${this.transferBusinessUnit[0][\"businessUnitGroup3\"]}`;\r\n\r\n if(this.userRoles && this.userRoles.indexOf('Tier 4') !== -1){\r\n userRoleStatus = \"RequestedToAuthorised\";\r\n } else if( this.userRoles && this.userRoles.indexOf('Tier 2') !== -1) {\r\n userRoleStatus = \"IncompleteToSumitted\";\r\n }\r\n\r\n return {\r\n \"adjBusinessTransferDetailID\": this.adjBusinessTransferDetailID || null,\r\n \"policyID\": (this.policyReferenceId) ? this.policyReferenceId : null,\r\n \"brokerageAccountID\": this.brokerageDetails[0]['id'],\r\n \"fyBusinessUnitID\": this.brokerageDetails[0]['fyBusinessUnitID'],\r\n \"transferFYBusinessUnitID\": this.transferBusinessUnit[0][\"fyBusinessUnitID\"],\r\n \"brokerageEarningDate\": brokerageEarningDateTimeZoneDate,\r\n \"incomeAmount\": this.amount,\r\n \"requestId\": this.id ? this.id : null,\r\n \"adjTypeID\": this.adjTypeID,\r\n \"reasonID\": this.reasonForTransferId,\r\n \"incomeTypeID\": this.incomeTypeId,\r\n \"currencyID\": this.currencyTypeId,\r\n \"userEmail\": localStorage.getItem('userEmail'),\r\n \"otherReason\": this.otherReason,\r\n \"requestComment\": \"\",\r\n \"journalType\": this.journalType,\r\n \"description\": this.description,\r\n \"transition\": userRoleStatus,\r\n \"reasonForTransfer\": this.reasonForTransfer,\r\n \"brokerageAccountName\": this.brokerageDetails[0][\"name\"],\r\n \"policyReference\": this.policyReference,\r\n \"currencyTypeCode\": this.currencyTypeCode,\r\n \"currentBUBase\": this.brokerageDetails[0][\"base\"],\r\n \"transferBUBase\": this.transferBusinessUnit[0][\"base\"],\r\n \"workFlowType\": this.workFlowType\r\n }\r\n }\r\n}","import { Component, OnInit } from \"@angular/core\";\r\nimport BusinessUnitAdjustmentTransferModel from \"./business-unit-adjustment-transfer.model\";\r\nimport { DataCaptureFormsService } from \"./data-capture-forms.service\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { NgForm } from \"@angular/forms\";\r\nimport { UtilsService } from \"src/app/shared/services/utils.service\";\r\nimport { WindowRef } from \"src/app/shared/services/window-ref.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { AdjustmentType, AdjustmentStatus } from \"src/app/shared/models/adjustment.model\";\r\n\r\n@Component({\r\n selector: 'business-unit-adjustment-transfer',\r\n templateUrl: './business-unit-adjustment-transfer.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\n\r\nexport class BusinessUnitAdjustmentTransferComponent implements OnInit {\r\n request: BusinessUnitAdjustmentTransferModel = new BusinessUnitAdjustmentTransferModel();\r\n \r\n hideSummary: boolean = true;\r\n\r\n policyReference: any;\r\n isPolicyReferenceExists:boolean = true;\r\n\r\n reasonForTransferOptions: any;\r\n incomeTypeOptions: any;\r\n currencyTypeOptions: any;\r\n\r\n isCostCenterOptionsExists: boolean = true;\r\n costCenterOptions: any;\r\n\r\n isBrokerageAccountOptionsExist: boolean = true;\r\n brokerageAccountOptions: any;\r\n\r\n activePeriodID: Date;\r\n userDetails: Object;\r\n\r\n errorMsg: string;\r\n currentWindow: any;\r\n\r\n baseOptions: any;\r\n isBaseOptionsExists: boolean = true;\r\n subActivatedRoute: any;\r\n\r\n costCentreCompanyCodes: object[] = [];\r\n\r\n brokerageAmountErrMsg: string;\r\n\r\n errMsg: string = '';\r\n accountCode: string;\r\n\r\n constructor(private dataCaptureFormsService: DataCaptureFormsService, \r\n public utilsService: UtilsService,\r\n private winRef: WindowRef,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) {\r\n this.currentWindow = winRef.nativeWindow;\r\n }\r\n\r\n ngOnInit(){\r\n this.populateDropdown();\r\n this.dataCaptureFormsService.getUserDetails().subscribe(\r\n data => {\r\n this.userDetails = data;\r\n this.activePeriodID = this.utilsService.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n }\r\n );\r\n\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(\r\n (params) => {\r\n if(+params[\"id\"]) {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.id = +params.id;\r\n this.dataCaptureFormsService.getRequestDetails(+params[\"id\"], AdjustmentType.BusinessUnitAdjustmentTransfer)\r\n .subscribe(\r\n (data) => {\r\n this.request.setValuesFromAPIObj(data);\r\n //this.utilsService.showLoadingIcon(false);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n )\r\n }\r\n }\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subActivatedRoute.unsubscribe();\r\n }\r\n \r\n /**\r\n * \r\n */\r\n\r\n autoCompletePolicyReference() {\r\n this.isPolicyReferenceExists = true;\r\n if (this.request.policyReference.length < 3) {\r\n return;\r\n }\r\n this.policyReference = this.dataCaptureFormsService\r\n .getPolicyReferenceBusinessAdjustmentTransferReq(this.request.policyReference)\r\n .pipe(\r\n map(transactionNumbers => this.filterPolicyReference(transactionNumbers))\r\n );\r\n }\r\n\r\n filterPolicyReference(values) {\r\n let policyReference = this.request.policyReference;\r\n if(values.length > 0) {\r\n this.isPolicyReferenceExists = true;\r\n return values.filter(policyRef =>\r\n policyRef['riskReference'].toLowerCase().includes(policyReference.toLowerCase())\r\n );\r\n } else {\r\n this.isPolicyReferenceExists = false;\r\n }\r\n }\r\n\r\n autoCompletePolicyReferenceBlur() {\r\n if(!this.request.policyReference || !this.isPolicyReferenceExists) {\r\n this.request.policyReferenceId = null;\r\n return;\r\n }\r\n\r\n this.policyReference.subscribe(data => {\r\n if(data.length == 1) {\r\n this.request.policyReference = data[0].riskReference;\r\n this.request.policyReferenceId = data[0].policyId;\r\n }\r\n })\r\n }\r\n /**\r\n * \r\n */\r\n reasonsForTransferChange(e: Event) {\r\n let selectedOptionArr = this.reasonForTransferOptions.filter(\r\n currentVal => {\r\n return currentVal['reasonID'] == this.request.reasonForTransferId;\r\n }\r\n )\r\n this.request.reasonForTransfer = selectedOptionArr[0]['name'];\r\n }\r\n\r\n /**\r\n * \r\n */\r\n incomeTypeChange(e: Event){\r\n let selectedIncomeType = this.incomeTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['incomeTypeId'] == this.request.incomeTypeId;\r\n }\r\n );\r\n this.request.incomeType = selectedIncomeType[0][\"name\"];\r\n }\r\n\r\n /**\r\n * \r\n */\r\n toggleTransferFormSummaryDisplay(e: Event, form: NgForm) {\r\n if(this.validateForm(form)) {\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0,0);\r\n this.errorMsg = \"\";\r\n }\r\n }\r\n\r\n validateForm(form) {\r\n let amountValidator = this.utilsService.validateIncomeAmount(this.request.amount);\r\n let errorMsgArr = [];\r\n this.brokerageAmountErrMsg = \"\";\r\n if(!this.request.policyReferenceId){\r\n this.request.policyReference = \"\";\r\n }\r\n if(!form.valid) {\r\n errorMsgArr.push('
Provide correct values for all mandatory fields');\r\n }\r\n if(!amountValidator[\"valid\"]) {\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n if(!(this.request.brokerageDetails[0][\"costCentre\"] || this.request.brokerageDetails[0][\"name\"])) {\r\n errorMsgArr.push('
Please provide either Costcentre or Brokerage Account details');\r\n }\r\n if(!this.request.brokerageDetails[0][\"fyBusinessUnitID\"]) {\r\n errorMsgArr.push('
Please Select Companycode');\r\n }\r\n if( errorMsgArr.length > 0 ) {\r\n this.errorMsg = 'Please resolve following errors:
' + errorMsgArr.join('');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n saveConfirmTransferRequest ( e: Event, form: NgForm, actionType): void{\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let userEmail = localStorage.getItem(\"userEmail\"),\r\n expectedSaveObj = this.request.getSaveObject();\r\n let sendTransitionOne = false;\r\n\r\n if (!this.request.id) {\r\n sendTransitionOne = true;\r\n } else if (this.request.status == AdjustmentStatus.Rejected) {\r\n sendTransitionOne = true;\r\n }\r\n\r\n this.utilsService.showLoadingIcon(true);\r\n this.dataCaptureFormsService.saveUpdateBusinessUnitTransferRequest(expectedSaveObj)\r\n .subscribe(\r\n (response) => {\r\n if(this.request.id) {\r\n this.dataCaptureFormsService.workflowSaveConfirmUpdate(actionType, sendTransitionOne, userEmail, this.request);\r\n } else {\r\n this.request.id = response;\r\n }\r\n this.utilsService.showMessageTip(\"Request saved successfully\");\r\n this.router.navigate(['adjustments']);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error['error']['error']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n )\r\n }\r\n populateDropdown() {\r\n this.dataCaptureFormsService.getBusinessAdjustmentTransferDropdownData(this.request.adjTypeID)\r\n .subscribe(\r\n (respList) => {\r\n this.reasonForTransferOptions = respList[0];\r\n this.incomeTypeOptions = respList[1];\r\n this.currencyTypeOptions = respList[2];\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * \r\n */\r\n autoCompleteCostCenter() {\r\n this.isCostCenterOptionsExists = true;\r\n if (this.request.brokerageDetails[0]['costCentre'].length < 3) {\r\n return;\r\n }\r\n\r\n this.costCenterOptions = this.dataCaptureFormsService.getBusinessAdjustmentTransferCostCenter(this.request.brokerageDetails[0][\"costCentre\"])\r\n .pipe(\r\n map(costCenter => this.filterCostCenterOptions(costCenter))\r\n );\r\n }\r\n\r\n filterCostCenterOptions(values) {\r\n let costCenter = this.request.brokerageDetails[0][\"costCentre\"];\r\n if(values.length > 0) {\r\n this.isCostCenterOptionsExists = true;\r\n return values.filter(costCenterRef =>\r\n costCenterRef['costCentre'].toLowerCase().includes(costCenter.toLowerCase())\r\n );\r\n } else {\r\n this.isCostCenterOptionsExists = false;\r\n }\r\n }\r\n\r\n /**\r\n * \r\n */\r\n autoCompleteBrokerageAccount() {\r\n this.isBrokerageAccountOptionsExist = true;\r\n if(this.request.brokerageDetails[0][\"name\"].length < 3) {\r\n return;\r\n }\r\n\r\n this.brokerageAccountOptions = this.dataCaptureFormsService.getBusinessAdjustmentTransferBrokerageAccounts(this.request.brokerageDetails[0][\"name\"])\r\n .pipe(\r\n map(brokerageAccounts => this.filterBrokerageAccounts(brokerageAccounts))\r\n )\r\n }\r\n\r\n filterBrokerageAccounts(values) {\r\n let brokerageAccount = this.request.brokerageDetails[0][\"name\"];\r\n if(values.length > 0) {\r\n this.isBrokerageAccountOptionsExist = true;\r\n return values.filter( brokerageAccountRef => \r\n brokerageAccountRef['name'].toLowerCase().includes(brokerageAccount.toLowerCase())\r\n );\r\n } else {\r\n this.isBrokerageAccountOptionsExist = false;\r\n }\r\n }\r\n\r\n costCenterSelected(e: Event) {\r\n this.costCenterOptions.subscribe(\r\n (data) => {\r\n this.costCentreCompanyCodes = data[0][\"businessUnitWithCompanyList\"];\r\n this.request.brokerageDetails[0][\"base\"] = data[0][\"base\"];\r\n this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n if(this.costCentreCompanyCodes.length < 2){\r\n this.request.setBrokerageDetailsValuesFromCostCentre(this.costCentreCompanyCodes);\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n }\r\n )\r\n }\r\n\r\n companyCodeSelected(e: Event) {\r\n let selectedCompanyCode: object[] = [];\r\n if(e[\"value\"]) {\r\n selectedCompanyCode = this.costCentreCompanyCodes.filter(\r\n (value) => {\r\n return value[\"fyBusinessUnitID\"] === e[\"value\"];\r\n }\r\n );\r\n if(selectedCompanyCode.length > 0) {\r\n this.request.setBrokerageDetailsValuesFromCostCentre(selectedCompanyCode);\r\n //this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n }\r\n }\r\n }\r\n\r\n onCostCentreBlur(e: Event) {\r\n if(!this.request.brokerageDetails[0][\"costCentre\"] || !this.isCostCenterOptionsExists) {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n this.isBrokerageAccountOptionsExist = true;\r\n return;\r\n }\r\n this.costCenterOptions.subscribe(\r\n (data) => {\r\n if(data) {\r\n let enteredCostCentre = data.filter(\r\n (obj) => {\r\n return this.request.brokerageDetails[0][\"costCentre\"] === obj.costCentre;\r\n }\r\n );\r\n if(enteredCostCentre.length > 0){\r\n this.costCentreCompanyCodes = enteredCostCentre[0][\"businessUnitWithCompanyList\"];\r\n this.request.brokerageDetails[0][\"base\"] = enteredCostCentre[0][\"base\"];\r\n this.request.brokerageDetails[0][\"companyCode\"] = this.costCentreCompanyCodes[0][\"companyCode\"];\r\n // if company codes are greaterthan 2 clearing previously selected values.\r\n if(data[0][\"businessUnitWithCompanyList\"].length < 2) {\r\n this.request.setBrokerageDetailsValuesFromCostCentre(this.costCentreCompanyCodes);\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n } else {\r\n this.costCentreCompanyCodes = []; \r\n }\r\n } else {\r\n this.request.setBrokerageDetailsValuesFromCostCentre([]);\r\n }\r\n })\r\n }\r\n\r\n policyReferenceSelected(e: Event) {\r\n this.policyReference.subscribe(\r\n (data) => {\r\n this.request.policyReferenceId = data[0].policyId;\r\n }\r\n )\r\n }\r\n\r\n autoCompleteBase(e:Event) {\r\n this.isBaseOptionsExists = true;\r\n if(this.request.transferBusinessUnit[0][\"base\"].length < 3) {\r\n return;\r\n }\r\n this.baseOptions = this.dataCaptureFormsService\r\n .getBusinessAdjustmentTransferBases(this.request.transferBusinessUnit[0][\"base\"])\r\n .pipe(\r\n map(bases => this.filterBaseDetails(bases))\r\n )\r\n }\r\n\r\n filterBaseDetails (values) {\r\n let baseSearchKey = this.request.transferBusinessUnit[0]['base'];\r\n if(values.length > 0) {\r\n this.isBaseOptionsExists = true;\r\n return values.filter( base => \r\n base['base'].toLowerCase().includes(baseSearchKey.toLowerCase())\r\n );\r\n } else {\r\n this.isBaseOptionsExists = false;\r\n }\r\n }\r\n\r\n onBaseSelected(e: Event) {\r\n this.baseOptions.subscribe(\r\n (data) => {\r\n this.request.transferBusinessUnit[0]['fyBusinessUnitID'] = data[0].fyBusinessUnitID;\r\n this.request.transferBusinessUnit[0]['businessUnitBKey'] = data[0].businessUnitBKey;\r\n this.request.transferBusinessUnit[0]['costCentre'] = data[0].costCenter;\r\n this.request.transferBusinessUnit[0]['financialYear'] = data[0].financialYear;\r\n this.request.transferBusinessUnit[0]['businessUnitGroup2'] = data[0].businessUnitGroup2;\r\n this.request.transferBusinessUnit[0]['businessUnitGroup3'] = data[0].businessUnitGroup3;\r\n this.request.transferBusinessUnit[0]['businessUnitGroup4'] = data[0].businessUnitGroup4;\r\n }\r\n )\r\n }\r\n\r\n brokerageOptionSelected(e: any) {\r\n this.brokerageAccountOptions.subscribe(\r\n (data) => {\r\n this.request.setBrokerageDetailsValues(data, e.id);\r\n this.accountCode = data.find(el => el.dataSource === e.id).accountCode;\r\n }\r\n )\r\n }\r\n\r\n onBrokerageAccountBlur() {\r\n if(!this.request.brokerageDetails[0][\"name\"] || !this.isBrokerageAccountOptionsExist) {\r\n this.request.setBrokerageDetailsValues([]);\r\n this.isCostCenterOptionsExists = true;\r\n return;\r\n }\r\n this.brokerageAccountOptions.subscribe(\r\n (data) => {\r\n if(data) {\r\n let enteredDetails = data.filter(\r\n (obj) => {\r\n if (this.accountCode){\r\n return this.request.brokerageDetails[0]['name'] === obj.name && obj.accountCode === this.accountCode;\r\n } else {\r\n return this.request.brokerageDetails[0]['name'] === obj.name;\r\n }\r\n });\r\n this.request.setBrokerageDetailsValues(enteredDetails);\r\n } else {\r\n this.request.setBrokerageDetailsValues([]);\r\n }\r\n }\r\n )\r\n }\r\n\r\n currencyTypeChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.currencyTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['currencyID'] == this.request.currencyTypeId;\r\n }\r\n )\r\n this.request.currencyTypeCode = selectedOptionArr[0]['code'];\r\n }\r\n\r\n validateAmountField(value) {\r\n this.brokerageAmountErrMsg = \"\";\r\n let amountValidator = this.utilsService.validateIncomeAmount(value);\r\n if(!amountValidator[\"valid\"]) {\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n }\r\n}","
\r\n \r\n
\r\n

{{ request.type }} Data Capture

\r\n
Request Date: {{ request.requestDate | date:'d/MM/yyyy' }}  |  Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy'}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Please type any 3 letters to search policy reference\r\n No active policies found\r\n \r\n\r\n \r\n \r\n {{policyRefNo.riskReference}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a reason\r\n \r\n\r\n \r\n \r\n \r\n Please provide details\r\n \r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a Income type\r\n \r\n\r\n
\r\n \r\n \r\n \r\n {{ currentVal.code }}\r\n \r\n \r\n Please select Currency\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Please select a date in active period.\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Please type any 3 letters to search cost centre\r\n No Data found\r\n \r\n \r\n {{costCenter.costCentre}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\">\r\n \r\n \r\n {{ currentVal.companyCode }}\r\n \r\n \r\n Please select a Company Code\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Please type any 3 letters to search brokerage accounts\r\n No Data found\r\n \r\n \r\n {{brokerageAccount.name + ' (' + brokerageAccount.dataSource + ')'}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n

Transfer Request

\r\n \r\n \r\n Please type any 3 letters to search base\r\n No Data found\r\n Please provide Base\r\n \r\n \r\n {{ base['base'] }}\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Summary\r\n \r\n \r\n
\r\n
Policy Reference:
\r\n
{{ request.policyReference }}
\r\n
\r\n \r\n
\r\n
Reason for Transfer:
\r\n
{{ request.reasonForTransfer }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n

Details

\r\n \r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n \r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n \r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Cost Centre:
\r\n
{{ request.brokerageDetails[0]['costCentre'] }}
\r\n
Company Code:
\r\n
{{ request.brokerageDetails[0]['companyCode'] }}\r\n
\r\n
\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageDetails[0][\"name\"] }}
\r\n
Account Code:
\r\n
{{ request.brokerageDetails[0]['accountCode'] }}\r\n
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0]['businessUnitGroup2'] }}        {{ request.brokerageDetails[0]['businessUnitGroup3']\r\n }}        {{ request.brokerageDetails[0]['businessUnitGroup4'] }}
\r\n
\r\n\r\n

Transfer Request

\r\n
\r\n
Base:
\r\n
{{ request.transferBusinessUnit[0]['base'] }}
\r\n
\r\n\r\n \r\n
\r\n
Transfer Business Unit:
\r\n
{{request.transferBusinessUnit[0]['businessUnitGroup2']}}        \r\n {{request.transferBusinessUnit[0]['businessUnitGroup3']}}        {{request.transferBusinessUnit[0]['businessUnitGroup4']}}\r\n
\r\n
\r\n \r\n
\r\n \r\n     \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable()\r\n\r\nexport class CacheInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler) {\r\n const httpRequest = req.clone({\r\n headers: new HttpHeaders({\r\n 'Cache-Control': 'no-cache',\r\n 'Pragma': 'no-cache',\r\n 'Expires': 'Sat, 01 Jan 2000 00:00:00 GMT'\r\n })\r\n });\r\n return next.handle(httpRequest);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\n\r\n import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\n import {MatRadioModule} from '@angular/material/radio';\r\n import {MatRippleModule} from '@angular/material/core';\r\n import {MatSelectModule} from '@angular/material/select';\r\n import {MatSidenavModule} from '@angular/material/sidenav';\r\n import {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\n import {MatSliderModule} from '@angular/material/slider';\r\n import {MatSnackBarModule} from '@angular/material/snack-bar';\r\n import {MatSortModule} from '@angular/material/sort';\r\n import {MatStepperModule} from '@angular/material/stepper';\r\n import {MatTableModule} from '@angular/material/table';\r\n import {MatTabsModule} from '@angular/material/tabs';\r\n import {MatToolbarModule} from '@angular/material/toolbar';\r\n import {MatTooltipModule} from '@angular/material/tooltip';\r\n import {MatTreeModule} from '@angular/material/tree';\r\n import {MatProgressBarModule} from '@angular/material/progress-bar';\r\n import {MatPaginatorModule} from '@angular/material/paginator';\r\n import { MatNativeDateModule } from '@angular/material/core';\r\n import {MatInputModule} from '@angular/material/input';\r\n import {MatListModule} from '@angular/material/list';\r\n import {MatMenuModule} from '@angular/material/menu';\r\n import {MatIconModule} from '@angular/material/icon';\r\n import {MatGridListModule} from '@angular/material/grid-list';\r\n import {MatExpansionModule} from '@angular/material/expansion';\r\n import {MatDividerModule} from '@angular/material/divider';\r\n import {MatDialogModule} from '@angular/material/dialog';\r\n import {MatDatepickerModule} from '@angular/material/datepicker';\r\n import {MatChipsModule} from '@angular/material/chips';\r\n import {MatCardModule} from '@angular/material/card';\r\n import {MatCheckboxModule} from '@angular/material/checkbox';\r\n import {MatButtonToggleModule} from '@angular/material/button-toggle';\r\n import {MatButtonModule} from '@angular/material/button';\r\n import {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\n import {MatBadgeModule} from '@angular/material/badge';\r\n import {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule\r\n ],\r\n exports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule\r\n ]\r\n})\r\nexport class DataCaptureFormsMaterialModule { }","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { WindowRef } from '../../shared/services/window-ref.service';\r\nimport { DataCaptureFormsService } from './data-capture-forms.service';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\n\r\nimport BusinessUnitAdjustmentModel from './business-unit-adjustment.model';\r\nimport { AdjustmentStatus, AdjustmentType } from '../../shared/models/adjustment.model';\r\n\r\n\r\n@Component({\r\n selector: 'business-unit-adjustment',\r\n templateUrl: './business-unit-adjustment.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\nexport class BusinessUnitAdjustmentComponent implements OnInit, OnDestroy {\r\n\r\n request: BusinessUnitAdjustmentModel = new BusinessUnitAdjustmentModel();;\r\n transactionNumbers: any;\r\n isTransactionNumbersExists: boolean = true;\r\n \r\n isReversalTransactionNumberExists: boolean = true;\r\n isCorrectedTransactionNumberExists: boolean = true;\r\n\r\n reversalTransactionNumbers: any;\r\n correctedTransactionNumbers: any;\r\n\r\n reasonsForAdjustmentOptions: any;\r\n hideSummary: boolean = true;\r\n errorMsg: string = '';\r\n\r\n subActivatedRoute: any;\r\n currentWindow: any;\r\n \r\n isSlipUploaded = false;\r\n slipUploaded = false;\r\n\r\n constructor(private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private winRef: WindowRef,\r\n private dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService\r\n ) {\r\n this.currentWindow = winRef.nativeWindow;\r\n }\r\n\r\n ngOnInit() {\r\n this.dataCaptureFormsService.getReasonsForAdjustment(this.request.adjTypeID)\r\n .subscribe(\r\n (data) => {\r\n this.reasonsForAdjustmentOptions = data;\r\n }\r\n );\r\n //Getting the details for edit in case required\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(params => {\r\n if (+params['id']) {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.id = +params['id'];\r\n this.dataCaptureFormsService.getRequestDetails(+params['id'], AdjustmentType.BusinessUnitAdjustment)\r\n .subscribe((result) => {\r\n this.request.setValuesFromAPIObj(result);\r\n //this.utilsService.showLoadingIcon(false);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n });\r\n }\r\n }); \r\n }\r\n\r\n ngOnDestroy() {\r\n this.subActivatedRoute.unsubscribe();\r\n }\r\n\r\n toggleFormSummaryDisplay(event: Event, form: NgForm): void {\r\n\r\n if(this.formValidations(form)) {\r\n\r\n this.errorMsg = null;\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n slipFileUploadChange(files: FileList) {\r\n\r\n if(this.isSlipUploaded) {\r\n this.slipUploaded = true;\r\n }\r\n if(files.length) {\r\n this.request.slipFile = files[0];\r\n this.request.slipFileName = files[0].name;\r\n this.request.slipExistingFileName = null;\r\n this.isSlipUploaded = true;\r\n }\r\n };\r\n chooseFile(event) {\r\n // this.utilsService.isSessionExists().then((isSessionExists)=>{\r\n if(!this.utilsService.isSessionExists()) {\r\n event.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n event.stopPropagation();\r\n }else {\r\n let ele: HTMLElement = document.getElementById('slipfileUpload') as HTMLElement;\r\n ele.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n // });\r\n return false;\r\n}\r\n\r\n slipFileRemove(e: Event, slipFileUploadField) {\r\n\r\n slipFileUploadField.value = '';\r\n this.request.slipFile = null;\r\n this.request.slipFileName = null;\r\n }\r\n\r\n saveConfirmRequest(e: Event, form: NgForm, actionType: string): void { \r\n \r\n let isRequestIDExists = this.request.id ? true : false;\r\n let isFileExists = false;\r\n if(!this.formValidations(form)){\r\n \r\n this.hideSummary = true;\r\n return;\r\n }\r\n\r\n let sendTransitionOne = false;//Used to determine if workflow with transition 1 should be called or not\r\n let userEmail = localStorage.getItem('userEmail');\r\n\r\n if (!this.request.id) {\r\n sendTransitionOne = true;\r\n } else if (this.request.status == AdjustmentStatus.Rejected) {\r\n sendTransitionOne = true;\r\n }\r\n\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let expectedSaveObj = this.request.getSaveObject();\r\n let formData;\r\n if (this.request.slipFileName) {\r\n isFileExists = true;\r\n formData = new FormData();\r\n formData.append('file', this.request.slipFile, this.request.slipFileName);\r\n formData.append('data', JSON.stringify(expectedSaveObj));\r\n } else {\r\n isFileExists = false;\r\n formData = expectedSaveObj;\r\n }\r\n\r\n this.utilsService.showLoadingIcon(true);\r\n this.dataCaptureFormsService.saveRequest(formData, AdjustmentType.BusinessUnitAdjustment, isFileExists)\r\n .subscribe(data => {\r\n if(isRequestIDExists) {\r\n this.dataCaptureFormsService.workflowSaveConfirmUpdate(actionType, sendTransitionOne, userEmail, this.request);\r\n } else {\r\n this.request.id = data;\r\n }\r\n\r\n this.utilsService.showMessageTip(\"Request saved successfully\");\r\n this.router.navigate(['adjustments']);\r\n\r\n },\r\n error => {\r\n this.utilsService.showMessageTip(error['error']['error']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n autoCompleteTransactionNumbers(): void {\r\n this.isTransactionNumbersExists = true;\r\n if (this.request.transactionNumber.length < 3) {\r\n return;\r\n }\r\n this.transactionNumbers = this.dataCaptureFormsService\r\n .getTransactionNumbers(this.request.transactionNumber, '')\r\n .pipe(\r\n map(transactionNumbers => this.filterTransactionNumbers(transactionNumbers, 'default'))\r\n );\r\n }\r\n\r\n //@ToDo: Once API for this is in place, check if existing function autoCompleteTransactionNumbers can be used with some arguments in place of this\r\n autoCompleteReversalTransactionNumbers(): void {\r\n if (this.request.reversalTransactionNumber.length < 3) {\r\n return;\r\n }\r\n this.reversalTransactionNumbers = this.dataCaptureFormsService\r\n .getTransactionNumbers(this.request.reversalTransactionNumber, 'reversal')\r\n .pipe(\r\n map(transactionNumbers => this.filterTransactionNumbers(transactionNumbers, 'reversal'))\r\n );\r\n }\r\n\r\n //@ToDo: Once API for this is in place, check if existing function autoCompleteTransactionNumbers can be used with some arguments in place of this\r\n autoCompleteCorrectedTransactionNumbers(): void {\r\n if (this.request.correctedTransactionNumber.length < 3) {\r\n return;\r\n }\r\n this.correctedTransactionNumbers = this.dataCaptureFormsService\r\n .getTransactionNumbers(this.request.correctedTransactionNumber, 'corrected')\r\n .pipe(\r\n map(transactionNumbers => this.filterTransactionNumbers(transactionNumbers, 'corrected'))\r\n );\r\n }\r\n\r\n filterTransactionNumbers(values, transactionType) {\r\n if(values.length) {\r\n let transactionNumer = this.request.transactionNumber;\r\n switch(transactionType){\r\n case 'reversal':\r\n transactionNumer = this.request.reversalTransactionNumber;\r\n this.isReversalTransactionNumberExists = true;\r\n break;\r\n case 'corrected':\r\n transactionNumer = this.request.correctedTransactionNumber;\r\n this.isCorrectedTransactionNumberExists = true;\r\n break;\r\n default:\r\n transactionNumer = this.request.transactionNumber;\r\n this.isTransactionNumbersExists = true;\r\n }\r\n return values.filter(trNo =>\r\n trNo.transactionNumber.toLowerCase().includes(transactionNumer.toLowerCase())\r\n )\r\n } else {\r\n switch(transactionType) {\r\n case 'reversal':\r\n this.isReversalTransactionNumberExists = false;\r\n break;\r\n case 'corrected':\r\n this.isCorrectedTransactionNumberExists = false;\r\n break;\r\n default:\r\n this.isTransactionNumbersExists = false;\r\n }\r\n } \r\n }\r\n\r\n transactionNumberSelected(e: Event): void {\r\n\r\n this.dataCaptureFormsService\r\n .getTransactionNumberDetails(this.request.transactionNumber, 'BusinessUnitAdjustment')\r\n .subscribe(\r\n data => {\r\n this.request.updateFieldsFromTransactionNumberDetails(data, 'default');\r\n }\r\n );\r\n //this.request.businessUnitAdjLedgereID = this.getSelectedLedgerId(this.transactionNumbers, this.request.transactionNumber);\r\n }\r\n\r\n correctedTransactionNumberSelected(e: Event): void {\r\n\r\n this.dataCaptureFormsService\r\n .getCorrectedTransactionNumberDetails(this.request.correctedTransactionNumber)\r\n .subscribe(\r\n data => {\r\n this.request.updateFieldsFromTransactionNumberDetails(data, 'corrected');\r\n }\r\n );\r\n }\r\n\r\n reversalTransactionNumberSelected(e: Event): void {\r\n\r\n this.dataCaptureFormsService\r\n .getReversalTransactionNumberDetails(this.request.reversalTransactionNumber)\r\n .subscribe(\r\n data => {\r\n this.request.updateFieldsFromTransactionNumberDetails(data, 'reversal');\r\n }\r\n );\r\n }\r\n\r\n getSelectedLedgerId(trNosObjArr: string[], selectedTrNo): number{\r\n console.log(trNosObjArr);\r\n let selectedTransactionNoObj = trNosObjArr.filter((trNoObj) => {\r\n return trNoObj['transactionNumber'] == selectedTrNo;\r\n });\r\n console.log(selectedTransactionNoObj);\r\n return selectedTransactionNoObj[0]['ledgerID'];\r\n }\r\n\r\n reasonForAdjustmentChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.reasonsForAdjustmentOptions.filter(\r\n currentVal => {\r\n return currentVal['reasonID'] == this.request.reasonForAdjustmentId;\r\n }\r\n )\r\n this.request.reasonForAdjustment = selectedOptionArr[0]['name'];\r\n }\r\n\r\n formValidations(form: NgForm): boolean{\r\n\r\n this.errorMsg = '';\r\n let errorMsgArr = [];\r\n\r\n if (!form.valid) {\r\n\r\n errorMsgArr.push('
Provide correct values for all mandatory fields.');\r\n } \r\n \r\n if ((this.request.transactionNumber == this.request.reversalTransactionNumber) || (this.request.transactionNumber == this.request.correctedTransactionNumber) || (this.request.reversalTransactionNumber == this.request.correctedTransactionNumber)) {\r\n\r\n errorMsgArr.push('
Provide different values for all 3 transaction numbers.');\r\n } \r\n \r\n if (!this.request.slipFileName && !this.request.slipExistingFileName) {\r\n\r\n errorMsgArr.push('
Upload a slip.');\r\n }\r\n\r\n if(errorMsgArr.length>0){\r\n\r\n this.errorMsg = 'Please resolve following errors:
'+ errorMsgArr.join('');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onDownloadBusinessAdjustmentCurrentFile() {\r\n this.dataCaptureFormsService.downloadAttachment('BusinessUnitAdjustment', this.request.id);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n

{{ request.type }} Data Capture

\r\n
Request Date: {{ request.requestDate | date:'d/MM/yyyy' }}  |  Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n Please type any 3 letters to search transaction\r\n No transactions found\r\n Please provide a Transaction Number\r\n \r\n\r\n \r\n \r\n {{trNo.transactionNumber}}\r\n \r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a reason\r\n \r\n\r\n \r\n \r\n \r\n Please provide details\r\n \r\n\r\n

Insured

\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n

Current

\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n

Adjustment Request

\r\n\r\n \r\n \r\n Please type any 3 letters to search transaction\r\n No transactions found\r\n Please provide Reversal Transaction Number\r\n \r\n\r\n \r\n \r\n {{trNo.transactionNumber}}\r\n \r\n \r\n\r\n \r\n \r\n Please type any 3 letters to search transaction\r\n No transactions found\r\n Please provide Corrected Transaction Number\r\n \r\n\r\n \r\n \r\n {{trNo.transactionNumber}}\r\n \r\n \r\n\r\n

Corrected Details

\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
\r\n Upload Slip:   \r\n \r\n \r\n \r\n delete\r\n
\r\n
\r\n
*Uploading new file will replace existing file. If file exists
\r\n\r\n
\r\n
\r\n Current File:   \r\n {{ request.slipExistingFileName }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Summary\r\n \r\n \r\n\r\n
\r\n
Transaction Number:
\r\n
{{ request.transactionNumber }}
\r\n
\r\n\r\n
\r\n
Effective Date:
\r\n
{{ request.effectiveDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Reason for Adjustment:
\r\n
{{ request.reasonForAdjustment }}
\r\n
{{ request.otherReason }}
\r\n
\r\n\r\n

Insured

\r\n\r\n \r\n\r\n
\r\n
Insured:
\r\n
{{ currentVal.name }}
\r\n
\r\n
\r\n
Insured Code:
\r\n
{{ currentVal.code }}
\r\n
\r\n
\r\n\r\n

Current

\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ currentVal.name }}
\r\n
Account Code:
\r\n
{{ currentVal.accountCode }}
\r\n
\r\n\r\n
\r\n
Amount:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}\r\n
\r\n
\r\n
\r\n
Brokerage Recognition Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Business Unit:
\r\n
{{ currentVal.businessUnitGroup2 }}        {{ currentVal.businessUnitGroup3\r\n }}        {{ currentVal.businessUnitGroup4 }}\r\n
\r\n
\r\n
\r\n\r\n

Adjustment Request

\r\n\r\n
\r\n
Reversal Transaction:
\r\n
{{ request.reversalTransactionNumber }}
\r\n
\r\n\r\n
\r\n
Corrected Transaction:
\r\n
{{ request.correctedTransactionNumber }}
\r\n
\r\n\r\n

Corrected Details

\r\n\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ currentVal.name }}
\r\n
Account Code:
\r\n
{{ currentVal.accountCode }}
\r\n
\r\n\r\n
\r\n
Amount:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}\r\n
\r\n
\r\n
\r\n
Brokerage Recognition Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n
\r\n
Business Unit:
\r\n
{{ currentVal.businessUnitGroup2 }}        {{ currentVal.businessUnitGroup3\r\n }}        {{ currentVal.businessUnitGroup4 }}\r\n
\r\n
\r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
Slip:
\r\n
{{ request.slipFileName }}
\r\n
\r\n\r\n
\r\n
Current Slip:
\r\n \r\n
\r\n\r\n
\r\n \r\n     \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, ElementRef } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-svg-viewer',\r\n templateUrl: './svg-viewer.component.html',\r\n styleUrls: ['./svg-viewer.component.scss']\r\n})\r\nexport class SvgViewerComponent implements OnInit {\r\n\r\n @Input() src: string;\r\n @Input() scaleToContainer: boolean;\r\n\r\n constructor(private elementRef: ElementRef, private http: HttpClient) { }\r\n\r\n ngOnInit() {\r\n this.fetchAndInlineSvgContent(this.src);\r\n }\r\n\r\n private inlineSvgContent(template) {\r\n this.elementRef.nativeElement.innerHTML = template;\r\n\r\n if (this.scaleToContainer) {\r\n let svg = this.elementRef.nativeElement.querySelector('svg');\r\n svg.setAttribute('width', '100%');\r\n svg.setAttribute('height', '100%');\r\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\r\n }\r\n }\r\n\r\n private fetchAndInlineSvgContent(path: string): void {\r\n const svgAbsPath = getAbsolutePathFromSrc(path);\r\n this.http.get(svgAbsPath, {responseType: 'text'}).subscribe(svgResponse => {\r\n this.inlineSvgContent(svgResponse);\r\n });\r\n }\r\n}\r\n\r\nfunction getAbsolutePathFromSrc(src: string) {\r\n return src.slice(src.indexOf('assets/') - 1);\r\n}\r\n","
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { userAuthorizationService } from './user-authorization.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-user-authorization',\r\n templateUrl: './user-authorization.component.html',\r\n styleUrls: ['./user-authorization.component.scss']\r\n})\r\nexport class UserAuthorizationComponent implements OnInit {\r\n\r\n constructor(public userAuth: userAuthorizationService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n performNavigation() {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n}\r\n","
\r\n \r\n

{{userAuth.headerTitle}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{userAuth.errorCode}}!
\r\n
{{userAuth.errorMessage}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n ","// This service to handle authentication services for the application\r\nimport { Injectable } from '@angular/core';\r\n// import { OktaAuthService } from '@okta/okta-angular';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthConfig } from 'src/assets/auth-config';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public isLoginSuccess: BehaviorSubject = new BehaviorSubject(false);\r\n constructor(private router: Router, private dialog: MatDialog, private authService: MsalService, private authConfig: AuthConfig) { }\r\n\r\n sessionTimer;\r\n sessionTime = 3000000;\r\n\r\n // Reset the settings, logout from okta if not logged out, redirect to login\r\n async doLogout() {\r\n localStorage.setItem('userProfile', JSON.stringify({}));\r\n localStorage.setItem('userEmail', '');\r\n localStorage.setItem('userId', '');\r\n localStorage.setItem('renewalNoteVisible', null);\r\n localStorage.setItem('browserNoteVisible', null);\r\n localStorage.setItem('resolutionNoteVisible', null);\r\n await this.authService.instance.logoutRedirect();\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n getLoginUserDetails() {\r\n return this.authService.instance.getAllAccounts();\r\n }\r\n\r\n async checkSessionAuth() {\r\n // return (await this.oktaAuth['oktaAuth'].session.exists()) && (await this.oktaAuth.isAuthenticated());\r\n // this.authService.instance.getAllAccounts();\r\n return await this.authService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n async refreshSession() {\r\n // await this.oktaAuth['oktaAuth'].session.refresh();\r\n }\r\n\r\n // setSessionTimer() {\r\n // if (this.sessionTimer) {\r\n // clearTimeout(this.sessionTimer);\r\n // }\r\n // this.sessionTimer = setTimeout(() => {\r\n // const dialogRef = this.dialog.open(SessionTimeOutDialogComponent, {\r\n // width: '340px',\r\n // disableClose: true,\r\n // data: {}\r\n // });\r\n // }, this.sessionTime);\r\n // }\r\n}\r\n","import { NativeDateAdapter, DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from \"@angular/material/core\";\r\nimport { Injectable } from \"@angular/core\";\r\n@Injectable()\r\nexport class AppDateAdapter extends NativeDateAdapter {\r\n\r\n parse(value: any): Date | null {\r\n if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\r\n const str = value.split('/');\r\n const year = Number(str[2]);\r\n const month = Number(str[1]) - 1;\r\n const date = Number(str[0]);\r\n return new Date(year, month, date);\r\n }\r\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\r\n return isNaN(timestamp) ? null : new Date(timestamp);\r\n }\r\n format(date: Date, displayFormat: string): string {\r\n if (displayFormat == \"input\") {\r\n let day = date.getDate();\r\n let month = date.getMonth() + 1;\r\n let year = date.getFullYear();\r\n return this._to2digit(day) + '/' + this._to2digit(month) + '/' + year;\r\n } else if (displayFormat == \"inputMonth\") {\r\n let month = date.getMonth() + 1;\r\n let year = date.getFullYear();\r\n return this._to2digit(month) + '/' + year;\r\n } else {\r\n return date.toDateString();\r\n }\r\n }\r\n\r\n private _to2digit(n: number) {\r\n return ('00' + n).slice(-2);\r\n } \r\n}\r\n\r\n\r\nexport const APP_DATE_FORMATS =\r\n{\r\n parse: {\r\n dateInput: {month: 'short', year: 'numeric', day: 'numeric'}\r\n },\r\n display: {\r\n // dateInput: { month: 'short', year: 'numeric', day: 'numeric' },\r\n dateInput: 'input',\r\n // monthYearLabel: { month: 'short', year: 'numeric', day: 'numeric' },\r\n monthYearLabel: 'inputMonth',\r\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\r\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\"\r\nimport { DecimalPipe } from \"@angular/common\"\r\n\r\n@Pipe({\r\n name: \"amountPipe\"\r\n})\r\nexport class AmountPipe extends DecimalPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n\r\n let result;\r\n let valueSplitArrNegative = [];\r\n let isNegative;\r\n let valueWithoutComma;\r\n\r\n if(!args) {\r\n args = '1.2-2';\r\n }\r\n if(value && value.split){\r\n valueSplitArrNegative = value.split('-');\r\n if (valueSplitArrNegative.length>0 && valueSplitArrNegative[1]){\r\n isNegative = true;\r\n valueWithoutComma = valueSplitArrNegative[1];\r\n }else{\r\n isNegative = false;\r\n valueWithoutComma = valueSplitArrNegative[0];\r\n } \r\n }else{\r\n isNegative = false;\r\n valueWithoutComma = value; \r\n }\r\n\r\n if (valueWithoutComma && valueWithoutComma.replace){\r\n valueWithoutComma = valueWithoutComma.replace(/,/g, '');\r\n }\r\n\r\n result = super.transform(valueWithoutComma, args);\r\n if(isNegative){\r\n result = '-'+result;\r\n }\r\n return result;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport { AppConfig } from 'src/app/app.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdjustmentService {\r\n \r\n summaryTransactionUrl = this.appConfig.apiUrl+ 'api/Summary/Transactions';\r\n summaryInsuredUrl = this.appConfig.apiUrl+ 'api/Summary/GetInsureds';\r\n allRequestsUrl = this.appConfig.apiUrl + 'api/Summary/GetAdjustmentRequestsByUser';\r\n impactViewUrl = this.appConfig.apiUrl +'api/Summary/impactview';\r\n historyYearUrl = this.appConfig.apiUrl +'api/Summary/GetYears';\r\n historyMonthUrl = this.appConfig.apiUrl +'api/Summary/GetMonthsForYear';\r\n historyRequestsUrl = this.appConfig.apiUrl +'api/Summary/GetHistoryAdjustments';\r\n\r\n //Export Tables as Excel\r\n exportCurrentViewTables = this.appConfig.apiUrl + 'api/Summary/ExportAsExcel';\r\n exportHistoryViewTables = this.appConfig.apiUrl + 'api/Summary/ExportHistoryAsExcel';\r\n\r\n constructor(private http: HttpClient, public utilsService: UtilsService, private appConfig: AppConfig) { }\r\n\r\n getHistoryYears(): Observable {\r\n return this.http.get(this.historyYearUrl);\r\n }\r\n\r\n getHistoryMonths(selectedYear: number): Observable {\r\n let url = this.historyMonthUrl + '?year=' + selectedYear;\r\n return this.http.get(url);\r\n }\r\n\r\n /**\r\n * getAdjustmentTableData() is to make a GET call to get active adjustments list.\r\n * @param inReviewData \r\n * @param inProgressData \r\n * @param isImpactViewRequired \r\n */\r\n getAdjustmentTablesData(inReviewData: object, inProgressData:object, isImpactViewRequired: boolean) {\r\n let url = this.allRequestsUrl +'?userEmail='+localStorage.getItem('userEmail');\r\n let statusToReviewUrl, statusInProgressUrl, impactViewUrl, requestList = [];\r\n if(inReviewData && !this.utilsService.isEmpty(inReviewData)) {\r\n statusToReviewUrl = this.http.get(this.getDataUrls(url, inReviewData), {observe: 'response'});\r\n requestList.push(statusToReviewUrl);\r\n }\r\n if( inProgressData && !this.utilsService.isEmpty(inProgressData)) {\r\n statusInProgressUrl = this.http.get(this.getDataUrls(url,inProgressData), {observe: 'response'});\r\n requestList.push(statusInProgressUrl)\r\n }\r\n if(isImpactViewRequired) {\r\n impactViewUrl = this.http.get(this.impactViewUrl + '?userEmail=' + localStorage.getItem('userEmail'));\r\n requestList.push(impactViewUrl);\r\n }\r\n\r\n return forkJoin(requestList);\r\n }\r\n\r\n /**\r\n * getHistoryTablesData() is to make a GET call to get history adjustments list.\r\n * @param historyAdjustmentsOthers \r\n * @param historyAdjustmentsApproved \r\n */\r\n getHistoryTablesData( historyAdjustmentsOthers: object, historyAdjustmentsApproved: object) {\r\n let url = this.historyRequestsUrl + '?userEmail=' + localStorage.getItem('userEmail');\r\n let historyApprovedAdjustments, historyOthersAdjustments, historyRequestList = [];\r\n if(historyAdjustmentsOthers && !this.utilsService.isEmpty(historyAdjustmentsOthers)) {\r\n historyOthersAdjustments = this.http.get(this.getDataUrls(url, historyAdjustmentsOthers), {observe: 'response'});\r\n historyRequestList.push(historyOthersAdjustments);\r\n }\r\n\r\n if(historyAdjustmentsApproved && !this.utilsService.isEmpty(historyAdjustmentsApproved)) {\r\n historyApprovedAdjustments = this.http.get(this.getDataUrls(url, historyAdjustmentsApproved), {observe: 'response'});\r\n historyRequestList.push(historyApprovedAdjustments);\r\n }\r\n\r\n return forkJoin(historyRequestList);\r\n }\r\n\r\n getSummaryInsureds(currentVal: string): Observable {\r\n\r\n let url = this.summaryInsuredUrl;\r\n url += '?email=' + localStorage.getItem('userEmail');\r\n url += '&searchKey=' + currentVal;\r\n\r\n return this.http.get(url);\r\n }\r\n\r\n /**\r\n * getDataUrl() is to construct url based on provided data.\r\n * @param url \r\n * @param data \r\n */\r\n getDataUrls(url, data) {\r\n for(let option in data) {\r\n if(data[option] != null) {\r\n url += '&'+ option+'='+data[option];\r\n }\r\n }\r\n return url;\r\n }\r\n\r\n exportTableData(data:object, type) {\r\n let url;\r\n if(type === 'Current') {\r\n url = this.exportCurrentViewTables + '?userEmail=' + localStorage.getItem('userEmail');\r\n } else {\r\n url = this.exportHistoryViewTables + '?userEmail=' + localStorage.getItem('userEmail');\r\n }\r\n url = this.getDataUrls(url, data);\r\n return this.http.get(url, {observe: 'response', responseType: 'arraybuffer' });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, Output, EventEmitter } from '@angular/core';\r\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\r\nimport { SnackBarService } from 'src/app/snack-bar-service.service';\r\n\r\n@Component({\r\n selector: 'snackBarDefault',\r\n templateUrl: './snackBarDefault.component.html',\r\n styleUrls: ['./snackBarDefault.scss']\r\n})\r\nexport class SnackBarComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data : FormData,\r\n public snackBarRef: MatSnackBarRef,\r\n private snackBarService : SnackBarService,\r\n ){}\r\n ngOnInit(){\r\n }\r\n confirmCreatingMisscelaneousIncome(){\r\n this.snackBarService.onChange(this.data);\r\n this.snackBarRef.dismiss();\r\n }\r\n}\r\n\r\n","
There is already a Miscellaneous Income request with the selected income type, reason, currency, cost centre, company, brokerage period and/or business unit.
\r\n
Would you like to proceed?
\r\n
\r\n \r\n \r\n
","import { AdjustmentType, AdjustmentStatus } from '../../shared/models/adjustment.model';\r\n\r\nexport default class AccrualModel{\r\n\r\n type: string = AdjustmentType.Accrual;\r\n\r\n id: number;\r\n\r\n journalType: number = 1;\r\n description: string =\"\";\r\n userRoles: string[];\r\n workFlowType: number;\r\n\r\n requestDate: Date = new Date();\r\n \r\n policyReferenceId: number;\r\n policyReference: string;\r\n\r\n adjAccrualDetailID: number = 0;\r\n policyFYBusinessUnitID: number = 0;\r\n adjTypeID: number = 1; //Represents Accrual\r\n businessUnitAdjLedgerID: number = 0;\r\n \r\n insuredId: number;\r\n insuredName: string;\r\n insuredCode: string;\r\n \r\n effectiveDate: Date;\r\n \r\n renewalTypeID: number;\r\n renewalType: string;\r\n\r\n actionType: string;//Used to check whether current request is for Re-Accrual\r\n reAccrualAllowed: boolean;\r\n reAccrualRequestId:number;\r\n brokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null\r\n }];\r\n\r\n incomeTypeId: number;\r\n incomeType: string;\r\n\r\n currencyTypeId: number;\r\n currencyTypeCode: string;\r\n\r\n amount: any;\r\n\r\n brokerageEarningDate: Date;\r\n\r\n reasonForAccrualId: number;\r\n reasonForAccrual: string;\r\n otherReason: string;\r\n\r\n riskBoundCheck: boolean = false;\r\n\r\n slipFile: File;\r\n slipFileName: string;\r\n slipExistingFileName: string;//This is to hold already uploaded file\r\n\r\n confirmationOfOrderFile: File;\r\n confirmationOfOrderFileName: string;\r\n confirmationOfOrderExistingFileName: string;//This is to hold already uploaded file\r\n\r\n statusId: number = 1;\r\n status: string = AdjustmentStatus.Incomplete;\r\n \r\n //@ToDo: move comments out and use updated variables like submittedComments etc.. as per status\r\n comments: string;\r\n //@ToDo: move processedBy out and use updated variables like authorizedBy etc..\r\n processedBy: string;\r\n requestedBy: string;\r\n requestedById: number;\r\n submittedBy: string;\r\n submittedById: number;\r\n submittedComments: string;\r\n authorizedBy: string;\r\n authorizedById: number;\r\n authorizedComments: string;\r\n approvedBy: string;\r\n approvedById: number;\r\n approvedComments: string;\r\n rejectedBy: string;\r\n rejectedById: number;\r\n rejectedComments: string;\r\n\r\n constructor(){ }\r\n\r\n setValuesFromAPIObj(requestObj: object): void {\r\n\r\n if(requestObj) {\r\n\r\n this.id = (this.actionType && this.actionType == 'reAccrual') ? null : requestObj['requestId'];\r\n this.reAccrualRequestId= (this.actionType && this.actionType == 'reAccrual') ? requestObj['requestId']:null;\r\n this.policyReferenceId = (requestObj['policyID']) ? requestObj['policyID'] : null;\r\n this.policyReference = (requestObj['riskReference']) ? requestObj['riskReference'] : null;\r\n\r\n this.adjTypeID = requestObj['adjTypeID'];\r\n this.adjAccrualDetailID = requestObj['adjAccrualDetailID'];\r\n this.businessUnitAdjLedgerID = requestObj['businessUnitAdjLedgerID'];\r\n this.policyFYBusinessUnitID = requestObj['policyFYBusinessUnitID'];\r\n\r\n this.insuredId = requestObj['insured']['insuredId'];\r\n this.insuredName = requestObj['insured']['name'];\r\n this.insuredCode = requestObj['insured']['code'];\r\n\r\n this.effectiveDate = requestObj['effectiveDate'];\r\n\r\n this.renewalTypeID = requestObj['renewalType']['renewalTypeID'];\r\n this.renewalType = requestObj['renewalType']['name'];\r\n\r\n this.reAccrualAllowed = (requestObj.hasOwnProperty('reAccrualAllowed')) ? requestObj['reAccrualAllowed'] : false;\r\n\r\n this.brokerageDetails = requestObj['brokerageDetails'];\r\n\r\n this.incomeTypeId = requestObj['incomeTypeId'];\r\n this.incomeType = requestObj['incomeName'];\r\n\r\n this.currencyTypeId = requestObj['accrualRequest']['currency']['currencyID'];\r\n this.currencyTypeCode = requestObj['accrualRequest']['currency']['code'];\r\n this.amount = requestObj['accrualRequest']['brokerageAmount'];\r\n // this.brokerageEarningDate = requestObj['accrualRequest']['brokerageDate'];\r\n this.brokerageEarningDate = this.getBrokerageEarningDateReAccrual(requestObj);\r\n \r\n this.reasonForAccrualId = requestObj['reasonId'];\r\n this.reasonForAccrual = requestObj['reason'];\r\n this.otherReason = requestObj['otherReason'];\r\n\r\n this.statusId = requestObj['statusId'];\r\n this.status = requestObj['status'];\r\n\r\n this.slipExistingFileName = requestObj['slipFileName'];\r\n this.confirmationOfOrderExistingFileName = requestObj['confirmationOfOrderFileName'];\r\n\r\n if(requestObj[\"description\"]) this.description = requestObj[\"description\"];\r\n if(requestObj[\"journalType\"]) this.journalType = requestObj[\"journalType\"];\r\n if(requestObj[\"workFlowType\"]) this.workFlowType = requestObj[\"workFlowType\"];\r\n\r\n this.riskBoundCheck = (requestObj.hasOwnProperty('riskBoundCheck')) ? requestObj['riskBoundCheck'] : false;\r\n\r\n this.requestedById = (requestObj['requestedBy'] && requestObj['requestedBy']['id']) ? requestObj['requestedBy']['id'] : null;\r\n this.requestedBy = (requestObj['requestedBy'] && requestObj['requestedBy']['name']) ? requestObj['requestedBy']['name'] : null;\r\n\r\n this.submittedById = (requestObj['submittedBy'] && requestObj['submittedBy']['id']) ? requestObj['submittedBy']['id'] : null;\r\n this.submittedBy = (requestObj['submittedBy'] && requestObj['submittedBy']['name']) ? requestObj['submittedBy']['name'] : null;\r\n this.submittedComments = (requestObj['submittedBy'] && requestObj['submittedBy']['comments']) ? requestObj['submittedBy']['comments'] : null;\r\n\r\n this.authorizedById = (requestObj['authorizedBy'] && requestObj['authorizedBy']['id']) ? requestObj['authorizedBy']['id'] : null;\r\n this.authorizedBy = (requestObj['authorizedBy'] && requestObj['authorizedBy']['name']) ? requestObj['authorizedBy']['name'] : null;\r\n this.authorizedComments = (requestObj['authorizedBy'] && requestObj['authorizedBy']['comments']) ? requestObj['authorizedBy']['comments'] : null;\r\n\r\n this.approvedById = (requestObj['approvedBy'] && requestObj['approvedBy']['id']) ? requestObj['approvedBy']['id'] : null;\r\n this.approvedBy = (requestObj['approvedBy'] && requestObj['approvedBy']['name']) ? requestObj['approvedBy']['name'] : null;\r\n this.approvedComments = (requestObj['approvedBy'] && requestObj['approvedBy']['comments']) ? requestObj['approvedBy']['comments'] : null;\r\n\r\n this.rejectedById = (requestObj['rejectedBy'] && requestObj['rejectedBy']['id']) ? requestObj['rejectedBy']['id'] : null;\r\n this.rejectedBy = (requestObj['rejectedBy'] && requestObj['rejectedBy']['name']) ? requestObj['rejectedBy']['name'] : null;\r\n this.rejectedComments = (requestObj['rejectedBy'] && requestObj['rejectedBy']['comments']) ? requestObj['rejectedBy']['comments'] : null;\r\n } \r\n }\r\n\r\n updateFieldsFromPolicyReferenceDetails(unsetValues: boolean, data: object, compObj: object): void{\r\n\r\n if(unsetValues){\r\n\r\n this.policyReferenceId = null;\r\n this.policyFYBusinessUnitID = 0;\r\n this.reAccrualAllowed=false;\r\n compObj['insuredOptions'] = null;\r\n this.insuredId = null;\r\n this.insuredName = null;\r\n this.insuredCode = null;\r\n \r\n compObj['displayInsuredNameAsAutoComplete'] = true;\r\n \r\n this.brokerageDetails = [{}];\r\n compObj['displayBrokerageAccountAsAutoComplete'] = true;\r\n \r\n }else{\r\n \r\n this.policyReferenceId = (data['policyID']) ? data['policyID'] : null;\r\n this.policyReference = (data['riskReference']) ? data['riskReference'] : null;\r\n this.policyFYBusinessUnitID = (data['policyFYBusinessUnitID']) ? data['policyFYBusinessUnitID'] : null;\r\n\r\n if (data['insureds'] && Array.isArray(data['insureds']) && data['insureds'].length > 0) {\r\n compObj['insuredOptions'] = data['insureds'];\r\n compObj['displayInsuredNameAsAutoComplete'] = false;\r\n if (compObj['insuredOptions'].length==1){\r\n this.insuredId = compObj['insuredOptions'][0]['insuredId'];\r\n this.insuredName = compObj['insuredOptions'][0]['name'];\r\n this.insuredCode = compObj['insuredOptions'][0]['code'];\r\n }\r\n } else {\r\n compObj['insuredOptions'] = null;\r\n compObj['displayInsuredNameAsAutoComplete'] = true;\r\n }\r\n\r\n if (data['brokerageAccount']) {\r\n this.brokerageDetails = [data['brokerageAccount']];\r\n compObj['displayBrokerageAccountAsAutoComplete'] = false;\r\n } else {\r\n this.brokerageDetails = [{}];\r\n compObj['displayBrokerageAccountAsAutoComplete'] = true;\r\n }\r\n } \r\n }\r\n\r\n getSaveObj():object{\r\n\r\n let effectiveDateObj;\r\n let effectiveDateateTimeMs;\r\n let effectiveDateTimeZoneDate;\r\n\r\n let brokerageEarningDateObj;\r\n let brokerageEarningDateateTimeMs;\r\n let brokerageEarningDateTimeZoneDate;\r\n let userRoleStatus: string;\r\n\r\n effectiveDateObj = new Date(this.effectiveDate);\r\n effectiveDateateTimeMs = effectiveDateObj.getTime() - (effectiveDateObj.getTimezoneOffset() * 60 * 1000);\r\n effectiveDateTimeZoneDate = new Date(effectiveDateateTimeMs);\r\n\r\n brokerageEarningDateObj = new Date(this.brokerageEarningDate);\r\n brokerageEarningDateateTimeMs = brokerageEarningDateObj.getTime() - (brokerageEarningDateObj.getTimezoneOffset() * 60 * 1000);\r\n brokerageEarningDateTimeZoneDate = new Date(brokerageEarningDateateTimeMs);\r\n\r\n if(this.userRoles.length > 0 && this.userRoles.indexOf('Tier 4') !== -1){\r\n userRoleStatus = \"RequestedToAuthorised\";\r\n } else if( this.userRoles.length > 0 && this.userRoles.indexOf('Tier 2') !== -1) {\r\n userRoleStatus = \"IncompleteToSumitted\";\r\n }\r\n\r\n return {\r\n policyID: (this.policyReferenceId) ? this.policyReferenceId : null,\r\n adjAccrualDetailID: (this.actionType && this.actionType == 'reAccrual') ? null : this.adjAccrualDetailID,\r\n insuredID: (this.insuredId) ? this.insuredId: null,\r\n insuredName: this.insuredName,\r\n effectiveDate: effectiveDateTimeZoneDate,\r\n renewalTypeID: this.renewalTypeID,\r\n brokerageAccountID: this.brokerageDetails[0]['id'],\r\n incomeAmount: this.amount,\r\n brokerageEarningDate: brokerageEarningDateTimeZoneDate,\r\n policyFYBusinessUnitID: this.policyFYBusinessUnitID,\r\n requestId: this.id,\r\n adjTypeID: this.adjTypeID,\r\n reasonID: this.reasonForAccrualId,\r\n incomeTypeID: this.incomeTypeId,\r\n currencyID: this.currencyTypeId,\r\n riskBoundCheck: this.riskBoundCheck,\r\n userEmail: localStorage.getItem('userEmail'),\r\n otherReason: this.otherReason,\r\n journalType: this.journalType,\r\n businessUnitGroup3: this.brokerageDetails[0][\"businessUnitGroup3\"],\r\n transition: userRoleStatus,\r\n reasonForAccrual: this.reasonForAccrual,\r\n brokerageAccountName: this.brokerageDetails[0][\"name\"],\r\n policyReference: this.policyReference,\r\n currencyTypeCode: this.currencyTypeCode,\r\n reAccrualAllowed:(this.actionType && this.actionType == 'reAccrual') ? true:false,\r\n reAccrualRequestId:this.reAccrualRequestId,\r\n workFlowType: this.workFlowType\r\n };\r\n }\r\n\r\n getBrokerageEarningDateReAccrual(requestObj: object){\r\n\r\n \r\n let currentBrokerageEarningDate = requestObj['accrualRequest']['brokerageDate'];\r\n\r\n if(this.actionType!='reAccrual'){\r\n return currentBrokerageEarningDate;\r\n }\r\n \r\n let currentDateObj = new Date(currentBrokerageEarningDate);\r\n \r\n let \r\n fullYear = currentDateObj.getFullYear(), \r\n month = currentDateObj.getMonth(), \r\n date = currentDateObj.getDate(),\r\n hours = currentDateObj.getHours(),\r\n minutes = currentDateObj.getMinutes(),\r\n seconds = currentDateObj.getSeconds();\r\n\r\n let \r\n newDate,\r\n newMonth,\r\n newFullYear;\r\n \r\n newMonth = (month==11) ? 0 : month+1;\r\n newFullYear = (newMonth==0) ? fullYear+1 : fullYear;\r\n newDate = date;\r\n\r\n if (newMonth == 3 || newMonth == 5 || newMonth == 8 || newMonth == 10){//Case when maximum day can be 30 for a month\r\n\r\n if (date==31){\r\n newDate = 30;\r\n }\r\n }else if(newMonth == 1){//Feb case\r\n\r\n if(newFullYear%4==0){//Leap year case with Feb\r\n if (date == 30 || date==31){\r\n newDate = 29;\r\n }\r\n }else{\r\n if (date == 29 || date == 30 || date==31){\r\n newDate = 28;\r\n }\r\n }\r\n }\r\n \r\n return new Date(newFullYear, newMonth, newDate, hours, minutes, seconds);\r\n }\r\n}\r\n","export * from './nav-bar.module';\r\nexport * from './nav-bar.component';\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SvgViewerComponent } from './svg-viewer.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ],\r\n declarations: [SvgViewerComponent],\r\n exports: [SvgViewerComponent]\r\n})\r\nexport class SvgViewerModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\nfunction _window(): any {\r\n // return the global native browser window object\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n get nativeWindow(): any {\r\n return _window();\r\n }\r\n}","import { AdjustmentType, AdjustmentStatus } from '../../shared/models/adjustment.model';\r\n\r\nexport default class BusinessUnitAdjustmentModel {\r\n\r\n type: string = AdjustmentType.BusinessUnitAdjustment;\r\n id: number;\r\n\r\n requestDate: Date = new Date();\r\n\r\n userRoles: string[];\r\n\r\n journalType: number = 2;\r\n description: string =\"\";\r\n \r\n adjTypeID: number = 3;\r\n deferredAdjLedgerID: number;\r\n adjBusinessUnitDetailID: number = 0;\r\n \r\n transactionNumber: string;\r\n businessUnitAdjLedgereID: number;\r\n \r\n reversalTransactionNumber: string;\r\n businessUnitReversalAdjLedgerID: number;\r\n \r\n correctedTransactionNumber: string;\r\n businessUnitCorrectedAdjLedgerID: number;\r\n \r\n effectiveDate: Date;\r\n \r\n incomeTypeID: number;\r\n incomeType: string;\r\n \r\n currency: string;\r\n defferalIncomeCurrency: string;\r\n \r\n reasonForAdjustmentId: number;\r\n reasonForAdjustment: string;\r\n otherReason: string;\r\n\r\n workFlowType: number;\r\n \r\n insureds: object[] = [{\r\n code: null,\r\n name: null\r\n }];\r\n\r\n //@ToDo: remove the following as the details have been moved to brokerage section\r\n businessUnit1: string;\r\n businessUnit2: string;\r\n businessUnit3: string;\r\n\r\n brokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null\r\n }];\r\n\r\n //@ToDo: remove the following as the details have been moved to corrected brokerage section\r\n adjustmentRequestBusinessUnit1: string;\r\n adjustmentRequestBusinessUnit2: string;\r\n adjustmentRequestBusinessUnit3: string;\r\n\r\n correctedBrokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null\r\n }];\r\n\r\n slipFile: File;\r\n slipFileName: string;\r\n slipExistingFileName: string;//This is to hold already uploaded file\r\n \r\n status: string = AdjustmentStatus.Incomplete;\r\n statusId: number;\r\n \r\n //@ToDo: move comments out and use updated variables like submittedComments etc.. as per status\r\n comments: string;\r\n //@ToDo: move processedBy out and use updated variables like authorizedBy etc..\r\n processedBy: string;\r\n requestedBy: string;\r\n requestedById: number;\r\n submittedBy: string;\r\n submittedById: number;\r\n submittedComments: string;\r\n authorizedBy: string;\r\n authorizedById: number;\r\n authorizedComments: string;\r\n approvedBy: string;\r\n approvedById: number;\r\n approvedComments: string;\r\n rejectedBy: string;\r\n rejectedById: number;\r\n rejectedComments: string;\r\n\r\n formData: FormData = null;\r\n\r\n constructor() { }\r\n\r\n setValuesFromAPIObj(requestObj: object): void {\r\n\r\n if(requestObj) {\r\n\r\n this.id = requestObj['requestId']; \r\n \r\n this.transactionNumber = requestObj['transactionNumber'];\r\n this.businessUnitAdjLedgereID = requestObj['businessUnitAdjLedgerID'];//Data Missing\r\n\r\n this.reversalTransactionNumber = requestObj['reversedTransaction']['transactionNumber'];\r\n this.businessUnitReversalAdjLedgerID = requestObj['reversedTransaction']['adjLedgerID'];\r\n \r\n this.correctedTransactionNumber = requestObj['correctedTransaaction']['transactionNumber'];\r\n this.businessUnitCorrectedAdjLedgerID = requestObj['correctedTransaaction']['adjLedgerID'];\r\n \r\n this.effectiveDate = requestObj['effectiveDate'];\r\n \r\n this.incomeTypeID = requestObj['incomeTypeId'];\r\n this.incomeType = requestObj['incomeName'];\r\n \r\n this.insureds = requestObj['insureds'];\r\n\r\n this.currency = requestObj[''];\r\n this.defferalIncomeCurrency = requestObj[''];\r\n \r\n this.reasonForAdjustmentId = requestObj['reasonId'];\r\n this.reasonForAdjustment = requestObj['reason'];\r\n this.otherReason = requestObj['otherReason'];\r\n \r\n //@ToDo: remove the following as the details have been moved to corrected brokerage section\r\n //this.businessUnit1 = requestObj['businessUnitGroup2'];\r\n //this.businessUnit2 = requestObj['businessUnitGroup3'];\r\n //this.businessUnit3 = requestObj['businessUnitGroup4'];\r\n \r\n this.brokerageDetails = requestObj['brokerageDetails'];\r\n\r\n this.correctedBrokerageDetails = requestObj['correctedTransaaction']['brokerageDetails'];\r\n\r\n //@ToDo: remove the following as the details have been moved to corrected brokerage section\r\n //this.adjustmentRequestBusinessUnit1 = requestObj['correctedTransaaction']['businessUnitGroup2'];\r\n //this.adjustmentRequestBusinessUnit2 = requestObj['correctedTransaaction']['businessUnitGroup3'];\r\n //this.adjustmentRequestBusinessUnit3 = requestObj['correctedTransaaction']['businessUnitGroup4'];\r\n\r\n this.slipExistingFileName = requestObj['slipFileName'];\r\n\r\n this.adjBusinessUnitDetailID = requestObj['adjBusinessUnitDetailID'];\r\n\r\n if(requestObj[\"description\"]) this.description = requestObj[\"description\"];\r\n if(requestObj[\"journalType\"]) this.journalType = requestObj[\"journalType\"];\r\n\r\n if(requestObj[\"workFlowType\"]) this.workFlowType = requestObj[\"workFlowType\"];\r\n \r\n this.status = requestObj['status'];\r\n this.statusId = requestObj['statusId'];\r\n \r\n this.comments = requestObj[''];\r\n this.processedBy = requestObj[''];\r\n\r\n this.requestedById = (requestObj['requestedBy'] && requestObj['requestedBy']['id']) ? requestObj['requestedBy']['id'] : null;\r\n this.requestedBy = (requestObj['requestedBy'] && requestObj['requestedBy']['name']) ? requestObj['requestedBy']['name'] : null;\r\n\r\n this.submittedById = (requestObj['submittedBy'] && requestObj['submittedBy']['id']) ? requestObj['submittedBy']['id'] : null;\r\n this.submittedBy = (requestObj['submittedBy'] && requestObj['submittedBy']['name']) ? requestObj['submittedBy']['name'] : null;\r\n this.submittedComments = (requestObj['submittedBy'] && requestObj['submittedBy']['comments']) ? requestObj['submittedBy']['comments'] : null;\r\n\r\n this.authorizedById = (requestObj['authorizedBy'] && requestObj['authorizedBy']['id']) ? requestObj['authorizedBy']['id'] : null;\r\n this.authorizedBy = (requestObj['authorizedBy'] && requestObj['authorizedBy']['name']) ? requestObj['authorizedBy']['name'] : null;\r\n this.authorizedComments = (requestObj['authorizedBy'] && requestObj['authorizedBy']['comments']) ? requestObj['authorizedBy']['comments'] : null;\r\n\r\n this.approvedById = (requestObj['approvedBy'] && requestObj['approvedBy']['id']) ? requestObj['approvedBy']['id'] : null;\r\n this.approvedBy = (requestObj['approvedBy'] && requestObj['approvedBy']['name']) ? requestObj['approvedBy']['name'] : null;\r\n this.approvedComments = (requestObj['approvedBy'] && requestObj['approvedBy']['comments']) ? requestObj['approvedBy']['comments'] : null;\r\n\r\n this.rejectedById = (requestObj['rejectedBy'] && requestObj['rejectedBy']['id']) ? requestObj['rejectedBy']['id'] : null;\r\n this.rejectedBy = (requestObj['rejectedBy'] && requestObj['rejectedBy']['name']) ? requestObj['rejectedBy']['name'] : null;\r\n this.rejectedComments = (requestObj['rejectedBy'] && requestObj['rejectedBy']['comments']) ? requestObj['rejectedBy']['comments'] : null;\r\n }\r\n }\r\n\r\n updateFieldsFromTransactionNumberDetails(data, transactionType){\r\n //@ToDo: Move this to another single method of updating from data. Currently done like this to keep things isolated and changes at one not affecting others\r\n switch(transactionType){\r\n \r\n case 'default':\r\n\r\n //@ToDo: remove the following as the details have been moved to corrected brokerage section\r\n //this.businessUnit1 = data['businessUnitGroup2'];\r\n //this.businessUnit2 = data['businessUnitGroup3'];\r\n //this.businessUnit3 = data['businessUnitGroup4'];\r\n \r\n this.effectiveDate = data['effectiveDate'];\r\n \r\n this.incomeTypeID = data['incomeTypeID'];\r\n this.incomeType = data['currentIncomeType'];\r\n \r\n this.currency = data['currentIncomeCurrency'];\r\n this.defferalIncomeCurrency = data['defferalIncomeCurrency'];\r\n \r\n this.adjTypeID = data['adjTypeID'];\r\n this.businessUnitAdjLedgereID = data['deferredAdjLedgerID'];//@ToDo: Remove this if not used anywhere\r\n this.deferredAdjLedgerID = data['deferredAdjLedgerID'];\r\n \r\n this.insureds = data['insureds'];\r\n\r\n this.brokerageDetails = data['brokerageDetails'];\r\n break;\r\n \r\n case 'corrected':\r\n \r\n this.businessUnitCorrectedAdjLedgerID = data['adjLedgerID'];\r\n \r\n this.correctedBrokerageDetails = data['brokerageDetails'];\r\n \r\n //@ToDo: remove the following as the details have been moved to corrected brokerage section\r\n //this.adjustmentRequestBusinessUnit1 = data['businessUnitGroup2'];\r\n //this.adjustmentRequestBusinessUnit2 = data['businessUnitGroup3'];\r\n //this.adjustmentRequestBusinessUnit3 = data['businessUnitGroup4'];\r\n break;\r\n\r\n case 'reversal':\r\n \r\n this.businessUnitReversalAdjLedgerID = data['adjLedgerID'];\r\n break;\r\n } \r\n }\r\n\r\n getSaveObject(): object {\r\n \r\n let userEmail = localStorage.getItem('userEmail');\r\n let userRoleStatus: string;\r\n if(this.userRoles && this.userRoles.indexOf('Tier 4') !== -1){\r\n userRoleStatus = \"RequestedToAuthorised\";\r\n } else if( this.userRoles && this.userRoles.indexOf('Tier 2') !== -1) {\r\n userRoleStatus = \"IncompleteToSumitted\";\r\n }\r\n\r\n return {\r\n requestId: this.id,\r\n adjTypeID: 3,//@ToDo: Receive it from backend and pass it back\r\n businessUnitAdjLedgereID: this.businessUnitAdjLedgereID,\r\n businessUnitReversalAdjLedgerID: this.businessUnitReversalAdjLedgerID,\r\n businessUnitCorrectedAdjLedgerID: this.businessUnitCorrectedAdjLedgerID,\r\n deferredAdjLedgerID: this.deferredAdjLedgerID,\r\n reasonID: this.reasonForAdjustmentId,\r\n otherReason: this.otherReason,\r\n //incomeTypeID: this.incomeTypeID,\r\n //currencyID: this.currencyID,//@ToDo: For now, this has been removed, Add it back in case required\r\n userEmail: userEmail,\r\n journalType: this.journalType,\r\n businessUnitGrp3: this.brokerageDetails[0][\"businessUnitGroup3\"],\r\n corectedBusinessUnitGrp3: this.correctedBrokerageDetails[0][\"businessUnitGroup3\"],\r\n transactionNumber: this.transactionNumber,\r\n brokerageAccountName: this.correctedBrokerageDetails[0][\"name\"],\r\n insuredName: this.insureds[0][\"name\"],\r\n transition: userRoleStatus,\r\n reasonForAdjustment: this.reasonForAdjustment,\r\n currentBrokerageAccountName: this.brokerageDetails[0][\"name\"],\r\n correctedBrokerageIncome: this.correctedBrokerageDetails[0][\"brokerageAmount\"],\r\n currency: this.correctedBrokerageDetails[0][\"currencyCode\"],\r\n uploadFileData: this.formData,\r\n workFlowType: this.workFlowType,\r\n adjBusinessUnitDetailID: this.adjBusinessUnitDetailID\r\n };\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectorRef, AfterContentChecked } from '@angular/core';\r\nimport { UtilsService } from './shared/services/utils.service';\r\nimport { EventMessage, EventType, AuthenticationResult, InteractionStatus } from '@azure/msal-browser';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { AppInsightService } from 'src/app/shared/services/app-insight.service';\r\nimport { AuthService } from 'src/app/shared/services/auth.service';\r\nimport { MsalService, MsalBroadcastService } from '@azure/msal-angular';\r\nimport { Subject } from 'rxjs';\r\n@Component({\r\n selector: 'app-adc',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, AfterContentChecked {\r\n title = 'app';\r\n private readonly _destroying$ = new Subject(); s\r\n displayLoadingIconApp: boolean = false;\r\n constructor(\r\n private utilsService: UtilsService,\r\n private changeDetector: ChangeDetectorRef,\r\n private baseService: AuthService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private msalService: MsalService,\r\n private appInsights: AppInsightService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.utilsService.displayLoadingIcon.subscribe(\r\n (data) => {\r\n this.displayLoadingIconApp = data;\r\n }\r\n );\r\n this.performAADCode()\r\n }\r\n\r\n performAADCode() {\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS || msg.eventType === EventType.ACQUIRE_TOKEN_NETWORK_START),\r\n takeUntil(this._destroying$))\r\n .subscribe((result: EventMessage) => {\r\n const payload = result.payload as AuthenticationResult;\r\n if (payload.account) {\r\n var localStorageMail = \"\";\r\n if (localStorage.getItem('userEmail') !== null && localStorage.getItem('userEmail') !== undefined) {\r\n localStorageMail = localStorage.getItem('userEmail');\r\n }\r\n\r\n var emailFromPayload = payload.account.username;\r\n localStorage.setItem('userEmail', payload.account.username);\r\n localStorage.setItem('userProfile', JSON.stringify({\r\n \"firstName\": payload.account.name,\r\n \"lastName\": \"\",\r\n \"email\": payload.account.username,\r\n \"login\": payload.account.username\r\n }))\r\n \r\n var dateNowMilliseconds = new Date().getTime();\r\n if (localStorage.getItem(\"lastEventDate\") !== null && localStorage.getItem(\"lastEventDate\") !== undefined) {\r\n if (emailFromPayload === localStorageMail) {\r\n var lastEventDateMilliseconds = parseInt(localStorage.getItem(\"lastEventDate\"));\r\n if ((dateNowMilliseconds - lastEventDateMilliseconds) > 1000) {\r\n this.handleTracking();\r\n }\r\n } else {\r\n this.handleTracking();\r\n }\r\n localStorage.setItem(\"lastEventDate\", dateNowMilliseconds.toString());\r\n } else {\r\n this.handleTracking();\r\n localStorage.setItem(\"lastEventDate\", dateNowMilliseconds.toString());\r\n }\r\n this.baseService.isLoginSuccess.next(true);\r\n }\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n });\r\n\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n )\r\n .subscribe(() => {\r\n this.checkAndSetActiveAccount();\r\n });\r\n }\r\n\r\n checkAndSetActiveAccount() {\r\n /**\r\n * If no active account set but there are accounts signed in, sets first account to active account\r\n * To use active account set here, subscribe to inProgress$ first in your component\r\n * Note: Basic usage demonstrated. Your app may require more complicated account selection logic\r\n */\r\n let activeAccount = this.msalService.instance.getActiveAccount();\r\n if (!activeAccount && this.msalService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.msalService.instance.getAllAccounts();\r\n this.msalService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n\r\n handleTracking() {\r\n let email = localStorage.getItem(\"userEmail\");\r\n this.appInsights.setAuthenticatedUserContext(email);\r\n this.appInsights.logPageView(\"Login\", \"/login\");\r\n return true;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.utilsService.displayLoadingIcon.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Accelerator
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { AdjustmentStatus, AdjustmentType, Tiers, workflowType } from '../../shared/models/adjustment.model';\r\n\r\nimport DeferralModel from './deferral.model';\r\nimport AccrualModel from './accrual.model';\r\nimport BusinessUnitAdjustmentModel from './business-unit-adjustment.model';\r\n\r\nimport { DataCaptureFormsService } from './data-capture-forms.service';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport BusinessUnitAdjustmentTransferModel from './business-unit-adjustment-transfer.model';\r\nimport MiscellaneousIncomeModel from './miscellaneous-income.model';\r\n\r\nimport * as jsPDF from \"jspdf\";\r\nimport html2canvas from \"html2canvas\";\r\n\r\n@Component({\r\n selector: 'summary-action',\r\n templateUrl: './summary-action.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\nexport class SummaryActionComponent implements OnInit, OnDestroy {\r\n\r\n request: DeferralModel | AccrualModel | BusinessUnitAdjustmentModel | BusinessUnitAdjustmentTransferModel | MiscellaneousIncomeModel;\r\n\r\n currentComments: string;\r\n dataFetchComplete: boolean = false;\r\n subActivatedRoute: any;\r\n requestObj: object;\r\n tier: string[];\r\n adjustmentsViewType: string = 'Current';\r\n AdjustmentStatus: typeof AdjustmentStatus = AdjustmentStatus;\r\n AdjustmentType: typeof AdjustmentType = AdjustmentType;\r\n Tiers: typeof Tiers = Tiers;\r\n currentDescription: string;\r\n currentJournalType:any;\r\n workFlowType: typeof workflowType = workflowType;\r\n pdfStyles = `.container {padding: 1rem 2rem;}\r\n .width20P {width: 20% !important;}\r\n .template-heading {text-align: center;}\r\n .row-display {display: flex;flex-direction: row;}\r\n .summary-row {margin-top: 2em;margin-bottom: 2em;}\r\n .summary-label {color: rgba(0, 0, 0, 0.54);font-weight: bold;text-align: right;}\r\n .summary-value {color: rgba(0, 0, 0, 0.54);text-align: left;}\r\n .row-display > * {width: 20%;padding-right: 2em;}\r\n .summary-heading-line {border-width: 1px;border-style: solid;border-color: #ffffff #ffffff rgba(0, 0, 0, 0.54) #ffffff;}\r\n .summary-headings[_ngcontent-c18] {border: none;margin: 1em;}\r\n .width70P {width: 70% !important;}\r\n .width50P {width: 50% !important;}`;\r\n\r\n journalType: object[] = [\r\n {id: 1, name: \"Reversing\"},\r\n {id: 2, name: \"Non-Reversing\"}\r\n ];\r\n\r\n constructor(private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n public dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.utilsService.showLoadingIcon(true);\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(params => {\r\n\r\n this.dataCaptureFormsService.getRequestDetails(+params['id'], params['type'])\r\n .subscribe((result) => {\r\n if(result) {\r\n this.setRetrievedRequestValues(result);\r\n this.currentDescription = result[\"description\"];\r\n this.currentJournalType = result[\"journalType\"];\r\n this.dataFetchComplete = true;\r\n }\r\n });\r\n });\r\n this.utilsService.tier.subscribe(data => this.tier = data);\r\n this.adjustmentsViewType = this.utilsService.adjustmentsViewType;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subActivatedRoute.unsubscribe();\r\n }\r\n\r\n editRequest(e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let userEmail = localStorage.getItem('userEmail');\r\n if(this.request.status === 'Rejected') {\r\n this.dataCaptureFormsService.workflowSaveConfirmUpdate(\r\n 'edit',\r\n true, \r\n userEmail, \r\n this.request\r\n );\r\n } else {\r\n this.utilsService.chooseAdjustmentRequestType(this.request.type, this.request.id);\r\n } \r\n }\r\n\r\n reAccrueRequest(e: Event) {\r\n this.router.navigate(['accrual-data-capture/edit', this.request.id, 'reAccrual']);\r\n }\r\n reDeferralRequest(e: Event) {\r\n this.router.navigate(['deferral-data-capture/edit', this.request.id, 'reDeferral']);\r\n }\r\n backBtnClick(e: Event): void {\r\n this.router.navigate(['adjustments']);\r\n }\r\n\r\n submitRequest(e: Event, summaryActionForm: NgForm, actionType: string) {\r\n\r\n if (!summaryActionForm.valid) {\r\n return;\r\n }\r\n\r\n let userEmail = localStorage.getItem('userEmail');\r\n let transition = null;\r\n this.utilsService.showLoadingIcon(true);\r\n switch (this.request.status) {\r\n case AdjustmentStatus.Requested:\r\n if (actionType == 'reject') {\r\n transition = 3;\r\n } else {\r\n transition = 4;\r\n }\r\n break;\r\n case AdjustmentStatus.Authorized:\r\n if (actionType == 'reject') {\r\n transition = 5;\r\n } else {\r\n transition = 6;\r\n }\r\n break;\r\n case AdjustmentStatus.Submitted:\r\n if (actionType == 'reject') {\r\n transition = 7;\r\n } else {\r\n transition = 9;\r\n }\r\n break;\r\n }\r\n\r\n this.dataCaptureFormsService.updateWorkFlow(\r\n this.request,\r\n userEmail,\r\n transition,\r\n this.currentComments,\r\n this.request.journalType,\r\n this.request.description\r\n ).subscribe(\r\n data => {\r\n if(this.request.journalType !== this.currentJournalType || this.request.description !== this.currentDescription){\r\n this.dataCaptureFormsService.updateDescription({\r\n adjRequestID: this.request.id,\r\n description: this.request.description,\r\n JournalType: this.request.journalType\r\n }).subscribe(\r\n (data) => {\r\n this.router.navigate(['adjustments']);\r\n this.utilsService.showMessageTip(\"Record successfully updated\"); \r\n },\r\n (error) => {\r\n this.utilsService.showLoadingIcon(false);\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n }\r\n )\r\n } else {\r\n this.router.navigate(['adjustments']);\r\n this.utilsService.showMessageTip(\"Record successfully updated\");\r\n }\r\n },\r\n error => {\r\n this.utilsService.showMessageTip(error['error']['error']);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n setRetrievedRequestValues(requestObj: object): void {\r\n\r\n switch (requestObj['typeName']) {\r\n case AdjustmentType.Deferral:\r\n this.request = new DeferralModel();\r\n this.request.setValuesFromAPIObj(requestObj);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n this.request = new BusinessUnitAdjustmentModel();\r\n this.request.setValuesFromAPIObj(requestObj);\r\n break;\r\n case AdjustmentType.Accrual:\r\n this.request = new AccrualModel();\r\n this.request.setValuesFromAPIObj(requestObj);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustmentTransfer:\r\n this.request = new BusinessUnitAdjustmentTransferModel();\r\n this.request.setValuesFromAPIObj(requestObj);\r\n break;\r\n case AdjustmentType.MiscellaneousIncome:\r\n this.request = new MiscellaneousIncomeModel();\r\n this.request.setValuesFromAPIObj(requestObj);\r\n break\r\n }\r\n }\r\n\r\n onDeferralDownloadUrlClick() {\r\n this.dataCaptureFormsService.downloadAttachment('Deferral', this.request.id);\r\n }\r\n\r\n onAccrualDownloadUrlClick(isConfirmationOrder) {\r\n this.dataCaptureFormsService.downloadAttachment('Accrual', this.request.id, isConfirmationOrder);\r\n }\r\n\r\n onBusinessUnitAdjustmentDownloadUrlClick() {\r\n this.dataCaptureFormsService.downloadAttachment('BusinessUnitAdjustment', this.request.id);\r\n }\r\n\r\n onMiscIncomeDownloadUrlClick() {\r\n this.dataCaptureFormsService.downloadAttachment('MiscellaneousIncomeAdjustment', this.request.id);\r\n }\r\n\r\n exportAdjSummaryAsPDF(e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let outerHtml = document.querySelector('#adj-detailed-summary').outerHTML;\r\n outerHtml = outerHtml.replace(/\"/g, '\\'');\r\n outerHtml = outerHtml.replace(/href=\\'javascript:void\\(0\\);\\'/g, \"\");\r\n let pdfTemplate = `\r\n \r\n
\r\n
\r\n

${this.request.type} Request ${this.request.id} Summary

\r\n
\r\n ${outerHtml}\r\n
\r\n `\r\n this.dataCaptureFormsService.exportAsPDF({htmlInputString: pdfTemplate}).subscribe((response) => {\r\n this.dataCaptureFormsService.downloadFile(response);\r\n this.utilsService.showLoadingIcon(false);\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n

{{ request.type }} Data Summary

\r\n
    Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy' }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Transaction Number:
\r\n
{{ request.transactionNumber }}
\r\n
\r\n \r\n
\r\n
Current Status:
\r\n
{{ request.status }}
\r\n
\r\n \r\n
\r\n
Reason for Deferral:
\r\n
{{ request.reasonForDeferral }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n
\r\n
Effective Date:
\r\n
{{ request.effectiveDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Submitted))\">\r\n
Description:
\r\n
{{ request.description }}
\r\n
\r\n \r\n
\r\n
Journal Type:
\r\n
{{ request.journalType == 1 ? \"Reversing\" : \"Non-reversing\" }}
\r\n
\r\n \r\n \r\n \r\n
\r\n

Processed By

\r\n
\r\n
\r\n
Requested By:
\r\n
{{ request.requestedBy }}
\r\n
\r\n \r\n
\r\n
Rejected By:
\r\n
{{ request.rejectedBy }}
\r\n
\r\n Comments: {{ request.rejectedComments }}
\r\n
\r\n \r\n
\r\n
Authorised By:
\r\n
{{ request.authorizedBy }}
\r\n
\r\n Comments: {{ request.authorizedComments }}
\r\n
\r\n \r\n
\r\n
Submitted By:
\r\n
{{ request.submittedBy }}
\r\n
\r\n Comments: {{ request.submittedComments }}
\r\n
\r\n \r\n
\r\n
Approved By:
\r\n
{{ request.approvedBy }}
\r\n
\r\n Comments: {{ request.approvedComments }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Insured

\r\n
\r\n \r\n \r\n
\r\n
Insured:
\r\n
{{ currentVal.name }}
\r\n
\r\n
\r\n
Insured Code:
\r\n
{{ currentVal.code }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Details

\r\n
\r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageAccount }}
\r\n
Account Code:
\r\n
{{ request.accountCode }}
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ request.businessUnitGroup2 }}        {{ request.businessUnitGroup3\r\n }}        {{ request.businessUnitGroup4 }}\r\n
\r\n
\r\n \r\n
\r\n

Current

\r\n
\r\n \r\n \r\n
\r\n
Brokerage:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}
\r\n
Brokerage Earning Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n
\r\n \r\n
\r\n

Deferral Requests

\r\n
\r\n \r\n
\r\n \r\n
Brokerage:
\r\n
{{ deferralRequestVar.currency }} {{ deferralRequestVar.brokerage | amountPipe }}
\r\n \r\n
Brokerage Earning Date:
\r\n
{{ deferralRequestVar.brokerageRecognitionDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n

Supporting Documentation

\r\n
\r\n
\r\n
Slip:
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
Policy Reference:
\r\n
{{ request.policyReference }}
\r\n
\r\n \r\n
\r\n
Current Status:
\r\n
{{ request.status }}
\r\n
\r\n \r\n
\r\n
Reason for Accrual:
\r\n
{{ request.reasonForAccrual }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Submitted))\">\r\n
Description:
\r\n
{{ request.description }}
\r\n
\r\n \r\n
\r\n
Journal Type:
\r\n
{{ request.journalType == 1 ? \"Reversing\" : \"Non-reversing\" }}
\r\n
\r\n \r\n \r\n \r\n
\r\n

Processed By

\r\n
\r\n \r\n
\r\n
Requested By:
\r\n
{{ request.requestedBy }}
\r\n
\r\n \r\n
\r\n
Rejected By:
\r\n
{{ request.rejectedBy }}
\r\n
\r\n Comments: {{ request.rejectedComments }}
\r\n
\r\n \r\n
\r\n
Authorised By:
\r\n
{{ request.authorizedBy }}
\r\n
\r\n Comments: {{ request.authorizedComments }}
\r\n
\r\n \r\n
\r\n
Submitted By:
\r\n
{{ request.submittedBy }}
\r\n
\r\n Comments: {{ request.submittedComments }}
\r\n
\r\n \r\n
\r\n
Approved By:
\r\n
{{ request.approvedBy }}
\r\n
\r\n Comments: {{ request.approvedComments }}
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n

Details

\r\n
\r\n \r\n
\r\n
Renewal Type:
\r\n
{{ request.renewalType }}\r\n
\r\n
\r\n \r\n
\r\n
Insured:
\r\n
{{ request.insuredName }}\r\n
\r\n
\r\n \r\n
\r\n
Insured Code:
\r\n
{{ request.insuredCode }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
Effective Date:
\r\n
{{ request.effectiveDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n

Brokerage Account

\r\n
\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageDetails[0].name }}\r\n
\r\n
\r\n \r\n
\r\n
Account Code:
\r\n
{{ request.brokerageDetails[0].accountCode }}\r\n
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0].businessUnitGroup2 }}        {{ request.brokerageDetails[0].businessUnitGroup3\r\n }}        {{ request.brokerageDetails[0].businessUnitGroup4 }}\r\n
\r\n
\r\n \r\n
\r\n

Income Details

\r\n
\r\n \r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n \r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n \r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n

Supporting Documentation

\r\n
\r\n \r\n
\r\n
Slip:
\r\n \r\n
\r\n
\r\n
Confirmation of Order:
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
Transaction Number:
\r\n
{{ request.transactionNumber }}
\r\n
\r\n \r\n
\r\n
Current Status:
\r\n
{{ request.status }}
\r\n
\r\n \r\n
\r\n
Reason for Adjustment:
\r\n
{{ request.reasonForAdjustment }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Submitted))\">\r\n
Description:
\r\n
{{ request.description }}
\r\n
\r\n \r\n
\r\n
Journal Type:
\r\n
{{ request.journalType == 1 ? \"Reversing\" : \"Non-reversing\" }}
\r\n
\r\n \r\n \r\n \r\n
\r\n

Processed By

\r\n
\r\n \r\n
\r\n
Requested By:
\r\n
{{ request.requestedBy }}
\r\n
\r\n \r\n
\r\n
Rejected By:
\r\n
{{ request.rejectedBy }}
\r\n
\r\n Comments: {{ request.rejectedComments }}
\r\n
\r\n \r\n
\r\n
Authorised By:
\r\n
{{ request.authorizedBy }}
\r\n
\r\n Comments: {{ request.authorizedComments }}
\r\n
\r\n \r\n
\r\n
Submitted By:
\r\n
{{ request.submittedBy }}
\r\n
\r\n Comments: {{ request.submittedComments }}
\r\n
\r\n \r\n
\r\n
Approved By:
\r\n
{{ request.approvedBy }}
\r\n
\r\n Comments: {{ request.approvedComments }}
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n

Insured

\r\n
\r\n \r\n \r\n \r\n
\r\n
Insured:
\r\n
{{ currentVal.name }}
\r\n
\r\n
\r\n
Insured Code:
\r\n
{{ currentVal.code }}
\r\n
\r\n
\r\n \r\n
\r\n

Current

\r\n
\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ currentVal.name }}
\r\n
Account Code:
\r\n
{{ currentVal.accountCode }}
\r\n
\r\n \r\n
\r\n
Amount:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}\r\n
\r\n
\r\n
\r\n
Brokerage Recognition Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ currentVal.businessUnitGroup2 }}        {{ currentVal.businessUnitGroup3\r\n }}        {{ currentVal.businessUnitGroup4 }}\r\n
\r\n
\r\n
\r\n
\r\n

Adjustment Request

\r\n
\r\n \r\n
\r\n
Reversal Transaction Number:
\r\n
{{ request.reversalTransactionNumber }}
\r\n
\r\n \r\n
\r\n
Corrected Transaction Number:
\r\n
{{ request.correctedTransactionNumber }}
\r\n
\r\n \r\n
\r\n

Corrected Details

\r\n
\r\n \r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ currentVal.name }}
\r\n
Account Code:
\r\n
{{ currentVal.accountCode }}
\r\n
\r\n \r\n
\r\n
Amount:
\r\n
{{ currentVal.currencyCode }}  {{ currentVal.brokerageAmount | amountPipe }}\r\n
\r\n
\r\n
\r\n
Brokerage Recognition Date:
\r\n
{{ currentVal.brokerageRecogDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ currentVal.businessUnitGroup2 }}        {{ currentVal.businessUnitGroup3\r\n }}        {{ currentVal.businessUnitGroup4 }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Supporting Documentation

\r\n
\r\n
\r\n
Slip:
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
Policy Reference:
\r\n
{{ request.policyReference }}
\r\n
\r\n \r\n
\r\n
Current Status:
\r\n
{{ request.status }}
\r\n
\r\n \r\n
\r\n
Reason for Transfer:
\r\n
{{ request.reasonForTransfer }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Submitted))\">\r\n
Description:
\r\n
{{ request.description }}
\r\n
\r\n \r\n
\r\n
Journal Type:
\r\n
{{ request.journalType == 1 ? \"Reversing\" : \"Non-reversing\" }}
\r\n
\r\n \r\n \r\n \r\n
\r\n

Processed By

\r\n
\r\n \r\n
\r\n
Requested By:
\r\n
{{ request.requestedBy }}
\r\n
\r\n \r\n
\r\n
Rejected By:
\r\n
{{ request.rejectedBy }}
\r\n
\r\n Comments: {{ request.rejectedComments }}
\r\n
\r\n \r\n
\r\n
Authorised By:
\r\n
{{ request.authorizedBy }}
\r\n
\r\n Comments: {{ request.authorizedComments }}
\r\n
\r\n \r\n
\r\n
Submitted By:
\r\n
{{ request.submittedBy }}
\r\n
\r\n Comments: {{ request.submittedComments }}
\r\n
\r\n \r\n
\r\n
Approved By:
\r\n
{{ request.approvedBy }}
\r\n
\r\n Comments: {{ request.approvedComments }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Details

\r\n
\r\n \r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n \r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n \r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n
Cost Centre:
\r\n
{{ request.brokerageDetails[0]['costCentre'] }}
\r\n
Company Code:
\r\n
{{ request.brokerageDetails[0][\"companyCode\"] }}
\r\n
\r\n \r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageDetails[0][\"name\"] }}
\r\n
Account Code:
\r\n
{{ request.brokerageDetails[0][\"accountCode\"] }}
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0]['businessUnitGroup2'] }}        {{ request.brokerageDetails[0]['businessUnitGroup3']\r\n }}        {{ request.brokerageDetails[0]['businessUnitGroup4'] }}\r\n
\r\n
\r\n \r\n
\r\n

Transfer Request

\r\n
\r\n
\r\n
Base:
\r\n
{{ request.transferBusinessUnit[0]['base'] }}
\r\n
\r\n \r\n \r\n
\r\n
Transfer Business Unit:
\r\n
{{request.transferBusinessUnit[0]['businessUnitGroup2']}}        \r\n {{request.transferBusinessUnit[0]['businessUnitGroup3']}}        {{request.transferBusinessUnit[0]['businessUnitGroup4']}}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
Current Status:
\r\n
{{ request.status }}
\r\n
\r\n \r\n
\r\n
Reason for Adjustment:
\r\n
{{ request.reasonForMiscellaneous }}
\r\n
{{ request.otherReason }}
\r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Submitted))\">\r\n
Description:
\r\n
{{ request.description }}
\r\n
\r\n \r\n
\r\n
Journal Type:
\r\n
{{ request.journalType == 1 ? \"Reversing\" : \"Non-reversing\" }}
\r\n
\r\n \r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n \r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n \r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n \r\n
\r\n
Cost Centre:
\r\n
{{ request.brokerageDetails[0]['costCentre'] }}
\r\n
Company Code:
\r\n
{{ request.brokerageDetails[0][\"companyCode\"] }}
\r\n
\r\n \r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0]['businessUnitGroup2'] }}        {{ request.brokerageDetails[0]['businessUnitGroup3']\r\n }}        {{ request.brokerageDetails[0]['businessUnitGroup4'] }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

Processed By

\r\n
\r\n \r\n
\r\n
Requested By:
\r\n
{{ request.requestedBy }}
\r\n
\r\n \r\n
\r\n
Rejected By:
\r\n
{{ request.rejectedBy }}
\r\n
\r\n Comments: {{ request.rejectedComments }}
\r\n
\r\n \r\n
\r\n
Authorised By:
\r\n
{{ request.authorizedBy }}
\r\n
\r\n Comments: {{ request.authorizedComments }}
\r\n
\r\n \r\n
\r\n
Submitted By:
\r\n
{{ request.submittedBy }}
\r\n
\r\n Comments: {{ request.submittedComments }}
\r\n
\r\n \r\n
\r\n
Approved By:
\r\n
{{ request.approvedBy }}
\r\n
\r\n Comments: {{ request.approvedComments }}
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Supporting Documentation

\r\n
\r\n
\r\n
Slip:
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n

-1 && request.status==AdjustmentStatus.Authorized)) || ((tier.indexOf(Tiers.Tier1) > -1 && request.status==AdjustmentStatus.Submitted) )\">Review / Edit request

\r\n
\r\n \r\n
\r\n -1 && request.status==AdjustmentStatus.Authorized))\">\r\n \r\n \r\n Description should not be empty\r\n \r\n \r\n -1 && request.status==AdjustmentStatus.Authorized)) || ((tier.indexOf(Tiers.Tier1) > -1 && request.status==AdjustmentStatus.Submitted) )\">\r\n \r\n {{type.name}}\r\n \r\n \r\n \r\n
\r\n \r\n
-1 && request.status==AdjustmentStatus.Requested) || (tier.indexOf(Tiers.Tier2) > -1 && request.status==AdjustmentStatus.Authorized) || (tier.indexOf(Tiers.Tier1) > -1 && request.status==AdjustmentStatus.Submitted) )\">\r\n \r\n \r\n \r\n Please enter comments in case of rejection/submission\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n -1 && request.workFlowType==1) || (tier.indexOf(Tiers.Tier2) > -1 && request.workFlowType==2)) && (request.status==AdjustmentStatus.Incomplete || request.status==AdjustmentStatus.Rejected))\">\r\n     \r\n \r\n \r\n \r\n -1 || tier.indexOf(Tiers.Tier2) >-1 ) && (request.type==AdjustmentType.Accrual) && (request.reAccrualAllowed)\">\r\n     \r\n \r\n \r\n -1) && (request.type==AdjustmentType.Deferral) && (request.reDeferralAllowed)\">\r\n     \r\n \r\n \r\n -1 && request.status==AdjustmentStatus.Requested) || (tier.indexOf(Tiers.Tier2) > -1 && request.status==AdjustmentStatus.Authorized) || (tier.indexOf(Tiers.Tier1) > -1 && request.status==AdjustmentStatus.Submitted) )\">\r\n     \r\n \r\n \r\n \r\n -1) && (request.status==AdjustmentStatus.Requested)\">\r\n     \r\n \r\n \r\n \r\n -1) && (request.status==AdjustmentStatus.Authorized)\">\r\n     \r\n \r\n \r\n \r\n -1) && (request.status==AdjustmentStatus.Submitted)\">\r\n     \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n ","import { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { WindowRef } from '../../shared/services/window-ref.service';\r\nimport { DataCaptureFormsService } from './data-capture-forms.service';\r\n\r\nimport AccrualModel from './accrual.model';\r\nimport { AdjustmentStatus, AdjustmentType } from '../../shared/models/adjustment.model';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n message: string\r\n}\r\n\r\n@Component({\r\n selector: 'accrual',\r\n templateUrl: './accrual.component.html',\r\n styleUrls: ['./data-capture-forms.scss']\r\n})\r\nexport class AccrualComponent implements OnInit, OnDestroy {\r\n\r\n request: AccrualModel = new AccrualModel();\r\n\r\n displayInsuredNameAsAutoComplete: boolean = true;\r\n displayBrokerageAccountAsAutoComplete: boolean = true;\r\n\r\n policyReferenceOptions: any;\r\n isPolicyReferenceOptionsExists: boolean = true;\r\n\r\n insuredOptions: any;\r\n isInsuredOptionsExists:boolean = true;\r\n brokerageAccountOptions: any;\r\n\r\n renewalTypeOptions: any;\r\n incomeTypeOptions: any;\r\n currencyTypeOptions: any;\r\n reasonForAccrualOptions: any;\r\n\r\n hideSummary: boolean = true;\r\n errorMsg: string = '';\r\n\r\n subActivatedRoute: any;\r\n currentWindow: any;\r\n\r\n userDetails: object;\r\n activePeriodID: Date;\r\n\r\n isSlipUploaded = false;\r\n slipUploaded = false\r\n isOrderConfirmationUploaded = false;\r\n OrderConfirmationUploaded = false;\r\n\r\n brokerageAmountErrMsg: string;\r\n isBrokerageAccountOptionsExist: boolean = true;\r\n\r\n brokerageAccountErrMsg: string;\r\n saveAccrualObject:object;\r\n accountCode: string;\r\n constructor(private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private winRef: WindowRef,\r\n private dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService,\r\n private dialog: MatDialog) {\r\n this.currentWindow = winRef.nativeWindow;\r\n }\r\n\r\n ngOnInit() {\r\n this.dataCaptureFormsService.getUserDetails().subscribe(\r\n data => {\r\n this.userDetails = data;\r\n this.activePeriodID = this.utilsService.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n }\r\n )\r\n //Using below to get id for editing\r\n this.subActivatedRoute = this.activatedRoute.params.subscribe(params => {\r\n if (params['actionType'] == 'reAccrual') {\r\n this.request.actionType = 'reAccrual';\r\n }\r\n if (+params['id']) {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.id = +params['id'];\r\n this.dataCaptureFormsService.getRequestDetails(+params['id'], AdjustmentType.Accrual)\r\n .subscribe((result) => {\r\n this.utilsService.showLoadingIcon(true);\r\n if (result && result['policyID']) {\r\n this.request.policyReference = result['riskReference'];\r\n this.request.setValuesFromAPIObj(result);\r\n this.dataCaptureFormsService\r\n .getPolicyReferenceDetailsAccrual(this.request.policyReference, result['financialYear'])\r\n .subscribe(\r\n data => {\r\n if(data!=null)\r\n {\r\n this.request.updateFieldsFromPolicyReferenceDetails(false, data, this);\r\n }\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n } else {\r\n this.request.setValuesFromAPIObj(result);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n },\r\n (error) => {\r\n this.utilsService.showMessageTip(error[\"error\"]);\r\n this.utilsService.showLoadingIcon(false);\r\n });\r\n }\r\n });\r\n this.populateDropDowns();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subActivatedRoute.unsubscribe();\r\n }\r\n\r\n populateDropDowns(): void {\r\n this.dataCaptureFormsService.getRenewalTypesForAccrual()\r\n .subscribe(\r\n (data) => {\r\n this.renewalTypeOptions = data;\r\n }\r\n );\r\n\r\n this.dataCaptureFormsService.getIncomeTypesForAccrual()\r\n .subscribe(\r\n (data) => {\r\n this.incomeTypeOptions = data;\r\n }\r\n );\r\n\r\n this.dataCaptureFormsService.getCurrenciesForAccrual()\r\n .subscribe(\r\n (data) => {\r\n this.currencyTypeOptions = data;\r\n }\r\n );\r\n\r\n this.dataCaptureFormsService.getReasonsForAdjustment(this.request.adjTypeID)\r\n .subscribe(\r\n (data) => {\r\n this.reasonForAccrualOptions = data;\r\n }\r\n );\r\n }\r\n\r\n toggleFormSummaryDisplay(event: Event, form: NgForm, workDoneCheck: any, isBackClicked?: boolean): void {\r\n this.utilsService.showLoadingIcon(true);\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let saveObj = this.request.getSaveObj();\r\n if(this.formValidations(form, workDoneCheck)){\r\n if(!isBackClicked) {\r\n this.dataCaptureFormsService.isAccrualRequestExists(saveObj).subscribe(\r\n (response) => {\r\n if(response) {\r\n const dialogRef = this.dialog.open(IsRequestExists, {\r\n height: '250px',\r\n width: '580px',\r\n data: {message: 'Shown Message'},\r\n disableClose: true\r\n },\r\n );\r\n dialogRef.afterClosed().subscribe( result => {\r\n this.utilsService.showLoadingIcon(false);\r\n if(result) {\r\n this.errorMsg = null;\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0, 0);\r\n }\r\n });\r\n } else {\r\n this.utilsService.showLoadingIcon(false);\r\n this.errorMsg = null;\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0, 0);\r\n }\r\n },\r\n (error) => {\r\n this.utilsService.showLoadingIcon(false);\r\n this.utilsService.showMessageTip(error['error']);\r\n }\r\n )\r\n } else {\r\n this.utilsService.showLoadingIcon(false);\r\n this.errorMsg = null;\r\n this.hideSummary = !this.hideSummary;\r\n this.currentWindow.scrollTo(0, 0);\r\n }\r\n } else {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n }\r\n\r\n autoCompletePolicyReference(): void {\r\n\r\n this.isPolicyReferenceOptionsExists = true;\r\n if (this.request.policyReference.length < 3) {\r\n this.request.updateFieldsFromPolicyReferenceDetails(true, {}, this);\r\n return;\r\n }\r\n this.policyReferenceOptions = this.dataCaptureFormsService\r\n .getPolicyReferenceAccrual(this.request.policyReference)\r\n .pipe(\r\n map(policyReferences => this.filterPolicyReferences(policyReferences))\r\n )\r\n }\r\n\r\n filterPolicyReferences(values) {\r\n\r\n let policyReference = this.request.policyReference;\r\n if(values.length > 0) {\r\n this.isPolicyReferenceOptionsExists = true;\r\n return values.filter(policyRef =>\r\n policyRef['riskReference'].toLowerCase().includes(policyReference.toLowerCase())\r\n );\r\n } else {\r\n this.isPolicyReferenceOptionsExists = false;\r\n }\r\n }\r\n\r\n policyReferenceSelected(e: Event): void {\r\n\r\n /*this.dataCaptureFormsService\r\n .getPolicyReferenceDetailsAccrual(this.request.policyReference)\r\n .subscribe(\r\n data => {\r\n this.request.updateFieldsFromPolicyReferenceDetails(false, data, this);\r\n }\r\n );*/\r\n }\r\n\r\n policyReferenceBlur(): void {\r\n\r\n if (!this.request.policyReference || !this.isPolicyReferenceOptionsExists) {\r\n this.request.updateFieldsFromPolicyReferenceDetails(true, {}, this);\r\n return;\r\n }\r\n\r\n this.dataCaptureFormsService\r\n .getPolicyReferenceDetailsAccrual(this.request.policyReference)\r\n .subscribe(\r\n data => {\r\n if (data) {\r\n this.request.updateFieldsFromPolicyReferenceDetails(false, data, this);\r\n } else {\r\n this.request.updateFieldsFromPolicyReferenceDetails(true, {}, this);\r\n }\r\n }\r\n );\r\n }\r\n\r\n autoCompleteInsureds(): void {\r\n\r\n this.isInsuredOptionsExists = true;\r\n if (this.request.insuredName.length < 3) {\r\n return;\r\n }\r\n this.insuredOptions = this.dataCaptureFormsService\r\n .getInsuredsAccrual(this.request.insuredName)\r\n .pipe(\r\n map(insureds => this.filterInsureds(insureds))\r\n );\r\n }\r\n\r\n filterInsureds(values) {\r\n\r\n let insuredName = this.request.insuredName;\r\n if(values.length) {\r\n this.isInsuredOptionsExists = true;\r\n return values.filter(insured =>\r\n insured['name'].toLowerCase().includes(insuredName.toLowerCase())\r\n )\r\n } else {\r\n this.isInsuredOptionsExists = false;\r\n }\r\n }\r\n\r\n insuredSelected(e: Event): void {\r\n\r\n this.insuredOptions.subscribe(\r\n data => {\r\n this.request.insuredCode = data[0]['code'];\r\n this.request.insuredId = data[0]['insuredId'];\r\n }\r\n );\r\n }\r\n\r\n insuredAutoCompleteBlur(){\r\n if(!this.request.insuredName || !this.isInsuredOptionsExists) {\r\n this.request.insuredCode = \"\";\r\n return\r\n }\r\n\r\n this.insuredOptions.subscribe(data => {\r\n if(data) {\r\n let enteredDetails = data.filter( val => {\r\n return val.name == this.request.insuredName;\r\n });\r\n this.setInsuredValues(enteredDetails);\r\n } else {\r\n this.setInsuredValues([])\r\n }\r\n })\r\n }\r\n\r\n setInsuredValues(data) {\r\n if(data.length > 0) {\r\n this.request.insuredCode = data[0]['code'];\r\n this.request.insuredId = data[0]['insuredId'];\r\n } else {\r\n this.request.insuredCode = \"\";\r\n this.request.insuredId = null;\r\n }\r\n }\r\n\r\n insuredDropDownSelected(e: Event): void {\r\n\r\n let selectedOptionArr = this.insuredOptions.filter(\r\n currentVal => {\r\n return currentVal['name'] == this.request.insuredName;\r\n }\r\n )\r\n this.request.insuredCode = selectedOptionArr[0]['code'];\r\n this.request.insuredId = selectedOptionArr[0]['insuredId'];\r\n }\r\n\r\n autoCompleteBrokerageAccount(): void {\r\n if (this.request.brokerageDetails[0]['name'].length < 3) {\r\n return;\r\n }\r\n this.brokerageAccountOptions = this.dataCaptureFormsService\r\n .getBrokerageAccountsAccrual(this.request.brokerageDetails[0]['name'])\r\n .pipe(map(brokerageAccounts => \r\n this.filterBrokerageAccount(brokerageAccounts)\r\n )\r\n );\r\n }\r\n\r\n filterBrokerageAccount(values) {\r\n let brokerageAccount = this.request.brokerageDetails[0][\"name\"];\r\n if(values.length > 0) {\r\n this.isBrokerageAccountOptionsExist = true;\r\n return values.filter(insured =>\r\n insured['name'].toLowerCase().includes(brokerageAccount.toLowerCase())\r\n )\r\n } else {\r\n this.isBrokerageAccountOptionsExist = false;\r\n }\r\n }\r\n\r\n brokerageAccountBlur(e: any) {\r\n if(!this.request.brokerageDetails[0][\"name\"] || !this.isBrokerageAccountOptionsExist) {\r\n this.setBrokerageDetails([]);\r\n return;\r\n }\r\n\r\n this.brokerageAccountOptions.subscribe(\r\n (data) => {\r\n if(data) {\r\n let enteredDetails = data.filter(\r\n (obj) => {\r\n if (this.accountCode){\r\n return this.request.brokerageDetails[0]['name'] === obj.name && obj.accountCode === this.accountCode;\r\n } else {\r\n return this.request.brokerageDetails[0]['name'] === obj.name;\r\n }\r\n });\r\n this.setBrokerageDetails(enteredDetails);\r\n } else {\r\n this.setBrokerageDetails([]);\r\n }\r\n }\r\n )\r\n }\r\n\r\n clearData() {\r\n this.request.brokerageDetails[0]['name'] = '';\r\n this.request.brokerageDetails[0]['id'] = '';\r\n this.request.brokerageDetails[0]['accountCode'] = '';\r\n this.request.brokerageDetails[0]['brokerageAmount'] = '';\r\n this.request.brokerageDetails[0]['brokerageRecogDate'] = '';\r\n this.request.brokerageDetails[0]['currencyID'] = '';\r\n this.request.brokerageDetails[0]['currencyCode'] = '';\r\n this.request.brokerageDetails[0]['businessUnitGroup2'] = '';\r\n this.request.brokerageDetails[0]['businessUnitGroup3'] = '';\r\n this.request.brokerageDetails[0]['businessUnitGroup4'] = '';\r\n }\r\n\r\n clearField(value) {\r\n if(!value || value.length < 3 ){\r\n this.clearData();\r\n }\r\n }\r\n\r\n brokerageAccountSelected(e: any): void {\r\n \r\n this.brokerageAccountOptions.subscribe(\r\n data => {\r\n if(data) {\r\n let selectedBrokerageDetails;\r\n selectedBrokerageDetails = data.filter(\r\n (val) => {\r\n return val.name === this.request.brokerageDetails[0][\"name\"] && val.dataSource === e.id;\r\n }\r\n );\r\n this.accountCode = selectedBrokerageDetails[0].accountCode;\r\n this.setBrokerageDetails(selectedBrokerageDetails);\r\n }\r\n }\r\n );\r\n }\r\n\r\n setBrokerageDetails(selectedBrokerageDetails) {\r\n if(selectedBrokerageDetails.length > 0) {\r\n this.request.brokerageDetails[0]['id'] = selectedBrokerageDetails[0]['id'];\r\n this.request.brokerageDetails[0]['accountCode'] = selectedBrokerageDetails[0]['accountCode'];\r\n this.request.brokerageDetails[0]['brokerageAmount'] = selectedBrokerageDetails[0]['brokerageAmount'];\r\n this.request.brokerageDetails[0]['brokerageRecogDate'] = selectedBrokerageDetails[0]['brokerageRecogDate'];\r\n this.request.brokerageDetails[0]['currencyID'] = selectedBrokerageDetails[0]['currencyID'];\r\n this.request.brokerageDetails[0]['currencyCode'] = selectedBrokerageDetails[0]['currencyCode'];\r\n this.request.brokerageDetails[0]['businessUnitGroup2'] = selectedBrokerageDetails[0]['businessUnitGroup2'];\r\n this.request.brokerageDetails[0]['businessUnitGroup3'] = selectedBrokerageDetails[0]['businessUnitGroup3'];\r\n this.request.brokerageDetails[0]['businessUnitGroup4'] = selectedBrokerageDetails[0]['businessUnitGroup4'];\r\n } else {\r\n this.request.brokerageDetails[0]['id'] = null;\r\n this.request.brokerageDetails[0]['accountCode'] = null;\r\n this.request.brokerageDetails[0]['brokerageAmount'] = null;\r\n this.request.brokerageDetails[0]['brokerageRecogDate'] = null;\r\n this.request.brokerageDetails[0]['currencyID'] = null;\r\n this.request.brokerageDetails[0]['currencyCode'] = null;\r\n this.request.brokerageDetails[0]['businessUnitGroup2'] = null;\r\n this.request.brokerageDetails[0]['businessUnitGroup3'] = null;\r\n this.request.brokerageDetails[0]['businessUnitGroup4'] = null;\r\n }\r\n }\r\n\r\n renewalTypeChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.renewalTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['renewalTypeID'] == this.request.renewalTypeID;\r\n }\r\n )\r\n this.request.renewalType = selectedOptionArr[0]['name'];\r\n }\r\n\r\n incomeTypeChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.incomeTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['incomeTypeId'] == this.request.incomeTypeId;\r\n }\r\n )\r\n this.request.incomeType = selectedOptionArr[0]['name'];\r\n }\r\n\r\n currencyTypeChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.currencyTypeOptions.filter(\r\n currentVal => {\r\n return currentVal['currencyID'] == this.request.currencyTypeId;\r\n }\r\n )\r\n this.request.currencyTypeCode = selectedOptionArr[0]['code'];\r\n }\r\n\r\n reasonsForAccrualChange(e: Event): void {\r\n\r\n let selectedOptionArr = this.reasonForAccrualOptions.filter(\r\n currentVal => {\r\n return currentVal['reasonID'] == this.request.reasonForAccrualId;\r\n }\r\n )\r\n this.request.reasonForAccrual = selectedOptionArr[0]['name'];\r\n }\r\n\r\n slipFileUploadChange(files: FileList) {\r\n\r\n if(this.isSlipUploaded) {\r\n this.slipUploaded = true;\r\n }\r\n if(files.length) {\r\n this.request.slipFile = files[0];\r\n this.request.slipFileName = files[0].name;\r\n this.request.slipExistingFileName = null;\r\n this.isSlipUploaded = true;\r\n }\r\n }\r\n\r\n chooseSlipFile(event) {\r\n // this.utilsService.isSessionExists().then((isSessionExists)=>{\r\n if(!this.utilsService.isSessionExists()) {\r\n event.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n event.stopPropagation();\r\n }else {\r\n let ele: HTMLElement = document.getElementById('slipfileUpload') as HTMLElement;\r\n ele.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n // });\r\n return false;\r\n}\r\n\r\n chooseOrderFile(event) {\r\n // this.utilsService.isSessionExists().then((isSessionExists)=>{\r\n if(!this.utilsService.isSessionExists()) {\r\n event.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n event.stopPropagation();\r\n }else {\r\n let ele: HTMLElement = document.getElementById('orderfileUpload') as HTMLElement;\r\n ele.click();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n // });\r\n return false;\r\n }\r\n\r\n confirmationOfOrderFileUploadChange(files: FileList) {\r\n\r\n if(this.isOrderConfirmationUploaded) {\r\n this.OrderConfirmationUploaded = true;\r\n }\r\n if(files.length) {\r\n this.request.confirmationOfOrderFile = files[0];\r\n this.request.confirmationOfOrderFileName = files[0].name;\r\n this.request.confirmationOfOrderExistingFileName = null;\r\n this.isOrderConfirmationUploaded = true;\r\n }\r\n }\r\n\r\n saveConfirmRequest(e: Event, form: NgForm, actionType: string, workDoneCheck: any): void {\r\n\r\n let isRequestIDExists = this.request.id ? true : false;\r\n\r\n if(!this.formValidations(form, workDoneCheck)){\r\n this.hideSummary = true;\r\n return;\r\n }\r\n\r\n let sendTransitionOne = false;//Used to determine if workflow with transition 1 should be called or not\r\n let userEmail = localStorage.getItem('userEmail');\r\n this.request.userRoles = this.utilsService.setTierItems.getValue();\r\n let formData = new FormData();\r\n if (this.request.slipFileName && !this.request.reAccrualAllowed) {\r\n formData.append('slipFile', this.request.slipFile, this.request.slipFileName);\r\n }\r\n if(this.request.confirmationOfOrderFileName && !this.request.reAccrualAllowed) {\r\n formData.append(\"confirmationOrder\", this.request.confirmationOfOrderFile, this.request.confirmationOfOrderFileName);\r\n }\r\n let expectedSaveObj = this.request.getSaveObj();\r\n formData.append('data',JSON.stringify(expectedSaveObj));\r\n if (!this.request.id) {\r\n sendTransitionOne = true;\r\n } else if (this.request.status == AdjustmentStatus.Rejected) {\r\n sendTransitionOne = true;\r\n }\r\n\r\n this.utilsService.showLoadingIcon(true);\r\n this.saveAccrualObject=(this.request.reAccrualAllowed==true)?expectedSaveObj:formData;\r\n this.utilsService.adjustmentsViewType=(this.request.reAccrualAllowed && this.request.reAccrualRequestId!=null)?\"Current\":this.utilsService.adjustmentsViewType;\r\n this.dataCaptureFormsService.saveUpdateAccrualRequest(this.saveAccrualObject)\r\n .subscribe(data => {\r\n if(isRequestIDExists) {\r\n this.dataCaptureFormsService.workflowSaveConfirmUpdate(actionType, sendTransitionOne, userEmail, this.request);\r\n } else {\r\n this.request.id = data;\r\n } \r\n\r\n this.utilsService.showMessageTip(\"Request saved successfully\");\r\n this.router.navigate(['adjustments']);\r\n },\r\n error => {\r\n this.utilsService.showMessageTip(error['error']['error']);\r\n this.utilsService.showLoadingIcon(false);\r\n });\r\n }\r\n\r\n formValidations(form: NgForm, workDoneCheck: any): boolean{\r\n\r\n let errorMsgArr = [];\r\n this.errorMsg = '';\r\n this.brokerageAmountErrMsg = '';\r\n let incomeAmountValidator = this.utilsService.validateIncomeAmount(this.request.amount);\r\n\r\n if (!form.valid) {\r\n \r\n errorMsgArr.push('
Provide correct values for all mandatory fields');\r\n } \r\n \r\n if (!this.request.slipFileName && !this.request.slipExistingFileName && !this.request.confirmationOfOrderFileName && !this.request.confirmationOfOrderExistingFileName) {\r\n \r\n errorMsgArr.push('
Upload slip or confirmation of order');\r\n } \r\n \r\n if (workDoneCheck && !workDoneCheck._checked) {\r\n\r\n errorMsgArr.push('
Please confirm about work completion and risk by selecting checkbox');\r\n }\r\n\r\n if(!this.request.brokerageDetails[0][\"id\"] && !this.request.brokerageDetails[0][\"businessUnitGroup3\"]){\r\n this.brokerageAccountErrMsg = \"Please Enter Valid Brokerage Account details\";\r\n errorMsgArr.push('
Please Enter Valid Brokerage Account details');\r\n }\r\n\r\n if( !incomeAmountValidator.valid) {\r\n this.brokerageAmountErrMsg = incomeAmountValidator.message;\r\n }\r\n\r\n if (errorMsgArr.length > 0) {\r\n\r\n this.errorMsg = 'Please resolve following errors:
' + errorMsgArr.join('');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onDownloadAccrualCurrentFile(isConfirmationOrder:boolean){\r\n this.dataCaptureFormsService.downloadAttachment('Accrual', this.request.id, isConfirmationOrder);\r\n }\r\n\r\n clearFilePath (fileupload: HTMLInputElement, isConfirmationOrder: boolean) {\r\n fileupload.value = \"\";\r\n if(isConfirmationOrder) {\r\n this.request.confirmationOfOrderFile = undefined;\r\n this.request.confirmationOfOrderFileName = undefined;\r\n this.request.confirmationOfOrderExistingFileName = undefined;\r\n } else {\r\n this.request.slipFile = undefined;\r\n this.request.slipFileName = undefined;\r\n this.request.slipExistingFileName = undefined;\r\n }\r\n }\r\n\r\n validateAmountField(value) {\r\n this.brokerageAmountErrMsg = \"\";\r\n let amountValidator = this.utilsService.validateIncomeAmount(value);\r\n if(!amountValidator[\"valid\"]){\r\n this.brokerageAmountErrMsg = amountValidator.message;\r\n }\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'accrual-dialog-content',\r\n templateUrl: './accrual-dialog-content.html'\r\n})\r\nexport class IsRequestExists {\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {}\r\n}\r\n","
\r\n \r\n
\r\n

{{ request.type }} Data Capture

\r\n
Request Date: {{ request.requestDate | date:'d/MM/yyyy' }}  |  Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy'}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n Please type any 3 letters to search policy reference\r\n No active policies found\r\n \r\n\r\n \r\n \r\n {{policyRefNo.riskReference}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Please type any 3 letters to search insured\r\n No Data found\r\n Please provide Insured\r\n \r\n\r\n \r\n \r\n {{insured.name}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {{ insured.name }}\r\n \r\n \r\n Please provide insured\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a type\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n Please type any 3 letters to search brokerage Account\r\n No Data found\r\n Please provide brokerage account\r\n \r\n\r\n \r\n \r\n {{brokerageAccount.name + ' (' + brokerageAccount.dataSource + ')'}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a Income type\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n {{ currentVal.code }}\r\n \r\n \r\n Please select Currency\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Please select a date in active period.\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n {{ currentVal.name }}\r\n \r\n \r\n Please select a reason\r\n \r\n\r\n\r\n \r\n \r\n \r\n Please provide details\r\n \r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
\r\n Upload Slip *:   \r\n \r\n \r\n \r\n delete\r\n
\r\n
\r\n
*Uploading new file will replace existing file. If file exists
\r\n\r\n
\r\n
\r\n Current File:   \r\n {{ request.slipExistingFileName }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Upload Confirmation of Order *:   \r\n \r\n \r\n \r\n delete\r\n
\r\n
\r\n\r\n
*Uploading new file will replace existing file. If file exists
\r\n\r\n
\r\n
\r\n Current File:   \r\n {{ request.confirmationOfOrderExistingFileName }}\r\n
\r\n
\r\n\r\n Has the work been substantially completed and the risk confirmed as bound by the end of the month requested? *\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Summary\r\n \r\n \r\n\r\n
\r\n
Policy Reference:
\r\n
{{ request.policyReference }}
\r\n
\r\n\r\n
\r\n
Reason for Accrual:
\r\n
{{ request.reasonForAccrual }}
\r\n
{{ request.otherReason }}
\r\n
\r\n\r\n
\r\n
Renewal Type:
\r\n
{{ request.renewalType }}\r\n
\r\n
\r\n\r\n
\r\n
Insured:
\r\n
{{ request.insuredName }}\r\n
\r\n
\r\n\r\n
\r\n
Insured Code:
\r\n
{{ request.insuredCode }}\r\n
\r\n
\r\n\r\n\r\n
\r\n
Effective Date:
\r\n
{{ request.effectiveDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n

Brokerage Account

\r\n\r\n
\r\n
Brokerage Account:
\r\n
{{ request.brokerageDetails[0]['name'] }}\r\n
\r\n
\r\n\r\n
\r\n
Account Code:
\r\n
{{ request.brokerageDetails[0]['accountCode'] }}\r\n
\r\n
\r\n\r\n
\r\n
Business Unit:
\r\n
{{ request.brokerageDetails[0]['businessUnitGroup2'] }}        {{ request.brokerageDetails[0]['businessUnitGroup3']\r\n }}        {{ request.brokerageDetails[0]['businessUnitGroup4'] }}\r\n
\r\n
\r\n\r\n

Income Details

\r\n\r\n
\r\n
Income Type:
\r\n
{{ request.incomeType }}
\r\n
\r\n\r\n
\r\n
Income Amount:
\r\n
{{ request.currencyTypeCode }}  {{ request.amount | amountPipe }}
\r\n
\r\n\r\n
\r\n
Earning Date:
\r\n
{{ request.brokerageEarningDate | date:'d/MM/yyyy' }}
\r\n
\r\n\r\n

Supporting Documentation

\r\n\r\n
\r\n
Slip:
\r\n
{{ request.slipFileName }}
\r\n
\r\n\r\n
\r\n
Current Slip:
\r\n \r\n
\r\n\r\n
\r\n
Confirmation of Order:
\r\n
{{ request.confirmationOfOrderFileName }}
\r\n
\r\n\r\n
\r\n
Current Confirmation of Order:
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n     \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","

warning
Similar Request Exists

\r\n\r\n

A similar accrual already exists. Are you sure you wish to continue?

\r\n
\r\n\r\n \r\n \r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DataCaptureFormsService } from './pages/data-capture/data-capture-forms.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SnackBarService {\r\n\r\n private messageSource = new BehaviorSubject(null);\r\n currentMessage = this.messageSource.asObservable();\r\n constructor() { }\r\n\r\n onChange(data: any){\r\n this.messageSource.next(data);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class userAuthorizationService {\r\n\r\n headerTitle: string = \"User not Authorised\";\r\n errorCode: string = \"401\";\r\n errorMessage: string = \"You are not authorised to access the requested page.\";\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { NavBarModule } from './shared/nav-bar';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { HomeModule } from './pages/home';\r\nimport { AdjustmentModule } from './pages/adjustment';\r\nimport { DataCaptureFormsModule } from './pages/data-capture';\r\n\r\nimport { AppDateAdapter, APP_DATE_FORMATS } from './app.date-adapter';\r\nimport { UtilsService } from './shared/services/utils.service';\r\nimport { CacheInterceptor } from './shared/services/cacheinterceptor.service';\r\nimport { PageNotFoundModule } from './pages/page-not-found/page-not-found.module';\r\nimport { DialogContent } from './shared/nav-bar/nav-bar.component';\r\nimport { UserAuthorizationModule } from './shared/user-authorization';\r\n\r\nimport { IsRequestExists } from './pages/data-capture/accrual.component';\r\nimport { SnackBarComponent } from './pages/data-capture/snackBarDefault.component';\r\n\r\nimport { IPublicClientApplication, PublicClientApplication, InteractionType } from '@azure/msal-browser';\r\nimport { MsalGuard, MsalInterceptor, MsalBroadcastService, MsalInterceptorConfiguration, MsalModule, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration, MsalRedirectComponent } from '@azure/msal-angular';\r\nimport { AuthConfig } from 'src/assets/auth-config';\r\nimport { AppInsightService } from './shared/services/app-insight.service';\r\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nvar authConfig;\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication(authConfig.msalConfig);\r\n}\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set(authConfig.protectedResources.api.endpoint, authConfig.protectedResources.api.scopes);\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: authConfig.loginRequest\r\n };\r\n}\r\n\r\nexport const interceptorProviders =\r\n [\r\n { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true },\r\n { provide: MSAL_INSTANCE, useFactory: MSALInstanceFactory },\r\n { provide: MSAL_GUARD_CONFIG, useFactory: MSALGuardConfigFactory },\r\n { provide: MSAL_INTERCEPTOR_CONFIG, useFactory: MSALInterceptorConfigFactory },\r\n { provide: DateAdapter, useClass: AppDateAdapter },\r\n { provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS },\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: true } }\r\n ];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n SnackBarComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HomeModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatSnackBarModule,\r\n MatSidenavModule,\r\n NavBarModule,\r\n AdjustmentModule,\r\n DataCaptureFormsModule,\r\n PageNotFoundModule,\r\n UserAuthorizationModule,\r\n MatButtonModule,\r\n HttpClientModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n ],\r\n providers: [\r\n interceptorProviders,\r\n UtilsService,\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n AppInsightService,\r\n AuthConfig,\r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [DialogContent, IsRequestExists, SnackBarComponent]\r\n})\r\nexport class AppModule {\r\n constructor(private authConfiguration: AuthConfig) {\r\n authConfig = authConfiguration;\r\n }\r\n}\r\n","\r\nexport class AADConfig {\r\n clientId: string;\r\n authority: string;\r\n redirectUri: string;\r\n apiScope: string;\r\n}\r\n\r\n\r\nexport class AppConfig {\r\n production: boolean;\r\n apiUrl: string;\r\n AADConfig: AADConfig;\r\n appInsights: any;\r\n}\r\n","export class NavBarItem {\r\n name: string;\r\n route: string;\r\n\r\n /**\r\n *\r\n */\r\n constructor(name: string, route: string) {\r\n this.name = name;\r\n this.route = route;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from \"@angular/core\";\r\nimport { UtilsService } from \"../services/utils.service\";\r\n\r\n@Directive({\r\n selector: '[userSessionExists]'\r\n})\r\nexport class userSessionDirective {\r\n \r\n constructor(private el: ElementRef,\r\n private utilsService: UtilsService) {}\r\n\r\n @HostListener('focus', ['$event']) onElementFocus(e: Event){\r\n this.isSessionExists(e);\r\n }\r\n\r\n async isSessionExists(e) {\r\n const isSessionExists = await this.utilsService.isSessionExists();\r\n if(!isSessionExists) {\r\n e.preventDefault();\r\n this.utilsService.showTimedOutMessage();\r\n e.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LogLevel, Configuration, BrowserCacheLocation } from '@azure/msal-browser';\r\nimport { AppConfig } from '../app/app.config';\r\n\r\n@Injectable()\r\nexport class AuthConfig {\r\n\r\n isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\n msalConfig: Configuration = {\r\n auth: {\r\n clientId: this.appconfig.AADConfig.clientId,\r\n authority: this.appconfig.AADConfig.authority,\r\n redirectUri: this.appconfig.AADConfig.redirectUri\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage, // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\r\n storeAuthStateInCookie: this.isIE, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback(logLevel: LogLevel, message: string) {\r\n // put logger to check logs if required\r\n },\r\n logLevel: LogLevel.Verbose,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n };\r\n protectedResources = {\r\n api: {\r\n endpoint: this.appconfig.apiUrl,\r\n scopes: [this.appconfig.AADConfig.apiScope],\r\n },\r\n };\r\n loginRequest = {\r\n scopes: []\r\n };\r\n\r\n constructor(private appconfig: AppConfig) { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NavBarComponent, DialogContent } from './nav-bar.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatButtonModule} from '@angular/material/button';\r\n\r\nimport { SvgViewerModule } from '../svg-viewer/svg-viewer.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n RouterModule,\r\n MatDialogModule,\r\n SvgViewerModule\r\n ],\r\n declarations: [NavBarComponent, DialogContent],\r\n exports: [NavBarComponent, DialogContent]\r\n})\r\nexport class NavBarModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { AdjustmentType, Tiers } from '../../shared/models/adjustment.model';\r\n\r\nimport { AdjustmentService } from './adjustment.service';\r\nimport { DataCaptureFormsService } from '../data-capture/data-capture-forms.service';\r\nimport { UtilsService } from '../../shared/services/utils.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\n\r\n@Component({\r\n selector: 'app-adjustment-list',\r\n templateUrl: './adjustment-list.component.html',\r\n styleUrls: ['./adjustment-list.component.scss']\r\n})\r\nexport class AdjustmentListComponent implements OnInit {\r\n\r\n statusesToReviewSummary: object;\r\n statusesInProgressSummary: object;\r\n\r\n statusesHistoryApprovedSummary: object;\r\n statusesHistoryOthersSummary: object;\r\n\r\n headerColumns: string[] = ['Id', 'Type', 'Insured','Currency','Amount','Description','Cost Centre','Status', 'Processed By'];\r\n displayedColumns: string[] = ['requestId', 'type', 'insuredName','currency','amount','description','costCentre', 'status', 'processedBy'];\r\n columnsToDisplay: string[] = this.displayedColumns.slice();\r\n\r\n impactViewData: object[] = [];\r\n impactViewCurrentMonth: string;\r\n impactViewNextMonth: string;\r\n\r\n impactViewHeaderColumns: string[];\r\n impactViewDisplayedColumns: string[] = ['businessUnit', 'settCurrency', 'curBudgeSett', 'curSystemRevenueSett', 'curAdjustedRevenueSett', 'curVarianceSett', 'nextBudgeSett', 'nextSystemRevenueSett', 'nextAdjustedRevenueSett', 'nextVarianceSett'];\r\n \r\n viewType: string = \"Current\";\r\n\r\n monthOptions: string[] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n monthFullNameOptions: string[] = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n\r\n historyMonth: string;\r\n historyYear: number;\r\n historyMonthOptions: string[] = [];\r\n historyYearOptions: number[] = [];\r\n isHistoryYearOptionDisabled: boolean = true;\r\n isHistoryMonthOptionDisabled: boolean = true;\r\n \r\n transactionNumberOptions: any;\r\n isTransactionNumberOptionsExists: boolean =true;\r\n searchTransactionNumber: string;\r\n\r\n insuredOptions: any;\r\n isInsuredOptionsExists: boolean = true;\r\n searchInsuredName: string;\r\n\r\n searchAdjustmentType: number[] = [1,2,3,4,5];\r\n\r\n AdjustmentType: typeof AdjustmentType = AdjustmentType;\r\n Tiers: typeof Tiers = Tiers;\r\n \r\n filteredImpactViewData: object[];\r\n statusInReveiwPaginationOptions: object = {};\r\n statusInProgressPaginationOptions: object = {};\r\n statusHistoryOtherSummaryOptions: object = {\r\n pageSize: 10\r\n };\r\n statusHistoryApprovedSummaryOptions: object = {\r\n pageSize: 10\r\n };\r\n\r\n statusToReviewDataSource;\r\n statusToReviewspans = [];\r\n\r\n statusInProgressDataSource;\r\n statusInProgressspans = [];\r\n\r\n approvedHistoryAdjustments;\r\n approvedHistoryAdjSapns = [];\r\n\r\n otherHistoryAdjustmentsDataSource;\r\n otherHistoryAdjSpans = [];\r\n\r\n\r\n\r\n constructor(private adjService: AdjustmentService,\r\n private router: Router,\r\n private dataCaptureFormsService: DataCaptureFormsService,\r\n public utilsService: UtilsService) { }\r\n\r\n @ViewChild('statusInReview') statusInReviewPaginatior: MatPaginator;\r\n @ViewChild('statusInProgress') statusInProgressPaginatior: MatPaginator;\r\n @ViewChild('historyOthersSummary') statusHistoryOthersSummaryPaginator: MatPaginator;\r\n @ViewChild('historyApprovedSummary') statusHistoryApprovedSummaryPaginator: MatPaginator;\r\n\r\n ngOnInit() {\r\n\r\n this.initializePaginators();\r\n\r\n //this.utilsService.adjustmentsViewType = null;\r\n //this.utilsService.adjustmentsHistoryYear = null;\r\n //this.utilsService.adjustmentsHistoryMonth = null;\r\n this.utilsService.adjustmentsSearchTransactionNumber = null;\r\n this.utilsService.adjustmentsSearchInsuredName = null;\r\n\r\n \r\n this.viewType = (this.utilsService.adjustmentsViewType) ? this.utilsService.adjustmentsViewType : 'Current';\r\n\r\n this.historyYear = (this.utilsService.adjustmentsHistoryYear) ? this.utilsService.adjustmentsHistoryYear : null;\r\n this.historyMonth = (this.utilsService.adjustmentsHistoryMonth) ? this.utilsService.adjustmentsHistoryMonth : null;\r\n \r\n this.searchTransactionNumber = (this.utilsService.adjustmentsSearchTransactionNumber) ? this.utilsService.adjustmentsSearchTransactionNumber : null;\r\n this.searchInsuredName = (this.utilsService.adjustmentsSearchInsuredName) ? this.utilsService.adjustmentsSearchInsuredName : null;\r\n\r\n this.utilsService.adjustmentsViewType = this.viewType;//Doing this to maintain the value of view type in case selection change of view type never fires \r\n\r\n if(this.viewType === \"Current\") {\r\n this.loadCurrentViewTables();\r\n } else {\r\n this.getHistoryRecords();\r\n }\r\n \r\n }\r\n\r\n newRequestRoute(e: Event, requestType: string): void{\r\n \r\n switch (requestType) {\r\n case AdjustmentType.Deferral:\r\n this.router.navigate(['deferral-data-capture']);\r\n break;\r\n case AdjustmentType.Accrual:\r\n this.router.navigate(['accrual-data-capture']);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n this.router.navigate(['business-unit-adjustment-data-capture']);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustmentTransfer:\r\n this.router.navigate(['business-unit-adjustment-transfer']);\r\n break;\r\n case AdjustmentType.MiscellaneousIncome: \r\n this.router.navigate(['miscellaneous-income']);\r\n break;\r\n default:\r\n this.router.navigate(['adjustments']);\r\n } \r\n }\r\n\r\n viewSummary(e: Event, row: object): void {\r\n this.router.navigate(['summary-action', row['requestId'], row['type']]);\r\n }\r\n\r\n setCurrentNextMonthImpactView(data: object): void{\r\n \r\n this.impactViewCurrentMonth = data['currentMonth'];\r\n this.impactViewNextMonth = data['nextMonth'];\r\n }\r\n\r\n setImpactViewHeaderColumns(): void{\r\n let impactViewCurrentMonthBudget, impactViewCurrentMonthSysRevenue, impactViewCurrentMonthAdjRevenue, impactViewCurrentMonthVariance,\r\n impactViewNextMonthBudget, impactViewNextMonthSysRevenue, impactViewNextMonthAdjRevenue, impactViewNextMonthVariance;\r\n if(this.impactViewCurrentMonth) {\r\n impactViewCurrentMonthBudget = this.impactViewCurrentMonth + ' - Budget (Sett)';\r\n impactViewCurrentMonthSysRevenue = this.impactViewCurrentMonth + ' - System Revenue (Sett)';\r\n impactViewCurrentMonthAdjRevenue = this.impactViewCurrentMonth + ' - Adjusted Revenue (Sett)';\r\n impactViewCurrentMonthVariance = this.impactViewCurrentMonth + ' - Variance';\r\n } else {\r\n impactViewCurrentMonthBudget = 'Budget (Sett)';\r\n impactViewCurrentMonthSysRevenue = 'System Revenue (Sett)';\r\n impactViewCurrentMonthAdjRevenue = 'Adjusted Revenue (Sett)';\r\n impactViewCurrentMonthVariance = 'Variance';\r\n }\r\n\r\n if(this.impactViewNextMonth) {\r\n impactViewNextMonthBudget = this.impactViewCurrentMonth + ' - Budget (Sett)';\r\n impactViewNextMonthSysRevenue = this.impactViewCurrentMonth + ' - System Revenue (Sett)';\r\n impactViewNextMonthAdjRevenue = this.impactViewCurrentMonth + ' - Adjusted Revenue (Sett)';\r\n impactViewNextMonthVariance = this.impactViewCurrentMonth + ' - Variance';\r\n } else {\r\n impactViewNextMonthBudget = 'Budget (Sett)';\r\n impactViewNextMonthSysRevenue = 'System Revenue (Sett)';\r\n impactViewNextMonthAdjRevenue = 'Adjusted Revenue (Sett)';\r\n impactViewNextMonthVariance = 'Variance';\r\n }\r\n this.impactViewHeaderColumns = [\r\n 'Business Unit',\r\n 'Settlement Currency',\r\n impactViewCurrentMonthBudget,\r\n impactViewCurrentMonthSysRevenue,\r\n impactViewCurrentMonthAdjRevenue,\r\n impactViewCurrentMonthVariance,\r\n impactViewNextMonthBudget,\r\n impactViewNextMonthSysRevenue,\r\n impactViewNextMonthAdjRevenue,\r\n impactViewNextMonthVariance\r\n ];\r\n }\r\n\r\n autoCompleteTransactionNumbers(): void {\r\n let viewType, historyYear, historyMonth;\r\n \r\n this.isTransactionNumberOptionsExists = true;\r\n if (this.searchTransactionNumber.length < 3) {\r\n return;\r\n }\r\n if(this.viewType == 'Current') {\r\n viewType = 0;\r\n } else {\r\n viewType = 1;\r\n historyYear = this.historyYear;\r\n historyMonth = this.monthFullNameOptions.indexOf(this.historyMonth) + 1;\r\n }\r\n this.transactionNumberOptions = this.dataCaptureFormsService\r\n .getTransactionNumbers(this.searchTransactionNumber, 'adjustment', viewType, historyYear, historyMonth)\r\n .pipe(\r\n map(transactionNumbers => this.filterTransactionNumbers(transactionNumbers))\r\n );\r\n }\r\n\r\n filterTransactionNumbers(values) {\r\n if(values.length) {\r\n this.isTransactionNumberOptionsExists = true;\r\n return values.filter(trNo =>\r\n trNo.transactionNumber.toLowerCase().includes(this.searchTransactionNumber.toLowerCase())\r\n )\r\n } else {\r\n this.isTransactionNumberOptionsExists = false;\r\n }\r\n }\r\n\r\n transactionNumberBlur(e: Event): void {\r\n\r\n /*if (this.searchTransactionNumber) {\r\n this.dataCaptureFormsService\r\n .getTransactionNumberDetails(this.searchTransactionNumber, 'Deferral')\r\n .subscribe(\r\n data => {\r\n console.log(data);\r\n }\r\n );\r\n } else {\r\n \r\n }*/\r\n }\r\n\r\n autoCompleteInsureds(): void {\r\n\r\n if (this.searchInsuredName.length < 3) {\r\n this.isInsuredOptionsExists = true;\r\n return;\r\n }\r\n this.insuredOptions = this.adjService\r\n .getSummaryInsureds(this.searchInsuredName)\r\n .pipe(\r\n map(insureds => this.filterInsureds(insureds))\r\n );\r\n }\r\n\r\n filterInsureds(values) {\r\n let insuredName = this.searchInsuredName;\r\n if(values.length) {\r\n this.isInsuredOptionsExists = true;\r\n return values.filter(insured =>\r\n insured['name'].toLowerCase().includes(insuredName.toLowerCase())\r\n )\r\n } else {\r\n this.isInsuredOptionsExists = false;\r\n }\r\n }\r\n\r\n insuredBlur(e: Event): void {\r\n\r\n /*this.insuredOptions.subscribe(\r\n data => {\r\n console.log(data)\r\n }\r\n );*/\r\n }\r\n\r\n filterBusinessUnit(filterValue: string) {\r\n this.filteredImpactViewData = this.impactViewData.filter(\r\n (data: any) => {\r\n return data.businessUnit.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\r\n }\r\n );\r\n }\r\n\r\n viewSelectionChange(e: Event): void{\r\n this.utilsService.adjustmentsViewType = this.viewType;\r\n this.searchInsuredName = \"\";\r\n this.searchTransactionNumber = \"\";\r\n this.searchAdjustmentType = [1,2,3,4,5];\r\n if( this.viewType === 'History') {\r\n this.getHistoryRecords();\r\n } else {\r\n this.loadCurrentViewTables();\r\n }\r\n }\r\n\r\n yearSelectionChange(e: Event): void{\r\n\r\n //@ToDo: Remove this if not used as this value is being captured on button clicks for search and get history records\r\n // this.utilsService.adjustmentsHistoryYear = this.historyYear;\r\n this.adjService.getHistoryMonths(this.historyYear)\r\n .subscribe(\r\n data => {\r\n this.historyMonthOptions = data;\r\n this.isHistoryMonthOptionDisabled = this.historyMonthOptions.length > 0 ? false: true;\r\n }\r\n );\r\n }\r\n\r\n monthSelectionChange(e: Event): void {\r\n \r\n //@ToDo: Remove this if not used as this value is being captured on button clicks for search and get history records\r\n //this.utilsService.adjustmentsHistoryMonth = this.historyMonth;\r\n this.searchTransactionNumber = null;\r\n this.searchInsuredName = null;\r\n this.searchAdjustmentType = [1,2,3,4,5];\r\n }\r\n\r\n async loadHistoryViewTables() {\r\n this.otherHistoryAdjSpans = [];\r\n this.approvedHistoryAdjSapns = [];\r\n this.utilsService.showLoadingIcon(true);\r\n let statusHistoryOthersSummary: object = {\r\n resultFor: 0, \r\n year: this.historyYear, \r\n month: this.historyMonth, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: 10, \r\n page: 1\r\n };\r\n \r\n let statusHistoryApprovedSummary: object = {\r\n resultFor: 1, \r\n year: this.historyYear, \r\n month: this.historyMonth, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: 10, \r\n page: 1\r\n };\r\n\r\n this.adjService.getHistoryTablesData(statusHistoryOthersSummary, statusHistoryApprovedSummary)\r\n .subscribe(\r\n responseList => {\r\n this.loadHistoryOtherAdjustemntTable(responseList[0]);\r\n this.loadHistoryApprovedadjustmentTable(responseList[1]);\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n error => {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n loadCurrentViewTables(): void{\r\n this.statusInProgressspans = [];\r\n this.statusToReviewspans = [];\r\n this.utilsService.adjustmentsHistoryMonth=null;\r\n this.utilsService.adjustmentsHistoryYear=null;\r\n this.utilsService.showLoadingIcon(true);\r\n let statusToReviewRequestData = {\r\n resultFor: 0, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: 10, \r\n page:1\r\n };\r\n\r\n let statusInProgressRequestData = {\r\n resultFor: 1, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: 10,\r\n page:1\r\n };\r\n\r\n this.adjService.getAdjustmentTablesData(statusToReviewRequestData, statusInProgressRequestData, true)\r\n .subscribe(\r\n responseList => {\r\n if(responseList[0]) {\r\n this.loadStatusToReviewSummayTable(responseList[0]);\r\n }\r\n if(responseList[1]) {\r\n this.loadStatusInProgressSummayTable(responseList[1]);\r\n }\r\n if(responseList[2]) {\r\n this.loadImpactViewTable(responseList[2]);\r\n }\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n error => {\r\n this.utilsService.showLoadingIcon(false);\r\n }); \r\n }\r\n\r\n loadStatusToReviewSummayTable(responseData) {\r\n let data = responseData.body;\r\n this.statusToReviewDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.statusToReviewDataSource, this.statusToReviewspans);\r\n this.statusesToReviewSummary = new MatTableDataSource(this.statusToReviewDataSource);\r\n // Paginatior get header details\r\n this.statusInReveiwPaginationOptions['page'] = +responseData.headers.get('x-page');\r\n this.statusInReveiwPaginationOptions['pageSize'] = +responseData.headers.get('x-page-size');\r\n this.statusInReveiwPaginationOptions['totalCount'] = +responseData.headers.get('x-total-count');\r\n this.statusInReveiwPaginationOptions['totalPages'] = +responseData.headers.get('x-total-pages');\r\n }\r\n\r\n loadStatusInProgressSummayTable(responseData) {\r\n let data = responseData.body;\r\n this.statusInProgressDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.statusInProgressDataSource, this.statusInProgressspans);\r\n this.statusesInProgressSummary = new MatTableDataSource(this.statusInProgressDataSource);\r\n //Paginator get Header Details\r\n this.statusInProgressPaginationOptions['page'] = +responseData.headers.get('x-page');\r\n this.statusInProgressPaginationOptions['pageSize'] = +responseData.headers.get('x-page-size');\r\n this.statusInProgressPaginationOptions['totalCount'] = +responseData.headers.get('x-total-count');\r\n this.statusInProgressPaginationOptions['totalPages'] = +responseData.headers.get('x-total-pages');\r\n }\r\n\r\n loadImpactViewTable(data) {\r\n this.impactViewData = data['impactList'];\r\n this.filteredImpactViewData = data['impactList'];\r\n this.setCurrentNextMonthImpactView(data);\r\n this.setImpactViewHeaderColumns();\r\n }\r\n\r\n loadHistoryApprovedadjustmentTable(response) {\r\n this.approvedHistoryAdjSapns = [];\r\n let data = response.body;\r\n this.approvedHistoryAdjustments = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.approvedHistoryAdjustments, this.approvedHistoryAdjSapns);\r\n this.statusesHistoryApprovedSummary = new MatTableDataSource(this.approvedHistoryAdjustments);\r\n //Paginator get Header Details\r\n this.statusHistoryApprovedSummaryOptions['page'] = +response.headers.get('x-page');\r\n this.statusHistoryApprovedSummaryOptions['pageSize'] = +response.headers.get('x-page-size');\r\n this.statusHistoryApprovedSummaryOptions['totalCount'] = +response.headers.get('x-total-count');\r\n this.statusHistoryApprovedSummaryOptions['totalPages'] = +response.headers.get('x-total-pages');\r\n }\r\n\r\n loadHistoryOtherAdjustemntTable(response) {\r\n this.otherHistoryAdjSpans = [];\r\n let data = response.body;\r\n this.otherHistoryAdjustmentsDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.otherHistoryAdjustmentsDataSource, this.otherHistoryAdjSpans);\r\n this.statusesHistoryOthersSummary = new MatTableDataSource(this.otherHistoryAdjustmentsDataSource);\r\n //Paginator get Header Details\r\n this.statusHistoryOtherSummaryOptions['page'] = +response.headers.get('x-page');\r\n this.statusHistoryOtherSummaryOptions['pageSize'] = +response.headers.get('x-page-size');\r\n this.statusHistoryOtherSummaryOptions['totalCount'] = +response.headers.get('x-total-count');\r\n this.statusHistoryOtherSummaryOptions['totalPages'] = +response.headers.get('x-total-pages');\r\n }\r\n\r\n getHistoryRecordsBtnClick(e: Event): void{\r\n this.utilsService.showLoadingIcon(true);\r\n this.utilsService.adjustmentsHistoryYear = this.historyYear;\r\n this.utilsService.adjustmentsHistoryMonth = this.historyMonth;\r\n this.searchTransactionNumber = null;\r\n this.searchInsuredName = \"\";\r\n this.searchAdjustmentType = [1,2,3,4,5];\r\n this.utilsService.adjustmentsSearchTransactionNumber = this.searchTransactionNumber;\r\n this.utilsService.adjustmentsSearchInsuredName = this.searchInsuredName;\r\n\r\n if(this.viewType=='History'){\r\n if(!this.historyYear || !this.historyMonth){\r\n this.statusesHistoryOthersSummary = null;\r\n this.statusesHistoryApprovedSummary = null;\r\n this.utilsService.showMessageTip('Please provide value of Year and Month both to view History records');\r\n return;\r\n }else{\r\n this.loadHistoryViewTables();\r\n }\r\n }else{\r\n this.loadCurrentViewTables();\r\n }\r\n }\r\n\r\n getHistoryRecords() {\r\n this.utilsService.showLoadingIcon(true);\r\n this.adjService.getHistoryYears()\r\n .subscribe(\r\n data => {\r\n this.historyYearOptions = data.reverse();\r\n this.isHistoryYearOptionDisabled = this.historyYearOptions.length > 0 ? false : true;\r\n if(this.historyYearOptions.length > 0) {\r\n this.historyYear=(this.utilsService.adjustmentsHistoryYear!=null)?this.utilsService.adjustmentsHistoryYear: this.historyYearOptions[0];\r\n \r\n // this.historyYear = this.historyYearOptions[0];\r\n this.adjService.getHistoryMonths(this.historyYear)\r\n .subscribe(\r\n data => {\r\n this.historyMonthOptions = data.reverse();\r\n this.isHistoryMonthOptionDisabled = this.historyMonthOptions.length > 0 ? false: true;\r\n if( this.historyMonthOptions.length > 0 ) {\r\n this.historyMonth = (this.utilsService.adjustmentsHistoryMonth!=null)?this.utilsService.adjustmentsHistoryMonth: this.historyMonthOptions[0];\r\n this.loadHistoryViewTables();\r\n } else {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n }\r\n )\r\n } else {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n }\r\n );\r\n }\r\n\r\n searchRecordsBtnClick(e: Event, form:NgForm): void {\r\n if(form.valid) {\r\n this.searchRecords();\r\n }\r\n }\r\n\r\n searchRecords() {\r\n this.utilsService.adjustmentsHistoryYear = this.historyYear;\r\n this.utilsService.adjustmentsHistoryMonth = this.historyMonth;\r\n this.utilsService.adjustmentsSearchTransactionNumber = this.searchTransactionNumber;\r\n this.utilsService.adjustmentsSearchInsuredName = this.searchInsuredName;\r\n \r\n if (this.viewType == 'History') {\r\n if (!this.historyYear || !this.historyMonth) {\r\n this.statusesHistoryOthersSummary = null;\r\n this.statusesHistoryApprovedSummary = null;\r\n this.utilsService.showMessageTip('Please provide value of Year and Month both to view History records');\r\n return;\r\n } else {\r\n this.loadHistoryViewTables();\r\n }\r\n } else {\r\n this.loadCurrentViewTables();\r\n }\r\n }\r\n\r\n resetSearchFields (e: Event) {\r\n this.searchInsuredName = \"\";\r\n this.searchTransactionNumber = \"\";\r\n this.searchAdjustmentType = [1,2,3,4,5];\r\n this.searchRecords();\r\n }\r\n\r\n isRecordsFound (obj: object) {\r\n let recordsFound: boolean = false;\r\n if(obj && obj['data']) {\r\n recordsFound = obj['data'].length > 0 ? true : false;\r\n } else {\r\n recordsFound = false;\r\n }\r\n return recordsFound;\r\n }\r\n\r\n adjustMentToReviewPageEvent (e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let statusToReviewRequestData = {\r\n resultFor: 0, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: e['pageSize'], \r\n page: e['pageIndex']+1\r\n };\r\n this.adjService.getAdjustmentTablesData(statusToReviewRequestData, {}, false). subscribe(\r\n (responseList) => {\r\n this.statusToReviewspans = [];\r\n let data = responseList[0]['body'];\r\n this.statusToReviewDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.statusToReviewDataSource, this.statusToReviewspans);\r\n this.statusesToReviewSummary = new MatTableDataSource(this.statusToReviewDataSource);\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n adjustMentInProgressPageEvent (e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let statusInProgressRequestData = {\r\n resultFor: 1, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: e['pageSize'], \r\n page: e['pageIndex']+1\r\n };\r\n this.adjService.getAdjustmentTablesData( {},statusInProgressRequestData, false).subscribe(\r\n (responseList) => {\r\n this.statusInProgressspans = [];\r\n let data = responseList[0]['body'];\r\n this.statusInProgressDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.statusInProgressDataSource, this.statusInProgressspans);\r\n this.statusesInProgressSummary = new MatTableDataSource(this.statusInProgressDataSource);\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n error => {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n statusHistoryOtherSummaryPageEvent (e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let statusHistoryOthersSummary: object = {\r\n resultFor: 0, \r\n year: this.historyYear, \r\n month: this.historyMonth, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: e['pageSize'], \r\n page: e['pageIndex']+1\r\n };\r\n\r\n this.adjService.getHistoryTablesData(statusHistoryOthersSummary, {}).subscribe(\r\n response => {\r\n this.otherHistoryAdjSpans = [];\r\n let data = response[0]['body'];\r\n this.otherHistoryAdjustmentsDataSource = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.otherHistoryAdjustmentsDataSource, this.otherHistoryAdjSpans);\r\n this.statusesHistoryOthersSummary = new MatTableDataSource(this.otherHistoryAdjustmentsDataSource);\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n error => {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n statusHistoryApprovedSummaryPageEvent (e: Event) {\r\n this.utilsService.showLoadingIcon(true);\r\n let statusHistoryApprovedSummary: object = {\r\n resultFor: 1, \r\n year: this.historyYear, \r\n month: this.historyMonth, \r\n transactionNumber: this.searchTransactionNumber, \r\n insuredName: this.searchInsuredName, \r\n type: this.searchAdjustmentType.join(','), \r\n pageSize: e['pageSize'], \r\n page: e['pageIndex']+1\r\n };\r\n this.adjService.getHistoryTablesData({}, statusHistoryApprovedSummary).subscribe(\r\n response => {\r\n this.approvedHistoryAdjSapns = [];\r\n let data = response[0]['body'];\r\n this.approvedHistoryAdjustments = this.dataFormatter(data);\r\n this.cacheSpan('Id', d => d.requestId, this.approvedHistoryAdjustments, this.approvedHistoryAdjSapns);\r\n this.statusesHistoryApprovedSummary = new MatTableDataSource(this.approvedHistoryAdjustments);\r\n this.utilsService.showLoadingIcon(false);\r\n },\r\n error => {\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n );\r\n }\r\n\r\n cacheSpan(key, accessor, matDataSource, spans) {\r\n for (let i = 0; i < matDataSource.length;) {\r\n let currentValue = accessor(matDataSource[i]);\r\n let count = 1;\r\n\r\n // Iterate through the remaining rows to see how many match\r\n // the current value as retrieved through the accessor.\r\n for (let j = i + 1; j < matDataSource.length; j++) {\r\n if (currentValue != accessor(matDataSource[j])) {\r\n break;\r\n }\r\n\r\n count++;\r\n }\r\n\r\n if (!spans[i]) {\r\n spans[i] = {};\r\n }\r\n\r\n // Store the number of similar values that were found (the span)\r\n // and skip i to the next unique row.\r\n spans[i][key] = count;\r\n i += count;\r\n }\r\n console.log(key, spans)\r\n }\r\n\r\n getRowSpan(col, index, spans) { \r\n return spans[index] && spans[index][col];\r\n }\r\n\r\n dataFormatter(data) {\r\n let formattedData;\r\n formattedData = data.reduce((current, next) => {\r\n next.currenciesAmounts.forEach(b => {\r\n current.push({ requestId: next.requestId, type: next.type, insuredName: next.insuredName, currency: b.code, amount : b.amount.toFixed(2),description : next.description,costCentre : b.costCentre, status :next.status, processedBy :next.processedBy })\r\n });\r\n return current;\r\n }, []);\r\n return formattedData;\r\n }\r\n\r\n initializePaginators() {\r\n\r\n this.statusesToReviewSummary = new MatTableDataSource([]);\r\n this.statusesToReviewSummary['paginator'] = this.statusInReviewPaginatior;\r\n\r\n this.statusesInProgressSummary = new MatTableDataSource([]);\r\n this.statusesInProgressSummary['paginator'] = this.statusInProgressPaginatior;\r\n\r\n this.statusesHistoryOthersSummary = new MatTableDataSource([]);\r\n this.statusesHistoryOthersSummary['paginator'] = this.statusHistoryOthersSummaryPaginator;\r\n\r\n this.statusesHistoryApprovedSummary = new MatTableDataSource([]);\r\n this.statusesHistoryApprovedSummary['paginator'] = this.statusHistoryApprovedSummaryPaginator;\r\n }\r\n\r\n AddBackground(rowData:any){\r\n let elements:any = document.getElementsByClassName('active'+rowData.requestId);\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].classList.add('add-background')\r\n }\r\n }\r\n RemoveBackground(rowData:any){\r\n let elements:any = document.getElementsByClassName('active'+rowData.requestId);\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].classList.remove('add-background')\r\n }\r\n }\r\n\r\n exportCurrentViewTables(viewType) {\r\n let exportCurrentViewTables = {\r\n type: this.searchAdjustmentType.join(','), \r\n };\r\n\r\n let exportHistoryViewTables = {\r\n type: this.searchAdjustmentType.join(','), \r\n year: this.historyYear, \r\n month: this.historyMonth, \r\n };\r\n this.utilsService.showLoadingIcon(true)\r\n if(viewType == 'Current') {\r\n this.adjService.exportTableData(exportCurrentViewTables, viewType).subscribe((response) => {\r\n this.downloadFile(response);\r\n });\r\n } else {\r\n this.adjService.exportTableData(exportHistoryViewTables, viewType).subscribe((response) => {\r\n this.downloadFile(response);\r\n });\r\n }\r\n \r\n }\r\n\r\n downloadFile(response) {\r\n const blob = new Blob([response.body]);\r\n const fileName = response.headers.get('Content-Disposition').split(';')[1].trim().split('=')[1].replace('\"', '').replace('\"', '');\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(blob, fileName);\r\n } else {\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.setAttribute('visibility', 'hidden');\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n this.utilsService.showLoadingIcon(false);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n

Adjustments Status Summary

\r\n
   Current Period: {{ utilsService.getPeriodDetails() | date:'MMMM yyyy' }}
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Current\r\n History\r\n \r\n \r\n
\r\n
\r\n -1 || tier.indexOf(Tiers.Tier2) > -1) && viewType=='Current'\">\r\n \r\n   \r\n \r\n   \r\n \r\n   \r\n \r\n   \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ currentVal }}\r\n \r\n \r\n \r\n   \r\n \r\n \r\n \r\n {{ currentVal }}\r\n \r\n \r\n \r\n   \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n Please type any 3 letters to search transaction\r\n No transactions found\r\n \r\n\r\n \r\n \r\n {{trNo.transactionNumber}}\r\n \r\n \r\n\r\n \r\n \r\n Please type any 3 letters to search insured\r\n No data found\r\n \r\n\r\n \r\n \r\n {{insured.name}}\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n Accrual\r\n Deferral\r\n Business Unit Correction\r\n Business Unit Transfer\r\n Miscellaneous Income\r\n \r\n Please select adjustment type\r\n \r\n
\r\n\r\n
\r\n \r\n  \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n Adjustments to Review\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.requestId}} Type {{element.type}} Insured {{element.insuredName}} Currency {{element.currency}} Amount {{element.amount | amountPipe}} Description {{element.description}} Cost Centre {{element.costCentre}} Status {{element.status}} Processed By {{element.processedBy}}
\r\n
No Records Found.
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n Adjustments in Progress\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.requestId}} Type {{element.type}} Insured {{element.insuredName}} Currency {{element.currency}} Amount {{element.amount | amountPipe}} Description {{element.description}} Cost Centre {{element.costCentre}} Status {{element.status}} Processed By {{element.processedBy}}
\r\n\r\n\r\n
No Records Found.
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n Impact\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Business Unit {{element.businessUnit}} Sett. Currency {{element.settCurrency}} {{ impactViewCurrentMonth ? impactViewCurrentMonth+ '- Budget (Sett)' : 'Budget (Sett)' }} {{element.curBudgeSett}} {{ impactViewCurrentMonth ? impactViewCurrentMonth+ '- System Revenue (Sett)' : 'System Revenue (Sett)' }} {{element.curSystemRevenueSett}} {{ impactViewCurrentMonth ? impactViewCurrentMonth+ ' - Adjusted Revenue (Sett)' : 'Adjusted Revenue (Sett)' }} {{element.curAdjustedRevenueSett}} {{impactViewCurrentMonth ? impactViewCurrentMonth+ '- Variance' : 'Variance' }} {{element.curVarianceSett}} {{ impactViewNextMonth ? impactViewNextMonth+ ' - Budget (Sett) ' : 'Budget (Sett)' }} {{element.nextBudgeSett}} {{ impactViewNextMonth ? impactViewNextMonth+' - System Revenue (Sett)' : 'System Revenue (Sett)' }} {{element.nextSystemRevenueSett}} {{ impactViewNextMonth ? impactViewNextMonth+ '- Adjusted Revenue (Sett)' : 'Adjusted Revenue (Sett)'}} {{element.nextAdjustedRevenueSett}} {{ impactViewNextMonth ? impactViewNextMonth+ ' - Variance' : 'Variance' }} {{element.nextVarianceSett}}
\r\n
No Records Found.
\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n History Adjustments Approved\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.requestId}} Type {{element.type}} Insured {{element.insuredName}} Currency {{element.currency}} Amount {{element.amount | amountPipe}} Description {{element.description}} Cost Centre {{element.costCentre}} Status {{element.status}} Processed By {{element.processedBy}}
\r\n\r\n
No Records Found.
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n History Adjustments Others\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ID {{element.requestId}} Type {{element.type}} Insured {{element.insuredName}} Currency {{element.currency}} Amount {{element.amount | amountPipe}} Description {{element.description}} Cost Centre {{element.costCentre}} Status {{element.status}} Processed By {{element.processedBy}}
\r\n \r\n
No Records Found.
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { AppConfig } from 'src/app/app.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppInsightService {\r\n private config: AppInsights.IConfig = {\r\n instrumentationKey: this.appConfig.appInsights.instrumentationKey\r\n };\r\n\r\n constructor(private appConfig: AppConfig) {\r\n this.setAppInsightsData();\r\n }\r\n\r\n \r\n public logPageView(\r\n name: string,\r\n url?: string,\r\n properties?: { [key: string]: string },\r\n measurements?: { [key: string]: number },\r\n duration?: number\r\n ) {\r\n AppInsights.trackPageView(name, url, this.AddGlobalProperties(properties), measurements, duration);\r\n }\r\n\r\n public logEvent(name: string, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n AppInsights.trackEvent(name, this.AddGlobalProperties(properties), measurements);\r\n }\r\n\r\n public logError(error: Error, properties?: { [key: string]: string }, measurements?: { [key: string]: number }) {\r\n AppInsights.trackException(error, null, this.AddGlobalProperties(properties), measurements);\r\n }\r\n\r\n private AddGlobalProperties(properties?: { [key: string]: string }): { [key: string]: string } {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n\r\n // add your custom properties such as app version\r\n\r\n return properties;\r\n }\r\n\r\n public setAppInsightsData() {\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(this.config);\r\n AppInsights.clearAuthenticatedUserContext();\r\n this.setAuthenticatedUserContext(localStorage.getItem('userEmail'));\r\n }\r\n }\r\n\r\n public setAuthenticatedUserContext(userId) {\r\n AppInsights.setAuthenticatedUserContext(userId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Subject, Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Router } from '@angular/router';\r\n\r\nimport { WindowRef } from '../../shared/services/window-ref.service';\r\n\r\nimport {\r\n MatSnackBar\r\n} from '@angular/material/snack-bar';\r\n\r\nimport { AdjustmentType } from '../models/adjustment.model';\r\nimport { Tiers } from '../models/adjustment.model';\r\nimport { MsalService } from \"@azure/msal-angular\";\r\nimport { SnackBarComponent } from 'src/app/pages/data-capture/snackBarDefault.component';\r\nimport { AppConfig } from 'src/app/app.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilsService {\r\n\r\n tiersArr: string[];\r\n\r\n adjustmentsViewType: string = 'Current';\r\n adjustmentsHistoryYear: number;\r\n adjustmentsHistoryMonth: string;\r\n adjustmentsSearchTransactionNumber: string;\r\n adjustmentsSearchInsuredName: string;\r\n userDetails: object;\r\n\r\n displayLoadingIcon: Subject = new Subject();\r\n isAuthenticated: Subject = new Subject();\r\n setTierItems: BehaviorSubject = new BehaviorSubject(null);\r\n isLogin: boolean = false;\r\n\r\n constructor(public snackBar: MatSnackBar,\r\n private appConfig: AppConfig,\r\n private authService: MsalService,\r\n public winRef: WindowRef,\r\n private router: Router) { }\r\n\r\n\r\n showMessageTip(message: string, action: string = 'close', duration: number = 5000) {\r\n //let config = new MatSnackBarConfig();\r\n this.snackBar.open(message, action, {\r\n duration: duration,\r\n verticalPosition: 'top',\r\n horizontalPosition: 'end'\r\n });\r\n }\r\n showMessageTipOnFormComponent(data, duration: number = 10000) {\r\n this.snackBar.openFromComponent(SnackBarComponent, {\r\n data: data,\r\n duration: duration,\r\n horizontalPosition: 'end',\r\n verticalPosition: 'top'\r\n })\r\n }\r\n\r\n get tier(): Observable {\r\n return this.setTierItems.asObservable();\r\n }\r\n\r\n showLoadingIcon(res: boolean) {\r\n\r\n this.displayLoadingIcon.next(res);\r\n }\r\n AuthenticationStatus(res: boolean) {\r\n this.isAuthenticated.next(res);\r\n }\r\n\r\n setTier(unset: boolean, tiersArr: any[]): void {\r\n\r\n if (unset) {\r\n this.tiersArr = [];\r\n localStorage.setItem('tier', '');\r\n } else {\r\n\r\n this.tiersArr = [];\r\n if (tiersArr.indexOf(54) > -1) {\r\n this.tiersArr.push(Tiers.Tier1);\r\n }\r\n if (tiersArr.indexOf(53) > -1) {\r\n this.tiersArr.push(Tiers.Tier2);\r\n }\r\n if (tiersArr.indexOf(52) > -1) {\r\n this.tiersArr.push(Tiers.Tier3);\r\n }\r\n if (tiersArr.indexOf(51) > -1) {\r\n this.tiersArr.push(Tiers.Tier4);\r\n }\r\n this.setTierItems.next(this.tiersArr);\r\n }\r\n }\r\n\r\n getUserRolesDisplay(): string {\r\n\r\n let rolesString: string = null;\r\n let tiersArr = this.setTierItems.getValue();\r\n\r\n if (tiersArr.indexOf(Tiers.Tier4) > -1) {\r\n rolesString = \"Business\";\r\n }\r\n\r\n if (tiersArr.indexOf(Tiers.Tier3) > -1) {\r\n if (rolesString) {\r\n rolesString += \", Head Business\";\r\n } else {\r\n rolesString = \"Head Business\";\r\n }\r\n }\r\n\r\n if (tiersArr.indexOf(Tiers.Tier2) > -1) {\r\n if (rolesString) {\r\n rolesString += \", Finance\";\r\n } else {\r\n rolesString = \"Finance\";\r\n }\r\n }\r\n\r\n if (tiersArr.indexOf(Tiers.Tier1) > -1) {\r\n if (rolesString) {\r\n rolesString += \", Head Finance\";\r\n } else {\r\n rolesString = \"Head Finance\";\r\n }\r\n }\r\n\r\n return rolesString;\r\n }\r\n\r\n getFormatedDate(date) {\r\n let year: number = Math.floor(date / 100);\r\n let month: number = Math.floor(date % 100);\r\n return new Date(year, month - 1, 1);\r\n }\r\n\r\n chooseAdjustmentRequestType(type, id) {\r\n switch (type) {\r\n case AdjustmentType.Deferral:\r\n this.router.navigate(['deferral-data-capture/edit', id]);\r\n break;\r\n case AdjustmentType.Accrual:\r\n this.router.navigate(['accrual-data-capture/edit', id]);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustment:\r\n this.router.navigate(['business-unit-adjustment-data-capture/edit', id]);\r\n break;\r\n case AdjustmentType.BusinessUnitAdjustmentTransfer:\r\n this.router.navigate(['business-unit-adjustment-transfer/edit/', id]);\r\n break;\r\n case AdjustmentType.MiscellaneousIncome:\r\n this.router.navigate(['miscellaneous-income/edit/', id]);\r\n break;\r\n default:\r\n this.router.navigate(['adjustments']);\r\n }\r\n }\r\n\r\n isEmpty(obj) {\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key))\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n login() {\r\n //this.router.navigateByUrl('login');\r\n //this.oktaAuth.loginRedirect('/profile');\r\n this.router.navigate(['/adjustments']);\r\n }\r\n\r\n async logout() {\r\n this.showLoadingIcon(true);\r\n localStorage.setItem('username', '');\r\n localStorage.setItem('userEmail', '');\r\n localStorage.setItem('userId', '');\r\n localStorage.setItem('appInsightLogged', '');\r\n this.setTier(true, null);\r\n //localStorage.setItem('tier', '');\r\n // Terminates the session with Okta and removes current tokens.\r\n this.AuthenticationStatus(false);\r\n await this.authService.instance.logoutRedirect()\r\n \r\n // this.router.navigate(['']);\r\n //this.winRef.nativeWindow.location.href = '/';\r\n //this.router.navigateByUrl('/');\r\n }\r\n\r\n validateIncomeAmount(amount) {\r\n //this.brokerageAmountErrMsg = '';\r\n let numberRegex = /^-?[0-9]\\d*(\\.\\d+)?$/g;\r\n if (amount) {\r\n if (numberRegex.test(amount.toString().replace(/,/g, \"\"))) {\r\n return {\r\n valid: true,\r\n msg: \"\"\r\n };\r\n } else {\r\n return {\r\n valid: false,\r\n message: \"Please enter amount as a numeric value.\"\r\n };\r\n }\r\n } else {\r\n return {\r\n valid: false,\r\n message: \"Please enter amount details\"\r\n };\r\n }\r\n }\r\n validateNumberOnly(event): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode === 46 || charCode === 45) {\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n getPeriodDetails() {\r\n if (this.userDetails && this.userDetails[\"activePeriodID\"]) {\r\n let activePeriodDate = this.getFormatedDate(this.userDetails[\"activePeriodID\"]);\r\n return activePeriodDate;\r\n }\r\n }\r\n\r\n async isSessionExists() {\r\n return await this.authService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n showTimedOutMessage() {\r\n this.showMessageTip('Session has expired, please re-login to continue.');\r\n setTimeout(\r\n () => {\r\n this.logout();\r\n }, 3000\r\n );\r\n }\r\n}\r\n","export * from './adjustment-list.component';\r\nexport * from './adjustment.module';\r\nexport * from './adjustment.service';\r\n","export * from './user-authorization.module';\r\nexport * from './user-authorization.component';","import { NgModule } from \"@angular/core\";\r\nimport { userSessionDirective } from \"./user-session.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n userSessionDirective\r\n ],\r\n exports: [\r\n userSessionDirective\r\n ]\r\n})\r\nexport default class DirectiveModuel{}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n import {MatButtonModule} from '@angular/material/button';\r\n import {MatCardModule} from '@angular/material/card';\r\n import {MatIconModule} from '@angular/material/icon';\r\n\r\nimport { UserAuthorizationComponent } from './user-authorization.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatIconModule\r\n ],\r\n declarations: [UserAuthorizationComponent]\r\n})\r\nexport class UserAuthorizationModule { }\r\n","export class Adjustment {\r\n id: number;\r\n type: AdjustmentType;\r\n transactionNumber: string;\r\n brokerage: Date;\r\n status: AdjustmentStatus;\r\n createdBy: string;\r\n\r\n /**\r\n *\r\n */\r\n constructor(id: number,\r\n type: AdjustmentType,\r\n transactionNumber: string,\r\n brokerage: Date,\r\n status: AdjustmentStatus,\r\n createdBy: string,\r\n ) {\r\n this.id = id;\r\n this.type = type,\r\n this.transactionNumber = transactionNumber,\r\n this.brokerage = brokerage;\r\n this.status = status;\r\n this.createdBy = createdBy;\r\n }\r\n}\r\n\r\nexport enum AdjustmentType {\r\n Accrual = \"Accrual\",\r\n BusinessUnitAdjustment = \"Business Unit Correction\",\r\n Deferral = \"Deferral\",\r\n BusinessUnitAdjustmentTransfer = \"Business Unit Transfer\",\r\n MiscellaneousIncome = \"Miscellaneous Income\"\r\n}\r\n\r\nexport enum AdjustmentStatus {\r\n Approved = \"Approved\",\r\n Authorized = \"Authorised\",\r\n Incomplete = \"Incomplete\",\r\n Rejected = \"Rejected\",\r\n Requested = \"Requested\",\r\n Submitted = \"Submitted\",\r\n Closed = \"Closed\"\r\n}\r\n\r\nexport enum Tiers{\r\n Tier1 = \"Tier 1\",\r\n Tier2 = \"Tier 2\",\r\n Tier3 = \"Tier 3\",\r\n Tier4 = \"Tier 4\"\r\n}\r\n\r\nexport enum workflowType{\r\n BusinessToHeadFinance = 1,\r\n FinanceToHeadFinace = 2\r\n}\r\n","import { AdjustmentType, AdjustmentStatus } from '../../shared/models/adjustment.model';\r\nimport * as _ from 'lodash';\r\n\r\nexport default class DeferralModel{\r\n\r\n type: string = AdjustmentType.Deferral;\r\n\r\n id: number;\r\n userRoles: string[];\r\n reDeferralAllowed: boolean;\r\n redeferredRequestId:number;\r\n requestDate: Date = new Date();\r\n journalType: number = 1;\r\n \r\n transactionNumber: string;\r\n \r\n insureds: object[] = [{\r\n code: null,\r\n name: null\r\n }];\r\n \r\n effectiveDate: Date;\r\n \r\n reasonForDeferralId: number;\r\n reasonForDeferral: string;\r\n otherReason: string;\r\n \r\n brokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,//@ToDo: Move this from any to number or string\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null\r\n }];\r\n \r\n deferredBrokerageAccountID: number; //Use this to save and retrieve the selected brokerage account\r\n \r\n brokerageAccount: string;\r\n accountCode: string;\r\n currencyID: number;\r\n currency: string;\r\n amount: any;//@ToDo: Move this from any to number or string\r\n incomeBrokerageRecognitionDate: Date;\r\n\r\n businessUnitGroup2: string;\r\n businessUnitGroup3: string;\r\n businessUnitGroup4: string;\r\n\r\n incomeTypeID: number;\r\n incomeType: string;\r\n\r\n description: string =\"\";\r\n workFlowType: number;\r\n\r\n selectedBrokerageDetails = [{}];\r\n\r\n deferralRequests: object[] = [{\r\n curencyId: null,\r\n currency: null,\r\n brokerage: 0,//@ToDo: Move this from any to number or string\r\n brokerageRecognitionDate: null,\r\n isCurrentPeriodId:false\r\n }];\r\n \r\n slipFile: File;\r\n slipFileName: string;\r\n slipExistingFileName: string;//This is to hold already uploaded file\r\n \r\n status: string = AdjustmentStatus.Incomplete;\r\n statusId: number;\r\n \r\n //@ToDo: move comments out and use updated variables like submittedComments etc.. as per status\r\n comments: string;\r\n //@ToDo: move processedBy out and use updated variables like authorizedBy etc..\r\n processedBy: string;\r\n requestedBy: string;\r\n requestedById: number;\r\n submittedBy: string;\r\n submittedById: number;\r\n submittedComments: string;\r\n authorizedBy: string;\r\n authorizedById: number;\r\n authorizedComments: string;\r\n approvedBy: string;\r\n approvedById: number;\r\n approvedComments: string;\r\n rejectedBy: string;\r\n rejectedById: number;\r\n rejectedComments: string;\r\n //Adding more fields below with values to be received from transaction number details\r\n adjTypeID: number = 2;\r\n adjDeferralDetailID: number = 0;\r\n deferredAdjLedgerID: number;\r\n businessUnitAdjLedgerID: number;\r\n multiCurrencies: string[] = [];\r\n actionType: any;\r\n redeferralAllowed:boolean;\r\n constructor(){ }\r\n\r\n setValuesFromAPIObj(requestObj: object): void{\r\n if(requestObj) {\r\n //this.id = requestObj['requestId'];\r\n this.id = (this.actionType && this.actionType == 'reDeferral') ? null : requestObj['requestId'];\r\n this.redeferredRequestId=(this.actionType && this.actionType == 'reDeferral') ? requestObj['requestId']:null;\r\n this.transactionNumber = requestObj['transactionNumber'];\r\n \r\n this.adjTypeID = requestObj['adjTypeID'];\r\n \r\n this.deferredAdjLedgerID = requestObj['deferredAdjLedgerID'];\r\n this.businessUnitAdjLedgerID = requestObj['deferredAdjLedgerID'];\r\n \r\n this.reasonForDeferralId = requestObj['reasonId'];\r\n this.reasonForDeferral = requestObj['reason'];\r\n this.otherReason = requestObj['otherReason'];\r\n \r\n this.statusId = requestObj['statusId'];\r\n this.status = requestObj['status'];\r\n \r\n this.incomeTypeID = requestObj['incomeTypeId'];\r\n this.incomeType = requestObj['incomeName'];\r\n\r\n this.insureds = requestObj['insureds'];\r\n this.reDeferralAllowed = (requestObj.hasOwnProperty('reDeferralAllowed')) ? requestObj['reDeferralAllowed'] : false;\r\n this.brokerageDetails = requestObj['brokerageDetails'];\r\n this.brokerageDetails.forEach((value) => {\r\n this.multiCurrencies.push(value[\"currencyCode\"]);\r\n })\r\n this.deferredBrokerageAccountID = requestObj['deferredBrokerageAccountID'];\r\n let selectedOptionArr = this.brokerageDetails.filter(\r\n currentVal => {\r\n return currentVal['id'] == this.deferredBrokerageAccountID;\r\n }\r\n )\r\n if(selectedOptionArr.length>0){\r\n this.brokerageAccount = selectedOptionArr[0]['name'];\r\n this.accountCode = selectedOptionArr[0]['accountCode'];\r\n this.businessUnitGroup2 = selectedOptionArr[0]['businessUnitGroup2'];\r\n this.businessUnitGroup3 = selectedOptionArr[0]['businessUnitGroup3'];\r\n this.businessUnitGroup4 = selectedOptionArr[0]['businessUnitGroup4'];\r\n this.currency = selectedOptionArr[0]['currencyCode'];\r\n this.currencyID = selectedOptionArr[0]['currencyID'];\r\n this.amount = this.sumCurrencyData(selectedOptionArr);\r\n this.incomeBrokerageRecognitionDate = selectedOptionArr[0]['brokerageRecogDate'];\r\n }\r\n \r\n this.effectiveDate = requestObj['effectiveDate'];\r\n\r\n this.slipExistingFileName = requestObj['slipFileName'];\r\n\r\n if(requestObj[\"description\"]) this.description = requestObj[\"description\"];\r\n if(requestObj[\"journalType\"]) this.journalType = requestObj[\"journalType\"];\r\n if(requestObj[\"workFlowType\"]) this.workFlowType = requestObj[\"workFlowType\"];\r\n\r\n this.adjDeferralDetailID = requestObj[\"adjDeferralDetailID\"];\r\n \r\n this.requestedById = (requestObj['requestedBy'] && requestObj['requestedBy']['id']) ? requestObj['requestedBy']['id'] : null;\r\n this.requestedBy = (requestObj['requestedBy'] && requestObj['requestedBy']['name']) ? requestObj['requestedBy']['name'] : null;\r\n\r\n this.submittedById = (requestObj['submittedBy'] && requestObj['submittedBy']['id']) ? requestObj['submittedBy']['id'] : null;\r\n this.submittedBy = (requestObj['submittedBy'] && requestObj['submittedBy']['name']) ? requestObj['submittedBy']['name'] : null;\r\n this.submittedComments = (requestObj['submittedBy'] && requestObj['submittedBy']['comments']) ? requestObj['submittedBy']['comments'] : null;\r\n\r\n this.authorizedById = (requestObj['authorizedBy'] && requestObj['authorizedBy']['id']) ? requestObj['authorizedBy']['id'] : null;\r\n this.authorizedBy = (requestObj['authorizedBy'] && requestObj['authorizedBy']['name']) ? requestObj['authorizedBy']['name'] : null;\r\n this.authorizedComments = (requestObj['authorizedBy'] && requestObj['authorizedBy']['comments']) ? requestObj['authorizedBy']['comments'] : null;\r\n\r\n this.approvedById = (requestObj['approvedBy'] && requestObj['approvedBy']['id']) ? requestObj['approvedBy']['id'] : null;\r\n this.approvedBy = (requestObj['approvedBy'] && requestObj['approvedBy']['name']) ? requestObj['approvedBy']['name'] : null;\r\n this.approvedComments = (requestObj['approvedBy'] && requestObj['approvedBy']['comments']) ? requestObj['approvedBy']['comments'] : null;\r\n\r\n this.rejectedById = (requestObj['rejectedBy'] && requestObj['rejectedBy']['id']) ? requestObj['rejectedBy']['id'] : null;\r\n this.rejectedBy = (requestObj['rejectedBy'] && requestObj['rejectedBy']['name']) ? requestObj['rejectedBy']['name'] : null;\r\n this.rejectedComments = (requestObj['rejectedBy'] && requestObj['rejectedBy']['comments']) ? requestObj['rejectedBy']['comments'] : null;\r\n this.selectedBrokerageDetails = [];\r\n this.selectedBrokerageDetails = _.filter(requestObj['brokerageDetails'], (value) => {\r\n return value.id === requestObj['deferredBrokerageAccountID']\r\n });\r\n this.deferralRequests = [];\r\n let currentBrokerageEarningDateObj = {};//This will hold the object where data is equal to current brokerage earning date\r\n requestObj['deferralRequests'].forEach(element => {\r\n // if (element['brokerageDate'] == this.incomeBrokerageRecognitionDate){\r\n // currentBrokerageEarningDateObj = {\r\n // curencyId: element['currency']['currencyID'],\r\n // currency: element['currency']['code'],\r\n // brokerage: element['brokerageAmount'],\r\n // brokerageRecognitionDate: element['brokerageDate'],\r\n // isDisabled: false\r\n // };\r\n // }else{\r\n this['deferralRequests'].push({\r\n curencyId: element['currency']['currencyID'],\r\n currency: element['currency']['code'],\r\n brokerage: element['brokerageAmount'],\r\n brokerageRecognitionDate: element['brokerageDate'],\r\n isCurrentPeriodId:element['isCurrentPeriodId'],\r\n isDisabled: false\r\n });\r\n //} \r\n });\r\n\r\n this.brokerageDetails.forEach((value) => {\r\n var arr = this.deferralRequests.filter((val) => {\r\n if(val['currency'] === value['currencyCode']) {\r\n return true;\r\n }\r\n });\r\n arr[0]['isDisabled'] = true;\r\n })\r\n if(!this.isEmpty(currentBrokerageEarningDateObj)) {\r\n this['deferralRequests'].unshift(currentBrokerageEarningDateObj);//This is to ensure that date with current brokerage earning date object remains at the top, that is, always the first element of array\r\n }\r\n }\r\n }\r\n\r\n updateFieldsFromTransactionNumberDetails(unset: boolean, data) {\r\n\r\n if(unset){\r\n \r\n this.adjTypeID = null;\r\n this.deferredAdjLedgerID = null;\r\n this.businessUnitAdjLedgerID = null;\r\n\r\n this.effectiveDate = null;\r\n\r\n this.incomeTypeID = null;\r\n this.reDeferralAllowed=false;\r\n\r\n this.insureds = [{\r\n code: null,\r\n name:null\r\n }];\r\n\r\n this.brokerageDetails = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null\r\n }];\r\n\r\n this.deferredBrokerageAccountID = null;\r\n this.brokerageAccount = null;\r\n this.accountCode = null;\r\n this.businessUnitGroup2 = null;\r\n this.businessUnitGroup3 = null;\r\n this.businessUnitGroup4 = null;\r\n this.currency = null;\r\n this.currencyID = null;\r\n this.amount = null;\r\n this.incomeBrokerageRecognitionDate = null;\r\n\r\n this.deferralRequests = [{\r\n curencyId: null,\r\n currency: null,\r\n brokerage: 0,\r\n brokerageRecognitionDate: null,\r\n isCurrentPeriodId:null\r\n }];\r\n\r\n this.multiCurrencies = [];\r\n }else{\r\n \r\n this.adjTypeID = data['adjTypeID'];\r\n this.deferredAdjLedgerID = data['deferredAdjLedgerID'];\r\n this.businessUnitAdjLedgerID = data['deferredAdjLedgerID'];\r\n\r\n this.effectiveDate = data['effectiveDate'];\r\n\r\n this.incomeTypeID = data['incomeTypeID'];\r\n\r\n this.insureds = data['insureds'];\r\n \r\n this.brokerageDetails = [... data['brokerageDetails']];\r\n\r\n let groupByData;\r\n //_.forEach(data['brokerageDetails'], (val, index, arr) => {\r\n groupByData = _.filter(data['brokerageDetails'], (value) => {\r\n return value.id === data['brokerageDetails'][0]['id'];\r\n });\r\n this.selectedBrokerageDetails = [...groupByData]\r\n //})\r\n\r\n //Setting the default values to the first record\r\n if (this.brokerageDetails[0]) {\r\n this.deferredBrokerageAccountID = this.brokerageDetails[0]['id'];\r\n this.brokerageAccount = this.brokerageDetails[0]['name'];\r\n this.accountCode = this.brokerageDetails[0]['accountCode'];\r\n this.businessUnitGroup2 = this.brokerageDetails[0]['businessUnitGroup2'];\r\n this.businessUnitGroup3 = this.brokerageDetails[0]['businessUnitGroup3'];\r\n this.businessUnitGroup4 = this.brokerageDetails[0]['businessUnitGroup4'];\r\n this.currency = this.brokerageDetails[0]['currencyCode'];\r\n this.currencyID = this.brokerageDetails[0]['currencyID'];\r\n if(this.brokerageDetails.length > 1) {\r\n this.amount = this.sumCurrencyData(this.selectedBrokerageDetails);\r\n this.amount = parseFloat(this.amount.toFixed(2));\r\n } else {\r\n this.amount = this.brokerageDetails[0]['brokerageAmount'];\r\n }\r\n this.incomeBrokerageRecognitionDate = this.brokerageDetails[0]['brokerageRecogDate'];\r\n\r\n //Giving default values to deferral requests first row\r\n // this.deferralRequests = [{\r\n // currencyId: this.currencyID,\r\n // currency: this.currency,\r\n // brokerage: this.amount,\r\n // brokerageRecognitionDate: this.incomeBrokerageRecognitionDate\r\n // }];\r\n this.deferralRequests = [];\r\n this.multiCurrencies = [];\r\n this.selectedBrokerageDetails.forEach((val, index) => {\r\n let obj = {\r\n curencyId: val['currencyID'],\r\n currency: val[\"currencyCode\"],\r\n brokerage: val[\"brokerageAmount\"],\r\n brokerageRecognitionDate: val[\"brokerageRecogDate\"],\r\n isDisabled: true\r\n }\r\n this.deferralRequests.push(obj);\r\n this.multiCurrencies.push(obj.currency);\r\n });\r\n //this.deferralRequests = [...this.brokerageDetails];\r\n }\r\n } \r\n }\r\n\r\n getSaveObject(): object{\r\n let userEmail = localStorage.getItem('userEmail');\r\n let dateObj;\r\n let dateTimeMs;\r\n let timeZoneDate;\r\n let brokerageAmountWithoutComma;\r\n let adjustments = [];\r\n let userRoleStatus: string;\r\n this.deferralRequests.forEach(value => {\r\n \r\n dateObj = new Date(value['brokerageRecognitionDate']);\r\n //timeZoneDate.setHours(timeZoneDate.getHours() - timeZoneDate.getTimezoneOffset() / 60);\r\n dateTimeMs = dateObj.getTime() - (dateObj.getTimezoneOffset() * 60 * 1000);\r\n timeZoneDate = new Date(dateTimeMs);\r\n brokerageAmountWithoutComma = (value['brokerage'] && value['brokerage'].replace) ? value['brokerage'].replace(/,/g, '') : value['brokerage'];\r\n\r\n adjustments.push({\r\n currencyID: value['curencyId'],\r\n brokerageAmount: brokerageAmountWithoutComma,\r\n brokerageRecognitionDate: timeZoneDate\r\n });\r\n });\r\n\r\n if(this.userRoles.length > 0 && this.userRoles.indexOf('Tier 4') !== -1){\r\n userRoleStatus = \"RequestedToAuthorised\"\r\n } else if( this.userRoles.length > 0 && this.userRoles.indexOf('Tier 2') !== -1) {\r\n userRoleStatus = \"IncompleteToSumitted\"\r\n }\r\n \r\n return {\r\n requestId: this.id,\r\n adjTypeID: this.adjTypeID,\r\n deferredAdjLedgerID: this.deferredAdjLedgerID,\r\n deferredBrokerageAccountID: this.deferredBrokerageAccountID,\r\n reasonID: this.reasonForDeferralId,\r\n otherReason: this.otherReason,\r\n //incomeTypeID: this.incomeTypeID,\r\n currencyID: this.currencyID,\r\n brokerageAmount: this.amount,\r\n brokerageRecognitionDate: this.incomeBrokerageRecognitionDate,\r\n adjustments: adjustments,\r\n userEmail: userEmail,\r\n insuredName: this.insureds[0][\"name\"],\r\n journalType: this.journalType,\r\n transactionNumber: this.transactionNumber,\r\n brokerageAccountName: this.selectedBrokerageDetails[0][\"name\"],\r\n transition: userRoleStatus,\r\n reasonForDeferral: this.reasonForDeferral,\r\n currency: this.currency,\r\n workFlowType: this.workFlowType,\r\n adjDeferralDetailId: (this.actionType && this.actionType == 'reDeferral') ? null : this.adjDeferralDetailID,\r\n redeferralAllowed:(this.actionType && this.actionType == 'reDeferral') ? true :false,\r\n redeferredRequestId:this.redeferredRequestId\r\n };\r\n }\r\n\r\n isEmpty(obj) {\r\n for(var key in obj) {\r\n if(obj.hasOwnProperty(key))\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n sumCurrencyData(data) {\r\n let sum = 0;\r\n for(let i =0; i < data.length; i++) {\r\n let brokerageAmountWithoutComma = (data[i]['brokerageAmount'] && data[i]['brokerageAmount'].replace) ? data[i]['brokerageAmount'].replace(/,/g, '') : data[i]['brokerageAmount'];\r\n sum = sum + parseFloat(brokerageAmountWithoutComma);\r\n }\r\n return sum;\r\n }\r\n\r\n // groupBy (xs, key) {\r\n // return values.reduce((a, e) => {\r\n // a[e.id] = e.id in a ? ++a[e.id] : 0;\r\n // return a;\r\n // }, {});\r\n // };\r\n\r\n getBrokerageEarningDateReDeferral(requestObj: object){\r\n\r\n \r\n let currentBrokerageEarningDate = requestObj['accrualRequest']['brokerageDate'];\r\n\r\n if(this.actionType!='reDeferral'){\r\n return currentBrokerageEarningDate;\r\n }\r\n \r\n let currentDateObj = new Date(currentBrokerageEarningDate);\r\n \r\n let \r\n fullYear = currentDateObj.getFullYear(), \r\n month = currentDateObj.getMonth(), \r\n date = currentDateObj.getDate(),\r\n hours = currentDateObj.getHours(),\r\n minutes = currentDateObj.getMinutes(),\r\n seconds = currentDateObj.getSeconds();\r\n\r\n let \r\n newDate,\r\n newMonth,\r\n newFullYear;\r\n \r\n newMonth = (month==11) ? 0 : month+1;\r\n newFullYear = (newMonth==0) ? fullYear+1 : fullYear;\r\n newDate = date;\r\n\r\n if (newMonth == 3 || newMonth == 5 || newMonth == 8 || newMonth == 10){//Case when maximum day can be 30 for a month\r\n\r\n if (date==31){\r\n newDate = 30;\r\n }\r\n }else if(newMonth == 1){//Feb case\r\n\r\n if(newFullYear%4==0){//Leap year case with Feb\r\n if (date == 30 || date==31){\r\n newDate = 29;\r\n }\r\n }else{\r\n if (date == 29 || date == 30 || date==31){\r\n newDate = 28;\r\n }\r\n }\r\n }\r\n \r\n return new Date(newFullYear, newMonth, newDate, hours, minutes, seconds);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './pages/home';\r\nimport { AdjustmentListComponent } from './pages/adjustment';\r\nimport {\r\n DeferralComponent, AccrualComponent, BusinessUnitAdjustmentComponent,\r\n SummaryActionComponent, BusinessUnitAdjustmentTransferComponent\r\n} from './pages/data-capture';\r\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\r\nimport { MiscellaneousIncomeComponent } from './pages/data-capture/miscellaneous-income.component';\r\nimport { UserAuthorizationComponent } from './shared/user-authorization';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\n\r\n//Following function to redirect in case not logged in\r\n/*\r\nexport function onAuthRequired({ oktaAuth, router }) {\r\n router.navigate(['/login']);\r\n }\r\n*/\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: HomeComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'home',\r\n component: HomeComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'adjustments',\r\n component: AdjustmentListComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'deferral-data-capture',\r\n component: DeferralComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'deferral-data-capture/edit/:id',\r\n component: DeferralComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'deferral-data-capture/edit/:id/:actionType',\r\n component: DeferralComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'accrual-data-capture',\r\n component: AccrualComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'accrual-data-capture/edit/:id',\r\n\r\n component: AccrualComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'accrual-data-capture/edit/:id/:actionType',\r\n component: AccrualComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'business-unit-adjustment-data-capture',\r\n component: BusinessUnitAdjustmentComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'business-unit-adjustment-data-capture/edit/:id',\r\n component: BusinessUnitAdjustmentComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'business-unit-adjustment-transfer',\r\n component: BusinessUnitAdjustmentTransferComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'business-unit-adjustment-transfer/edit/:id',\r\n component: BusinessUnitAdjustmentTransferComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'miscellaneous-income',\r\n component: MiscellaneousIncomeComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'miscellaneous-income/edit/:id',\r\n component: MiscellaneousIncomeComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: 'summary-action/:id/:type',\r\n component: SummaryActionComponent,\r\n canActivate: [MsalGuard]\r\n\r\n },\r\n {\r\n path: '404',\r\n component: PageNotFoundComponent\r\n },\r\n {\r\n path: 'not-authorised',\r\n component: UserAuthorizationComponent\r\n },\r\n {\r\n path: '**',\r\n redirectTo: '/',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { AdjustmentType, AdjustmentStatus } from '../../shared/models/adjustment.model';\r\n\r\nexport default class MiscellaneousIncomeModel {\r\n type: string = AdjustmentType.MiscellaneousIncome;\r\n id: number;\r\n requestDate: Date = new Date();\r\n\r\n reasonForMiscellaneousId: number;\r\n reasonForMiscellaneous: string;\r\n\r\n incomeTypeId: number;\r\n incomeType: string;\r\n\r\n currencyTypeId: number;\r\n currencyTypeCode: string;\r\n\r\n amount: any;\r\n\r\n brokerageEarningDate: Date;\r\n\r\n adjMiscellaneousID: number;\r\n\r\n costCentre: string;\r\n\r\n allowDuplicates : boolean = false;\r\n\r\n otherReason: string;\r\n\r\n journalType: number = 2;\r\n description: string =\"\";\r\n workFlowType: number;\r\n\r\n userRoles: string[];\r\n\r\n adjTypeID: number = 5;\r\n\r\n slipFile: File;\r\n slipFileName: string;\r\n slipExistingFileName: string;\r\n\r\n\r\n status: string = AdjustmentStatus.Incomplete;\r\n statusId: number;\r\n\r\n //@ToDo: move comments out and use updated variables like submittedComments etc.. as per status\r\n comments: string;\r\n //@ToDo: move processedBy out and use updated variables like authorizedBy etc..\r\n processedBy: string;\r\n requestedBy: string;\r\n requestedById: number;\r\n submittedBy: string;\r\n submittedById: number;\r\n submittedComments: string;\r\n authorizedBy: string;\r\n authorizedById: number;\r\n authorizedComments: string;\r\n approvedBy: string;\r\n approvedById: number;\r\n approvedComments: string;\r\n rejectedBy: string;\r\n rejectedById: number;\r\n rejectedComments: string;\r\n\r\n brokerageDetails: object[] = [{\r\n id: null,\r\n accountCode: null,\r\n name: null,\r\n brokerageAmount: null,\r\n brokerageRecogDate: null,\r\n currencyID: null,\r\n currencyCode: null,\r\n businessUnitGroup2: null,\r\n businessUnitGroup3: null,\r\n businessUnitGroup4: null,\r\n fyBusinessUnitID: null,\r\n costCentre: null,\r\n companyCode: null,\r\n base: null\r\n }];\r\n\r\n setBrokerageDetailsValuesFromCostCentre(respObj) {\r\n if(respObj.length) {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n this.brokerageDetails[0]['name'] = respObj[0].name;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = respObj[0].businessUnitGroup2;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = respObj[0].businessUnitGroup3;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = respObj[0].businessUnitGroup4;\r\n this.brokerageDetails[0]['id'] = respObj[0].id;\r\n this.brokerageDetails[0]['brokerageAmount'] = respObj[0].brokerageAmount;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = respObj[0].brokerageRecogDate;\r\n this.brokerageDetails[0]['currencyID'] = respObj[0].currencyID;\r\n this.brokerageDetails[0]['currencyCode'] = respObj[0].currencyCode;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = respObj[0].fyBusinessUnitID;\r\n this.brokerageDetails[0]['companyCode'] = respObj[0].companyCode;\r\n } else {\r\n //this.brokerageDetails[0]['name'] = respObj[0].name;\r\n this.brokerageDetails[0]['name'] = null;\r\n //this.brokerageDetails[0]['accountCode'] = respObj[0].accountCode;\r\n this.brokerageDetails[0]['accountCode'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup2'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup3'] = null;\r\n this.brokerageDetails[0]['businessUnitGroup4'] = null;\r\n this.brokerageDetails[0]['id'] = null;\r\n this.brokerageDetails[0]['brokerageAmount'] = null;\r\n this.brokerageDetails[0]['brokerageRecogDate'] = null;\r\n this.brokerageDetails[0]['currencyID'] = null;\r\n this.brokerageDetails[0]['currencyCode'] = null;\r\n this.brokerageDetails[0]['fyBusinessUnitID'] = null;\r\n //this.brokerageDetails[0][\"costCentre\"] = null;\r\n this.brokerageDetails[0][\"companyCode\"] = null;\r\n }\r\n }\r\n\r\n getSaveObject() {\r\n let brokerageEarningDateObj;\r\n let brokerageEarningDateateTimeMs;\r\n let brokerageEarningDateTimeZoneDate;\r\n const monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n let userRoleStatus: string;\r\n\r\n brokerageEarningDateObj = new Date(this.brokerageEarningDate);\r\n brokerageEarningDateateTimeMs = brokerageEarningDateObj.getTime() - (brokerageEarningDateObj.getTimezoneOffset() * 60 * 1000);\r\n brokerageEarningDateTimeZoneDate = new Date(brokerageEarningDateateTimeMs);\r\n this.description = `${monthNames[brokerageEarningDateObj.getMonth()]} miscellaneous income - ${this.brokerageDetails[0]['businessUnitGroup3']}`;\r\n\r\n if(this.userRoles && this.userRoles.indexOf('Tier 4') !== -1){\r\n userRoleStatus = \"RequestedToAuthorised\";\r\n } else if( this.userRoles && this.userRoles.indexOf('Tier 2') !== -1) {\r\n userRoleStatus = \"IncompleteToSumitted\";\r\n }\r\n\r\n return {\r\n \"adjMiscellaneousID\": this.adjMiscellaneousID,\r\n \"brokerageAmount\": this.amount,\r\n \"brokerageEarningDate\": brokerageEarningDateTimeZoneDate,\r\n \"reasonForMiscellaneous\": this.reasonForMiscellaneous,\r\n \"fyBusinessUnitID\": this.brokerageDetails[0][\"fyBusinessUnitID\"],\r\n \"description\": this.description,\r\n \"businessUnitBase\": this.brokerageDetails[0][\"base\"],\r\n \"brokerageAccountName\": this.brokerageDetails[0][\"name\"],\r\n \"requestId\": this.id ? this.id : null,\r\n \"adjTypeID\": this.adjTypeID,\r\n \"reasonID\": this.reasonForMiscellaneousId,\r\n \"incomeTypeID\": this.incomeTypeId,\r\n \"currencyID\": this.currencyTypeId,\r\n \"userEmail\": localStorage.getItem('userEmail'),\r\n \"otherReason\": this.otherReason,\r\n \"requestComment\": \"\",\r\n \"journalType\": this.journalType,\r\n \"transition\": userRoleStatus,\r\n \"currencyTypeCode\": this.currencyTypeCode,\r\n \"workFlowType\": this.workFlowType\r\n }\r\n }\r\n\r\n setValuesFromAPIObj(requestObj: object): void {\r\n if(requestObj) {\r\n this.id = requestObj['requestId'];\r\n this.adjMiscellaneousID = requestObj[\"adjMiscellaneousID\"];\r\n this.adjTypeID = requestObj[\"adjTypeID\"];\r\n this.reasonForMiscellaneous = requestObj[\"reason\"];\r\n this.reasonForMiscellaneousId = requestObj[\"reasonId\"];\r\n this.incomeType = requestObj[\"incomeName\"];\r\n this.incomeTypeId = requestObj[\"incomeTypeId\"];\r\n this.brokerageDetails = [requestObj[\"fyBusinessUnitDetails\"]];\r\n if(requestObj[\"transRequest\"] && requestObj[\"transRequest\"][\"currency\"]) {\r\n this.currencyTypeCode = requestObj[\"transRequest\"][\"currency\"][\"code\"];\r\n this.currencyTypeId = requestObj[\"transRequest\"][\"currency\"][\"currencyID\"];\r\n }\r\n if(requestObj[\"transRequest\"]){\r\n this.amount = requestObj[\"transRequest\"][\"brokerageAmount\"];\r\n this.brokerageEarningDate = requestObj[\"transRequest\"][\"brokerageDate\"];\r\n }\r\n if(requestObj[\"description\"]) this.description = requestObj[\"description\"];\r\n if(requestObj[\"journalType\"]) this.journalType = requestObj[\"journalType\"];\r\n \r\n if(requestObj[\"workFlowType\"]) this.workFlowType = requestObj[\"workFlowType\"];\r\n\r\n this.slipExistingFileName = requestObj['slipFileName'];\r\n\r\n this.otherReason = requestObj[\"otherReason\"];\r\n this.requestedById = (requestObj['requestedBy'] && requestObj['requestedBy']['id']) ? requestObj['requestedBy']['id'] : null;\r\n this.requestedBy = (requestObj['requestedBy'] && requestObj['requestedBy']['name']) ? requestObj['requestedBy']['name'] : null;\r\n this.submittedById = (requestObj['submittedBy'] && requestObj['submittedBy']['id']) ? requestObj['submittedBy']['id'] : null;\r\n this.submittedBy = (requestObj['submittedBy'] && requestObj['submittedBy']['name']) ? requestObj['submittedBy']['name'] : null;\r\n this.submittedComments = (requestObj['submittedBy'] && requestObj['submittedBy']['comments']) ? requestObj['submittedBy']['comments'] : null;\r\n\r\n this.authorizedById = (requestObj['authorizedBy'] && requestObj['authorizedBy']['id']) ? requestObj['authorizedBy']['id'] : null;\r\n this.authorizedBy = (requestObj['authorizedBy'] && requestObj['authorizedBy']['name']) ? requestObj['authorizedBy']['name'] : null;\r\n this.authorizedComments = (requestObj['authorizedBy'] && requestObj['authorizedBy']['comments']) ? requestObj['authorizedBy']['comments'] : null;\r\n\r\n this.approvedById = (requestObj['approvedBy'] && requestObj['approvedBy']['id']) ? requestObj['approvedBy']['id'] : null;\r\n this.approvedBy = (requestObj['approvedBy'] && requestObj['approvedBy']['name']) ? requestObj['approvedBy']['name'] : null;\r\n this.approvedComments = (requestObj['approvedBy'] && requestObj['approvedBy']['comments']) ? requestObj['approvedBy']['comments'] : null;\r\n\r\n this.rejectedById = (requestObj['rejectedBy'] && requestObj['rejectedBy']['id']) ? requestObj['rejectedBy']['id'] : null;\r\n this.rejectedBy = (requestObj['rejectedBy'] && requestObj['rejectedBy']['name']) ? requestObj['rejectedBy']['name'] : null;\r\n this.rejectedComments = (requestObj['rejectedBy'] && requestObj['rejectedBy']['comments']) ? requestObj['rejectedBy']['comments'] : null;\r\n\r\n this.status = requestObj[\"status\"];\r\n }\r\n }\r\n}","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { AppConfig } from './app/app.config';\r\n\r\nfetch('/assets/appconfig.json', {method: 'get'}).then( (response) => {\r\n response.json().then((settings) => {\r\n let booleanProperties = [\"useMockData\", \"production\"];\r\n booleanProperties.forEach( (value, index, array) => {\r\n settings[array[index]] = settings[array[index]] == 'true';\r\n });\r\n if(settings.production) {\r\n enableProdMode();\r\n }\r\n platformBrowserDynamic([\r\n {\r\n provide: AppConfig,\r\n useValue: settings\r\n }\r\n ]).bootstrapModule(AppModule)\r\n }).catch(err => console.log(err))\r\n})","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}