This API is used to get Buffet Breakfast List Irrespective of Hotel, Room, Discount & Promo code.

Also It is assumed that pricing for all buffet Breakfast is always Per Person.


HOW TO USE?
This extra is useful to get Buffet Breakfast only for All Hotels and Rooms.

HEADERS TO USE FOR REQUEST

Parameter

Value

Description

Content-Type

application/json


APIKEY

as given you


AFFILIATECODE  

as given you

For Affiliate only. Not required for Tenant

TENANTCODE

as given you

For Tenants only. Not required for affiliate

BODY PARAMETERS

Name

Type

Description

Example

ArrivalDate 

Datetime 

Date of Arrival , in format “yyyy-MM-dd” 

Any date greater than current date + 7 days

ReturnDate 

Datetime

Date of Return, in format “yyyy-MM-dd” 

Should not be less than Arrival Date 

TenantCode  

String 

Provided Tenant Code  

PRO10 

AgecategoryWiseNoOfPersonsInSearch  



1

.AgeCategoryCode 

String

Persons Age Category Code by their Ages.


.PersonCount 

Int

Person Count For Related Age Category Code


AffiliateCode 

String

Contains Affiliate Code (Affiliate Code not required for Tenants)



UAT URL:  https://uat.breakaway.ie/api/BookingHotelExtra/GetBuffetBreakfastList 


RESPONSE PARAMETERS


NAME

Type

Description

Example

Result

boolean



ResultMessage

string



Object




.HotelExtraCategoryID 

int 

Contains Hotel Extra Category ID 

.HotelExtraCategoryName 

string 

Contains Hotel Extra Category Name 

Breakfast 

.CategoryIconFileName 

string 

Contains Category Icon File Name 

Breakfast 

.CategoryIconFilePath 

string 

Contains Category Icon File Path 

images\icon\Hotel extra\breakfast.png 

.ObjBookingHotelExtra 

 

Contains Hotel Extra List as per Related Category 

 

..BookingDays 

 

Contains Booking Day and Date List between Arrival and Return Date 

 

...BookingDay 

string 

Contains Booking Day of Week 

Tuesday 

...BookingDate 

DateTime 

Contains Booking Date 

2017-07-18T00:00:00 

...BestPrice 

decimal 

Contains Best Price 

30 

...HotelID

int

Extra for HotelID

1

...RoomID

int

Extra For RoomID

1

..HotelExtraID 

int 

Contains Hotel Extra ID 

..HotelExtraName 

string 

Contains Hotel Extra Name 

CBDND Character 

Breakfast 2nd Seating 

09.30 Disney 

..IconFileName 

string 

Contains Hotel Extra Icon File Name 

icon.png 

..IconFilePath 

string 

Contains Hotel Extra Icon File Path 

Documents/Common/H

otelExtra/HotelExtraIco n_cake_202017_07_03_

05_06_56_PM.png 

..DisplayInBooking 

boolean 

Ignore This Parameter 

 

..HotelExtraNote 

string 

Contains Note related to Hotel Extra 

Description Note 

..HotelExtraDescription 

string 

Contains Details Description about hotel extra. 

Extra Description in 

Detail 

..IncludeExtraOption 

string 

P = PerPerson, B = PerBooking, R = PerRoom 

P/B/R 

..BannerFileName 

string 

Contains Extra Banner File Name 

banner.png 

..BannerFilePath 

string 

Contains Extra Banner File Path 

Documents/Common/H otelExtra/Banner_2017 _03_14_01_35_59_PM.

png 

..SeatingPlanFileName 

string 

Contains Seating Plan File Name For Extras like Wild West Show. 

SeatingPlan.png 

..SeatingPlanFilePath 

string 

Contains Seating Plan File Path For Extras like Wild West Show. 

Documents/Common/H otelExtra/HotelExtraSea tingPlan_cool hd_wallpapers1080p (5)2017_06_23_02_53_

..IsAllowedOnArrivalDate

DateTime 

Ignore This Parameter 


..IsAllowedOnDepartureDate 

DateTime 

Ignore This Parameter 


..Sequence 

int

Contains Extra Listing Display Sequence Number

32

..CloseOutStartDate 

DateTime 

Ignore This Parameter

2017-06-01T00:00:00 

..CloseOutEndDate 

DateTime 

Ignore This Parameter

2017-07-31T00:00:00 

..ObjPricingPeriod


Contains Listing of Pricing Periods for Extra 

Between Arrival and Return Date 


...ExtraPricingPeriodID 

int

Contains Pricing Period ID 


...PricingPeriodStartDate 

DateTime 

Ignore This Parameter 

2017-06-01T00:00:00 

...PricingPeriodEndDate 

DateTime 

Ignore This Parameter 

2017-06-31T00:00:00 

...IsFullDuration 

Boolean

