برنامج فواتير يعمل بدون إنترنت للمناديب

المندوب واقف عند العميل والشبكة مقطوعة — فإمّا يكتب على ورقة ويُدخلها مساءً، أو ينتظر.

المشهد الذي تعالجه

مخزن في منطقة صناعية بلا تغطية، أو قبو سوبرماركت، أو قرية على طرف الخط. المندوب معه الطلب جاهز والعميل ينتظر إيصاله ليصرف البضاعة من الشاحنة. كل دقيقة انتظار هنا تُقاس بزيارة ضائعة من جدول اليوم.

كيف تعمل عندنا

البيانات المرجعية محفوظة في الجهاز قبل انقطاع الشبكة

عند أول اتصال ينزل التطبيق العملاء والأصناف وإعدادات الشركة إلى مخزن محلي داخل الجوال (IndexedDB). فحين تنقطع الشبكة يكون كل ما يحتاجه إصدار الفاتورة موجوداً أصلاً — لا شاشة تحميل ولا قائمة فارغة.

الفاتورة والسند يصدران ويُطبعان فوراً

المندوب يُصدر الفاتورة الضريبية المبسّطة ويطبعها على الطابعة الحرارية والشبكة مقطوعة تماماً، في الأسواق التي لا تشترط مقاصّة لحظية وفي الشركات غير المفعّل لها الربط مع منصة فاتورة. المستند يدخل صفّاً محلياً اسمه الصفّ الصادر (Outbox) ويظهر للمندوب عدّاد صريح: كم مستنداً بانتظار الرفع.

بعد ربط المرحلة الثانية: ما يعمل دون اتصال وما يحتاجه

يبقى دون اتصال: سند القبض، وتسجيل الزيارة، وإضافة العميل الجديد، وفاتورة الشركة غير المفعّل لها الربط. ويحتاج اتصالاً لحظة الإصدار في الشركة المفعّل لها الربط: الفاتورة القياسية والمبسّطة والمرتجع، لأن الخادم وحده يختمها ويرقّمها ضمن سلسلة وحدة الربط. ويرى المندوب ذلك قبل أن يبدأ الفاتورة، لا بعد الضغط على «إصدار».

الرفع تلقائي عند عودة الاتصال — وبلا تكرار

كل مستند يحمل مفتاحاً فريداً يُولَّد في الجهاز لحظة الإنشاء (clientRef)، وقاعدة البيانات تمنع تكراره بقيد فريد. فلو تعثّرت الشبكة أثناء الرفع وأُعيدت المحاولة عشر مرّات، تبقى فاتورة واحدة لا عشر.

الترتيب محفوظ: الفواتير قبل السندات، والأقدم قبل الأحدث

سند القبض يشير إلى فاتورته، فرفعه قبلها يكسر الرابط. لذلك يرفع المحرّك الفواتير أولاً ثم السندات، وداخل كلٍّ بترتيب زمن الإنشاء في الجهاز لا زمن الرفع.

الرفض التجاري يُعلَن، والانقطاع لا يُفقد شيئاً

لو رفض الخادم مستنداً لسبب عمل (صنف محذوف مثلاً) يظهر بحالة «مرفوض» ليراه المندوب ويتصرّف. أمّا انقطاع الشبكة أو عطل الخادم المؤقّت فيُبقي المستند في الصفّ ويُعاد لاحقاً — الفرق بين الحالتين مقصود، لأن إخفاء الرفض يعني اكتشافه بعد أسبوع.

المستند يُنسب لصاحبه لا لمن رفعه

الخادم ينسب المستند لصاحب الجلسة لحظة الرفع، فرفع مستندات مندوبٍ من جوال زميله كان سيقلب العمولة والمخزون والتحصيل. لذلك يرفع كل جهاز مستندات صاحبه فقط.

