mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 06:10:31 +00:00
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { Inject, Injectable } from '@nestjs/common';
|
|
import { TransformerInjectable } from '@/modules/Transformer/TransformerInjectable.service';
|
|
import { RefundCreditNote } from '../models/RefundCreditNote';
|
|
import { RefundCreditNoteTransformer } from '@/modules/CreditNotes/queries/RefundCreditNoteTransformer';
|
|
import { IRefundCreditNotePOJO } from '../types/CreditNoteRefunds.types';
|
|
import { TenantModelProxy } from '@/modules/System/models/TenantBaseModel';
|
|
|
|
@Injectable()
|
|
export class ListCreditNoteRefunds {
|
|
constructor(
|
|
private readonly transformer: TransformerInjectable,
|
|
|
|
@Inject(RefundCreditNote.name)
|
|
private readonly refundCreditNoteModel: TenantModelProxy<
|
|
typeof RefundCreditNote
|
|
>,
|
|
) {}
|
|
|
|
/**
|
|
* Retrieve the credit note graph.
|
|
* @param {number} creditNoteId
|
|
* @returns {Promise<IRefundCreditNotePOJO[]>}
|
|
*/
|
|
public async getCreditNoteRefunds(
|
|
creditNoteId: number,
|
|
): Promise<IRefundCreditNotePOJO[]> {
|
|
// Retrieve refund credit notes associated to the given credit note.
|
|
const refundCreditTransactions = await this.refundCreditNoteModel()
|
|
.query()
|
|
.where('creditNoteId', creditNoteId)
|
|
.withGraphFetched('creditNote')
|
|
.withGraphFetched('fromAccount');
|
|
|
|
// Transforms refund credit note models to POJO objects.
|
|
return this.transformer.transform(
|
|
refundCreditTransactions,
|
|
new RefundCreditNoteTransformer(),
|
|
);
|
|
}
|
|
}
|