Browse Source
			 
			
			Bugfix/fix activities import for manual data source (#2923 ) 
 
 
			
				* Fix import
* Update changelog 
			
			
				 pull/2930/head 
			
			
		 
		
			
				
					
						 
						Thomas Kaul 
					
					2 years ago  
					
						
							 committed by 
							
								 
								GitHub 
							
						 
					
				 
				
			 
		 
		
			
				
					 
					No known key found for this signature in database
					
						
							GPG Key ID:   B5690EEEBB952194 
						
					
				
			
		
		
		
	
		
			
				 3 changed files  with 
39 additions  and 
22 deletions 
			 
			
		 
		
			
				
					
					
					  
					CHANGELOG.md 
				 
			
				
					
					
					  
					apps/api/src/app/import/import.service.ts 
				 
			
				
					
					
					  
					apps/api/src/services/data-provider/manual/manual.service.ts 
				 
			
		 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					### Fixed 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					- Fixed the import for activities with `MANUAL`  data source and type `FEE` , `INTEREST` , `ITEM`  or `LIABILITY`  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					- Removed holdings with incomplete data from the _Top 3_  and _Bottom 3_  performers on the analysis page 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					## 2.44.0 - 2024-01-24 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
						
					 
				
				 
				
					 
				
			 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -575,7 +575,7 @@ export class ImportService { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    for  ( const  [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      index ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      {  currency ,  dataSource ,  symbol  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      {  currency ,  dataSource ,  symbol ,  type   }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ]  of  uniqueActivitiesDto . entries ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      if  ( ! this . configurationService . get ( 'DATA_SOURCES' ) . includes ( dataSource ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        throw  new  Error (  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -583,12 +583,16 @@ export class ImportService { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  assetProfile  =  (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  assetProfile  =  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        currency ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        . . . (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          await  this . dataProviderService . getAssetProfiles ( [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            {  dataSource ,  symbol  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          ] )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ) ? . [ symbol ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) ? . [ symbol ]  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      if  ( type  ===  'BUY'  ||  type  ===  'DIVIDEND'  ||  type  ===  'SELL' )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( ! assetProfile ? . name )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          throw  new  Error (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            ` activities. ${ index } .symbol (" ${ symbol } ") is not valid for the specified data source (" ${ dataSource } ") `  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -606,6 +610,7 @@ export class ImportService { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            ` activities. ${ index } .currency (" ${ currency } ") does not match with " ${ assetProfile . currency } " and no exchange rate is available from " ${ currency } " to " ${ assetProfile . currency } " `  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      assetProfiles [ getAssetProfileIdentifier ( {  dataSource ,  symbol  } ) ]  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        assetProfile ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
						
					 
				
				 
				
					 
				
			 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -42,10 +42,21 @@ export class ManualService implements DataProviderInterface { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  async  getAssetProfile (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    aSymbol : string  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  ) :  Promise < Partial < SymbolProfile > >  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return   {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  assetProfile : Partial < SymbolProfile >  =   {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      dataSource : this.getName ( ) ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      symbol :  aSymbol  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  [ symbolProfile ]  =  await  this . symbolProfileService . getSymbolProfiles ( [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      {  dataSource : this.getName ( ) ,  symbol :  aSymbol  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( symbolProfile )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      assetProfile . currency  =  symbolProfile . currency ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      assetProfile . name  =  symbolProfile . name ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  assetProfile ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  async  getDividends ( { } :  GetDividendsParams )  {