Numbering schemes and calendar systems
Concurrent-safe numbering engine, draft tracking IDs versus official reference numbers, and dual Gregorian/Ethiopian fiscal calendar tokens.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Numbering schemes and calendar systems within SmartERP.
Official enterprise correspondence requires strict sequential numbering without gaps, duplicate identifiers, or premature assignment. SmartERP Letter & Correspondence Management implements a specialized numbering architecture (smarterp.letter.numbering) that solves common concurrency and fiscal calendar challenges in Ethiopian institutional environments.
{screenshot:numbering-and-calendars-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
smarterp_letter, smarterp_correspondence - Security Groups:
Letter Registry Clerk(Technical ID:smarterp_letter.group_letter_clerk)Executive Reviewer(Technical ID:smarterp_letter.group_letter_reviewer)Director General(Technical ID:smarterp_letter.group_letter_executive)
- Master Data Dependencies: Dual calendar templates (Ethiopian & Gregorian), official stamp repository, letter reference numbering formats, and departmental dispatch routes.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Correspondence app icon.
- From the top navigation bar, open Correspondence β Letters β Inbound / Outbound / Internal Memoranda.
{screenshot:numbering-and-calendars-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Letter Subject (Mandatory): Clear administrative or commercial subject heading
- Sender / Recipient Entity (Mandatory): External institution or internal department
- Dispatch Channel (Mandatory): Physical courier, hand delivery, or digital dispatch
- Dual Date (EC & GC) (Mandatory): Official Ethiopian calendar and Gregorian dates
- Configure optional operational parameters and localized tags as required:
- Digital Signature / Seal (Optional): Authorized executive cryptographic stamp
- Security Classification (Optional): Routine, Confidential, Secret, or Top Secret
- Related Prior Reference (Optional): Cross-referenced correspondence tracking ID
- Click the Save icon in the control bar to commit the record.
{screenshot:numbering-and-calendars-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Draft Memo β Editorial Review β Legal Clearance β Executive Signature & Stamp β Dispatched / Archived).
- Ledger & System Impact: Maintains immutable institutional correspondence registry with cryptographic QR validation for external party verification.
- Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:numbering-and-calendars-transaction-processing-state}
Dual-stage numbering architecture#
SmartERP cleanly separates the drafting phase from the formal legal registration phase:
- Draft Tracking ID (
draft_number): Assigned automatically upon letter creation (e.g.,DRF-2026-00011). This provides an immediate reference for draft tracking, internal chatter, and reviewer discussion without consuming an official registration slot. If a draft is cancelled or rejected, no gap is created in the official registry. - Official Reference Number (
reference_number): Allocated strictly when the letter is transitioned to theregisteredstate by an authorized registry officer. Once allocated, this number is immutable and permanently binds the letter to the organization's official registry book.
Draft Creation:
smarterp.letter -> draft_number = "DRF-2026-00011"
(reference_number is NULL)
Registration:
smarterp.letter -> reference_number = "ATS/CORP/OUT/2018/00042"
(draft_number preserved for historical continuity)
Concurrency safety with PostgreSQL row locks#
In high-volume organizations where dozens of officers register correspondence simultaneously, traditional sequence generation can suffer from race conditions resulting in duplicate numbers or database rollbacks.
SmartERP Letter Numbering uses row-level locking at the database level:
SELECT id, number_next
FROM smarterp_letter_numbering
WHERE id = %s
FOR UPDATE;
This guarantees that:
- Simultaneous registration requests are queued in order.
- No two letters can ever receive the same official reference number.
- In the event of a network or server interruption during registration, the sequence transaction is cleanly rolled back with zero orphaned sequence gaps.
Ethiopian and Gregorian calendar token reference#
Letter numbering schemes support rich dynamic token expansion, allowing organizations to structure references around departments, fiscal years, months, and letter categories.
| Token | Description | Example Output (Gregorian Oct 2026 / Ethiopian Tikimt 2019) |
|---|---|---|
{YYYY} | Gregorian 4-digit Year | 2026 |
{YY} | Gregorian 2-digit Year | 26 |
{MM} | Gregorian 2-digit Month | 10 |
{DD} | Gregorian 2-digit Day | 15 |
{EYYY} | Ethiopian Calendar Year (α.α) | 2019 |
{EMM} | Ethiopian Calendar Month (01-13) | 02 (Tikimt / α₯α
αα΅) |
{EDD} | Ethiopian Calendar Day (01-30) | 05 |
{CODE} | Company / Institution Code | ATS (Ashewa Technology Solutions) |
{DEPT} | Department Code | FIN, HR, LEGAL, ENG |
{TYPE} | Correspondence Type Code | IN, OUT, MEMO, CIRC |
{DIR} | Direction Indicator | IN, OUT |
{SEQ} | Zero-padded Sequential Number | 00001, 00142 |
Common formatting patterns in Ethiopian enterprises#
- Corporate Outgoing Standard:
{CODE}/{DEPT}/OUT/{EYYY}/{SEQ}$\rightarrow$ATS/HR/OUT/2019/00084 - Governmental Ministry Register:
{CODE}/{TYPE}/{EMM}/{EYYY}/{SEQ}$\rightarrow$MOH/IN/02/2019/01250 - Internal Memorandum:
MEMO/{DEPT}/{YYYY}/{SEQ}$\rightarrow$MEMO/FIN/2026/00312
Reset frequency and fiscal year boundaries#
Numbering schemes can be configured to reset automatically at specific intervals:
- Never Reset: Numbers increment continuously across years.
- Gregorian Year (Jan 1): Resets sequence to
1every January 1st. - Ethiopian Fiscal Year (Meskerem 1 / Sept 11): Resets sequence to
1at the beginning of the Ethiopian calendar year. - Monthly: Resets sequence to
1on the first day of each calendar month.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Letters: Check dispatch delivery receipt status(smarterp_letter.ir_cron_dispatch_check): Runs daily to verify courier delivery confirmation slipsLetters: Follow-up on pending memorandum actions(smarterp_letter.ir_cron_followup): Runs weekly to alert assigned officers of pending correspondence replies
- Custom Print Templates & Reports:
- Official Letterhead Dispatch Copy with QR Verification
- Institutional Letter Inward/Outward Registry Ledger
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Signature Block: Missing executive stamp clearance | Letter cannot be dispatched without authorized cryptographic stamp. | Submit letter to Executive Office for digital signing. |
Calendar Error: Invalid Ethiopian date conversion | Specified Ethiopian calendar date does not match leap year rules (Pagume 5/6). | Use the automated calendar picker to ensure synchronized EC/GC conversion. |
Unregistered Recipient: Partner profile missing TIN | External institutional recipient lacks complete corporate profile. | Create or update recipient partner master record before dispatching. |