diff --git a/Tests/Unit/Segment/HKWPDTest.php b/Tests/Unit/Segment/HKWPDTest.php new file mode 100644 index 00000000..6da4bf91 --- /dev/null +++ b/Tests/Unit/Segment/HKWPDTest.php @@ -0,0 +1,36 @@ +assertEquals(6, $hiwpds->getVersion()); + $this->assertFalse($hiwpds->getParameter()->getEingabeAnzahlEintraegeErlaubt()); + $this->assertFalse($hiwpds->getParameter()->getWaehrungDepotaufstellungWaehlbar()); + $this->assertFalse($hiwpds->getParameter()->getKursqualitaetWaehlbar()); + } + + public function testRequestOfVersion6() + { + $hkwpd = HKWPDv6::create(KtvV3::create('502022353', null, Kik::create('12030000'))); + $hkwpd->setSegmentNumber(3); + $this->assertEquals("HKWPD:3:6+502022353::280:12030000'", $hkwpd->serialize()); + + $hkwpd->setPaginationToken('TOKEN'); + $this->assertEquals("HKWPD:3:6+502022353::280:12030000++++TOKEN'", $hkwpd->serialize()); + } +} diff --git a/src/Action/GetDepotAufstellung.php b/src/Action/GetDepotAufstellung.php index 17e644e3..c67493b2 100644 --- a/src/Action/GetDepotAufstellung.php +++ b/src/Action/GetDepotAufstellung.php @@ -15,7 +15,9 @@ use Fhp\Segment\WPD\HIWPD; use Fhp\Segment\WPD\HIWPDS; use Fhp\Segment\WPD\HIWPDv5; +use Fhp\Segment\WPD\HIWPDv6; use Fhp\Segment\WPD\HKWPDv5; +use Fhp\Segment\WPD\HKWPDv6; use Fhp\UnsupportedException; /** @@ -119,6 +121,8 @@ protected function createRequest(BPD $bpd, ?UPD $upd) switch ($hiwpds->getVersion()) { case 5: return HKWPDv5::create(KtvV3::fromAccount($this->account)); + case 6: + return HKWPDv6::create(KtvV3::fromAccount($this->account)); default: throw new UnsupportedException('Unsupported HKWPD version: ' . $hiwpds->getVersion()); } @@ -129,7 +133,10 @@ public function processResponse(Message $response) parent::processResponse($response); $isUnavailable = $response->findRueckmeldung(Rueckmeldungscode::NICHT_VERFUEGBAR) !== null; - $responseHiwpd = $response->findSegments(HIWPDv5::class); + $responseHiwpd = array_merge( + $response->findSegments(HIWPDv5::class), + $response->findSegments(HIWPDv6::class) + ); $numResponseSegments = count($responseHiwpd); if (!$isUnavailable && $numResponseSegments < count($this->getRequestSegmentNumbers())) { diff --git a/src/Segment/WPD/HIWPDSv6.php b/src/Segment/WPD/HIWPDSv6.php new file mode 100644 index 00000000..70d6ae84 --- /dev/null +++ b/src/Segment/WPD/HIWPDSv6.php @@ -0,0 +1,22 @@ +parameter; + } +} diff --git a/src/Segment/WPD/HIWPDv6.php b/src/Segment/WPD/HIWPDv6.php new file mode 100644 index 00000000..efdae189 --- /dev/null +++ b/src/Segment/WPD/HIWPDv6.php @@ -0,0 +1,24 @@ +depotaufstellung; + } +} diff --git a/src/Segment/WPD/HKWPDv6.php b/src/Segment/WPD/HKWPDv6.php new file mode 100644 index 00000000..90410943 --- /dev/null +++ b/src/Segment/WPD/HKWPDv6.php @@ -0,0 +1,35 @@ +depot = $ktv; + return $result; + } + + public function setPaginationToken(string $paginationToken) + { + $this->aufsetzpunkt = $paginationToken; + } +}