السجل الصادق

كيف يتعامل Odotur مع التغييرات

للسائقين وأصحاب العمل والمحاسبين ومدققي الضرائب.

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

باختصار

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

ماذا يحدث عندما تغيّر شيئًا

ما تفعلهما يسجّله Odoturفي التصدير
ملء أو تغيير الغرض أو التصنيف أو العنوان أو أي حقل آخرمراجعة: الحقل، والقيمة القديمة، والقيمة الجديدة، والوقت. داخل فترة السماح لا يُطلب سبب؛ وبعدها يُشترط سبب (نسيت، أو خطأ كتابي، أو مكان خاطئ، أو آخر، مع نص اختياري).القيمة الحالية في السطر، وكل مراجعة بعد الحفظ الأول في ملحق المراجعات.
تصحيح كيلومترات رحلة GPSتصحيح مستقل (+ أو - كم، مع سبب). تبقى المسافة المقيسة كما هي.التصحيح بجانب الرحلة وفي ملحق التصحيحات. الإجماليات تشمله.
حذف رحلةإبطال، مع سبب. يمكن استعادتها لاحقًا، ويُسجَّل ذلك أيضًا.مشطوبة، مع السبب. الرحلات المُبطلة لا تُحسب أبدًا في الإجماليات أو العدادات.
إضافة رحلة نسيتهارحلة يدوية، مُعلَّمة بـ "أُدخلت" مع تاريخ إدخالك لها.مُعلَّمة "يدوي". إذا أُدخلت بعد أكثر من 7 أيام من الرحلة: "إدخال متأخر".
تسجيل رحلة محتملةرحلة يدوية من الاقتراح. إذا عدّلت أوقاتها، يبقى الاقتراح الأصلي ظاهرًا.مُعلَّمة كرحلة محتملة.
المتابعة بعد توقف مبكرربط بين الجزأين.رحلة واحدة مع سطر توقف مؤقت؛ وتُجمع الكيلومترات.
لا شيء: فُقد GPS أو أوقف الهاتف التطبيقفجوة، مع سببها. بعد الانقطاع، تنتهي الرحلة عند آخر موقع تم استلامه؛ لا يُختلق وقت ولا سبب.في ملحق الفجوات. الكيلومترات التقديرية مُعلَّمة كتقديرية.
إدخال قراءة العدادالقراءة. وعندما تُغلق فترة، مطابقة بالفرق بين العداد وكيلومتراتك المسجلة.هولندا: رحلة تصحيح، مقسمة بالتناسب. البلدان الأخرى: ملاحظة فرق، دون تخصيص أي كيلومترات. المطابقة اللاحقة للفترة نفسها تحل محل السابقة؛ وكلتاهما تُطبعان.

فترة السماح: 7 أيام بعد انتهاء الرحلة، ويومان في ملف النمسا. اليومان خيار من المنتج لمعنى "zeitnah"، وليسا فترة أمان قانونية. التعديلات داخل الفترة تُسجَّل أيضًا؛ لكنها لا تحتاج إلى سبب.

النموذج الذي لم تحفظه بعد ليس إدخالًا. كل حفظ إدخال، بما في ذلك ملء حقل فارغ لأول مرة.

  1. #1041تسجيل رحلة GPS 08:12-08:41، 23.4 كم مقيسة3 مارس 08:41prev 52ab… → 7c1e…
  2. #1042مراجعة التصنيف: فارغ ← عمل3 مارس 18:02prev 7c1e… → 0d94…
  3. #1043مراجعة الغرض: فارغ ← زيارة عميل، Vejle3 مارس 18:02prev 0d94… → e61f…
  4. #1067تصحيح +1.2 كم، السبب: خطأ في GPS12 مارس 09:15prev a3f9… → 4b20…
  5. #1088إبطال رحلة أخرى، السبب: مكررة14 مارس 17:40prev 4b20… → 91cc…
توضيح لإدخالات السجل، مع تقصير التجزئات. يحمل كل إدخال تجزئة الإدخال الذي قبله. الإدخالات من #1044 إلى #1066 تخص رحلات أخرى.

