softseti-sale-calculator-library
Version:
Sales calculation engine by Softseti
85 lines (76 loc) • 1.83 kB
text/typescript
export interface CurrencyConversion {
amount: number;
original_amount: number;
currency_iso: string;
original_currency_iso: string;
exchange_rate: number;
}
export interface PaymentCalculation extends CurrencyConversion {
gived_amount: number;
original_gived_amount: number;
}
export interface WholesaleLevel {
dw_product_id: number;
wholesale_level_id: number;
name: string;
description: string;
price: number;
quantity_min: number;
quantity_max: number;
branch_id: number;
company_id: number;
}
export interface SaleTotals {
subtotal: number;
total: number;
original_subtotal?: number;
original_total?: number;
change: number;
debt: number;
}
export interface Sale {
id: string | number;
total: number;
currency_iso: string;
return_items: SaleItem[];
credit_memos?: CreditMemo[];
}
export interface SaleItem {
product_id: string | number;
quantity: number | null;
sale_product_quantity: number;
price: number;
name?: string;
code?: string;
sku?: string;
refund_amount?: number;
}
export interface CreditMemo {
id: string | number;
sale_id: string | number;
total_refund: number;
return_items: SaleItem[];
timestamp?: Date;
}
export interface RefundCalculation {
valid: boolean;
message?: string,
total_refund: number;
return_items: {
product_id: string | number;
quantity: number | null;
refund_amount: number;
price: number;
name?: string;
code?: string;
sku?: string;
}[];
remaining_sale_total: number;
previous_refunds_total: number;
input_type: 'items_full_refund' | 'items_with_custom_amount' | 'amount_only';
}
export interface RefundOptions {
input_type: 'items_full_refund' | 'items_with_custom_amount' | 'amount_only';
requested_refund_amount?: number;
decimal_precision: number;
}