@tomei/finance
Version:
NestJS package for finance module
42 lines • 2.08 kB
TypeScript
import Payment from '../payment/payment';
import FinanceCustomerBase from '../customer/customer';
import Account from '../account/account';
import JournalEntry from '../journal-entry/journal-entry';
import Document from '../document/document';
import { DocumentStatus } from '../enum/document-status.enum';
import { ICreateCreditNotePayload } from './create-credit-note-payload.interface';
import { ICreditNote } from './credit-note.interface';
export interface IAccountSystem {
createAccount(Account: Account, dbTransaction?: any): Promise<string>;
createInvoice(payload: {
customer: FinanceCustomerBase;
invoice: Document;
paymentMode: 'cash' | 'credit';
tagIds?: string[];
discount?: {
type: 'percentage' | 'fixed';
value: number;
};
}, dbTransaction?: any): Promise<{
invoiceRefId: string;
invoiceItems: {
name: string;
itemRefId: string;
}[];
invoiceNo: string;
}>;
createDebitNote(payload: any, dbTransaction?: any): Promise<any>;
createCreditNote(payload: ICreateCreditNotePayload, dbTransaction?: any): Promise<ICreditNote>;
postTransaction(journalEntry: JournalEntry, dbTransaction?: any): Promise<any>;
createCustomer(customer: FinanceCustomerBase, dbTransaction?: any): Promise<string>;
updateCustomer(customer: FinanceCustomerBase, dbTransaction?: any): Promise<any>;
makePayment(customer: FinanceCustomerBase, paymentInfo: Payment, dbTransaction?: any): Promise<string>;
collectPayments(customer: FinanceCustomerBase, paymentInfo: Payment, dbTransaction?: any): Promise<string>;
postJournalEntry(payload: any): Promise<string>;
getInvoiceStatus(AccSystemRefId: any): Promise<DocumentStatus>;
findTagId(tagName: string): Promise<string>;
createTag(tagName: string, tagGroupName?: string): Promise<string>;
findTagGroupId(tagGroupName: string): Promise<string>;
createTagGroup(tagGroupName: string): Promise<string>;
}
//# sourceMappingURL=account-system.interface.d.ts.map