অধ্যায় ৪.২ — টিকেটিং ও PNR
১. উদ্দেশ্য
PNR (Passenger Name Record) ব্যবস্থাপনা এবং ইস্যুয়েন্স মেকানিক্স। কীভাবে travoBooks GDS-এর PNR রেকর্ডকে ইন্টারনাল বুকিংয়ের সাথে সিঙ্ক রাখে।
২. PNR কী
PNR হলো GDS-এ সংরক্ষিত একটি ৬-অক্ষরের রেকর্ড লোকেটর যা একটি বুকিংয়ের সব বিবরণ ধারণ করে: যাত্রী, ফ্লাইট, টিকেট, যোগাযোগ। উদাহরণ: ABCDEF।
৩. ইন্টারনাল ট্র্যাকিং
travoBooks-এ:
- bookings.supplier_record_locator — PNR সংরক্ষণ
- booking_tsts.supplier_pricing_record_id — TST/Price Quote
- booking_tickets.ticket_number — IATA 13-অঙ্কের টিকেট নম্বর
৪. ইস্যুয়েন্স ক্রিটিক্যাল প্যাটার্ন
(অধ্যায় ৪.১ এ বিস্তারিত)
GDS কল ডিবি ট্রানজ্যাকশনের বাইরে — কারণ: - নেটওয়ার্ক লেটেন্সি অপ্রত্যাশিত (২০০ms থেকে ৩০ সেকেন্ড) - ডিবি লক দীর্ঘ ধরে রাখা = অন্য অপারেশন ব্লক - টিকেট নম্বর প্রাপ্তি = অপরিবর্তনীয় আর্থিক ঘটনা
৫. টিকেটিং টাইমলিমিট (TL)
ফেয়ার টাইমলিমিট: যে সময়ের মধ্যে টিকেট ইস্যু করতে হবে অন্যথায় মূল্য পরিবর্তন/বুকিং বাতিল।
- ক্যাশ গ্রাহক: TL = পেমেন্ট ক্যাপচার সময়
- ক্রেডিট গ্রাহক: TL = তাৎক্ষণিক ইস্যু (পেমেন্ট টার্মের ভিতরে)
TL অতিক্রম → বুকিং EXPIRED, পুনঃ-অনুসন্ধান প্রয়োজন।
৬. টিকেট স্টেট
| স্টেট | অর্থ |
|---|---|
| RESERVED | ইস্যু কিন্তু সেটেলমেন্ট অপেক্ষা |
| ISSUED | BSP-তে সেটেলড |
| VOIDED | উইন্ডোর মধ্যে ভয়েড |
| REFUNDED | সম্পূর্ণ রিফান্ড |
| PARTIALLY_REFUNDED | আংশিক রিফান্ড |
| EXCHANGED | reissue-এর মাধ্যমে প্রতিস্থাপিত |
| FLOWN | কমপক্ষে একটি কুপন ব্যবহৃত |
| EXPIRED | টিকেটের মেয়াদ অব্যবহৃত |
৭. অরফান টিকেট
পরিস্থিতি: GDS-এ টিকেট আছে, আমাদের ডিবিতে নেই (ইস্যুয়েন্সের পরে কমিট ব্যর্থ)।
সমাধান:
- supplier_request_log ticket নম্বর সংরক্ষণ করে
- Reconciler প্রতি ৫ মিনিটে চলে
- supplier_request_log টিকেট নম্বর + booking_tickets-এ অনুপস্থিত = orphan
- ইঞ্জিনিয়ারিং অ্যালার্ট, ম্যানুয়াল সমাধান (টিকেট রেকর্ড INSERT + JE পোস্ট)
৮. শিডিউল চেঞ্জ
GDS পরিবর্তন push করে:
- Amadeus: Queue_PlaceMessage
- Sabre: Notifications API
- Travelport: TMU subscription
travoBooks:
- পরিবর্তন detect
- booking_segments.status, new_time আপডেট
- ops-এর জন্য booking_alert তৈরি
- নিয়ম মিললে স্বয়ংক্রিয় re-protect
৯. সাধারণ ফাঁদ
- ⚠️ TL এর আগে পেমেন্ট না নেওয়া (ক্যাশ পথ) — বুকিং expired
- ⚠️ reconciler ছাড়া orphan টিকেট নীরবে হারিয়ে যায়
- ⚠️ schedule change নোটিফিকেশন উপেক্ষা — গ্রাহক ভুল ফ্লাইটে পৌঁছায়