Contains Is Applied to Full Booking Duration With 

Flags Checking IsAllowedOnArrivalDate/ 

IsAllowedOnDepartureDate/ Should not be in 

Closeout Dates 

true/false 

...IsCompulsory 

Boolean

Contains Is Extra is Compulsory between Selected 

Arrival and Return Dates 

true/false 

...IsDateCompulsory 

Boolean

Contains Is Extra is Compulsory for Some Dates between Selected Arrival and Return Dates 

true/false 

...ObjDateCompulsory 




....DateCompulsoryStartDate 

DateTime 

Contains Date Compulsory Start Date 

2017-07-18T00:00:00 

....DateCompulsoryEndDate 

DateTime 

Contains Date Compulsory End Date 

2017-07-21T00:00:00 

...PerBookingActualPrice 

decimal 



...ObjAllotmentPerDay 




...objAgePrice 




....ActualPrice 

decimal 



....ArrNoOfPersons 

int[]



....NoOfPersons 

int



....Sequence 

int



....AgeCategoryCode 

string



....AgeCategoryName 

string



....AgeCategoryAlias 

string



....AgeCategoryIconPath 

string



....AgeCategoryGroupCode 

string



....StartAgeLimit 

int



..ObjExtraInfo 

arrayObj



...ExtraInfoEffectiveDate 

datetime



...ExtraInfoDocumentName 

string



...ExtraInfoDocumentPath 

string



..DependentExtras 

int[]



..IsCompulsoryForParty 

Boolean



..IsSinglePriceForFullDuration

Boolean



..ArrivalDateDeterminesPrice 

Boolean

If flag is true then price for other Days is same as arrival Date if Arrival Date has Price. 

 

ExtraObj

arrayObj



.PromotionID 

int



.PromotionName 

string



.PromotionCode

string



.PromotionDesc 

string



.Amount 

decimal



.PriceOption 

string 



.PromotionTypeCode 

string 


500

.ExceedAmount 

decimal?



.IsApplyForAll 

boolean

Contains Flag true/false 

true/false

.ApplicableToCustomerCount  

int

Contains No of Customers can have this Promotion

15

.AppliedToCustomerCount 

int

Contains No of Customers had applied this promotion.  

5

.PricingPeriods 




..ArrivalFromDate 

datetime

Conatins Arrival from Date 

2018-03-01T00:00:00 

..ArrivalToDate 

datetime

Conatins Arrival To Date 

2018-03-30T00:00:00 

IsTimeout

boolean



ErrorCode

string





ERROR CODES

HTTP Status

Type

500

INTERNAL_SERVER_ERROR

Mandatory Business Validations and Price Calculation in Booking for Listed Hotel Extras:  

1.For Extra Pricing, use object “BookingDays” Which Contains Best Price for Extra. Pricing for Extra per Person Pricing based on Object AgecategoryWiseNoOfPersonsInSearch from Input. The Days which are having price zero are not allowed to book calculated based on flags and allotment(availability).

2.IsCompulsoryForParty– If this flag is true then if Extra is selected for any date then we cannot change the person count for this extra. Then extra price will be as per above list item. I.e. from BookingDays property.  

3.IsCompulsoryForParty - if this flag is false then Extra price is depends on IncludeExtraOption property. 

 When IncludeExtraOption value is –> 

o“P” then Price Calculation will be Per Person. Age Category wise prices are at ObjPricingPeriod-> objAgePrice.  

o“B” then Price = ObjPricingPeriod ->PerBookingActualPrice . 

o“R” then Price = ObjPricingPeriod -> PerBookingActualPrice * No. of Rooms. 

o“A” then Price = BookingDays. BestPrice 


Note:  No. of Rooms as per hotel listing passenger allotment. 

Note:  This extra is always compulsory for full party. So no need to recalculate price and do not update party size for this extra. 


4.IsFullDuration – If this is true then if Extra is selected for one date then it has to automatically select for other Booking Dates where having BestPrice by checking this condition and if removed for one date then remove for all dates. 

5.IsCompulsory – Extra is compulsory for all Booking dates and has to be selected on load and user will not able to remove that Extras which are having IsCompulsory = true  

6.IsDateCompulsory – if IsDateCompulsory = true along with IsCompulsory = true then extra will be compulsory for Dates from ObjDateCompulsory list with DateCompulsoryStartDate and DateCompulsoryEndDate and has to be selected on load and user will not able to remove that Extras. 

7.DependentExtras – Extras, which are dependent on each other, will be listed along with extra in array and User can select only one extra from these extras. If both are available in list remove one give an alert

8.IsSinglePriceForFullDuration – If extra, having this flag then extra should be selected on Arrival Date only. (not for any other Day.) 

9.ArrivalDateDeterminesPrice – If this flag is true then Arrival Dates Price is applicable for all remaining days based on allotment.  