أين تراه

  • في التطبيق: لكل رحلة شاشة سجل، وسطر مصدر صغير: "GPS · سُجلت 08:41"، أو "يدوي · أُدخلت 12 مارس"، أو "إدخال متأخر".
  • في تصدير PDF وCSV: أسطر الرحلات، ثم ملاحق للتصحيحات والإبطالات والفجوات والمطابقات وملاحظات الفروق، وملحق المراجعات. تُضمَّن المراجعات كما هي لحظة التصدير: التغيير الذي يُجرى لاحقًا على رحلة قديمة يظهر في التصديرات اللاحقة.
  • في كل صفحة PDF: رقم الصفحة n من N، والوقت الذي تعكسه البيانات ("حتى")، وتجزئة رأس السجل. ويشرح مفتاح الرموز قيم العداد المرصودة والمحسوبة وغير المعروفة، ومصادر GPS واليدوي والرحلة المحتملة، والكيلومترات التقديرية.

لأصحاب العمل والمحاسبين ومدققي الضرائب

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

  • وقتان لكل إدخال. لكل إدخال occurred_at (متى وقعت الحقيقة) وrecorded_at (متى كُتب). كلاهما يُطبع: تصحيح لشهر مارس أُدخل في أبريل يُظهر التاريخين.
  • الوحدات. تُخزَّن المسافات بالأمتار الكاملة، والأوقات بالمللي ثانية بتوقيت UTC مع المنطقة الزمنية وقت الالتقاط، والمبالغ بالوحدات الصغرى للعملة. التقريب يحدث فقط عند العرض (0.1 كم) وفي الإجماليات، ولا يحدث أبدًا على الحقائق المخزنة.
  • سلسلة التجزئة. يخزن كل إدخال hash = SHA-256(prev_hash ‖ canonical JSON) لرقمه التسلسلي، ونوعه، والكيان، ومعرّف الكيان، والحمولة، وoccurred_at وrecorded_at. prev_hash هو تجزئة الإدخال السابق في صورة 64 حرفًا ست عشريًا (64 صفرًا للإدخال الأول). يتبع JSON المعياري المعيار RFC 8785 (JSON Canonicalization Scheme)، مع توحيد النص إلى Unicode NFC. تغيير أي إدخال مخزن يغيّر تجزئته ويكسر كل رابط بعده.
  • الفحص. يعيد التطبيق حساب السلسلة في الخلفية عند التشغيل، ومرة أخرى قبل كل تصدير. عند عدم التطابق تظهر رسالة "وجد فحص السجل تغييرًا من خارج التطبيق عند الإدخال N"، ويطبع التصدير موضع الكسر. تطبع التصديرات تجزئة الرأس، ويسرد ملف CSV الرقم التسلسلي لكل إدخال وتجزئته.
  • قيم العداد تُطبع كمرصودة (أدخلها المستخدم)، أو محسوبة (بين قراءتين مُدخلتين، فقط عندما لا تكون بينهما فجوة أو رحلة محتملة غير محسومة)، أو غير معروفة. الملفات الصارمة تعرض تحذيرًا في قائمة التحقق لكل قيمة محسوبة. أما قبول القيمة المحسوبة فقرار يعود لقارئ السجل.
  • الأسعار تحمل إصدارًا ومعرّف قاعدة، يُطبعان في كل تقرير. تحديث جدول الأسعار لا يغيّر أبدًا وبصمت تصديرًا أجريته من قبل.
  • ألمانيا. نموذج Fahrtenbuch (DE) نموذج زمني مغلق للسنة كاملة، مع سجل التغييرات في الملف نفسه. الغرض أو الشريك التجاري الذي يُضاف بعد أكثر من 7 أيام تقويمية من الرحلة يُطبع معه "إدخال متأخر"، إلا إذا سُجل التاريخ والعداد والوجهة عند نهاية الرحلة. أما مدى ملاءمة السجل لطريقة Fahrtenbuchmethode فقرار المستخدم ومستشاره.

الحدود بصراحة

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

للأسئلة عن صيغة السجل: odotur@benbasha.com.