UNPKG

@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
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>>>; }