ExtraGuestCharges

<OTA_HotelRateAmountNotifRQ> के ज़रिए भेजे गए किराये में बदलाव किया जा सकता है. ऐसा, वयस्कों और बच्चों के लिए किया जा सकता है. इसके अलावा, किराये में मेहमानों की मूल संख्या के हिसाब से भी बदलाव किया जा सकता है. ExtraGuestCharges मैसेज की मदद से, यह तय किया जा सकता है कि अतिरिक्त मेहमानों के लिए, किराये का हिसाब कैसे लगाया जाए. साथ ही, यह भी तय किया जा सकता है कि किन कमरों, किराये की योजनाओं, और ठहरने की तारीखों के लिए, उनसे शुल्क लिया जाए.

क्षमता से जुड़ी ज़रूरी शर्तें

ExtraGuestCharges मैसेज से कैलकुलेट की गई कीमतें सिर्फ़ तब मान्य होती हैं, जब क्षमता से जुड़ी सभी ज़रूरी शर्तें पूरी की गई हों. ज़्यादा जानकारी के लिए, लेन-देन (प्रॉपर्टी का डेटा) देखें.

अनुरोध

सिंटैक्स

ExtraGuestCharges मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
                   id="message_ID"
                   timestamp="timestamp">
  <HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
    <ExtraGuestCharge>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
                   days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="float"/>
        <ChildAgeBrackets>
        <!-- The following are different ways child charges can be specified.
        Use the option that matches your system. -->
          <ChildAgeBracket max_age="integer" amount="float"
                           exclude_from_capacity="[true|false]"/>
          <ChildAgeBracket max_age="integer" percentage="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
          <ChildAgeBracket max_age="integer" discount_amount="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

तत्व और एट्रिब्यूट

ExtraGuestCharges मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:

Element / @Attribute आवृत्तियां टाइप ब्यौरा
ExtraGuestCharges 1 Complex element इस मैसेज का रूट एलिमेंट.
ExtraGuestCharges / @partner 1 string यह मैसेज किस पार्टनर खाते के लिए है. यह स्ट्रिंग वैल्यू, Hotel Center में खाते की सेटिंग वाले पेज पर दी गई Partner key वैल्यू होती है.

ध्यान दें: अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को उसी खाते के लिए <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ> मैसेज के <RequestorID> एलिमेंट में दी गई ID एट्रिब्यूट की वैल्यू से मेल खाना चाहिए.

ExtraGuestCharges / @id 1 string इस अनुरोध मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, जवाब वाले मैसेज में दिखती है. इन वर्णों का इस्तेमाल किया जा सकता है: a-z, A-Z, 0-9, _ (अंडरस्कोर), और - (डैश).
ExtraGuestCharges / @timestamp 1 DateTime इस मैसेज को बनाने की तारीख और समय.
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges किसी एक प्रॉपर्टी के शुल्क के लिए कंटेनर.
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, होटल सूची फ़ीड में <listing> एलिमेंट में <id> का इस्तेमाल करके तय किए गए होटल आईडी से मेल खानी चाहिए. होटल आईडी, Hotel Center में भी दिखता है.
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum इससे पता चलता है कि अपडेट को कैसे लागू किया जाता है. सिर्फ़ overlay का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, ओवरले का इस्तेमाल किया जाता है. अपडेट लागू होने से पहले, इस प्रॉपर्टी के लिए पिछले सभी शुल्क चुका दिए जाते हैं.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

किसी प्रॉपर्टी के लिए शुल्क का एक सेट. इसमें शुल्क लागू करने के तरीके और उम्र या मेहमान की कैटगरी के हिसाब से शुल्क तय करने के तरीके से जुड़ी पाबंदियां शामिल हो सकती हैं.

