====== Check method ======
Availability check. This method also returns a total price for all passengers.
===== Valid content types =====
  * valid for ''all content types''
===== Description =====
public array check( array $searchData, array $trip, array $headerData )
===== Parameters =====
  * ''searchData (array)'' : search parameters. This parameter is optional but is preffered you use the same search parameters that you've used with [[trips|trips method]], because this will ensure that session won't expire, 
  * ''trip (array)'' : trip parameters (you will get this info from [[trips|trips method]]). Required params are (''hsc'' and ''toc'', also ''sid'' when using ''trips'' content type.
  * ''headerData (array)'' : [[soap_header|SOAP Header Information]]
===== Return Values =====
Returns availability status and total price for all passengers. If session hasn't expired then this method will also return offer and trip info.
Array
(
    [offerTripInfo] => Array
        (
            [xmlReq] => 
            [searchtermin_xmlReq] => 
            [header] => Array
                (
                    [typ] => hotel
                    [offers] => 1
                    [rgc] => 
                    [rgn] => 0
                    [rgg] => 
                    [rggn] => 
                    [pages] => 1
                    [perpage] => 20
                    [offset] => 
                    [sid] => 4u1u6nof70tngqqq3tgc0preo0
                )
            [offer] => Array
                (
                    [pic] => http://www.ors.si/giata-pics/71088//full.jpg
                    [gid] => 71088
                    [htn] => Feral
                    [stc] => 4.0
                    [ovr] => 0
                    [oid] => 23887
                    [hon] => Brna
                    [fcts] => bea=1,ben=1,chf=0,clb=0,ani=0,pol=1,wel=0,spt=1,sgl=0,stn=0,ski=0
                    [dtemp] => 
                    [wtemp] => 
                    [rgc] => 659
                    [rgn] => Dalmatia
                    [rgg] => 100023
                    [rggn] => Croatia
                    [geo] => 1
                    [lat] => 42.9045823966052000
                    [lon] => 16.8566189525687980
                )
            [trip] => Array
                (
                    [sub] => catalog
                    [gid] => 71088
                    [toc] => PALM
                    [tockoda] => 80657677
                    [ton] => Palma
                    [rgc] => 659
                    [oid] => 2288
                    [zac] => EC
                    [zackoda] => 6967
                    [zan] => economy room
                    [vpc] => AI
                    [vpckoda] => 6573
                    [vpn] => all inclusive
                    [od] => aid=,iid=,lid=,vid=,zid=palm_22411
                    [htc] => LEHRV5041414
                    [svc] => 22411 EC AI
                    [ahckoda] => 
                    [vnd] => 2014-10-16
                    [bsd] => 2014-10-18
                    [tdc] => 2
                    [md5p] => 35a59b162e642f1df7c7c5664e46ffef
                    [md5t] => 172984d5ecb727f81e54a2f5db03a100
                    [hsc] => 172984d5ecb727f81e54a2f5db03a100
                    [ppc] => 76
                    [alt] => 0
                    [top] => 0
                    [tocpic] => http://www.ors.si/ibe/ikonce/toc/palm.gif
                    [aid] => 
                    [atx] => 
                    [iid] => 
                    [itx] => 
                    [lid] => 
                    [ltx] => 
                    [vid] => 
                    [vtx] => 
                    [zid] => palm_22411
                    [ztx] => 1/2 ECO AC; ALL LIGHT
                )
        )
    [xmlReq] => 
    [xmlRes] => 
    
    [response] => Array
        (
            [mid] => 712
            [ttp] => 152.00
            [ttpd] => 0.00
            [ppc] => 76.00
            [ppct] => 1
            [txt] => Reservation possible, insert B command
            [status] => 1
        )
    [offer] => Array
        (
            [typ] => hotel
            [sub] => catalog
            [toc] => PALM
            [ton] => Palma
            [tocp] => http://www.ors.si/ibe/ikonce/toc/palm.gif
            [htc] => LEHRV504141486
            [gid] => 71088
            [hon] => KORÄULA
            [oid] => 
            [desc] => 
            [zac] => EC
            [zan] => economy room
            [vpc] => AI
            [vpn] => all inclusive
            [svc] => 22411 EC AI
            [stc] => 
            [htn] => Hotel Feral 4*
            [zhc] => DBV
            [zhn] => Dubrovnik (Kroatien)
            [ahc] => 
            [ahn] => 
            [vnd] => 16.10.2014
            [bsd] => 18.10.2014
            [tdc] => 2
            [sid] => 
            [sin] => 
            [idp] => [IDP]
            [ovr] => 0
            [pic] => http://www.ors.si/giata-pics/71088/full.jpg
        )
    [actions] => Array
        (
        )
        
    [extras] => Array
        (
            [0] => Array
                (
                    [info] => Array
                        (
                            [id] => 27104:9:1
                            [name] => POLPENZION
                            [price] => 6.00
                            [included] => 0
                        )
                )
            [1] => Array
                (
                    [info] => Array
                        (
                            [id] => 27104:9:2
                            [name] => POLNI PENZION
                            [price] => 13.00
                            [included] => 0
                        )
                )
            [2] => Array
                (
                    [info] => Array
                        (
                            [id] => 27104:9:3
                            [name] => KRAJŠE BIVANJE NA VPRAŠANJE
                            [price] => 0
                            [included] => 1
                        )
                )
        )        
    [operator] => Array
        (
            [act] => BA
            [toc] => PALM
            [hsc] => 172984d5ecb727f81e54a2f5db03a100
            [agt] => 454085
        )
    [travellers] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [typ] => H
                    [sur] => UDBBCSVN
                    [pre] => LTULCFCH
                    [tvp] => 76
                    [age] => 
                )
            [1] => Array
                (
                    [id] => 2
                    [typ] => H
                    [sur] => JLEJAETI
                    [pre] => FUVFXQCG
                    [tvp] => 76
                    [age] => 
                )
        )
    [included] => Array
        (
            [0] => Array
                (
                    [group] => Array
                        (
                            [code] => ExtracostOnPlace
                            [description] => Dodatni stroški
                        )
                    [items] => Array
                        (
                            [0] => Array
                                (
                                    [code] => LT
                                    [name] => Turistična pristojbina
                                    [cost] => 1.00
                                    [cost_type] => PER PERSON
                                )
                            [1] => Array
                                (
                                    [code] => TW
                                    [name] => Brisače
                                    [cost] => 10.00
                                    [cost_type] => PER PERSON
                                )
                            [2] => Array
                                (
                                    [code] => BW
                                    [name] => Posteljnina ob prihodu
                                    [cost] => 10.00
                                    [cost_type] => PER PERSON
                                )
                            [3] => Array
                                (
                                    [code] => FC
                                    [name] => Končno čiščenje
                                    [cost] => 15.00
                                    [cost_type] => PER PERSON
                                )
                            [4] => Array
                                (
                                    [code] => EG
                                    [name] => Stroški elektrike
                                    [cost] => 35.00
                                    [cost_type] => PER PERSON/WEEK
                                )
                            [5] => Array
                                (
                                    [code] => DE
                                    [name] => Plačilo varščine z gotovino
                                    [cost] => 100.00
                                    [cost_type] => PER ITEM
                                )
                        )
                )
        )
    [info] => Array
        (
            [0] => Room type: 1/2 ECO AC; ALL LIGHT
            [1] => Hotel Feral 4*
            [2] => Code: LEHRV504141486
            [3] => City: KORCULA
            [4] => Room: economy room
            [5] => Service: all inclusive
            [6] => Service code: 22411 EC AI           
            [7] => CRS powered by ORS XTREME
        )
    [exInfo] => Array
        (
        )
    [errorNr] => 
    [error] => 
)
===== Return parameters =====
  * ''offerTripInfo'' (array) : offer and trip info (check [[offertripinfo|offertripinfo]])
    * ''xmlReq'' : for internal use only
    * ''searchtermin_xmlReq'' : for internal use only
    * ''header (array)'' : information about a selected region and paging information (check [[trips|trips method]] for this return array)
    * ''offer (array)'' : check [[trips|trips method]] for this return array
    * ''trip (array)'' : check [[trips|trips method]] for this return array
  * ''xmlReq'' : ors xml request used with this method
  * ''xmlRes'' : ors xml response used with this method
  * ''response (array)'' : availability status, message and a total price
    * ''mid'' : availability message ID (check [[Message IDs]] for a list of possible values)
    * ''txt'' : availability text message (message is in selected language and it depends on ''mid'' value)
    * ''status'' : availability status. 
      * **0** : offer is not free
      * **1** : offer is free (available to book)
      * **2** : offer is on request. If offer is on request, a person can still book this offer but he/she must wait for a touroperator confirmation.
      * **3** : communication error (something went wrong with communication between ORS and touroperator).
      * **4** : offer is sold out (same as status 0)
      * **5** : booking is not possible, you must check availability text message for detailed description of a problem
    * ''ttp'' : total price for all passengers
    * ''ppc'' : price per person (in situations when there is a price per room then this value will be empty or zero)
    * ''ttpd'' : this is a reserved parameter!
    * ''ppct'' : price type (0 - price per person, 1 - price per unit)
  * ''offer (array)'' : this are an offer information directly from touroperator. This values may differ from ''offerTripInfo'' information!
    * ''typ'' : content type
    * ''sub'' : sub category
    * ''toc'' : touroperator code
    * ''ton'' : touroperator name
    * ''tocp'' : touroperator logo
    * ''htc'' : hotel code (or product code)
    * ''gid'' : accommodation GIATA ID
    * ''hon'' : city name
    * ''oid'' : city ID
    * ''desc'' : reserved parameter
    * ''zac'' : room type code
    * ''zan'' : room type name
    * ''vpc'' : service type code
    * ''vpn'' : service type name
    * ''svc'' : service code
    * ''htn'' : accommodation name
    * ''stc'' : hotel category
    * ''zhc'' : destination code (IATA code)
    * ''zhn'' : destination name
    * ''ahc'' : departure airport code (IATA code)
    * ''ahn'' : departure airport name
    * ''vnd'' : checkin date
    * ''bsd'' : checkout date
    * ''tdc'' : duration
    * ''sid'' : bus stop id (only for ''trips'' content type)
    * ''sin'' : bus stop name
    * ''idp'' : offer ID (use this to search ''extras'' services that are in combination with accommodation)
    * ''ovr'' : overall rating
    * ''pic'' : full picture
  * ''actions (array)'' : promotions used with this offer. This is currently experimental because not all 
  * ''extras (array)'' : extra surcharges that can be booked
    * ''info (array'' : extras information
      * ''id'' : extras id
      * ''name'' : extras name
      * ''price'' : extras price
      * ''included'' : if value equals 1 then this extras in included in price
  * ''operator (array)'' : used action, touroperator info and trip hash code
    * ''act'' : action
    * ''toc'' : touroperator code
    * ''hsc'' : unique trip hash code used for this check method 
    * ''agt'' : agency number
  * ''travellers (array)'' : passengers info
    * ''id'' : passenger sequence number
    * ''typ'' : passenger sex / type. Possible values: 
      * **H** : mr.
      * **D** : mrs.
      * **K** : child
      * **B** : baby (infant)
    * ''sur'' : last name
    * ''pre'' : first name
    * ''age'' : age / birthday
    * ''tvp'' : price for this person
  * ''included'' (array) : additional information about what is included in price (**currently not supported**)
    * ''group'' (array) : group information
      * ''code'' : group code
      * ''description'' : group description (in selected language)
      * ''items'' (array) : items in this group
        * ''code'' : item code
        * ''name'' : item name (in selected language)
        * ''cost'' : item cost
        * ''cost_type'' : price type (PER PERSON, PER PERSON/WEEK, PER ITEM,...)
  * ''info'' : touroperator information text. This text is directly from selectged touroperator and can be in different language. Usually this text contains important information about checked offer.
  * ''errorNr'' : error number
  * ''error'' : error message
===== Examples =====
  * Example of availability check
$searchParams = array(
  'vnd' => '30.10.2014',       // start date
  'bsd' => '15.11.2014',       // end date
  'tdc' => '1-4',              // duration [min-max] days
  'epc' => '2',                // number of adults
  'gid' => '71088',            // selected hotel by GIATA ID
);
$trip = array(
  'hsc' => '172984d5ecb727f81e54a2f5db03a100',  // unique trip hash code
  'toc' => 'PALM'                               // toruoperator code
);
// availability check
$check = $soapClient->orsxml_hotel_api_call( 'check', $searchParams, $trip, $headerData );
// check availability status and total price
if ($check['response']['status'] == 1) {
  echo "Offer is available. \n";
  echo "Total price: " . $check['response']['ttp'];
 
}
  
if ($check['response']['status'] == 2) {
  echo "Offer is on request.\n";
  echo "Total price: " . $register['check']['ttp'];
    
}
if ($check['response']['status'] == 0 || $check['response']['status'] == 4) {
  echo "Offer is not available";
}
if ($check['response']['status'] == 3) {
  echo "Communication error. Please try again. \n";
  echo "Touroperator message: " . $check['response']['txt'];
  
}
if ($check['response']['status'] == 5) {
  echo "Unable to check offer, Check touroperator message: " . $check['response']['txt'];
  
}
===== JSON Examples =====
@see [[ors-soap-api:public:json_api]] how to post request.
{
  "requestType" : "check",
  "action": "check",
  "search": {
    "typ": "hotel",
    "hsc": "509fd42d2fe71bc3396830b207d4bb92",
    "toc": "PALM",
    "epc": "2"
  },
  "header": {
    "lang": "[lang]",
    "usr" : "[usr]",
    "pass": "[pass]",
    "agid": "[agid]"
  }
}
===== Examples (Extras) =====
Before making a check request with extras, you must fist make ''offers'' request to get extras hash codes. Check [[offers method|offers]] on how to get different extras.
  * Example of check availability with extras (packages accommodation + extras). When booking packages a ''$searchParams'' is a bit different. Accommodations and extras are entered as arrays. You can book different accommodations with more then one room (be careful that you place persons correctly). 
$searchParams = array(
  'vnd' => '30.10.2014',         // start date
  'bsd' => '15.11.2014',         // end date
  'tdc' => '1-4',                // duration [min-max] days
  'epc' => '4',                  // number of adults
  
  // accommodations
  'hotel' => array(
  
    // first accommodation
    '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23' => array(
    
      // first room (for 1st and 2nd person)
      0 => array(
        'hsc' => '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23',   // offer hash code
        'psn' => '1,2',                                                   // 1st and 2nd person
      ),
      
      // second room (for 3rd and 4th person)
      1 => array(
        'hsc' => '2262:4862:ZAD22627102:7102:OV:2014-08-16:2014-08-23',   // offer hash code
        'psn' => '3,4',                                                   // 3rd and 4th person
      )
      
    )
  )
  // extras
  'extras' => array(  
  
    // 1st extras (for all persons)
    '199|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 
      'hsc' => '199|0||0|2014-08-18|2014-08-18|2014-08-18',
      'psn' => '1,2,3,4'
    ),
    
    // 2nd extras (for first two persons)
    '751|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 
      'hsc' => '751|0||0|2014-08-18|2014-08-18|2014-08-18',
      'psn' => '1,2'
    )
  ),
);
$trip = array(
  'hsc' => 'x',      // when booking packages, then just place 'x' for this parameter
  'toc' => 'CMT'     // touroperator code
);
// check method
$check = $soapClient->orsxml_hotel_api_call( 'check', $searchParams, $trip, $headerData );
 * Example of check availability only extra services (without accommodation) 
$searchParams = array(
  'epc' => '2',                // number of adults
  
  // extras
  'extras' => array(  
  
    // 1st extras (for all persons)
    '199|0||0|2014-08-18|2014-08-18|2014-08-18' => array( 
      'hsc' => '199|0||0|2014-08-18|2014-08-18|2014-08-18',
      'psn' => '1,2'
    ),
    
  ),
);
$trip = array(
  'hsc' => 'x',      // when booking packages, then just place 'x' for this parameter
  'toc' => 'CMT'     // touroperator code
);
// check method (when using only extras, use 'extras' API call!!)
$check = $soapClient->orsxml_extras_api_call( 'check', $searchParams, $trip, $headerData );