Add salesperson commissions on issued invoices and a cheque register.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-11 01:09:59 +03:30
co-authored by Cursor
parent 535c428270
commit 9a991fc1f1
22 changed files with 1238 additions and 11 deletions
+69
View File
@@ -42,9 +42,14 @@ export interface OrgUserDto {
email: string;
fullName: string;
role: UserRole;
commissionPercent?: number;
createdAt: string;
}
export interface UpdateUserCommissionRequest {
commissionPercent: number;
}
export interface InviteUserRequest {
email: string;
fullName: string;
@@ -1131,6 +1136,43 @@ export interface InvoiceLineItemDto {
lineTotal: number;
}
export type ChequeStatus = "pending" | "cleared" | "bounced";
export interface ChequeDto {
id: string;
paymentId: string;
invoiceId: string;
invoiceNumber: string;
invoiceTitle: string;
personName: string | null;
amount: number;
currency: string;
number: string;
bank: string;
dueDate: string;
status: ChequeStatus | string;
notes: string | null;
paidAt: string;
createdAt: string;
updatedAt: string;
}
export interface ChequeInput {
number: string;
bank: string;
dueDate: string;
status?: ChequeStatus | string;
notes?: string;
}
export interface UpdateChequeRequest {
number?: string;
bank?: string;
dueDate?: string;
status?: ChequeStatus | string;
notes?: string | null;
}
export interface PaymentDto {
id: string;
amount: number;
@@ -1139,6 +1181,21 @@ export interface PaymentDto {
paidAt: string;
notes: string | null;
installmentId: string | null;
cheque?: ChequeDto | null;
createdAt: string;
}
export interface CommissionEntryDto {
id: string;
userId: string;
userName: string;
invoiceId: string;
invoiceNumber: string;
invoiceTitle: string;
percent: number;
amount: number;
currency: string;
status: "posted" | "void" | string;
createdAt: string;
}
@@ -1179,6 +1236,13 @@ export interface InvoiceDto {
lineItems: InvoiceLineItemDto[];
payments: PaymentDto[];
installments: InvoiceInstallmentDto[];
commissionPercent?: number | null;
commissionFixedAmount?: number | null;
commission?: {
percent: number;
amount: number;
status: string;
} | null;
createdAt: string;
updatedAt: string;
}
@@ -1207,6 +1271,8 @@ export interface CreateInvoiceRequest {
fromQuoteId?: string | null;
lineItems?: DealLineItemInput[];
installments?: InvoiceInstallmentInput[];
commissionPercent?: number | null;
commissionFixedAmount?: number | null;
}
export interface UpdateInvoiceRequest {
@@ -1225,6 +1291,8 @@ export interface UpdateInvoiceRequest {
quoteId?: string | null;
lineItems?: DealLineItemInput[];
installments?: InvoiceInstallmentInput[];
commissionPercent?: number | null;
commissionFixedAmount?: number | null;
}
export interface CreatePaymentRequest {
@@ -1234,6 +1302,7 @@ export interface CreatePaymentRequest {
paidAt?: string;
notes?: string;
installmentId?: string | null;
cheque?: ChequeInput;
}
export type SalesGoalType =