এই ভলিউমে · ভলিউম 13
ওয়ার্কফ্লো
ওয়ার্কফ্লো সূচি বুকিং লাইফসাইকেল ওয়ার্কফ্লো রিফান্ড ওয়ার্কফ্লো অনুমোদন ওয়ার্কফ্লো পিরিয়ড ক্লোজ ওয়ার্কফ্লো

অধ্যায় ১৩.৪ — অনুমোদন ওয়ার্কফ্লো

১. উদ্দেশ্য

Maker-checker অনুমোদন প্যাটার্ন — travoBooks-এর সব internal control-এর foundation।

২. মূল নীতি

একই ব্যবহারকারী maker এবং checker হতে পারে না। ব্যতিক্রম নেই, threshold নির্বিশেষে।

৩. সাধারণ State Machine

stateDiagram-v2 [*] --> DRAFT DRAFT --> PENDING_APPROVAL: submit PENDING_APPROVAL --> APPROVED: checker approves PENDING_APPROVAL --> REJECTED: checker rejects PENDING_APPROVAL --> CANCELLED: maker withdraws APPROVED --> EXECUTED: action carried out REJECTED --> DRAFT: maker can revise REJECTED --> [*]: maker abandons

৪. থ্রেশহোল্ড (default, BDT)

অপারেশন থ্রেশহোল্ড অনুমোদনকারী
একক বুকিং 200,000 Supervisor
একক রিফান্ড 100,000 Supervisor
কাস্টমার ক্রেডিট লিমিট নতুন/বাড়ানো 500,000 Controller
সরবরাহকারী ব্যাঙ্ক বিবরণ পরিবর্তন যেকোনো Controller (এবং 30-min hold)
ম্যানুয়াল JE 50,000 Senior Accountant
Closed period reopen যেকোনো Controller
পেআউট (সরবরাহকারীকে) 1,000,000 Treasurer
পার্টনার সেটিং পরিবর্তন যেকোনো Partner Admin × 2
Tax rule পরিবর্তন যেকোনো Controller

থ্রেশহোল্ড পার্টনার-কনফিগারেবল।

৫. Approval Routing

flowchart TD A[Operation initiated] --> B{Amount/type checks threshold?} B -->|No| C[Auto-execute] B -->|Yes| D{Required role available?} D -->|No| E[Block, escalate to admin] D -->|Yes| F[Notify approver] F --> G[Approver reviews] G --> H{Approve?} H -->|Yes| I[Execute operation] H -->|No| J[Notify maker with reason] J --> K[Maker can revise]

৬. Special case: Vendor bank change

সর্বদা approval প্রয়োজন (threshold নয়):

sequenceDiagram participant M as Maker participant T as travoBooks participant A as Approver participant S as Supplier (out-of-band) M->>T: Submit bank change T->>T: PENDING_APPROVAL T->>A: Notification A->>S: Out-of-band call (known phone) S-->>A: Confirm change is legit A->>T: Approve T->>T: Apply change + start 30-min payout hold Note over T: কোনো payout করা যাবে না 30 মিনিট T->>T: After 30 min, payouts allowed

এটি ভেন্ডর-ফ্রড ঠেকানোর crucial control।

৭. Approver রোল

প্রতিটি threshold-এর জন্য একটি required role: - Supervisor - Senior Accountant - Controller - Treasurer - Partner Admin

Role-এ একাধিক ব্যক্তি থাকতে পারে — যেকোনো একজন approve করতে পারেন।

৮. Escalation

ছয় ঘণ্টা PENDING — manager-কে escalation। যদি approver অনুপস্থিত (ছুটি, ইত্যাদি), delegate উপলব্ধ।

৯. Bulk approval

দৈনিক operational items (যেমন standard pricing change): - Bulk view: multiple items একসাথে - Per-item approval (consciousness) - Bulk reject possible

১০. Audit Trail

প্রতিটি approval: - Maker identity - Approver identity - Timestamp - Decision (approve/reject) - Reason (mandatory for reject) - Before/after diff (যদি applicable)

সব audit log-এ আছে; tamper-evident hash chain।

১১. সাধারণ ফাঁদ

  • ⚠️ Maker = Checker — system catches, but org policy break
  • ⚠️ Vendor bank change-এ threshold logic — সর্বদা approval
  • ⚠️ Auto-approval rules যা control ভঙ্গ করে
  • ⚠️ Approval ইতিহাস retention মিস