sales
This commit is contained in:
@@ -10,6 +10,7 @@ export const permissions = {
|
||||
filesWrite: "files.write",
|
||||
ganttRead: "gantt.read",
|
||||
salesRead: "sales.read",
|
||||
salesWrite: "sales.write",
|
||||
shippingRead: "shipping.read",
|
||||
} as const;
|
||||
|
||||
|
||||
@@ -6,3 +6,4 @@ export * from "./crm/types.js";
|
||||
export * from "./files/types.js";
|
||||
export * from "./gantt/types.js";
|
||||
export * from "./inventory/types.js";
|
||||
export * from "./sales/types.js";
|
||||
|
||||
63
shared/src/sales/types.ts
Normal file
63
shared/src/sales/types.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import type { InventoryUnitOfMeasure } from "../inventory/types.js";
|
||||
|
||||
export const salesDocumentStatuses = ["DRAFT", "ISSUED", "APPROVED", "CLOSED"] as const;
|
||||
|
||||
export type SalesDocumentStatus = (typeof salesDocumentStatuses)[number];
|
||||
export type SalesDocumentType = "QUOTE" | "ORDER";
|
||||
|
||||
export interface SalesCustomerOptionDto {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
}
|
||||
|
||||
export interface SalesLineDto {
|
||||
id: string;
|
||||
itemId: string;
|
||||
itemSku: string;
|
||||
itemName: string;
|
||||
description: string;
|
||||
quantity: number;
|
||||
unitOfMeasure: InventoryUnitOfMeasure;
|
||||
unitPrice: number;
|
||||
lineTotal: number;
|
||||
position: number;
|
||||
}
|
||||
|
||||
export interface SalesLineInput {
|
||||
itemId: string;
|
||||
description: string;
|
||||
quantity: number;
|
||||
unitOfMeasure: InventoryUnitOfMeasure;
|
||||
unitPrice: number;
|
||||
position: number;
|
||||
}
|
||||
|
||||
export interface SalesDocumentSummaryDto {
|
||||
id: string;
|
||||
documentNumber: string;
|
||||
customerId: string;
|
||||
customerName: string;
|
||||
status: SalesDocumentStatus;
|
||||
subtotal: number;
|
||||
issueDate: string;
|
||||
updatedAt: string;
|
||||
lineCount: number;
|
||||
}
|
||||
|
||||
export interface SalesDocumentDetailDto extends SalesDocumentSummaryDto {
|
||||
customerEmail: string;
|
||||
notes: string;
|
||||
expiresAt: string | null;
|
||||
createdAt: string;
|
||||
lines: SalesLineDto[];
|
||||
}
|
||||
|
||||
export interface SalesDocumentInput {
|
||||
customerId: string;
|
||||
status: SalesDocumentStatus;
|
||||
issueDate: string;
|
||||
expiresAt: string | null;
|
||||
notes: string;
|
||||
lines: SalesLineInput[];
|
||||
}
|
||||
Reference in New Issue
Block a user