mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-16 04:57:15 +01:00
68 lines
1.7 KiB
PHP
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;
|
||
|
}
|
||
|
}
|