Files
bigcapital/packages/server/src/interfaces/LandedCost.ts
2023-02-03 11:57:50 +02:00

154 lines
3.3 KiB
TypeScript

import { IBill } from '@/interfaces';
import Knex from 'knex';
import { IItemEntry } from './ItemEntry';
export interface IBillLandedCost {
id?: number;
fromTransactionId: number;
fromTransactionType: string;
fromTransactionEntryId: number;
allocationMethod: string;
costAccountId: number;
description: string;
amount: number;
localAmount?: number;
exchangeRate: number;
currencyCode: string;
billId: number;
allocateEntries: IBillLandedCostEntry[]
}
export interface IBillLandedCostEntry {
id?: number;
cost: number;
entryId: number;
billLocatedCostId: number;
itemEntry?: IItemEntry;
}
export interface ILandedCostItemDTO {
entryId: number;
cost: number;
}
export type ILandedCostType = 'Expense' | 'Bill';
export interface ILandedCostDTO {
transactionType: ILandedCostType;
transactionId: number;
transactionEntryId: number;
allocationMethod: string;
description: string;
items: ILandedCostItemDTO[];
}
export interface ILandedCostQueryDTO {
vendorId: number;
fromDate: Date;
toDate: Date;
}
export interface IUnallocatedListCost {
costNumber: string;
costAmount: number;
unallocatedAmount: number;
}
export interface ILandedCostTransactionsQueryDTO {
transactionType: string;
date: Date;
}
export interface ILandedCostEntriesQueryDTO {
transactionType: string;
transactionId: number;
}
export interface ILandedCostTransaction {
id: number;
name: string;
amount: number;
allocatedCostAmount: number;
unallocatedCostAmount: number;
currencyCode: string;
exchangeRate: number;
// formattedAllocatedCostAmount: string;
// formattedAmount: string;
// formattedUnallocatedCostAmount: string;
transactionType: string;
entries?: ILandedCostTransactionEntry[];
}
export interface ILandedCostTransactionEntry {
id: number;
name: string;
code: string;
amount: number;
unallocatedCostAmount: number;
allocatedCostAmount: number;
description: string;
costAccountId: number;
}
export interface ILandedCostTransactionEntryDOJO
extends ILandedCostTransactionEntry {
formattedAmount: string;
formattedUnallocatedCostAmount: string;
formattedAllocatedCostAmount: string;
}
export interface ILandedCostTransactionDOJO extends ILandedCostTransaction {
formattedAmount: string;
formattedUnallocatedCostAmount: string;
formattedAllocatedCostAmount: string;
}
interface ILandedCostEntry {
id: number;
landedCost?: boolean;
}
export interface IBillLandedCostTransaction {
id: number;
fromTransactionId: number;
fromTransactionType: string;
fromTransactionEntryId: number;
billId: number;
allocationMethod: string;
costAccountId: number;
description: string;
amount: number;
localAmount?: number;
currencyCode: string;
exchangeRate: number;
allocateEntries?: IBillLandedCostTransactionEntry[];
}
export interface IBillLandedCostTransactionEntry {
cost: number;
entryId: number;
billLocatedCostId: number;
}
export interface IAllocatedLandedCostDeletedPayload {
tenantId: number;
oldBillLandedCost: IBillLandedCostTransaction;
billId: number;
trx: Knex.Transaction;
}
export interface IAllocatedLandedCostCreatedPayload {
tenantId: number;
bill: IBill;
billLandedCostId: number;
billLandedCost: IBillLandedCostTransaction;
trx: Knex.Transaction;
}
export interface IBillAssociatedLandedCostTransactions {}