<?

/************************************************************************
*
*                  OMS Web Service Functions 1.4
*                  -----------------------------
*
*     Copyright:   (C) 2007 moving primates GmbH
*      Function:   GetArtistConcerts
*   Description:   Gets available concert dates and entered info of one
*                  artist.
*   Change Date:   12/Jun/2007
*
*************************************************************************
*
*   REQUIRED ELEMENTS:
*
*   The following required elements must be send with the request:
*
*   - ArtistID     < value must be numeric
*   - Fieldlist    < must contain at least one child element
*
*   FIELD ELEMENTS:
*
*   The following are Field elements which define what you get back from
*   the Web Service function. They must be named "Field", their value
*   must be the exact name of the following enumeration and they must be
*   created as a child element of "Fieldlist".
*
*   Field elements are optional, however it is required that you
*   create at least one; their send order is irrelevant.
*
*    - ConcertID
*   - ConcertVenue
*   - ConcertStreet
*   - ConcertCity
*   - ConcertPostalCode
*   - ConcertCountryID
*   - ConcertCountryCode
*   - ConcertCountryName
*   - ConcertDate
*   - ConcertPrice
*   - CurrencyID
*   - CurrencyCode
*   - CurrencyName
*   - TicketsViaPhone
*   - TicketsViaInternet
*   - TicketsViaEmail
*   - ConcertAdditionalInfo
*
*************************************************************************
*   More info about elements and the functions can be found inside
*   the documentation.
************************************************************************/

$ArtistID = "103971"; // Example ID from an artist
include("inc/config.php"); // Example path, point it to your config.php


$dom = create_document();
$root = create_root_element($dom, "OMS");
create_element_attribute($root, "xmlns", $oms_cfg['artist_data_xmlns'] . "/GetArtistConcerts");


// Here we are defining the REQUIRED elements

$el_artist_id = create_element($dom, "ArtistID");
set_element_value($dom, $el_artist_id, $ArtistID);


// Here we are defining the FIELDLIST and its elements (requesting all available)

$el_fields_list = create_element($dom, "FieldList");

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertVenue");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertStreet");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertCity");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertPostalCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertCountryID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertCountryCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertCountryName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertDate");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertPrice");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CurrencyID");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CurrencyCode");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "CurrencyName");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "TicketsViaPhone");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "TicketsViaInternet");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "TicketsViaEmail");
add_child_element($el_fields_list, $el_field);

$el_field = create_element($dom, "Field");
set_element_value($dom, $el_field, "ConcertAdditionalInfo");
add_child_element($el_fields_list, $el_field);


// Preparing the XML which is going to be send

add_child_element($root, $el_artist_id);
add_child_element($root, $el_fields_list);

$xml_str = dump_to_string($dom);

$par = array("String_1" => $oms_cfg['ws_login'],
            
"String_2" => $oms_cfg['ws_password'],
            
"String_3" => $xml_str );


// Executing the Web Service function "GetArtistConcerts"

$GetArtistConcerts = ProcessWSCall($oms_cfg['artist_data_ws_url'], "GetArtistConcerts", $par, $oms_cfg['artist_data_xmlns']);


// Counting available concerts

if(isset($GetArtistConcerts['ArtistID']))
{
    if(isset(
$GetArtistConcerts['ConcertList'][0]['Concert']))
    {
        
$concert_count = sizeof($GetArtistConcerts['ConcertList'][0]['Concert']);
    }
    else
    {
        
$concert_count = 0;
    }
}


/************************************************************************
*
*   From here on we assign the content of the array to variables and
*   create some example output. This was done so you can see something
*   when opening the PHP files with your browser.
*
*   If you are looking for this code without any comments or output,
*   then check out the folder 'minimal_code'.
*
************************************************************************/

