/** * niceCurrencyFilter formaterar om datumsträngar till en mer läsbar form * * * @param input Värde att formatera om * @param round Anger om värdet ska avrundas. Default är false * @param abs Anger om absolutbeslopp ska tas på värdet. Default är false * @param suffix Suffix för valuta. Om detta inte anges används kontorets valuta-suffix */ // Angular imports // import { Pipe, PipeTransform, Inject } from '@angular/core'; // Components // import * as statics from '@fb/statics'; @Pipe({ name: 'niceCurrency' }) export class NiceCurrencyPipe implements PipeTransform { constructor( @Inject('CommonService') private readonly commonService: fb.ICommonService, ) { } transform(input: number, useRound: boolean, useAbs: boolean, suffix: string): string { if (!statics.isDefined(input)) { return null; } if (!statics.isDefined(suffix)) { suffix = this.commonService.getKontorsValutaSuffix(); if (!statics.isDefined(suffix)) { suffix = ''; // Kan inte få reda på suffix från kontor, skippa } } let ret: string = ''; input = input * 1; if (useRound) { input = Math.round(input); } if (useAbs) { input = Math.abs(input); } const inputStr: string = input + ''; for (let i: number = 0; i < inputStr.length; i = i + 3) { let take: number = 3; let groupAt: number = inputStr.length - 3 - i; if (groupAt <= 0) { take = take + groupAt; groupAt = 0; } ret = inputStr.substr(groupAt, take) + ' ' + ret; } // Ta bort trailande mellanslaget if (suffix === '') { ret = ret.substr(0, ret.length - 1); } return ret + suffix; } }