{"version":3,"file":"forexUpdateCtrl.js","sourceRoot":"","sources":["../../../../src/modules/controllers/forex/forexUpdateCtrl.ts"],"names":[],"mappings":"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","sourcesContent":["module controllers {\r\n export module forex {\r\n interface IForexUpdateScope extends ng.IScope {\r\n }\r\n\r\n interface IForexUpdateParams extends ng.ui.IStateParamsService {\r\n fecId: number;\r\n }\r\n\r\n export class forexUpdateCtrl {\r\n\r\n static $inject = [\r\n \"$scope\",\r\n '$rootScope',\r\n 'generalService',\r\n '$q',\r\n '$anchorScroll',\r\n '$uibModal',\r\n 'bsLoadingOverlayService',\r\n '$stateParams',\r\n 'entityService',\r\n '$state',\r\n '$timeout',\r\n '$transitions',\r\n 'classificationValueService',\r\n 'documentRepositoryService',\r\n 'lookupService',\r\n \"supplierService\",\r\n \"localeService\",\r\n 'forexService',\r\n \"customerService\",\r\n \"paymentMethodService\",\r\n \"counterService\",\r\n 'currencyService',\r\n 'bankService',\r\n 'userAccountService',\r\n \"documentTypeService\",\r\n ];\r\n\r\n fecId: number;\r\n breadCrumbDesc: string = \"\";\r\n forexHook: any;\r\n forex : interfaces.forex.IForex;\r\n selectedTab: number = 0;\r\n\r\n maturityStartDateOpen: boolean = false;\r\n maturityEndDateOpen: boolean = false;\r\n showAll: boolean = false;\r\n\r\n public forexStatus: interfaces.master.IStatusData;\r\n\r\n documentRepository: interfaces.documentManagement.IDocumentRepository;\r\n documentTypes: ng.resource.IResourceArray;\r\n\r\n apiAllocationList: uiGrid.IGridApi;\r\n\r\n apiSurrenderList: uiGrid.IGridApi;\r\n selectedSurrender: uiGrid.IGridRow;\r\n selectedSurrenderEntity: interfaces.forex.IForexSurrender;\r\n selectedSurrenderRowIndex: number = 0;\r\n\r\n forexContractTypeModel: interfaces.applicationcore.IDropdownModel;\r\n maturityTypeModelList: interfaces.applicationcore.IDropdownModel[] = [];\r\n\r\n selectedAllocation : uiGrid.IGridRow;\r\n selectedAllocationEntity: interfaces.forex.IForexAllocation;\r\n selectedRowIndex: number = 0;\r\n\r\n IsDisabled: boolean = false;\r\n\r\n constructor(\r\n private $scope: IForexUpdateScope,\r\n private $rootScope: interfaces.applicationcore.IRootScope,\r\n private generalService: interfaces.applicationcore.IGeneralService,\r\n private $q: ng.IQService,\r\n private $anchorScroll: ng.IAnchorScrollService,\r\n private $uibModal: ng.ui.bootstrap.IModalService,\r\n private bsLoadingOverlayService,\r\n private $stateParams: IForexUpdateParams,\r\n private entityService: interfaces.applicationcore.IEntityService,\r\n private $state: ng.ui.IStateService,\r\n private $timeout: ng.ITimeoutService,\r\n public $transitions: ng.ui.core.ITransition,\r\n private classificationValueService: interfaces.applicationcore.IClassificationValueService,\r\n public documentRepositoryService: interfaces.documentManagement.IDocumentRepositoryService,\r\n public lookupService: interfaces.applicationcore.ILookupService,\r\n private supplierService: interfaces.master.ISupplierService,\r\n private localeService: interfaces.applicationcore.ILocaleService,\r\n private forexService: interfaces.forex.IForexService,\r\n private customerService: interfaces.master.ICustomerService,\r\n public paymentMethodService: services.master.paymentMethodService,\r\n private counterService: interfaces.master.ICounterService,\r\n private currencyService: interfaces.applicationcore.ICurrencyService,\r\n public bankService: interfaces.master.IBankService,\r\n private userAccountService: interfaces.applicationcore.IUserAccountService,\r\n private documentTypeService: interfaces.documentManagement.IDocumentTypeService,\r\n ) {\r\n this.fecId = $stateParams.fecId;\r\n\r\n this.forexHook = $transitions.onSuccess({\r\n to: 'auth.Forex.Update',\r\n from: 'auth.Forex.Update.**'\r\n }, () => {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n }, () => {\r\n return this.loadForex(this.fecId);\r\n });\r\n });\r\n\r\n var loadPromises: ng.IPromise[] = [];\r\n\r\n loadPromises.push(this.loadForex(this.fecId));\r\n\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n },\r\n () => {\r\n return $q.all(loadPromises);\r\n });\r\n }\r\n\r\n loadControls() {\r\n var promises = [];\r\n \r\n promises.push(this.getDocuments(this.showAll));\r\n promises.push(this.loadStatus());\r\n promises.push(this.loadMaturityTypes());\r\n \r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'pay.update'\r\n }, () => {\r\n return this.$q.all(promises);\r\n });\r\n }\r\n\r\n\r\n recalculateSurrenderBalances(){\r\n this.forex.AmountSurrendered = this.forex.forexSurrenderList\r\n .reduce((sum, current) => sum + current.Amount, 0);\r\n this.forex.AmountSurrenderedRemaining = this.forex.ContractAmount - this.forex.AmountSurrendered;\r\n }\r\n\r\n loadForex(Id: number) { \r\n\r\n return this.forexService.getForex().query({ Id: Id }, (data: interfaces.forex.IForex) => {\r\n\r\n this.forex = data;\r\n this.breadCrumbDesc = this.forex.Code;\r\n\r\n //this.isLoadingDetail = true;\r\n this.$timeout(() => \r\n {\r\n this.loadControls();\r\n this.gvwAllocations.data = this.forex.forexAllocationList;\r\n this.gvwSurrenders.data = this.forex.forexSurrenderList;\r\n\r\n\r\n this.recalculateSurrenderBalances();\r\n\r\n if (this.forex.typeId === 466)\r\n {\r\n this.gvwAllocations.columnDefs[4].visible = true;\r\n this.gvwAllocations.columnDefs[5].visible = false;\r\n }\r\n else if (this.forex.typeId === 467)\r\n {\r\n this.gvwAllocations.columnDefs[4].visible = false;\r\n this.gvwAllocations.columnDefs[5].visible = true;\r\n }\r\n else\r\n {\r\n this.gvwAllocations.columnDefs[3].visible = false;\r\n this.gvwAllocations.columnDefs[4].visible = false;\r\n this.gvwAllocations.columnDefs[5].visible = false;\r\n }\r\n\r\n /* this.gvwInvoices.data = this.payment.InvoiceList;\r\n this.gvwLC.data = this.payment.LetterOfCreditList;\r\n this.loadControls();\r\n this.isLoadingDetail = false;*/\r\n }\r\n );\r\n }\r\n , (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n }\r\n\r\n loadBanks() {\r\n return this.bankService.getDropdownList(this.forex.OwnerEntityId, \"\").query({\r\n }, (resultList) => {\r\n }).$promise; \r\n }\r\n\r\n loadContractTypes(){\r\n return this.classificationValueService.GetClassificationValueDropdownByClassification().query({\r\n classificationId: Enum.ClassificationEnum.ForexContractType\r\n }, (resultList) => {\r\n \r\n }).$promise;\r\n }\r\n\r\n \r\n loadMaturityTypes(){\r\n return this.classificationValueService.GetClassificationValueDropdownByClassification().query({\r\n classificationId: Enum.ClassificationEnum.ForexContactMaturity\r\n }, (resultList) => {\r\n this.maturityTypeModelList = resultList;\r\n }).$promise;\r\n }\r\n\r\n loadStatus() {\r\n this.forexStatus = {\r\n StatusName: this.forex.StatusName,\r\n Id: this.forex.Id,\r\n EntityId: this.forex.OwnerEntityId,\r\n CurrentStatusId: this.forex.StatusId,\r\n CurrentStatusComments: this.forex.StatusLastComments,\r\n CurrentStatusStampDate: this.forex.StatusLastUpdateStampDate,\r\n CurrentStatusStampFullName: this.forex.StatusLastUpdateStampFullName,\r\n CurrentStatusType: Enum.EnumStatusType.ForexContract ,\r\n EnumStatusType: Enum.EnumStatusType.ForexContract ,\r\n EnumStatusAuthorisationType: Enum.EnumStatusAuthorisationType.ForexContract,\r\n IsEditable: true\r\n };\r\n }\r\n\r\n\r\n contractTypeChanged(forexContractTypeModel: interfaces.applicationcore.IDropdownModel){\r\n if (forexContractTypeModel){\r\n this.forexContractTypeModel = forexContractTypeModel;\r\n\r\n if (this.forexContractTypeModel.Id == 415)\r\n {\r\n //Maturity Type = Date = 418\r\n var maturity = this.maturityTypeModelList.filter(x => x.Id == 418)[0];\r\n this.forex.MaturityType = maturity;\r\n }\r\n\r\n if (this.forexContractTypeModel.Id == 416)\r\n {\r\n //Maturity Type = Any Date Between = 419\r\n var maturity = this.maturityTypeModelList.filter(x => x.Id == 419)[0];\r\n this.forex.MaturityType= maturity;\r\n }\r\n \r\n if (this.forexContractTypeModel.Id == 417)\r\n {\r\n //Maturity Type = At Any Date Up To = 420\r\n var maturity = this.maturityTypeModelList.filter(x => x.Id == 420)[0];\r\n this.forex.MaturityType = maturity;\r\n } \r\n\r\n }\r\n }\r\n\r\n loadUsers(searchText: string) {\r\n if (this.forex) {\r\n return this.userAccountService.getDropdownList(searchText, this.forex.OwnerEntityId).query(\r\n (result: ng.resource.IResourceArray) => {\r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n } else {\r\n var defer = this.$q.defer();\r\n defer.resolve([]);\r\n return defer.promise;\r\n }\r\n }\r\n\r\n getDocuments(showAll:boolean) {\r\n return this.documentRepositoryService.getDocumentRepository().query({ referenceNumber: this.forex.Code, systemType: Enum.EnumSystemType.ForexContract, ownerEntityId: this.forex.OwnerEntityId,showall:showAll}, (documentRepository: interfaces.documentManagement.IDocumentRepository) => {\r\n this.documentRepository = documentRepository;\r\n\r\n if (this.documentRepository)\r\n this.loadDocumentTypes();\r\n\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n }\r\n\r\n refreshDocuments(showAll:boolean) {\r\n this.showAll = showAll;\r\n this.documentRepository = null;\r\n return this.getDocuments(showAll);\r\n }\r\n\r\n printDocuments() {\r\n this.$state.go(\"auth.Forex.Update.Documents\");\r\n }\r\n\r\n\r\n loadDocumentTypes() {\r\n\r\n return this.documentTypeService.getDocumentTypes().query({\r\n repTypeId: this.documentRepository.RepositoryTypeId,\r\n ownerEntityId: this.documentRepository.OwnerEntityId,\r\n referenceNumber: this.forex.Code\r\n }, (documentTypes: ng.resource.IResourceArray) => {\r\n this.documentTypes = documentTypes;\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n }\r\n\r\n\r\n saveForex() {\r\n return this.forexService.save().save(this.forex, (data: interfaces.applicationcore.IMessageHandler) => {\r\n this.generalService.displayMessageHandler(data);\r\n \r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n \r\n }).$promise;\r\n };\r\n\r\n Save() {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n }, () => {\r\n return this.saveForex().then((result) => {\r\n this.generalService.displayMessageHandler(result);\r\n\r\n \r\n /*if (this.apiAllocationList) {\r\n this.apiAllocationList.rowEdit.setRowsClean(this.forex.forexAllocationList);\r\n }\r\n\r\n if (this.apiSurrenderList) {\r\n this.apiSurrenderList.rowEdit.setRowsClean(this.forex.forexSurrenderList);\r\n }*/\r\n\r\n if (!result.HasErrorMessage) {\r\n this.$timeout(() => {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'pay.update'\r\n }, () => {\r\n return this.loadForex(this.fecId);\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n SaveClose() {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n }, () => {\r\n return this.saveForex().then(() => {\r\n this.Close();\r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n this.$anchorScroll(\"topAnchor\");\r\n });\r\n });\r\n }\r\n\r\n Close() {\r\n this.$state.go(\"^\");\r\n }\r\n\r\n \r\n updateStatus = (newStatusId: number, comments: string) => {\r\n var paramsObject: interfaces.master.IStatusChange = {\r\n referenceId: this.forex.Id,\r\n newStatusId: newStatusId,\r\n comments: comments\r\n };\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'pay.update'\r\n },\r\n () => {\r\n return this.saveForex().then(() => {\r\n this.forexService.changeStatus().save({}, paramsObject, (data: interfaces.applicationcore.IMessageHandler) => {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'pay.update'\r\n }, () => {\r\n this.selectedTab = 5;\r\n return this.loadForex(this.fecId);\r\n });\r\n \r\n this.generalService.displayMessageHandler(data);\r\n }, (failureData) => {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'pay.update'\r\n }, () => {\r\n this.selectedTab = 5;\r\n return this.loadForex(this.fecId);\r\n });\r\n \r\n this.generalService.displayMessageHandler(failureData.data);\r\n });\r\n }, () => {\r\n return;\r\n });\r\n });\r\n };\r\n\r\n\r\n registerSurrenderGridApi(gridApi: uiGrid.IGridApi) {\r\n \r\n this.apiSurrenderList = gridApi;\r\n this.apiSurrenderList.selection.on.rowSelectionChanged(this.$scope, (selected) => {\r\n this.selectedSurrender = selected;\r\n });\r\n\r\n this.$timeout(() => {\r\n if (this.selectedSurrender)\r\n this.apiSurrenderList.selection.selectRow(this.selectedSurrender.entity);\r\n });\r\n }\r\n\r\n\r\n gvwSurrenders: uiGrid.IGridOptions = {\r\n data: [],\r\n enableFiltering: true,\r\n useExternalFiltering: false,\r\n enableCellEdit: false,\r\n useExternalSorting: false,\r\n multiSelect: true,\r\n enableColumnResizing: true,\r\n enableRowSelection: true,\r\n enableFullRowSelection: true,\r\n paginationPageSizes: [25, 50, 75, 100],\r\n paginationPageSize: 25,\r\n useExternalPagination: false,\r\n enableRowHeaderSelection: true,\r\n enableHorizontalScrollbar: 2,\r\n enableVerticalScrollbar: 1,\r\n rowEditWaitInterval: -1,\r\n onRegisterApi: (gridApi) => { this.registerSurrenderGridApi(gridApi) },\r\n columnDefs: [{\r\n name: \"ID\",\r\n displayName: \"ID\",\r\n field: \"Id\",\r\n visible: false,\r\n enableFiltering: false\r\n },\r\n {\r\n name: \"EDIT\",\r\n displayName: \"\",\r\n enableFiltering: false,\r\n cellTemplate: `\r\n
\r\n \r\n
`,\r\n enableSorting: false,\r\n enableColumnMenu: false,\r\n width: 35,\r\n visible: true\r\n },\r\n {\r\n name: 'DateDrawn',\r\n displayName: 'Date Drawn',\r\n field: 'DateDrawn',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD | momentDateFilter: 'YYYY/MM/DD'}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n },\r\n {\r\n name: 'ValueDate',\r\n displayName: 'Value Date',\r\n field: 'ValueDate',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD | momentDateFilter: 'YYYY/MM/DD'}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n }, \r\n {\r\n name: \"Amount\",\r\n displayName: \"Amount\",\r\n field: \"Amount\",\r\n width: 180,\r\n cellClass: 'text-right',\r\n cellFilter: 'number: 2',\r\n filterHeaderTemplate: `\r\n
\r\n
\r\n \r\n
\r\n
`\r\n }\r\n ,{\r\n name: 'Type',\r\n displayName: 'Type',\r\n field: 'Type',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD .Display}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 180\r\n },\r\n {\r\n name: 'Reference1',\r\n displayName: 'Reference 1',\r\n field: 'Reference1',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n },\r\n {\r\n name: 'Reference2',\r\n displayName: 'Reference 2',\r\n field: 'Reference2',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n }]\r\n };\r\n\r\n\r\n\r\n registerGridApi(gridApi: uiGrid.IGridApi) {\r\n \r\n this.apiAllocationList = gridApi;\r\n this.apiAllocationList.selection.on.rowSelectionChanged(this.$scope, (selected) => {\r\n this.selectedAllocation = selected;\r\n });\r\n\r\n this.$timeout(() => {\r\n if (this.selectedAllocation)\r\n this.apiAllocationList.selection.selectRow(this.selectedAllocation.entity);\r\n });\r\n }\r\n\r\n gvwAllocations: uiGrid.IGridOptions = {\r\n data: [],\r\n enableFiltering: true,\r\n useExternalFiltering: false,\r\n enableCellEdit: false,\r\n useExternalSorting: false,\r\n multiSelect: true,\r\n enableColumnResizing: true,\r\n enableRowSelection: true,\r\n enableFullRowSelection: true,\r\n paginationPageSizes: [25, 50, 75, 100],\r\n paginationPageSize: 25,\r\n useExternalPagination: false,\r\n enableRowHeaderSelection: true,\r\n enableHorizontalScrollbar: 2,\r\n enableVerticalScrollbar: 1,\r\n rowEditWaitInterval: -1,\r\n onRegisterApi: (gridApi) => { this.registerGridApi(gridApi) },\r\n columnDefs: [{\r\n name: \"ID\",\r\n displayName: \"ID\",\r\n field: \"Id\",\r\n visible: false,\r\n enableFiltering: false\r\n },\r\n {\r\n name: \"EDIT\",\r\n displayName: \"\",\r\n enableFiltering: false,\r\n cellTemplate: `\r\n
\r\n \r\n
`,\r\n enableSorting: false,\r\n enableColumnMenu: false,\r\n width: 35,\r\n visible: true\r\n },\r\n {\r\n name: 'Entity',\r\n displayName: 'Entity',\r\n field: 'Entity',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD.Display}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n },\r\n {\r\n name: 'Company',\r\n displayName: 'Company',\r\n field: 'Company',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD.Display}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 300\r\n }, \r\n {\r\n name: 'PurchaseOrder',\r\n displayName: 'Purchase Order',\r\n field: 'PurchaseOrder',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD.Display}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 140,\r\n visible: true\r\n }, \r\n {\r\n name: 'SalesOrder',\r\n displayName: 'Sales Order',\r\n field: 'SalesOrder',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD.Display}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 140,\r\n visible: true\r\n },\r\n {\r\n name: \"Amount\",\r\n displayName: \"Amount\",\r\n field: \"Amount\",\r\n width: 180,\r\n cellClass: 'text-right',\r\n cellFilter: 'number: 2',\r\n filterHeaderTemplate: `\r\n
\r\n
\r\n \r\n
\r\n
`\r\n }\r\n ,\r\n {\r\n name: \"Balance\",\r\n displayName: \"Balance\",\r\n field: \"Balance\",\r\n width: 180,\r\n cellClass: 'text-right',\r\n cellFilter: 'number: 2',\r\n filterHeaderTemplate: `\r\n
\r\n
\r\n \r\n
\r\n
`\r\n }, {\r\n name: 'Currency',\r\n displayName: 'Currency',\r\n field: 'Currency',\r\n enableCellEditOnFocus: false,\r\n cellTemplate: `
{{MODEL_COL_FIELD.Code}}
`,\r\n enableSorting: false,\r\n enableCellEdit: false,\r\n width: 100\r\n },]\r\n };\r\n\r\n editForexAllocation(forexAllocation: interfaces.forex.IForexAllocation)\r\n {\r\n \r\n this.selectedAllocationEntity = forexAllocation;\r\n\r\n this.AddAllocation();\r\n }\r\n\r\n editForexSurrender(forexSurrender: interfaces.forex.IForexSurrender)\r\n {\r\n \r\n this.selectedSurrenderEntity = forexSurrender;\r\n\r\n this.AddSurrender();\r\n }\r\n\r\n recalculateBalances(){\r\n this.forex.AmountAllocated = this.forex.forexAllocationList\r\n .reduce((sum, current) => sum + current.Amount, 0);\r\n this.forex.AmountUnallocated = this.forex.ContractAmount - this.forex.AmountAllocated;\r\n }\r\n\r\n RemoveSurrender(){\r\n if (this.apiSurrenderList && this.apiSurrenderList.selection.getSelectedRows().length > 0) {\r\n\r\n this.generalService.displayConfirmationBox(\"Confirm Remove\", \"Are you sure you want to remove the surrender?\").then((result) => {\r\n var selectedRow: interfaces.forex.IForexSurrender = this.apiSurrenderList.selection.getSelectedRows()[0];\r\n\r\n if (result && (!selectedRow.Id || selectedRow.Id <= 0)) {\r\n _.remove(this.forex.forexSurrenderList, selectedRow);\r\n _.remove(this.gvwSurrenders.data, (o) => { return selectedRow === o;});\r\n\r\n } else if(result) {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n },\r\n () => {\r\n return this.forexService.removeSurrender(selectedRow.Id).remove((result) => {\r\n this.generalService.displayMessageHandler(result);\r\n if (!result.HasErrorMessage){\r\n this.loadForex(this.$stateParams.fecId);\r\n this.selectedSurrender = null;\r\n this.selectedSurrenderEntity = null;\r\n this.apiSurrenderList.selection.clearSelectedRows();\r\n \r\n }\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n });\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n else\r\n {\r\n this.generalService.displayMessage(\"Please select a Surrender to remove\", Enum.EnumMessageType.Warning);\r\n }\r\n }\r\n\r\n\r\n RemoveAllocation(){\r\n if (this.apiAllocationList && this.apiAllocationList.selection.getSelectedRows().length > 0) {\r\n\r\n this.generalService.displayConfirmationBox(\"Confirm Remove\", \"Are you sure you want to remove the allocation?\").then((result) => {\r\n var selectedRow: interfaces.forex.IForexAllocation = this.apiAllocationList.selection.getSelectedRows()[0];\r\n\r\n if (result && (!selectedRow.Id || selectedRow.Id <= 0)) {\r\n _.remove(this.forex.forexAllocationList, selectedRow);\r\n _.remove(this.gvwAllocations.data, (o) => { return selectedRow === o;});\r\n\r\n } else if(result) {\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n },\r\n () => {\r\n return this.forexService.removeAllocation(selectedRow.Id).remove((result) => {\r\n this.generalService.displayMessageHandler(result);\r\n if (!result.HasErrorMessage){\r\n this.loadForex(this.$stateParams.fecId);\r\n this.selectedAllocation = null;\r\n this.selectedAllocationEntity = null;\r\n this.apiAllocationList.selection.clearSelectedRows();\r\n \r\n }\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n });\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n else\r\n {\r\n this.generalService.displayMessage(\"Please select an allocation to remove\", Enum.EnumMessageType.Warning);\r\n }\r\n }\r\n\r\n AddSurrender(){\r\n this.$uibModal.open({\r\n animation: true,\r\n size: \"md\",\r\n template: `

Forex Contract Surrender

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{addNewCtrl.DateDrawn | momentDateFilter: 'YYYY/MM/DD'}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

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

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

\r\n \r\n {{addNewCtrl.currencyModel.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 \r\n
\r\n
\r\n

\r\n \r\n

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

\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n `,\r\n controller: class addNewCtrl {\r\n \r\n Allocation: interfaces.applicationcore.IDropdownModel;\r\n AllocationList: interfaces.applicationcore.IDropdownModel[] = [];\r\n forexSurrender: interfaces.forex.IForexSurrender;\r\n ValueDate: moment.Moment;\r\n DateDrawn: moment.Moment; \r\n Amount: number = 0;\r\n Type: interfaces.applicationcore.IDropdownModel;\r\n Reference1: string;\r\n Reference2: string;\r\n\r\n\r\n SaveBtnText : string = \"Add\"\r\n\r\n loadPromises: ng.IPromise[];\r\n\r\n disabled : boolean = false;\r\n\r\n constructor($scope, private $uibModalInstance: angular.ui.bootstrap.IModalInstanceService,\r\n private countryService: interfaces.applicationcore.ICountryService,\r\n private entityService: interfaces.applicationcore.IEntityService,\r\n private refundSettingService: interfaces.master.IRefundSettingService,\r\n public generalService: interfaces.applicationcore.IGeneralService,\r\n private $rootScope: interfaces.applicationcore.IRootScope,\r\n private $state: ng.ui.IStateService,\r\n private refundClaimTypeService: interfaces.tariff.IRefundClaimTypeService,\r\n private classificationValueService: interfaces.applicationcore.IClassificationValueService,\r\n private supplierService: interfaces.master.ISupplierService,\r\n private customerService: interfaces.master.ICustomerService,\r\n private $q: ng.IQService,\r\n private forexService: interfaces.forex.IForexService,\r\n private forexSurrenderUpdate: interfaces.forex.IForexSurrender,\r\n private forex: interfaces.forex.IForex,\r\n private currencyModel: interfaces.applicationcore.IDropdownModel,\r\n ) {\r\n if (this.forexSurrenderUpdate){\r\n this.SaveBtnText = \"Save\";\r\n\r\n if (this.forexSurrenderUpdate.Type.Id === 615 || this.forexSurrenderUpdate.Type.Id === 617)\r\n {\r\n this.disabled = true;\r\n }\r\n }\r\n else\r\n {\r\n this.DateDrawn = moment.utc();\r\n }\r\n\r\n for (let forexAllocation of this.forex.forexAllocationList) {\r\n if (forexAllocation.Id){\r\n var Code : string = \"\";\r\n\r\n if(forexAllocation.PurchaseOrder)\r\n {\r\n Code = forexAllocation.Entity.Code + ' - ' + forexAllocation.PurchaseOrder.Display + ' - ' + forexAllocation.Amount;\r\n }\r\n else if(forexAllocation.SalesOrder)\r\n {\r\n Code = forexAllocation.Entity.Code + ' - ' + forexAllocation.SalesOrder.Display + ' - ' + forexAllocation.Amount;\r\n }\r\n else\r\n {\r\n Code = forexAllocation.Entity.Code+ ' - ' + forexAllocation.Amount;\r\n }\r\n\r\n var allocation : interfaces.applicationcore.IDropdownModel = {\r\n Id: forexAllocation.Id,\r\n Code: Code,\r\n Description: forexAllocation.Entity.Code ,\r\n Display: Code\r\n }\r\n this.AllocationList.push(allocation);\r\n\r\n }\r\n }\r\n\r\n this.loadControls();\r\n }\r\n\r\n GetEnabled(){\r\n return this.Allocation && this.Amount && this.Type && this.Reference1 && !this.disabled;\r\n }\r\n\r\n loadSurrenderTypes(){\r\n return this.classificationValueService.GetClassificationValueDropdownByClassification().query({\r\n classificationId: Enum.ClassificationEnum.SurrenderingType\r\n }, (resultList) => {\r\n \r\n }).$promise;\r\n }\r\n\r\n loadAllocations(){\r\n var defered = this.$q.defer();\r\n defered.resolve(this.AllocationList);\r\n return defered.promise;\r\n }\r\n\r\n loadControls() {\r\n this.loadPromises = []; \r\n this.loadPromises.push(this.loadSurrenderTypes()); \r\n return this.$q.all(this.loadPromises).then((data) => {\r\n //Now we can load the defaults AFTER all the dropdowns have been loaded\r\n\r\n if (this.forexSurrenderUpdate)\r\n {\r\n this.Allocation = this.forexSurrenderUpdate.Allocation;\r\n this.ValueDate = this.forexSurrenderUpdate.ValueDate;\r\n this.DateDrawn = this.forexSurrenderUpdate.DateDrawn;\r\n this.Amount = this.forexSurrenderUpdate.Amount;\r\n this.Type = this.forexSurrenderUpdate.Type;\r\n this.Reference1 = this.forexSurrenderUpdate.Reference1;\r\n this.Reference2 = this.forexSurrenderUpdate.Reference2; \r\n }\r\n }); \r\n }\r\n\r\n \r\n add() { \r\n \r\n this.forexSurrender = { Id: this.forexSurrenderUpdate? this.forexSurrenderUpdate.Id:0,\r\n index: this.forexSurrenderUpdate? this.forexSurrenderUpdate.index:0,\r\n Allocation : this.Allocation,\r\n ValueDate: this.ValueDate,\r\n DateDrawn: this.DateDrawn,\r\n Amount: this.Amount,\r\n Type: this.Type,\r\n Reference1: this.Reference1,\r\n Reference2: this.Reference2\r\n }\r\n this.$uibModalInstance.close(this.forexSurrender);\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.close(null);\r\n }\r\n },\r\n controllerAs: \"addNewCtrl\",\r\n resolve: { \r\n forexSurrenderUpdate : this.selectedSurrenderEntity? this.selectedSurrenderEntity: null,\r\n forex : this.forex,\r\n currencyModel: this.forex.Currency,\r\n }\r\n }).result.then((result : interfaces.forex.IForexSurrender) => {\r\n \r\n if (result) {\r\n if (this.selectedSurrender){\r\n\r\n this.selectedSurrender.entity = result; \r\n var alloc = this.forex.forexSurrenderList.filter(x => x.index == result.index)[0];\r\n \r\n alloc.Amount = result.Amount;\r\n alloc.Allocation = result.Allocation;\r\n alloc.DateDrawn = result.DateDrawn;\r\n alloc.ValueDate = result.ValueDate;\r\n alloc.Type = result.Type;\r\n alloc.Reference1 = result.Reference1;\r\n alloc.Reference2 = result.Reference2;\r\n\r\n if(this.apiSurrenderList){\r\n this.apiSurrenderList.rowEdit.setRowsDirty([this.selectedSurrender.entity]);\r\n }\r\n\r\n }\r\n else \r\n {\r\n result.index = this.forex.forexSurrenderList.length;\r\n this.forex.forexSurrenderList.push(result); \r\n\r\n if(this.apiSurrenderList){\r\n this.apiSurrenderList.rowEdit.setRowsDirty([result]);\r\n }\r\n }\r\n\r\n\r\n \r\n this.$timeout(() => {\r\n \r\n }); \r\n }\r\n\r\n \r\n this.selectedSurrender = null;\r\n this.selectedSurrenderEntity = null;\r\n this.apiSurrenderList.selection.clearSelectedRows();\r\n\r\n \r\n\r\n this.$timeout(() => {\r\n if (this.apiSurrenderList) {\r\n this.recalculateSurrenderBalances(); \r\n }\r\n }); \r\n\r\n \r\n\r\n });\r\n }\r\n\r\n TransferToCFCAccount(){\r\n this.$uibModal.open({\r\n animation: true,\r\n size: \"md\",\r\n template: `

Transfer to CFC 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 {{addNewCtrl.currencyModel.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 controller: class addNewCtrl {\r\n\r\n cfcAccountModel: interfaces.applicationcore.IDropdownModel;\r\n Amount: number = 0;\r\n\r\n constructor($scope, private $uibModalInstance: angular.ui.bootstrap.IModalInstanceService,\r\n private countryService: interfaces.applicationcore.ICountryService,\r\n private entityService: interfaces.applicationcore.IEntityService,\r\n private refundSettingService: interfaces.master.IRefundSettingService,\r\n public generalService: interfaces.applicationcore.IGeneralService,\r\n private $rootScope: interfaces.applicationcore.IRootScope,\r\n private $state: ng.ui.IStateService,\r\n private refundClaimTypeService: interfaces.tariff.IRefundClaimTypeService,\r\n private classificationValueService: interfaces.applicationcore.IClassificationValueService,\r\n private supplierService: interfaces.master.ISupplierService,\r\n private customerService: interfaces.master.ICustomerService,\r\n private $q: ng.IQService,\r\n private forexService: interfaces.forex.IForexService,\r\n private bsLoadingOverlayService,\r\n private fecId : number,\r\n private entityId: number,\r\n private currencyId: number,\r\n private currencyModel: interfaces.applicationcore.IDropdownModel,\r\n ){}\r\n \r\n cancel() {\r\n this.$uibModalInstance.close(null);\r\n }\r\n\r\n GetEnabled(){\r\n return this.cfcAccountModel && this.Amount;\r\n }\r\n\r\n transfer(){\r\n var cfcTransfer : interfaces.forex.ICFCTransfer = {fecContractFromId:this.fecId, cfcContractToId: this.cfcAccountModel.Id, amountToTransfer: this.Amount};\r\n this.$uibModalInstance.close(cfcTransfer);\r\n }\r\n\r\n loadCFCAccountList() {\r\n return this.forexService.getCfCDropdownList().query({\r\n ownerEntityId: this.entityId,\r\n currencyId: this.currencyId\r\n }, () => {\r\n \r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n }\r\n\r\n },\r\n controllerAs: \"addNewCtrl\",\r\n resolve: { \r\n fecId : this.forex.Id,\r\n entityId: this.forex.OwnerEntityId,\r\n currencyId: this.forex.Currency.Id,\r\n currencyModel: this.forex.Currency,\r\n }\r\n \r\n }).result.then((result : interfaces.forex.ICFCTransfer) => {\r\n if (result)\r\n {\r\n this.transfer(result.fecContractFromId,result.cfcContractToId,result.amountToTransfer);\r\n }\r\n });\r\n }\r\n\r\n\r\n transfer(fecId: number, cfcAccountId: number, Amount: number){\r\n this.bsLoadingOverlayService.wrap({\r\n referenceId: 'forex.update'\r\n },\r\n () => {\r\n return this.forexService.TransferToCFC(fecId,cfcAccountId,Amount).remove((result) => {\r\n this.generalService.displayMessageHandler(result);\r\n if (!result.HasErrorMessage){\r\n this.loadForex(this.$stateParams.fecId);\r\n \r\n }\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n }).$promise;\r\n });\r\n }\r\n\r\n AddAllocation(){\r\n this.$uibModal.open({\r\n animation: true,\r\n size: \"md\",\r\n template: `

Add Allocation

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n =2\"\r\n load-data=\"addNewCtrl.loadEntities(searchText)\" pagination-search=\"true\"\r\n refresh-delay=\"1000\" required=\"false\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n =2\" name=\"customer\" ng-model=\"addNewCtrl.customerModel\" load-data=\"addNewCtrl.loadCustomers(searchText)\" required=\"true\" pagination-search=\"true\" refresh-delay=\"1000\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n =2\" name=\"salesOrder\" ng-model=\"addNewCtrl.salesOrderModel\" load-data=\"addNewCtrl.loadSalesOrders(searchText)\" required=\"true\" pagination-search=\"true\" refresh-delay=\"1000\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n =2\" name=\"customer\" ng-model=\"addNewCtrl.supplierModel\" load-data=\"addNewCtrl.loadSuppliers(searchText)\" required=\"true\" pagination-search=\"true\" refresh-delay=\"1000\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n =2\" name=\"purchaseOrder\" ng-model=\"addNewCtrl.purchaseOrderModel\" load-data=\"addNewCtrl.loadPurchaseOrders(searchText)\" required=\"true\" pagination-search=\"true\" refresh-delay=\"1000\">\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

\r\n =2\" type=\"number\" ignore-wheel name=\"Amount\" ng-change=\"addNewCtrl.AmountChanged()\"\r\n ng-model=\"addNewCtrl.Amount\" class=\"form-control\" step=\"0.01\" />\r\n {{addNewCtrl.currencyModel.Code}}\r\n

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

\r\n =2\" type=\"number\" ignore-wheel name=\"Percentage\" ng-change=\"addNewCtrl.PercentageChanged()\"\r\n ng-model=\"addNewCtrl.Percentage\" class=\"form-control\" step=\"0.01\" />\r\n %\r\n

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

\r\n \r\n {{addNewCtrl.currencyModel.Code}}\r\n

\r\n
\r\n
\r\n of {{addNewCtrl.ContractAmount | number}} {{addNewCtrl.currencyModel.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 controller: class addNewCtrl {\r\n \r\n forexAllocation: interfaces.forex.IForexAllocation;\r\n ownerEntityModel: interfaces.applicationcore.IDropdownModel;\r\n supplierModel : interfaces.applicationcore.IDropdownModel;\r\n customerModel : interfaces.applicationcore.IDropdownModel;\r\n salesOrderModel : interfaces.applicationcore.IDropdownModel;\r\n purchaseOrderModel : interfaces.applicationcore.IDropdownModel;\r\n entityList: interfaces.applicationcore.IDropdownModel[];\r\n Amount: number = 0;\r\n Surrendered: number = 0;\r\n Percentage: number = 0;\r\n SaveBtnText : string = \"Add\"\r\n\r\n loadPromises: ng.IPromise[];\r\n\r\n\r\n constructor($scope, private $uibModalInstance: angular.ui.bootstrap.IModalInstanceService,\r\n private countryService: interfaces.applicationcore.ICountryService,\r\n private entityService: interfaces.applicationcore.IEntityService,\r\n private refundSettingService: interfaces.master.IRefundSettingService,\r\n public generalService: interfaces.applicationcore.IGeneralService,\r\n private $rootScope: interfaces.applicationcore.IRootScope,\r\n private $state: ng.ui.IStateService,\r\n private refundClaimTypeService: interfaces.tariff.IRefundClaimTypeService,\r\n private classificationValueService: interfaces.applicationcore.IClassificationValueService,\r\n private supplierService: interfaces.master.ISupplierService,\r\n private customerService: interfaces.master.ICustomerService,\r\n private $q: ng.IQService,\r\n private forexService: interfaces.forex.IForexService,\r\n private forexAllocationUpdate: interfaces.forex.IForexAllocation,\r\n private typeId : number,\r\n private currencyModel: interfaces.applicationcore.IDropdownModel,\r\n private entityId: number,\r\n private ContractAmount: number,\r\n private LockdownType : number,\r\n ) {\r\n if (this.forexAllocationUpdate){\r\n this.SaveBtnText = \"Save\";\r\n }\r\n this.loadControls();\r\n }\r\n\r\n GetEnabled(){\r\n if (this.typeId === 466) //Purchase\r\n return this.ownerEntityModel && this.supplierModel && this.purchaseOrderModel && this.Amount;\r\n else\r\n return this.ownerEntityModel && this.customerModel && this.salesOrderModel && this.Amount;\r\n }\r\n\r\n loadEntities(searchText: string) {\r\n return this.entityService.getDropdownList(searchText).query(\r\n (data: interfaces.applicationcore.IDropdownModel[]) => {\r\n this.entityList = data;\r\n }, (failureData) => {\r\n }).$promise;\r\n }\r\n\r\n ownerEntityChanged(){\r\n this.supplierModel = null;\r\n this.customerModel = null;\r\n this.salesOrderModel = null;\r\n this.purchaseOrderModel = null;\r\n }\r\n\r\n AmountChanged(){\r\n this.Percentage = (this.Amount / this.ContractAmount) * 100\r\n }\r\n\r\n PercentageChanged(){\r\n if (this.Percentage)\r\n {\r\n this.Amount = (this.Percentage/100) * this.ContractAmount;\r\n }\r\n }\r\n\r\n loadControls() {\r\n this.loadPromises = []; \r\n this.loadPromises.push(this.loadEntities('')); \r\n return this.$q.all(this.loadPromises).then((data) => {\r\n //Now we can load the defaults AFTER all the dropdowns have been loaded\r\n this.ownerEntityModel = this.entityList.filter(x => x.Id == this.entityId)[0];\r\n\r\n if (this.forexAllocationUpdate)\r\n {\r\n this.ownerEntityModel = this.forexAllocationUpdate.Entity;\r\n\r\n if (this.typeId === 466)\r\n {\r\n this.supplierModel = this.forexAllocationUpdate.Company;\r\n this.purchaseOrderModel = this.forexAllocationUpdate.PurchaseOrder;\r\n }\r\n else\r\n {\r\n this.customerModel = this.forexAllocationUpdate.Company;\r\n this.salesOrderModel = this.forexAllocationUpdate.SalesOrder;\r\n }\r\n\r\n this.Amount = this.forexAllocationUpdate.Amount; \r\n this.AmountChanged(); \r\n }\r\n }); \r\n }\r\n\r\n loadPurchaseOrders(searchText: string) {\r\n return this.forexService.getPODropdownList().query({\r\n ownerEntityId: this.ownerEntityModel.Id,\r\n supplierId: this.supplierModel.Id,\r\n currencyId: this.currencyModel.Id,\r\n searchText: searchText\r\n }, () => {\r\n \r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n }\r\n\r\n loadSalesOrders(searchText: string) {\r\n return this.forexService.getSODropdownList().query({\r\n ownerEntityId: this.ownerEntityModel.Id,\r\n customerId: this.customerModel.Id,\r\n currencyId: this.currencyModel.Id,\r\n searchText: searchText\r\n }, () => {\r\n \r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n } \r\n\r\n //Load Suppliers\r\n loadSuppliers(searchText: string)\r\n {\r\n if (this.ownerEntityModel) {\r\n return this.supplierService.getSupplierDropdown(this.ownerEntityModel.Id, searchText).query(() => {\r\n \r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n } else {\r\n var defer = this.$q.defer();\r\n defer.resolve([]);\r\n return defer.promise;\r\n }\r\n }\r\n \r\n //Load Customers\r\n loadCustomers(searchText: string) {\r\n if (this.ownerEntityModel) {\r\n return this.customerService.getDropdownList(this.ownerEntityModel.Id, searchText).query(() => {\r\n \r\n }, (failureData) => {\r\n this.generalService.displayMessageHandler(failureData.data);\r\n }).$promise;\r\n } else {\r\n var defer = this.$q.defer();\r\n defer.resolve([]);\r\n return defer.promise;\r\n }\r\n }\r\n \r\n\r\n add() { \r\n \r\n if (this.purchaseOrderModel && !this.forexAllocationUpdate) {\r\n this.purchaseOrderModel.Display = this.purchaseOrderModel.Code; \r\n }\r\n if (this.salesOrderModel && !this.forexAllocationUpdate){\r\n this.salesOrderModel.Display = this.salesOrderModel.Code;\r\n }\r\n\r\n this.forexAllocation = { Id: this.forexAllocationUpdate? this.forexAllocationUpdate.Id:0,\r\n index: this.forexAllocationUpdate? this.forexAllocationUpdate.index:0,\r\n Entity: this.ownerEntityModel, \r\n Company: this.customerModel?this.customerModel : this.supplierModel,\r\n SalesOrder: this.salesOrderModel,\r\n PurchaseOrder: this.purchaseOrderModel,\r\n Amount: this.Amount,\r\n Balance: this.Amount,\r\n SurrenderedAmount: 0,\r\n Currency: this.currencyModel\r\n }\r\n this.$uibModalInstance.close(this.forexAllocation);\r\n }\r\n\r\n cancel() {\r\n this.$uibModalInstance.close(null);\r\n }\r\n },\r\n controllerAs: \"addNewCtrl\",\r\n resolve: { \r\n forexAllocationUpdate : this.selectedAllocationEntity? this.selectedAllocationEntity: null,\r\n typeId: this.forex.typeId,\r\n currencyModel: this.forex.Currency,\r\n entityId: this.forex.OwnerEntityId,\r\n ContractAmount: this.forex.ContractAmount,\r\n LockdownType: this.forex.LockdownType\r\n }\r\n }).result.then((result : interfaces.forex.IForexAllocation) => {\r\n \r\n if (result) {\r\n if (this.selectedAllocation){\r\n \r\n this.selectedAllocation.entity = result; \r\n var alloc = this.forex.forexAllocationList.filter(x => x.index == result.index)[0];\r\n \r\n alloc.Amount = result.Amount;\r\n alloc.Balance = result.Balance;\r\n alloc.Entity = result.Entity;\r\n alloc.Company = result.Company;\r\n alloc.SalesOrder = result.SalesOrder;\r\n alloc.PurchaseOrder = result.PurchaseOrder;\r\n \r\n if(this.apiAllocationList){\r\n this.apiAllocationList.rowEdit.setRowsDirty([this.selectedAllocation.entity]);\r\n }\r\n\r\n }\r\n else \r\n {\r\n result.index = this.forex.forexAllocationList.length;\r\n this.forex.forexAllocationList.push(result); \r\n\r\n if(this.apiAllocationList){\r\n this.apiAllocationList.rowEdit.setRowsDirty([result]);\r\n }\r\n\r\n }\r\n\r\n\r\n \r\n this.$timeout(() => {\r\n \r\n }); \r\n }\r\n\r\n \r\n this.selectedAllocation = null;\r\n this.selectedAllocationEntity = null;\r\n this.apiAllocationList.selection.clearSelectedRows();\r\n\r\n \r\n\r\n this.$timeout(() => {\r\n if (this.apiAllocationList) {\r\n this.recalculateBalances(); \r\n }\r\n }); \r\n\r\n \r\n\r\n });\r\n }\r\n\r\n\r\n }//end class\r\n\r\n\r\n angular.module(\"app\").controller(\"forexUpdateCtrl\", controllers.forex.forexUpdateCtrl);\r\n } //end module\r\n} //end controllers"]}