?>
<style type="text/css">
<!--
.font {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
}
-->
</style>
<span class="font"> <strong>We sent the following elements with our <u>REQUEST</u>:</strong><br />
<ul>
    <li><em>ArtistID</em> - value was &quot;103971&quot;, an example ID from an artist</li>
    <li><em>Fieldlist</em> - the requested child elements were: <i>
        <ul>
            <li>ConcertID</li>
            <li>ConcertVenue</li>
            <li>ConcertStreet</li>
            <li>ConcertCity</li>
            <li>ConcertPostalCode</li>
            <li>ConcertCountryID</li>
            <li>ConcertCountryCode</li>
            <li>ConcertCountryName</li>
            <li>ConcertDate</li>
            <li>ConcertPrice</li>
            <li>CurrencyID</li>
            <li>CurrencyCode</li>
            <li>CurrencyName</li>
            <li>TicketsViaPhone</li>
            <li>TicketsViaInternet</li>
            <li>TicketsViaEmail</li>
            <li>ConcertAdditionalInfo</li>
        </ul>
        </i> </li>
</ul>
<br />
<strong>We got back the following array in <u>RESPONSE</u>:</strong><br />
<pre><? var_dump($GetArtistConcerts); ?>
</pre>
<br />
<strong>We assign the array to  seperate variables and <u>OUTPUT</u> these (without any design here):</strong><br />
<ul>
    <?
for($i=0;$i<$concert_count;$i++)
{
    
$ArtistID = $GetArtistConcerts['ArtistID'][0];
    
$ConcertID = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertID'];
    
$ConcertVenue = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertVenue'];
    
$ConcertStreet = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertStreet'];
    
$ConcertCity = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertCity'];
    
$ConcertPostalCode = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertPostalCode'];
    
$ConcertCountryID = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertCountryID'];
    
$ConcertCountryCode = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertCountryCode'];
    
$ConcertCountryName = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertCountryName'];
    
$ConcertDate = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertDate'];
    
$ConcertPrice = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertPrice'];
    
$CurrencyID = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['CurrencyID'];
    
$CurrencyCode = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['CurrencyCode'];
    
$CurrencyName = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['CurrencyName'];
    
$TicketsViaPhone = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['TicketsViaPhone'];
    
$TicketsViaInternet = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['TicketsViaInternet'];
    
$TicketsViaEmail = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['TicketsViaEmail'];
    
$ConcertAdditionalInfo = $GetArtistConcerts['ConcertList'][0]['Concert'][$i]['ConcertAdditionalInfo'];
?>
    <p><strong>Entry No. <? echo $i+1; ?></strong></p>
    <li>Artist ID: <? echo $ArtistID; ?></li>
    <li>Concert ID: <? echo $ConcertID; ?></li>
    <li>Concert Venue: <? echo $ConcertVenue; ?></li>
    <li>Concert Street: <? echo $ConcertStreet; ?></li>
    <li>Concert City: <? echo $ConcertCity; ?></li>
    <li>Concert Postal Code: <? echo $ConcertPostalCode; ?></li>
    <li>Concert Country ID: <? echo $ConcertCountryID; ?></li>
    <li>Concert Country Code: <? echo $ConcertCountryCode; ?></li>
    <li>Concert Country Name: <? echo $ConcertCountryName; ?></li>
    <li>Concert Date: <? echo $ConcertDate; ?></li>
    <li>Concert Price: <? echo $ConcertPrice; ?></li>
    <li>Currency ID: <? echo $CurrencyID; ?></li>
    <li>Currency Code: <? echo $CurrencyCode; ?></li>
    <li>Currency Name: <? echo $CurrencyName; ?></li>
    <li>Tickets Via Phone: <? echo $TicketsViaPhone; ?></li>
    <li>Tickets Via Internet: <? echo $TicketsViaInternet; ?></li>
    <li>Tickets Via Email: <? echo $TicketsViaEmail; ?></li>
    <li>Concert Additional Info: <? echo $ConcertAdditionalInfo; ?></li>
<?
    
}
?>
</ul>
</span>