@fin.cx/skr
Version:
SKR03 and SKR04 German accounting standards for double-entry bookkeeping
38 lines (37 loc) • 1.47 kB
TypeScript
import * as plugins from './plugins.js';
import type { TSKRType, TTransactionStatus, ITransactionData } from './skr.types.js';
declare const SmartDataDbDoc: typeof plugins.smartdata.SmartDataDbDoc;
export declare class Transaction extends SmartDataDbDoc<Transaction, Transaction> {
id: string;
transactionNumber: string;
date: Date;
debitAccount: string;
creditAccount: string;
amount: number;
description: string;
reference: string;
skrType: TSKRType;
vatAmount: number;
costCenter: string;
status: TTransactionStatus;
reversalOf: string;
reversedBy: string;
period: string;
fiscalYear: number;
createdAt: Date;
postedAt: Date;
createdBy: string;
constructor(data?: Partial<ITransactionData>);
private generateTransactionNumber;
static createTransaction(data: ITransactionData): Promise<Transaction>;
static getTransactionById(id: string): Promise<Transaction | null>;
static getTransactionsByAccount(accountNumber: string, skrType: TSKRType): Promise<Transaction[]>;
static getTransactionsByPeriod(period: string, skrType: TSKRType): Promise<Transaction[]>;
static getTransactionsByDateRange(dateFrom: Date, dateTo: Date, skrType: TSKRType): Promise<Transaction[]>;
validateAndPost(): Promise<void>;
private validateTransaction;
private updateAccountBalances;
reverseTransaction(): Promise<Transaction>;
beforeSave(): Promise<void>;
}
export {};