ما لا تفعله هذه الميزة

  • المخزن المحلي في المتصفّح قابل للطرد من النظام (خاصةً iOS بعد خمول طويل أو ضغط ذاكرة). نطلب من الجهاز تثبيتاً دائماً، ويبقى المرجع النهائي هو الخادم — فالمزامنة عند أول اتصال ليست رفاهية.
  • الفوترة بدون إنترنت متاحة حيث يسمح النظام الضريبي بذلك. في الأسواق التي تشترط مقاصّة لحظية للفاتورة قبل إصدارها — مصر والإمارات وتونس — يمنع التطبيق نفسه الإصدار دون اتصال، لأن رقم الفاتورة هناك يأتي من المنظومة الحكومية لا منّا. وفي السعودية تحتاج الفواتير (القياسية والمبسّطة) والمرتجعات اتصالاً لحظة الإصدار للشركات المفعّل لها ربط المرحلة الثانية مع منصة فاتورة، وتبقى سندات القبض والزيارات متاحة دون اتصال.
  • الأوف‑لاين يغطّي إصدار الفواتير وسندات القبض. التقارير ولوحات الإدارة تحتاج اتصالاً لأنها تقرأ من الخادم.

هل يستطيع المندوب إصدار فاتورة والشبكة مقطوعة تماماً؟

نعم — في السعودية والكويت وقطر والبحرين وعُمان وكل سوق لا يشترط مقاصّة لحظية. يُصدر الفاتورة برمز QR ويطبعها على الطابعة الحرارية دون أي اتصال، وتُرفع تلقائياً عند عودة الشبكة. في مصر والإمارات وتونس يمنع النظام ذلك لأن الفاتورة تحتاج مقاصّة لحظية من المنظومة الحكومية. والشركات السعودية المفعّل لها ربط المرحلة الثانية مع منصة فاتورة تحتاج فيها الفواتير (القياسية والمبسّطة) والمرتجعات اتصالاً لحظة الإصدار، ويبقى سند القبض متاحاً دون اتصال.

هل يعمل برنامج المندوبين بدون إنترنت بعد ربط المرحلة الثانية؟

نعم، بحدود واضحة. في الشركة المفعّل لها ربط المرحلة الثانية مع منصة فاتورة تحتاج الفواتير القياسية والمبسّطة والمرتجعات اتصالاً لحظة الإصدار، لأن الخادم يختم كل فاتورة ويرقّمها. ويبقى دون اتصال سند القبض وتسجيل الزيارة بموقعها وصورها وإضافة العميل الجديد، وتُرفع كلها تلقائياً بلا تكرار. والشركة غير المفعّل لها الربط تُصدر فواتيرها دون اتصال كما كانت.

ماذا لو انقطع الاتصال في منتصف الرفع؟ هل تتكرّر الفاتورة؟

لا. كل مستند يحمل مفتاحاً فريداً يُولَّد في الجهاز، وقاعدة البيانات ترفض تكراره. إعادة المحاولة مهما تكرّرت تُنتج مستنداً واحداً.

هل يعرف المندوب أن هناك مستندات لم تُرفع بعد؟

نعم — عدّاد ظاهر في التطبيق يقول كم مستنداً في انتظار الرفع، ويتحدّث لحظياً كلّما رُفع واحد.

ماذا لو أغلق المندوب التطبيق أو انطفأ جواله قبل الرفع؟

المستندات محفوظة في تخزين الجهاز لا في ذاكرة التطبيق، فتبقى بعد الإغلاق وإعادة التشغيل وتُرفع عند أول اتصال.

هل يستطيع مندوب رفع مستندات مندوب آخر من جواله؟

لا. كل جهاز يرفع مستندات صاحب جلسته فقط، لأن الخادم ينسب المستند لصاحب الجلسة — ورفعه بجلسة زميل كان سيقلب العمولة والمخزون والتحصيل.

اقرأ أيضاً

مزايا أخرى

شاهد الأسعار أو تحدّث معنا على واتساب.

تحدّث معنا على واتساب