finance
This commit is contained in:
@@ -10,6 +10,8 @@ export const permissions = {
|
||||
manufacturingWrite: "manufacturing.write",
|
||||
filesRead: "files.read",
|
||||
filesWrite: "files.write",
|
||||
financeRead: "finance.read",
|
||||
financeWrite: "finance.write",
|
||||
ganttRead: "gantt.read",
|
||||
salesRead: "sales.read",
|
||||
salesWrite: "sales.write",
|
||||
|
||||
131
shared/src/finance/types.ts
Normal file
131
shared/src/finance/types.ts
Normal file
@@ -0,0 +1,131 @@
|
||||
export const financePaymentTypes = ["DEPOSIT", "PROGRESS", "FINAL", "ADJUSTMENT"] as const;
|
||||
export const financePaymentMethods = ["ACH", "WIRE", "CHECK", "CARD", "CASH", "OTHER"] as const;
|
||||
export const capexCategories = ["EQUIPMENT", "TOOLING", "CONSUMABLE"] as const;
|
||||
export const capexStatuses = ["PLANNED", "APPROVED", "ORDERED", "IN_SERVICE", "CLOSED", "CANCELLED"] as const;
|
||||
|
||||
export type FinancePaymentType = (typeof financePaymentTypes)[number];
|
||||
export type FinancePaymentMethod = (typeof financePaymentMethods)[number];
|
||||
export type CapexCategory = (typeof capexCategories)[number];
|
||||
export type CapexStatus = (typeof capexStatuses)[number];
|
||||
|
||||
export interface FinanceProfileDto {
|
||||
id: string;
|
||||
currencyCode: string;
|
||||
standardLaborRatePerHour: number;
|
||||
overheadRatePerHour: number;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface FinanceProfileInput {
|
||||
currencyCode: string;
|
||||
standardLaborRatePerHour: number;
|
||||
overheadRatePerHour: number;
|
||||
}
|
||||
|
||||
export interface FinanceCustomerPaymentDto {
|
||||
id: string;
|
||||
salesOrderId: string;
|
||||
salesOrderNumber: string;
|
||||
customerId: string;
|
||||
customerName: string;
|
||||
paymentType: FinancePaymentType;
|
||||
paymentMethod: FinancePaymentMethod;
|
||||
paymentDate: string;
|
||||
amount: number;
|
||||
reference: string;
|
||||
notes: string;
|
||||
createdAt: string;
|
||||
createdByName: string;
|
||||
}
|
||||
|
||||
export interface FinanceCustomerPaymentInput {
|
||||
salesOrderId: string;
|
||||
paymentType: FinancePaymentType;
|
||||
paymentMethod: FinancePaymentMethod;
|
||||
paymentDate: string;
|
||||
amount: number;
|
||||
reference: string;
|
||||
notes: string;
|
||||
}
|
||||
|
||||
export interface FinanceCapexDto {
|
||||
id: string;
|
||||
title: string;
|
||||
category: CapexCategory;
|
||||
status: CapexStatus;
|
||||
vendorId: string | null;
|
||||
vendorName: string | null;
|
||||
purchaseOrderId: string | null;
|
||||
purchaseOrderNumber: string | null;
|
||||
plannedAmount: number;
|
||||
actualAmount: number;
|
||||
requestDate: string;
|
||||
targetInServiceDate: string | null;
|
||||
purchasedAt: string | null;
|
||||
notes: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface FinanceCapexInput {
|
||||
title: string;
|
||||
category: CapexCategory;
|
||||
status: CapexStatus;
|
||||
vendorId: string | null;
|
||||
purchaseOrderId: string | null;
|
||||
plannedAmount: number;
|
||||
actualAmount: number;
|
||||
requestDate: string;
|
||||
targetInServiceDate: string | null;
|
||||
purchasedAt: string | null;
|
||||
notes: string;
|
||||
}
|
||||
|
||||
export interface FinanceSalesOrderLedgerDto {
|
||||
salesOrderId: string;
|
||||
salesOrderNumber: string;
|
||||
customerId: string;
|
||||
customerName: string;
|
||||
status: string;
|
||||
issueDate: string;
|
||||
revenueTotal: number;
|
||||
paymentsReceived: number;
|
||||
accountsReceivableOpen: number;
|
||||
linkedPurchaseCommitted: number;
|
||||
linkedPurchaseReceivedValue: number;
|
||||
manufacturingMaterialCost: number;
|
||||
manufacturingLaborCost: number;
|
||||
manufacturingOverheadCost: number;
|
||||
manufacturingTotalCost: number;
|
||||
totalRecognizedSpend: number;
|
||||
grossMarginEstimate: number;
|
||||
grossMarginPercent: number;
|
||||
paymentCoveragePercent: number;
|
||||
linkedPurchaseOrderCount: number;
|
||||
linkedWorkOrderCount: number;
|
||||
}
|
||||
|
||||
export interface FinanceSummaryDto {
|
||||
bookedRevenue: number;
|
||||
paymentsReceived: number;
|
||||
accountsReceivableOpen: number;
|
||||
linkedPurchaseCommitted: number;
|
||||
linkedPurchaseReceivedValue: number;
|
||||
manufacturingMaterialCost: number;
|
||||
manufacturingLaborCost: number;
|
||||
manufacturingOverheadCost: number;
|
||||
manufacturingTotalCost: number;
|
||||
capexPlanned: number;
|
||||
capexActual: number;
|
||||
grossMarginEstimate: number;
|
||||
}
|
||||
|
||||
export interface FinanceDashboardDto {
|
||||
generatedAt: string;
|
||||
profile: FinanceProfileDto;
|
||||
summary: FinanceSummaryDto;
|
||||
salesOrderLedgers: FinanceSalesOrderLedgerDto[];
|
||||
payments: FinanceCustomerPaymentDto[];
|
||||
capex: FinanceCapexDto[];
|
||||
}
|
||||
@@ -5,6 +5,7 @@ export * from "./common/api.js";
|
||||
export * from "./company/types.js";
|
||||
export * from "./crm/types.js";
|
||||
export * from "./files/types.js";
|
||||
export * from "./finance/types.js";
|
||||
export * from "./gantt/types.js";
|
||||
export * from "./inventory/types.js";
|
||||
export * from "./manufacturing/types.js";
|
||||
|
||||
Reference in New Issue
Block a user