@phasesdk/api-client-for-economic
Version:
e-conomic REST API Library for Node.js is a powerful tool designed to simplify integration with the e-conomic platform for developers building Node.js applications. With this library, developers can effortlessly leverage the full functionality of the e-co
332 lines (331 loc) • 10.6 kB
TypeScript
import RestApi from "../../modules/RestApi";
import { AuthToken, EconomicResponse, Pagination } from "../../types/Economic.type";
import { HttpResponse } from "../../types/Http.type";
export declare enum EntryType {
FinanceVoucher = "financeVoucher",
SupplierInvoice = "supplierInvoice",
SupplierPayment = "supplierPayment",
CustomerPayment = "customerPayment",
ManualCustomerInvoice = "manualCustomerInvoice"
}
export type ContraAccountInfo = {
accountNumber: number;
self: string;
};
export type VoucherNumbers = {
maximumVoucherNumber: number;
minimumVoucherNumber: number;
};
export type Settings = {
contraAccounts: {
customerPayments: ContraAccountInfo;
financeVouchers: ContraAccountInfo;
supplierPayments: ContraAccountInfo;
};
entryTypeRestrictedTo: EntryType;
voucherNumbers: VoucherNumbers;
};
export type Templates = {
financeVoucher: string;
manualCustomerInvoice: string;
self: string;
};
export type Journal = {
entries: Entries;
journalNumber: number;
metaData: Record<string, unknown>;
name: string;
pagination: Record<string, unknown>;
self: string;
settings: Settings;
templates: Templates;
vouchers: string;
};
export type JournalNumber = {
entries: Entries;
journalNumber: number;
name: string;
self: string;
settings: Settings;
templates: Templates;
vouchers: string;
};
export type AccountingYear = {
self: string;
year: string;
};
export type ContraAccount = {
accountNumber: number;
self: string;
};
export type ContraVatAccount = {
self: string;
vatCode: string;
};
export type Currency = {
code: string;
self: string;
};
export type Customer = {
customerNumber: number;
self: string;
};
export type DepartmentalDistribution = {
departmentalDistributionNumber: number;
distributionType: string;
self: string;
};
export type Employee = {
employeeNumber: number;
self: string;
};
export type VoucherEntry = {
self: string;
voucherNumber: number;
};
export type BaseTransaction = {
amount: number;
amountBaseCurrency: number;
contraAccount?: ContraAccount;
contraVatAccount?: ContraVatAccount;
contraVatAmount: number;
contraVatAmountInBaseCurrency: number;
currency: Currency;
departmentalDistribution?: DepartmentalDistribution;
employee?: Employee;
entryType: EntryType;
exchangeRate: number;
journal: Journal;
remainder: number;
remainderInDefaultCurrency: number;
text: string;
voucher: VoucherEntry;
};
export type CustomerPayment = BaseTransaction & {
customer?: Customer;
customerInvoice: number;
date: string;
entryType: EntryType.CustomerPayment;
};
export type FinanceVoucher = BaseTransaction & {
account: ContraAccount;
date: string;
entryType: EntryType.FinanceVoucher;
};
export type ManualCustomerInvoice = BaseTransaction & {
customer?: Customer;
customerInvoice: number;
date: string;
dueDate: string;
entryType: EntryType.ManualCustomerInvoice;
};
export type Supplier = {
supplierNumber: number;
self: string;
};
export type SupplierInvoice = BaseTransaction & {
date: string;
dueDate: string;
entryType: EntryType.SupplierInvoice;
};
export type SupplierPayment = BaseTransaction & {
supplier?: Supplier;
supplierInvoiceNumber: string;
date: string;
entryType: EntryType.SupplierPayment;
};
export type Entries = {
customerPayments: CustomerPayment[];
financeVouchers: FinanceVoucher[];
manualCustomerInvoices: ManualCustomerInvoice[];
supplierInvoices: SupplierInvoice[];
supplierPayments: SupplierPayment[];
};
export type Voucher = {
accountingYear: AccountingYear;
entries: Entries;
journal: Journal;
voucherNumber: number;
self: string;
};
export type VoucherNumber = {
accountingYear: AccountingYear;
attachment: string;
entries: Entries;
};
export type CreateVoucher = {
accountingYear: AccountingYear;
entries: Entries;
journal: Journal;
voucherNumber: number;
};
export type Attachment = {
self: string;
createdAt: string;
description: string;
file: string;
pages: number;
};
export type Account = {
accountNumber?: number;
self: string;
};
export type PaymentDetails = {
paymentType: {
paymentTypeNumber?: number;
self: string;
};
};
export type JournalEntries = {
account: Account;
contraAccount: ContraAccount;
contraVatAccount: ContraVatAccount;
currency: Currency;
customer: Customer;
employee: Employee;
journal: Journal;
paymentDetails: PaymentDetails;
supplier: Supplier;
voucher: Voucher;
self: string;
amount?: number;
amountDefaultCurrency?: number;
contraVatAmount?: number;
date?: string;
entryType?: EntryType;
exchangeRate?: number;
journalEntryNumber?: number;
text?: string;
};
export type EntryNumber = {
account: Account;
contraAccount: ContraAccount;
contraVatAccount: ContraVatAccount;
currency: Currency;
customer: Customer;
employee: Employee;
journal: Journal;
paymentDetails: PaymentDetails;
supplier: Supplier;
voucher: Voucher;
self: string;
amount?: number;
amountDefaultCurrency?: number;
contraVatAmount?: number;
date?: string;
entryType?: string;
exchangeRate?: number;
journalEntryNumber?: number;
text?: string;
};
export type JournalTemplate = {
financeVoucher?: string;
manualCustomerInvoice?: string;
self: string;
};
export type FinanceVoucherTemplate = {
account?: string;
contraAccount?: string;
self: string;
};
export type ManualCustomerInvoiceTemplate = {
customer: Customer;
metaData?: object;
pagination?: object;
self: string;
};
export default class Journals extends RestApi {
/**
* @constructor
*/
constructor(props: AuthToken);
/**
* Root for the journal endpoint.
*
* @see https://restdocs.e-conomic.com/#get-journals
* @returns {Promise<HttpResponse>}
*
*/
getJournals(offset?: number, limit?: number): Promise<HttpResponse<EconomicResponse<Journal[], Pagination, any>>>;
/**
* Root for the journal endpoint.
*
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber
*
*/
getJournalNumber(journalNumber: number): Promise<HttpResponse<JournalNumber>>;
/**
* Root for the voucher endpoint.
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-vouchers
* @returns {Promise<HttpResponse>}
*
*/
getVouchers(journalNumber: number, skipPages?: number, limit?: number): Promise<HttpResponse<EconomicResponse<Voucher[], Pagination, any>>>;
/**
* Create vouchers
* @see https://restdocs.e-conomic.com/#post-journals-journalnumber-vouchers
* @returns {Promise<HttpResponse<CreateVoucher>>}
*/
createVoucher(journalNumber: number, voucher: CreateVoucher): Promise<HttpResponse<CreateVoucher>>;
/**
* Get voucher number
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-vouchers-accountingyear-vouchernumber
* @returns {Promise<HttpResponse<VoucherNumber>>}
*/
getVoucherNumber(journalNumber: number, voucherNumber: number): Promise<HttpResponse<VoucherNumber>>;
/**
* Get number of pages available on the document.
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-vouchers-accountingyear-vouchernumber-attachment
* @returns {Promise<HttpResponse<Attachment>>}
*/
getAttachment(journalNumber: number, voucherNumber: number): Promise<HttpResponse<Attachment>>;
/**
* Get the file attachment for the given voucher
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-vouchers-accountingyear-vouchernumber-attachment-file
* @returns {Promise<HttpResponse<any>>}
*/
getAttachedFile(journalNumber: number, voucherNumber: number): Promise<HttpResponse<any>>;
/**
* Attaching a document to the voucher
* @see https://restdocs.e-conomic.com/#post-journals-journalnumber-vouchers-accountingyear-vouchernumber-attachment-file
* @returns {Promise<HttpResponse<any>>}
*/
attachFile(journalNumber: number, voucherNumber: number): Promise<HttpResponse<any>>;
/**
* Attach more pages to the file, that is associated with the voucher.
* @see https://restdocs.e-conomic.com/#patch-journals-journalnumber-vouchers-accountingyear-vouchernumber-attachment-file
* @returns {Promise<HttpResponse<any>>}
*/
attachFiles(journalNumber: number, voucherNumber: number): Promise<HttpResponse<any>>;
/**
* Returns a collection of all entries in the journal
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-entries
* @returns {Promise<HttpResponse>}
*
*/
getEntries(journalNumber: number, skipPages?: number, limit?: number): Promise<HttpResponse<EconomicResponse<JournalEntries[], Pagination, any>>>;
/**
* Get entry number
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-entries-entrynumber
* @returns {Promise<HttpResponse<EntryNumber>>}
*/
getEntryNumber(journalNumber: number, entryNumber: number): Promise<HttpResponse<EntryNumber>>;
/**
* Returns the templates available for journal entries.
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-templates
* @returns {Promise<HttpResponse<JournalTemplate>>}
*/
getJournalTemplate(journalNumber: number): Promise<HttpResponse<JournalTemplate>>;
/**
* Returns a template that sets the boilerplate for a finance voucher entry
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-templates-financevoucher
* @returns {Promise<HttpResponse<FinanceVoucherTemplate>>}
*/
getFinanceVoucherTemplate(journalNumber: number): Promise<HttpResponse<FinanceVoucherTemplate>>;
/**
* Returns a template that sets the boilerplate for a manual customer invoice
* @see https://restdocs.e-conomic.com/#get-journals-journalnumber-templates-financevoucher
* @returns {Promise<HttpResponse<ManualCustomerInvoiceTemplate[]>>}
*/
getManualCustomerInvoiceTemplates(journalNumber: number, skipPages?: number, limit?: number): Promise<HttpResponse<EconomicResponse<ManualCustomerInvoiceTemplate[], Pagination, any>>>;
}