If Extra has ‘IsPromotionalDiscountApplicable’ flag true for Selected Date then promotional Discount is apply on Extra

 How to calculate Promotional discount if IsCompulsoryForParty is true. 


Note-Amount can be in %(P) or EUR(V) depends on price Option. 


Here, 

ExtraPriceForSelectedDate=Extra Price for selected date with selected person.  

PersonCount=Person count for selected extra on selected date. 

oPriceOption is 'P' and  PromotionTypeCode is 'PB' then  

Discount Price= (Amount / 100) * ExtraPriceForSelectedDate. 

oPriceOption is 'P' and PromotionTypeCode is 'PP' then  

Discount Price= (Amount * PersonCount / 100) * ExtraPriceForSelectedDate; 

oPriceOption is 'P' and PromotionTypeCode is 'EX' then  

In this case promotional discount is apply only when TotalPackagePrice exceed the ExceedAmount             

Discount Price= (Amount / 100) * ExtraPriceForSelectedDate.  

oPriceOption is 'V' and  PromotionTypeCode is 'PB' then  

Discount Price= Amount; 

oPriceOption is 'V' and PromotionTypeCode is 'PP' then  

oDiscount Price= Amount * PersonCount.  

oPriceOption is 'v' and PromotionTypeCode is 'EX' then  

In this case promotional discount is apply only when TotalPackagePrice exceed the ExceedAmount               

Discount Price= Amount. 


SAMPLE REQUEST


  "ArrivalDate": "2018-06-20"

  "ReturnDate": "2018-06-25"

  "TenantCode": "CODE"

  "AffiliateCode": "AFCODE",  

  "AgecategoryWiseNoOfPersonsInSearch": [ 

    {"AgeCategoryCode": "AD","PersonCount": 2 }, 

    {"AgeCategoryCode": "CH1218","PersonCount": 0 }, 

    {"AgeCategoryCode": "CH711","PersonCount": 0 }, 

    {"AgeCategoryCode": "CH36","PersonCount": 0 }, 

    {"AgeCategoryCode": "CH03","PersonCount": 0 } 

  ] 

}


