import { Pipe, PipeTransform } from '@angular/core'; import { CurrencyService } from '@core/services/currency.service'; import { Payment } from '@core/typings/payment.typing'; import { AwardService } from '@features/awards/award.service'; import { ClientSettingsService } from '@features/client-settings/client-settings.service'; @Pipe({ name: 'gcPaymentSum' }) export class PaymentSumPipe implements PipeTransform { constructor ( private awardService: AwardService, private clientSettingsService: ClientSettingsService, private currencyService: CurrencyService ) { } transform ( payments: Partial[], returnDefault = true, currencyRequested = this.clientSettingsService.defaultCurrency, showCurrencyAtEnd = false ) { const total = this.awardService.sumPayments( payments, returnDefault ); const currency = returnDefault ? this.clientSettingsService.defaultCurrency : currencyRequested; return this.currencyService.formatMoney(total, currency) + (showCurrencyAtEnd ? ` ${ currency}` : ''); } }