mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-11 10:20:30 +00:00
259 lines
5.6 KiB
TypeScript
259 lines
5.6 KiB
TypeScript
import { Knex } from 'knex';
|
|
import { IDynamicListFilter, IItemEntry, IVendorCredit } from '@/interfaces';
|
|
import { ILedgerEntry } from './Ledger';
|
|
import { AttachmentLinkDTO } from './Attachments';
|
|
|
|
export interface ICreditNoteEntryNewDTO {
|
|
index: number;
|
|
itemId: number;
|
|
rate: number;
|
|
quantity: number;
|
|
discount: number;
|
|
description: string;
|
|
warehouseId?: number;
|
|
}
|
|
export interface ICreditNoteNewDTO {
|
|
customerId: number;
|
|
exchangeRate?: number;
|
|
creditNoteDate: Date;
|
|
creditNoteNumber: string;
|
|
note: string;
|
|
open: boolean;
|
|
entries: ICreditNoteEntryNewDTO[];
|
|
branchId?: number;
|
|
warehouseId?: number;
|
|
attachments?: AttachmentLinkDTO[]
|
|
}
|
|
|
|
export interface ICreditNoteEditDTO {
|
|
customerId: number;
|
|
exchangeRate?: number;
|
|
creditNoteDate: Date;
|
|
creditNoteNumber: string;
|
|
note: string;
|
|
open: boolean;
|
|
entries: ICreditNoteEntryNewDTO[];
|
|
branchId?: number;
|
|
warehouseId?: number;
|
|
attachments?: AttachmentLinkDTO[]
|
|
}
|
|
|
|
export interface ICreditNoteEntry extends IItemEntry {}
|
|
|
|
export interface ICreditNote {
|
|
id?: number;
|
|
customerId: number;
|
|
amount: number;
|
|
refundedAmount: number;
|
|
currencyCode: string;
|
|
exchangeRate: number;
|
|
creditNoteDate: Date;
|
|
creditNoteNumber: string;
|
|
referenceNo?: string;
|
|
note?: string;
|
|
openedAt: Date | null;
|
|
entries: ICreditNoteEntry[];
|
|
isOpen: boolean;
|
|
isClosed: boolean;
|
|
isDraft: boolean;
|
|
isPublished: boolean;
|
|
creditsRemaining: number;
|
|
localAmount?: number;
|
|
branchId?: number;
|
|
warehouseId: number;
|
|
createdAt?: Date,
|
|
}
|
|
|
|
export enum CreditNoteAction {
|
|
Create = 'Create',
|
|
Edit = 'Edit',
|
|
Delete = 'Delete',
|
|
View = 'View',
|
|
Refund = 'Refund',
|
|
}
|
|
|
|
export interface ICreditNoteDeletingPayload {
|
|
tenantId: number;
|
|
oldCreditNote: ICreditNote;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNoteDeletedPayload {
|
|
tenantId: number;
|
|
oldCreditNote: ICreditNote;
|
|
creditNoteId: number;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNoteEditingPayload {
|
|
trx: Knex.Transaction;
|
|
oldCreditNote: ICreditNote;
|
|
creditNoteEditDTO: ICreditNoteEditDTO;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface ICreditNoteEditedPayload {
|
|
trx: Knex.Transaction;
|
|
oldCreditNote: ICreditNote;
|
|
creditNoteId: number;
|
|
creditNote: ICreditNote;
|
|
creditNoteEditDTO: ICreditNoteEditDTO;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface ICreditNoteCreatedPayload {
|
|
tenantId: number;
|
|
creditNoteDTO: ICreditNoteNewDTO;
|
|
creditNote: ICreditNote;
|
|
creditNoteId: number;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNoteCreatingPayload {
|
|
tenantId: number;
|
|
creditNoteDTO: ICreditNoteNewDTO;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNoteOpeningPayload {
|
|
tenantId: number;
|
|
creditNoteId: number;
|
|
oldCreditNote: ICreditNote;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNoteOpenedPayload {
|
|
tenantId: number;
|
|
creditNote: ICreditNote;
|
|
creditNoteId: number;
|
|
oldCreditNote: ICreditNote;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface ICreditNotesQueryDTO {}
|
|
|
|
export interface ICreditNotesQueryDTO extends IDynamicListFilter {
|
|
page: number;
|
|
pageSize: number;
|
|
searchKeyword?: string;
|
|
}
|
|
|
|
export interface ICreditNoteRefundDTO {
|
|
fromAccountId: number;
|
|
amount: number;
|
|
exchangeRate?: number;
|
|
referenceNo: string;
|
|
description: string;
|
|
date: Date;
|
|
branchId?: number;
|
|
}
|
|
|
|
export interface ICreditNoteApplyInvoiceDTO {
|
|
entries: { invoiceId: number; amount: number }[];
|
|
}
|
|
|
|
export interface IRefundCreditNote {
|
|
id?: number | null;
|
|
date: Date;
|
|
referenceNo: string;
|
|
amount: number;
|
|
currencyCode: string;
|
|
exchangeRate: number;
|
|
fromAccountId: number;
|
|
description: string;
|
|
creditNoteId: number;
|
|
createdAt?: Date | null;
|
|
userId?: number;
|
|
branchId?: number;
|
|
|
|
creditNote?: ICreditNote;
|
|
}
|
|
|
|
export interface IRefundCreditNotePOJO {
|
|
formattedAmount: string;
|
|
}
|
|
|
|
export interface IRefundCreditNoteDeletedPayload {
|
|
trx: Knex.Transaction;
|
|
refundCreditId: number;
|
|
oldRefundCredit: IRefundCreditNote;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface IRefundCreditNoteDeletingPayload {
|
|
trx: Knex.Transaction;
|
|
refundCreditId: number;
|
|
oldRefundCredit: IRefundCreditNote;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface IRefundCreditNoteCreatingPayload {
|
|
trx: Knex.Transaction;
|
|
creditNote: ICreditNote;
|
|
tenantId: number;
|
|
newCreditNoteDTO: ICreditNoteRefundDTO;
|
|
}
|
|
|
|
export interface IRefundCreditNoteCreatedPayload {
|
|
trx: Knex.Transaction;
|
|
refundCreditNote: IRefundCreditNote;
|
|
creditNote: ICreditNote;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface IRefundCreditNoteOpenedPayload {
|
|
tenantId: number;
|
|
creditNoteId: number;
|
|
oldCreditNote: ICreditNote;
|
|
trx: Knex.Transaction;
|
|
}
|
|
|
|
export interface IApplyCreditToInvoiceEntryDTO {
|
|
amount: number;
|
|
invoiceId: number;
|
|
}
|
|
|
|
export interface IApplyCreditToInvoicesDTO {
|
|
entries: IApplyCreditToInvoiceEntryDTO[];
|
|
}
|
|
|
|
export interface IApplyCreditToInvoicesCreatedPayload {
|
|
trx: Knex.Transaction;
|
|
creditNote: ICreditNote;
|
|
tenantId: number;
|
|
creditNoteAppliedInvoices: ICreditNoteAppliedToInvoice[];
|
|
}
|
|
export interface IApplyCreditToInvoicesDeletedPayload {
|
|
trx: Knex.Transaction;
|
|
creditNote: ICreditNote;
|
|
creditNoteAppliedToInvoice: ICreditNoteAppliedToInvoice;
|
|
tenantId: number;
|
|
}
|
|
|
|
export interface ICreditNoteAppliedToInvoice {
|
|
invoiceId: number;
|
|
amount: number;
|
|
creditNoteId: number;
|
|
}
|
|
export interface ICreditNoteAppliedToInvoiceModel {
|
|
amount: number;
|
|
entries: ICreditNoteAppliedToInvoice[];
|
|
}
|
|
|
|
export type ICreditNoteGLCommonEntry = Pick<
|
|
ILedgerEntry,
|
|
| 'date'
|
|
| 'userId'
|
|
| 'currencyCode'
|
|
| 'exchangeRate'
|
|
| 'transactionType'
|
|
| 'transactionId'
|
|
| 'transactionNumber'
|
|
| 'referenceNumber'
|
|
| 'createdAt'
|
|
| 'indexGroup'
|
|
| 'credit'
|
|
| 'debit'
|
|
| 'branchId'
|
|
>;
|