diff --git a/src/types/index.ts b/src/types/index.ts index 82be9e1..4854525 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -107,6 +107,7 @@ export interface Order { companyName: string companyId: string settlementMethod: SettlementMethod | null + checkTermMonths?: number | null totalAmount: number | null meterage: number status: OrderStatus diff --git a/src/utils/settlement.ts b/src/utils/settlement.ts index 6eab81b..c30d220 100644 --- a/src/utils/settlement.ts +++ b/src/utils/settlement.ts @@ -11,10 +11,21 @@ const CASH_PHASE_RAW_STATUSES = new Set([ export function settlementMethodLabel(method?: string | null): string { if (!method) return 'انتخابنشده' if (method === 'check') return 'چکی' - if (method === 'cash_check') return 'نقدی-چکی' + if (method === 'cash_check') return 'نصف نقد، نصف چکی' return 'نقدی' } +export function settlementPlanLabel( + method?: string | null, + checkTermMonths?: number | null, +): string { + const base = settlementMethodLabel(method) + if ((method === 'check' || method === 'cash_check') && checkTermMonths) { + return `${base} · چک ${checkTermMonths} ماهه` + } + return base +} + export function orderShowsCashActions( order: { settlementMethod?: SettlementMethod | null; rawStatus?: string }, ): boolean { diff --git a/src/views/orders/OrderPricingView.vue b/src/views/orders/OrderPricingView.vue index 6d6f733..ec33ba6 100644 --- a/src/views/orders/OrderPricingView.vue +++ b/src/views/orders/OrderPricingView.vue @@ -13,6 +13,7 @@ import { confirm } from '@/composables/useConfirm' import { useToast } from '@/composables/useToast' import AdminCurrencyInput from '@/components/ui/AdminCurrencyInput.vue' import { PRE_INVOICE_RAW_STATUSES } from '@/utils/orderStatus' +import { settlementPlanLabel } from '@/utils/settlement' import type { OrderItem, Product, RawOrderStatus } from '@/types' const route = useRoute() @@ -184,6 +185,10 @@ async function savePricing() { toast.error('سفارش باید حداقل یک قلم داشته باشد.') return } + if (!order.value.settlementMethod && !order.value.settlementType) { + toast.error('مشتری هنوز روش پرداخت را مشخص نکرده است.') + return + } saving.value = true try { @@ -285,6 +290,15 @@ async function sendInvoice() { {{ displayOrder.orderNumber }}
{{ displayOrder.customerName }}
+ روش پرداخت: + {{ + settlementPlanLabel( + displayOrder.settlementMethod ?? displayOrder.settlementType, + displayOrder.checkTermMonths, + ) + }} +