हर ExtraGuestCharge, तारीखों और प्रॉडक्ट के यूनीक सेट पर लागू होना चाहिए.HotelExtraGuestCharges अगर ExtraGuestCharge के दो एलिमेंट, तारीख और प्रॉडक्ट के एक ही कॉम्बिनेशन के बारे में बताते हैं, तो पूरे मैसेज को अस्वीकार कर दिया जाता है.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets उम्र के हिसाब से शुल्क या मेहमान की कैटगरी के हिसाब से शुल्क का हिसाब लगाने के लिए, उम्र की सीमा वाला कंटेनर.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge यह कंटेनर, एक अतिरिक्त वयस्क के लिए लिए जाने वाले शुल्क के लिए है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float दशमलव वाली पॉज़िटिव वैल्यू. इससे पता चलता है कि एक अतिरिक्त वयस्क के लिए कितना शुल्क लिया जाएगा. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो रात के हिसाब से तय किए गए किराये के लिए इस्तेमाल की जाती है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets बच्चों के लिए अतिरिक्त शुल्क का कंटेनर. उम्र के ये ब्रैकेट, सिर्फ़ 0 से 17 साल की उम्र के लोगों के लिए हो सकते हैं.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket यह शुल्क, किसी खास उम्र सीमा के बच्चों पर लागू होता है. इन्हें सबसे कम max_age से लेकर सबसे ज़्यादा max_age के हिसाब से क्रम में लगाया जाना चाहिए. शुल्क के तौर पर ली जाने वाली रकम की जानकारी देने के लिए, amount, percentage या discount_amount में से किसी एक का इस्तेमाल किया जा सकता है. इन एट्रिब्यूट में से किसी एक को हर <ChildAgeBracket> के लिए तय करना ज़रूरी है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer ज़्यादा से ज़्यादा कितनी उम्र के लोगों पर <ChildAgeBracket> में बताया गया शुल्क लागू हो सकता है. अगर इससे पहले कोई अन्य <ChildAgeBracket> नहीं दिया गया है, तो कम से कम उम्र शून्य होगी. अगर ऐसा नहीं है, तो यह पिछले ब्रैकेट की अधिकतम उम्र से एक साल ज़्यादा है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean यह बूलियन वैल्यू है. इससे पता चलता है कि इस उम्र सीमा के बच्चे को कमरे की कुल क्षमता और बच्चों की क्षमता में शामिल किया जाना चाहिए या नहीं. इन कैपैसिटी को Transaction(Property Data) की मदद से सेट किया जा सकता है. उदाहरण के लिए, कुछ उम्र से कम के शिशुओं को शायद बच्चों की संख्या में न गिना जाए.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float यह एक नॉन-नेगेटिव डेसिमल वैल्यू होती है. इससे इस ब्रैकेट में शामिल किसी अतिरिक्त बच्चे के लिए, तय की गई कीमत का पता चलता है. इस शुल्क के लिए, उसी मुद्रा का इस्तेमाल किया जाता है जिसका इस्तेमाल रात के हिसाब से तय किए गए किराये के लिए किया जाता है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

यह 1 से 99 के बीच की दशमलव वैल्यू होती है. इससे पता चलता है कि इस ब्रैकेट में, एक अतिरिक्त बच्चे के लिए वयस्क की कीमत का कितना प्रतिशत शुल्क लिया जाना चाहिए. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो रात के हिसाब से तय किए गए किराए के लिए इस्तेमाल की जाती है.

वयस्कों के लिए तय की गई कीमत का हिसाब कैसे लगाया जाता है, इस बारे में ज़्यादा जानकारी के लिए counts_as_base_occupant में दी गई चर्चा देखें.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount 0..1 float

दशमलव वाली ऐसी वैल्यू जो शून्य से ज़्यादा हो. इससे इस ब्रैकेट में शामिल किसी अतिरिक्त बच्चे के लिए, वयस्क के किराये पर मिलने वाली फ़्लैट छूट की रकम का पता चलता है. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो रात के हिसाब से तय किए गए किराये के लिए इस्तेमाल की जाती है.

आम तौर पर, इस ब्रैकेट में आने वाले बच्चे के लिए शुल्क का हिसाब इस तरह लगाया जाता है: "इकाई कीमत" से तय की गई कीमत घटाकर. इकाई की कीमत के बारे में ज़्यादा जानकारी, counts_as_base_occupant एट्रिब्यूट वाले सेक्शन में दी गई है.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant 0..1 string

