Files
bigcapital/packages/server/src/interfaces/VendorCredit.ts
2024-05-26 21:59:39 +02:00

244 lines
5.6 KiB
TypeScript

import { IDynamicListFilter, IItemEntry, IItemEntryDTO } from '@/interfaces';
import { Knex } from 'knex';
import { AttachmentLinkDTO } from './Attachments';
export enum VendorCreditAction {
Create = 'Create',
Edit = 'Edit',
Delete = 'Delete',
View = 'View',
Refund = 'Refund',
}
export interface IVendorCredit {
id: number | null;
vendorId: number;
amount: number;
localAmount?: number;
currencyCode: string;
exchangeRate: number;
vendorCreditNumber: string;
vendorCreditDate: Date;
referenceNo: string;
entries?: IItemEntry[];
openedAt: Date | null;
isOpen: boolean;
isPublished: boolean;
isClosed: boolean;
isDraft: boolean;
creditsRemaining: number;
branchId?: number;
warehouseId?: number,
}
export interface IVendorCreditEntryDTO extends IItemEntryDTO {}
export interface IRefundVendorCredit {
id?: number | null;
date: Date;
referenceNo: string;
amount: number;
currencyCode: string;
exchangeRate: number;
depositAccountId: number;
description: string;
vendorCreditId: number;
createdAt: Date | null;
userId: number;
branchId?: number;
vendorCredit?: IVendorCredit
}
export interface IVendorCreditDTO {
vendorId: number;
exchangeRate?: number;
vendorCreditNumber: string;
referenceNo: string;
vendorCreditDate: Date;
note: string;
open: boolean;
entries: IVendorCreditEntryDTO[];
branchId?: number;
warehouseId?: number;
attachments?: AttachmentLinkDTO[];
}
export interface IVendorCreditCreateDTO extends IVendorCreditDTO {}
export interface IVendorCreditEditDTO extends IVendorCreditDTO {}
export interface IVendorCreditCreatePayload {
tenantId: number;
refundVendorCreditDTO: IRefundVendorCreditDTO;
vendorCreditId: number;
}
export interface IVendorCreditCreatingPayload {
tenantId: number;
vendorCredit: IVendorCredit;
vendorCreditId: number;
vendorCreditCreateDTO: IVendorCreditCreateDTO;
trx: Knex.Transaction;
}
export interface IVendorCreditCreatedPayload {
tenantId: number;
vendorCredit: IVendorCredit;
vendorCreditCreateDTO: IVendorCreditCreateDTO;
trx: Knex.Transaction;
}
export interface IVendorCreditCreatedPayload {}
export interface IVendorCreditDeletedPayload {
trx: Knex.Transaction;
tenantId: number;
vendorCreditId: number;
oldVendorCredit: IVendorCredit;
}
export interface IVendorCreditDeletingPayload {
trx: Knex.Transaction;
tenantId: number;
oldVendorCredit: IVendorCredit;
}
export interface IVendorCreditsQueryDTO extends IDynamicListFilter {
page: number;
pageSize: number;
searchKeyword?: string;
}
export interface IVendorCreditEditingPayload {
tenantId: number;
oldVendorCredit: IVendorCredit;
vendorCreditDTO: IVendorCreditEditDTO;
trx: Knex.Transaction;
}
export interface IVendorCreditEditedPayload {
tenantId: number;
oldVendorCredit: IVendorCredit;
vendorCredit: IVendorCredit;
vendorCreditId: number;
vendorCreditDTO: IVendorCreditEditDTO;
trx: Knex.Transaction;
}
export interface IRefundVendorCreditDTO {
amount: number;
exchangeRate?: number;
depositAccountId: number;
description: string;
date: Date;
branchId?: number;
}
export interface IRefundVendorCreditDeletedPayload {
trx: Knex.Transaction;
refundCreditId: number;
oldRefundCredit: IRefundVendorCredit;
tenantId: number;
}
export interface IRefundVendorCreditDeletePayload {
trx: Knex.Transaction;
refundCreditId: number;
oldRefundCredit: IRefundVendorCredit;
tenantId: number;
}
export interface IRefundVendorCreditDeletingPayload {
trx: Knex.Transaction;
refundCreditId: number;
oldRefundCredit: IRefundVendorCredit;
tenantId: number;
}
export interface IRefundVendorCreditCreatingPayload {
trx: Knex.Transaction;
vendorCredit: IVendorCredit;
refundVendorCreditDTO: IRefundVendorCreditDTO;
tenantId: number;
}
export interface IRefundVendorCreditCreatedPayload {
refundVendorCredit: IRefundVendorCredit;
vendorCredit: IVendorCredit;
trx: Knex.Transaction;
tenantId: number;
}
export interface IRefundVendorCreditPOJO {}
export interface IApplyCreditToBillEntryDTO {
amount: number;
billId: number;
}
export interface IApplyCreditToBillsDTO {
entries: IApplyCreditToBillEntryDTO[];
}
export interface IVendorCreditOpenedPayload {
tenantId: number;
vendorCreditId: number;
vendorCredit: IVendorCredit;
trx: Knex.Transaction;
}
export interface IVendorCreditOpenPayload {
tenantId: number;
vendorCreditId: number;
oldVendorCredit: IVendorCredit;
}
export interface IVendorCreditOpeningPayload {
tenantId: number;
vendorCreditId: number;
oldVendorCredit: IVendorCredit;
trx: Knex.Transaction;
}
export interface IVendorCreditApplyToBillsCreatedPayload {
tenantId: number;
vendorCredit: IVendorCredit;
vendorCreditAppliedBills: IVendorCreditAppliedBill[];
trx: Knex.Transaction;
}
export interface IVendorCreditApplyToBillsCreatingPayload {
trx: Knex.Transaction;
}
export interface IVendorCreditApplyToBillsCreatePayload {
trx: Knex.Transaction;
}
export interface IVendorCreditApplyToBillDeletedPayload {
tenantId: number;
vendorCredit: IVendorCredit;
oldCreditAppliedToBill: IVendorCreditAppliedBill;
trx: Knex.Transaction;
}
export interface IVendorCreditApplyToInvoiceDTO {
amount: number;
billId: number;
}
export interface IVendorCreditApplyToInvoicesDTO {
entries: IVendorCreditApplyToInvoiceDTO[];
}
export interface IVendorCreditApplyToInvoiceModel {
billId: number;
amount: number;
vendorCreditId: number;
}
export interface IVendorCreditApplyToInvoicesModel {
entries: IVendorCreditApplyToInvoiceModel[];
amount: number;
}
export interface IVendorCreditAppliedBill {
billId: number;
amount: number;
vendorCreditId: number;
}