SAMPLE RESPONSE


  "Result": true

  "ResultMessage": null

  "Object": [ 

    { 

      "HotelExtraCategoryID": 2, 

      "HotelExtraCategoryName": "Breakfast"

      "CategoryIconFileName": "Breakfast"

      "CategoryIconFilePath": "http://localhost:2116/images\\icon\\Hotel_extra\\breakfast.png"

      "ObjBookingHotelExtra": [ 

        { 

          "BookingDays": [ 

            { 

              "BookingDay": "Wednesday"

              "BookingDate": "2018-02-07T00:00:00"

              "BestPrice": 32.00, 

              "IsHavingPriceZero": false 

            }, 

            { 

              "BookingDay": "Thursday"

              "BookingDate": "2018-02-08T00:00:00"

              "BestPrice": 32.00, 

              "IsHavingPriceZero": false 

            }, 

            { 

              "BookingDay": "Friday"

              "BookingDate": "2018-02-09T00:00:00"

              "BestPrice": 32.00, 

              "IsHavingPriceZero": false 

            }, 

            { 

              "BookingDay": "Saturday"

              "BookingDate": "2018-02-10T00:00:00"

              "BestPrice": 32.00, 

              "IsHavingPriceZero": false 

            } 

          ], 

          "HotelID": 1,

          "RoomID": 1

          "HotelExtraID": 81, 

          "HotelExtraName": "Buffet Breakfast at your Hotel"

          "ExtraSubtotal": 0.0, 

          "IconFileName": null

          "IconFilePath": null

          "DisplayInBooking": true

          "HotelExtraNote": null

          "HotelExtraDescription": "Enjoy a scrumptious breakfast feast at the breakfast......"

          "IncludeExtraOption": "P"

          "RoomCount": 0, 

          "BannerFileName": "La Cantina Santa Fe Restaurant 400x200.jpg"

          "BannerFilePath": "http://localhost:2116/Documents/Common/HotelExtra/Hot.._57_03_AM.jpg"

          "SeatingPlanFileName": null

          "SeatingPlanFilePath": null

          "IsAllowedOnArrivalDate": false

          "IsAllowedOnDepartureDate": true

          "IsAlwaysAvailable": true

          "IsCompulsoryForParty": false

          "IsSinglePriceForFullDuration": false

          "ArrivalDateDeterminesPrice": false

          "Sequence": 1, 

          "ExtraDisableDelete": false

          "IsUnavailableForAllDays": false

          "CloseOutStartDate": null

          "CloseOutEndDate": null

          "ObjPricingPeriod": [ 

            { 

              "ExtraPricingPeriodID": 86, 

              "PricingPeriodStartDate": "2017-03-29T00:00:00"

              "PricingPeriodEndDate": "2018-03-20T00:00:00"

              "IsFullDuration": true

              "IsCompulsory": false

              "IsDateCompulsory": false

              "IsCompulsoryForParty": false

              "PerBookingActualPrice": 0.0, 

              "ObjAllotmentPerDay": [ 

                { 

                  "AllotmentDay": "2018-02-07T00:00:00"

                  "AllotmentCode": "O" 

                }, 

                { 

                  "AllotmentDay": "2018-02-08T00:00:00"

                  "AllotmentCode": "O" 

                }, 

                { 

                  "AllotmentDay": "2018-02-09T00:00:00"

                  "AllotmentCode": "O" 

                }, 

                { 

                  "AllotmentDay": "2018-02-10T00:00:00"

                  "AllotmentCode": "O" 

                } 

              ], 

              "ObjDateCompulsory": [ ], 

              "objAgePrice": [ 

                { 

                  "ActualPrice": 16.00, 

                  "ArrNoOfPersons": [ 0, 1, 2 ], 

                  "NoOfPersons": 2, 

                  "Sequence": 1, 

                  "AgeCategoryCode": "AD"

                  "AgeCategoryName": "Adults (18+ yrs)"

                  "AgeCategoryAlias": "Adult"

                  "AgeCategoryIconPath": null

                  "AgeCategoryGroupCode": "AD"

                  "StartAgeLimit": 18, 

                  "EndAgeLimit": 120 

                }, 

                { 

                  "ActualPrice": 16.00, 

                  "ArrNoOfPersons": [ 0 ], 

                  "NoOfPersons": 0, 

                  "Sequence": 2, 

                  "AgeCategoryCode": "CH1218"

                  "AgeCategoryName": "Adults (12-17 yrs)"

                  "AgeCategoryAlias": "Adult"

                  "AgeCategoryIconPath": null

                  "AgeCategoryGroupCode": "AD"

                  "StartAgeLimit": 12, 

                  "EndAgeLimit": 17 

                }, 

                { 

                  "ActualPrice": 14.00, 

                  "ArrNoOfPersons": [ 0 ], 

                  "NoOfPersons": 0, 

                  "Sequence": 3, 

                  "AgeCategoryCode": "CH711"

                  "AgeCategoryName": "Children (7-11 yrs)"

                  "AgeCategoryAlias": "Youth"

                  "AgeCategoryIconPath": null

                  "AgeCategoryGroupCode": "CH",

             "StartAgeLimit": 7, 

                  "EndAgeLimit": 11 

                }, 

                { 

                  "ActualPrice": 14.00, 

                  "ArrNoOfPersons": [ 0 ], 

                  "NoOfPersons": 0, 

                  "Sequence": 4, 

                  "AgeCategoryCode": "CH36"

                  "AgeCategoryName": "Children (3-6 yrs)"

                  "AgeCategoryAlias": "Child"

                  "AgeCategoryIconPath": null

                  "AgeCategoryGroupCode": "CH"

                  "StartAgeLimit": 3, 

                  "EndAgeLimit": 6 

                }, 

                { 

                  "ActualPrice": 0.00, 

                  "ArrNoOfPersons": [ 0 ], 

                  "NoOfPersons": 0, 

                  "Sequence": 5, 

                  "AgeCategoryCode": "CH03"

                  "AgeCategoryName": "Infants (0-2 yrs)"

                  "AgeCategoryAlias": "Infant",                   

             "AgeCategoryIconPath": null

                  "AgeCategoryGroupCode": "IN"

                  "StartAgeLimit": 0, 

                  "EndAgeLimit": 2 

                } 

              ] 

            } 

          ], 

          "ObjExtraInfo": [ ], 

          "DependentExtras": [ null ], 

          "AgeCategoryWisePrice": null

          "IsPromotionalDiscountApplicable": false

          "PromotionalDiscountPrice": null

          "PromotionalDiscountObj": null 

        } 

      ] 

    } 

  ], 

  "ExtraObject": { 

    "PromotionID": 2, 

    "PromotionName": "BREAKAWAY 25 competition"

    "PromotionCode": "BREAKAWAY25"

    "PromotionDesc": "€25 Discount per booking for new customers only"

    "Amount": 5, 

    "PriceOption": "%"

    "PromotionTypeCode": "PB"

    "ExceedAmount": null

    "IsApplyForAll": true

    "ApplicableToCustomerCount": null

    "AppliedToCustomerCount": null

    "PricingPeriods": [ 

      { 

        "ArrivalFromDate": "2018-02-01T00:00:00"

        "ArrivalToDate": "2018-03-30T00:00:00" 

      } 

    ] 

  }, 

  "IsTimeout": false

  "HttpResponseCode": 200, 

  "ErrorCode": null 

}

Created with the Personal Edition of HelpNDoc: Free CHM Help documentation generator