अगर percentage या discount_amount एट्रिब्यूट की वैल्यू दी गई है, तो counts_as_base_occupant एट्रिब्यूट की वैल्यू भी देना ज़रूरी है. इस वैल्यू से यह तय होता है कि जब आपको प्रतिशत के हिसाब से शुल्क और छूट लागू करने के लिए <BaseByGuestAmount> की दर चुननी हो, तब किसी बच्चे को NumberOfGuest में शामिल किया जाना चाहिए या नहीं.

यहां हमारा मकसद "इकाई मूल्य" हासिल करना है, ताकि असल शुल्क का हिसाब लगाया जा सके.

unit price = rate / occupancy

इस एट्रिब्यूट की वैल्यू, never, preferred या always में से कोई एक होनी चाहिए.

  • अगर never प्रॉपर्टी की वैल्यू दी गई है, तो बच्चे को कभी भी कमरे में रहने वाले लोगों की संख्या में शामिल नहीं किया जाना चाहिए.

    अगर आपको दो वयस्कों और दो बच्चों (2+2) के लिए किराया कैलकुलेट करना है, तो आपको दो वयस्कों के लिए तय किया गया किराया इस्तेमाल करना चाहिए. ऐसा इसलिए, क्योंकि बच्चों को शामिल नहीं किया जाना चाहिए.

  • अगर preferred की वैल्यू दी गई है, तो बच्चे को कमरे में रहने वाले लोगों की संख्या में शामिल किया जाना चाहिए.

    अगर आपको दो वयस्कों और एक बच्चे (2+1) के लिए किराया कैलकुलेट करना है, तो हमारा सुझाव है कि आप तीन वयस्कों के लिए तय किए गए किराये का इस्तेमाल करें. हालांकि, अगर यह किराया उपलब्ध नहीं है, तो दो वयस्कों के लिए तय किए गए किराये का इस्तेमाल करें.

  • अगर always की वैल्यू दी गई है, तो बच्चे को हमेशा कमरे में रहने वाले लोगों की संख्या में शामिल किया जाना चाहिए.

    अगर आपको दो वयस्कों और दो बच्चों (2+2) के लिए किराया कैलकुलेट करना है, तो आपको चार वयस्कों के लिए तय किए गए किराये का इस्तेमाल करना चाहिए. ऐसा इसलिए, क्योंकि बच्चों को शामिल करना ज़रूरी है.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes कमरे के टाइप की सूची के लिए कंटेनर, जिन पर शुल्क लागू होता है. यह शुल्क, बताई गई हर <RoomType> पर लागू होता है. अगर <RoomTypes> प्रॉपर्टी की वैल्यू नहीं दी गई है, तो शुल्क, बताई गई प्रॉपर्टी के सभी कमरों पर लागू होंगे.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType कमरे का टाइप तय करता है. कमरे के टाइप को लेन-देन (प्रॉपर्टी डेटा) मैसेज में मौजूद <RoomData> एलिमेंट में तय किया जाता है. साथ ही, इसे इसकी <RoomID> वैल्यू का इस्तेमाल करके रेफ़र किया जाता है. (इसकी <RoomID> वैल्यू का रेफ़रंस, OTA_HotelRateAmountNotifRQ मैसेज में InvTypeCode एट्रिब्यूट से भी दिया जाता है.)
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string इन्वेंट्री (कमरे का टाइप) के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी डेटा) मैसेज में <RoomID> पर मैप करती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans यह उन रेट प्लान की सूची के लिए कंटेनर है जिन पर शुल्क लागू होते हैं. अगर <RatePlans> नहीं बताया गया है, तो शुल्क सभी रेट प्लान पर लागू होगा.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan किराये के प्लान के बारे में बताता है. किराया प्लान, पैकेज, किराये, और उपलब्धता के कॉम्बिनेशन से तय होता है. यह जानकारी, लेन-देन (प्रॉपर्टी का डेटा), OTA_HotelRateAmountNotifRQ, और OTA_HotelAvailNotifRQ मैसेज में दी जाती है. साथ ही, इसे PackageID से पहचाना जाता है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string किराया प्लान के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) मैसेज में मौजूद <PackageData> में PackageID वैल्यू और <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ> मैसेज, दोनों में <StatusApplicationControl> में मौजूद RatePlanCode एट्रिब्यूट की वैल्यू पर मैप करती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates यह एक या उससे ज़्यादा तारीख की सीमाओं के लिए कंटेनर होता है. इससे यह तय होता है कि शुल्क कैसे लागू किए जाते हैं.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange तारीख की वह सीमा जिसमें प्रमोशन लागू करना है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से हमेशा के लिए सेट हो जाती है.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी जाती है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है.

