Unify invoices and quotes UI with discount, tax, and credit notes.

Match list/form mockups on desktop and mobile, wire real APIs for billing fields, and merge proforma into the invoices section.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-05 17:53:50 +03:30
co-authored by Cursor
parent 7862b6f374
commit 2ece79b3d6
15 changed files with 3101 additions and 1995 deletions
+25
View File
@@ -916,8 +916,14 @@ export interface QuoteDto {
status: QuoteStatus | string;
currency: string;
notes: string | null;
discountAmount?: number;
taxPercent?: number;
issuedAt?: string | null;
validUntil: string | null;
totalAmount: number;
subtotal: number;
taxAmount: number;
payableAmount: number;
person: PersonSummaryDto | null;
company: CompanySummaryDto | null;
deal: DealSummaryDto | null;
@@ -932,6 +938,10 @@ export interface CreateQuoteRequest {
status?: QuoteStatus | string;
currency?: string;
notes?: string;
discountAmount?: number;
taxPercent?: number;
issuedAt?: string | null;
validityDays?: number;
validUntil?: string | null;
personId?: string | null;
companyId?: string | null;
@@ -945,6 +955,9 @@ export interface UpdateQuoteRequest {
status?: QuoteStatus | string;
currency?: string;
notes?: string | null;
discountAmount?: number;
taxPercent?: number;
issuedAt?: string | null;
validUntil?: string | null;
personId?: string | null;
companyId?: string | null;
@@ -1006,11 +1019,17 @@ export interface InvoiceDto {
number: string;
title: string;
status: InvoiceStatus | string;
kind?: "invoice" | "credit";
currency: string;
notes: string | null;
discountAmount?: number;
taxPercent?: number;
issuedAt: string | null;
dueDate: string | null;
totalAmount: number;
subtotal: number;
taxAmount: number;
payableAmount: number;
paidAmount: number;
remainingAmount: number;
person: PersonSummaryDto | null;
@@ -1034,8 +1053,11 @@ export interface InvoiceInstallmentInput {
export interface CreateInvoiceRequest {
title: string;
status?: InvoiceStatus | string;
kind?: "invoice" | "credit";
currency?: string;
notes?: string;
discountAmount?: number;
taxPercent?: number;
issuedAt?: string | null;
dueDate?: string | null;
personId?: string | null;
@@ -1051,8 +1073,11 @@ export interface CreateInvoiceRequest {
export interface UpdateInvoiceRequest {
title?: string;
status?: InvoiceStatus | string;
kind?: "invoice" | "credit";
currency?: string;
notes?: string | null;
discountAmount?: number;
taxPercent?: number;
issuedAt?: string | null;
dueDate?: string | null;
personId?: string | null;