OpenXE/classes/Modules/Postat/SOAP/Result/AllowedServicesResult.php
2021-05-21 08:49:41 +02:00

68 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace Xentral\Modules\Postat\SOAP\Result;
class AllowedServicesResult
{
/** @var The raw data received from the SOAP API. */
private $data;
/**
* AllowedServicesResult constructor.
*
* @param $data
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Get two-level associative array of service codes and the service names.
*
* Can be used for example to generate options for a <select> element.
*
* [
* 45 => [
* 'name' => 'Premium Int. Outbound B2B',
* 'features' => [
* '007' => '24-Stundenpaket',
* '022' => 'Nachnahme COD International',
* '024' => 'Zerbrechlich international',
* '063' => 'Höherversicherung',
* '065' => 'Postlagernd',
* '074' => 'Gefahrgut - begrenzte Menge (LQ)',
* ],
* ],
* 46 => [
* 'name' => 'Post Express International',
* 'features' => [],
* ],
* etc...
* ]
*
* @return array $options
*/
public function toOptionsArray(): array
{
$services = $this->data->GetAllowedServicesForCountryResult->CarrierServiceRow;
$options = [];
foreach ($services as $service) {
$features = [];
foreach ($service->FeatureList->AdditionalInformationResult as $test) {
$features[$test->ThirdPartyID] = $test->Name;
}
$options[$service->ThirdPartyID] = [
'name' => $service->Name,
'features' => $features,
];
}
return $options;
}
}