मान्य वर्ण ये हैं:

  • सोमवार के लिए M
  • T मंगलवार के लिए
  • W बुधवार के लिए
  • H गुरुवार के लिए
  • F शुक्रवार के लिए
  • S शनिवार के लिए
  • रविवार के लिए U

वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

उदाहरण

वयस्कों के लिए शुल्क

अतिरिक्त वयस्कों के लिए शुल्क, सिर्फ़ तय की गई रकम के तौर पर दिखाया जा सकता है. यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है. इसमें वयस्क कॉन्टेंट के लिए शुल्क के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <StayDates />
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

यहां इससे जुड़ी दरें दी गई हैं:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

जब कोई व्यक्ति Google पर चार वयस्कों के लिए होटल खोजता है, तो कुल किराया 170 रुपये होगा. यह 120 + 50 रुपये के बराबर है.

NumberOfGuests="3" की दर से 120 और AdultCharge amount="50" से 50 मिलता है.<BaseByGuestAmt>

बच्चे के लिए शुल्क

बच्चों के लिए शुल्क, 17 साल तक की उम्र के हिसाब से तय किया जाता है. इसे तय रकम, प्रतिशत या छूट के तौर पर दिखाया जा सकता है.

यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है. इसमें बच्चों के लिए लागू शुल्क के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <AgeBrackets>
        <ChildAgeBrackets>
          <ChildAgeBracket max_age="3" percentage="10"
                           counts_as_base_occupant="never" />
          <ChildAgeBracket max_age="10" percentage="30"
                           counts_as_base_occupant="preferred"/>
          <ChildAgeBracket max_age="17" discount_amount="10"
                           counts_as_base_occupant="always" />
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

