import { Link } from 'react-router-dom' import { useMemo } from 'react' import { useStore } from '../../store/AppStore' import { Card, StatCard } from '../../components/ui' import { formatMoney, toFa } from '../../utils/format' import { salesNavItems } from './salesNavigation' import { salesDocuments, salesSummary } from './salesUtils' import { FunZoneSalesSyncBanner } from './FunZoneSalesSyncBanner' import { isFunZoneSalesInvoice } from './funzoneSalesSync' const processSteps = [ { step: 1, label: 'پیش‌فاکتور', desc: 'صدور پیشنهاد قیمت برای مشتری', to: '/sales/proforma', icon: '📋' }, { step: 2, label: 'فاکتور فروش', desc: 'ثبت فروش قطعی و کاهش موجودی', to: '/sales/invoice', icon: '🧾' }, { step: 3, label: 'دریافت', desc: 'تسویه از مشتری در ماژول دریافت و پرداخت', to: '/treasury', icon: '💰' }, { step: 4, label: 'فاکتور برگشتی', desc: 'برداشت در انتظار مشتریان و برگشت کالا', to: '/sales/return', icon: '↩️' }, ] export function SalesProcess() { const { data } = useStore() const summary = useMemo(() => salesSummary(data), [data]) const funzoneSyncedCount = useMemo( () => salesDocuments(data.invoices).filter(isFunZoneSalesInvoice).length, [data.invoices], ) const quickLinks = salesNavItems.filter((item) => item.to !== '/sales') return (

فرایند فروش

جریان استاندارد فروش مشابه سپیدار: از پیش‌فاکتور تا فاکتور، دریافت و برگشت.

{processSteps.map((step, idx) => (
{toFa(step.step)} {step.icon}

{step.label}

{step.desc}

{idx < processSteps.length - 1 && ( )}
))}

اتصال به سایر ماژول‌ها

  • 📦 انبارداری: فاکتور فروش قطعی موجودی را کاهش و فاکتور برگشتی آن را افزایش می‌دهد.
  • 📑 اسناد حسابداری: با تأیید فاکتور، سند درآمد/مطالبات به‌صورت خودکار صادر می‌شود.
  • 💰 دریافت و پرداخت: دریافت از مشتری مانده حساب را کاهش می‌دهد.
  • ⚖️ اعلامیه بدهکار/بستانکار: برای اصلاح مانده مشتری بدون فاکتور.

دسترسی سریع

{quickLinks.map((item) => ( {item.icon} {item.label} ))}
) }