यहां इससे जुड़ी दरें दी गई हैं:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```

  1.  Suppose you want the total price for 2 adults and 1 child of 2 years
      of age.

      Children aged 0-3 are never included in the rate's occupancy,
      so here you should take the double occupancy rate and divide by 2 to
      get the unit price. Then, multiply by the percentage rate and sum
      with the rate to get the total price.

      `unit price ` = 110 / 2 = 55

      `total price` = 110 + 55 * 0.1 = 115.5

  1.  Suppose you want the total price for 1 adult and 2 children, both of 5
      years of age.

      Children aged 4-10 are preferably included in the rate's
      occupancy. you should start by looking for a 3 adult rate since both
      children are preferably included in the rate's occupancy. Since
      that doesn't exist you should fall back to the 2 adult rate and then,
      take this rate and divide by two to get the unit price. Finally,
      multiply by the percentage rate and sum with the scaled rate to
      get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88

  1.  Suppose you want the total price for 1 adult and 1 child of 17
      years of age.

      Children aged 11-17 are always included in the rate's occupancy, so,
      in this case, take the double occupancy rate and divide by 2 to get
      the unit price. Then, deduct it by the discount amount and sum with
      the scaled rate to get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + (55 - 10) = 100

चार्ज करने से जुड़ी पाबंदियां

सभी तरह की पाबंदियां वैकल्पिक होती हैं और इनमें से किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है. इसमें पाबंदियों के बारे में बताया गया है:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

ऊपर दिए गए मैसेज में बताया गया है कि वयस्कों से, 1 सितंबर, 2020 से 14 सितंबर, 2020 तक के लिए, "क्वीन" या "किंग" टाइप वाले कमरे के लिए शुल्क लिया जाना चाहिए. इसके लिए, "मुफ़्त वाई-फ़ाई" या "गर्म नाश्ता" वाला रेट प्लान चुना गया है.

ओवरलैप होने वाले शुल्क

इस सेक्शन में, अमान्य मैसेज का एक उदाहरण दिखाया गया है. इसमें तारीखों और प्रॉडक्ट के एक ही कॉम्बिनेशन के लिए अलग-अलग शुल्क बताए गए हैं.


<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-05"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="20" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

ऊपर दिया गया मैसेज अमान्य है, क्योंकि पहले <ExtraGuestCharge> में बताया गया है कि 1 से 14 सितंबर तक, "क्वीन" और "फ़्री-वाईफ़ाई" वाले कमरे में अतिरिक्त वयस्कों से 50 रुपये का शुल्क लिया जाना चाहिए. दूसरे <ExtraGuestCharge> से पता चलता है कि 1 से 5 सितंबर के बीच, "क्वीन" या "किंग" में से किसी भी कमरे के साथ "मुफ़्त वाई-फ़ाई" या "गर्म नाश्ता" में से कोई भी सुविधा लेने पर, अतिरिक्त वयस्कों से 20 डॉलर का शुल्क लिया जाना चाहिए. "क्वीन" और "मुफ़्त वाई-फ़ाई" के लिए, 1 से 5 सितंबर तक के लिए एक जैसे शुल्क लिए गए हैं. साथ ही, एक और वयस्क के लिए 20 या 50 रुपये में से कौनसा शुल्क लेना है, इस बारे में विरोधाभास है.

जवाब

सिंटैक्स

ExtraGuestChargesResponse मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</ExtraGuestChargesResponse>

तत्व और एट्रिब्यूट

ExtraGuestChargesResponse मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:

Element / @Attribute आवृत्तियां टाइप ब्यौरा
ExtraGuestChargesResponse 1 Complex element रूट एलिमेंट, जो मिले हुए ExtraGuestCharges अनुरोध मैसेज के लिए, ऑपरेशन के पूरा होने या समस्याओं के बारे में बताता है.
ExtraGuestChargesResponse / @timestamp 1 DateTime इस मैसेज को बनाने की तारीख और समय.
ExtraGuestChargesResponse / @id 1 string ExtraGuestCharges मैसेज से जुड़ा यूनीक आइडेंटिफ़ायर.
ExtraGuestChargesResponse / @partner 1 string यह मैसेज किस पार्टनर खाते के लिए है.
ExtraGuestChargesResponse / Success 0..1 Success इससे पता चलता है कि ExtraGuestCharges मैसेज को बिना किसी चेतावनी, गड़बड़ी या समस्या के प्रोसेस कर लिया गया है.

हर मैसेज में <Success> या <Issues> मौजूद है.

ExtraGuestChargesResponse / Issues 0..1 Issues यह एक कंटेनर है. इसमें ExtraGuestCharges मैसेज को प्रोसेस करते समय हुई एक या उससे ज़्यादा समस्याओं की जानकारी होती है.

हर मैसेज में <Success> या <Issues> मौजूद है.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue ExtraGuestCharges मैसेज को प्रोसेस करते समय मिली किसी चेतावनी, गड़बड़ी या समस्या की जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है.
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer समस्या के लिए आइडेंटिफ़ायर.
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

समस्या किस तरह की है.

मान्य वैल्यू warning, error, और failure हैं.

उदाहरण

पुष्टि हो गई

यहां ExtraGuestCharges मैसेज को प्रोसेस करने के बाद मिला जवाब दिया गया है.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</ExtraGuestChargesResponse>

समस्याएं

यहां ExtraGuestCharges मैसेज का जवाब दिया गया है. गड़बड़ियों की वजह से, इस मैसेज को प्रोसेस नहीं किया जा सका.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</ExtraGuestChargesResponse>