Skip to content

Commit e4f55c1

Browse files
dfsoetenDaan
andauthored
Added VerkoopOrderStatus for VerkoopOrder model (#39)
Co-authored-by: Daan <[email protected]>
1 parent 9cde86c commit e4f55c1

File tree

5 files changed

+103
-0
lines changed

5 files changed

+103
-0
lines changed

src/Mapper/V2/VerkooporderMapper.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use SnelstartPHP\Model\Kostenplaats;
1515
use SnelstartPHP\Model\Type\ProcesStatus;
1616
use SnelstartPHP\Model\Type\VerkooporderBtwIngave;
17+
use SnelstartPHP\Model\Type\VerkooporderStatus;
1718
use SnelstartPHP\Model\V2\Artikel;
1819
use SnelstartPHP\Model\V2\Relatie;
1920
use SnelstartPHP\Model\V2\Verkoopfactuur;
@@ -100,6 +101,10 @@ public function map(Verkooporder $verkooporder, array $data = []): Verkooporder
100101
$verkooporder->setVerkooporderBtwIngaveModel(VerkooporderBtwIngave::from($data["verkooporderBtwIngaveModel"]));
101102
}
102103

104+
if ($data["verkoopOrderStatus"] !== null) {
105+
$verkooporder->setVerkooporderStatus(new VerkooporderStatus($data["verkoopOrderStatus"]));
106+
}
107+
103108
return $verkooporder;
104109
}
105110
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
/**
3+
* @author OptiWise Technologies B.V. <[email protected]>
4+
* @project SnelstartApiPHP
5+
*/
6+
7+
namespace SnelstartPHP\Model\Type;
8+
9+
use MyCLabs\Enum\Enum;
10+
11+
/**
12+
* @psalm-immutable
13+
*
14+
* @method static VerkooporderStatus INBEHANDELING()
15+
* @method static VerkooporderStatus UITGEVOERD()
16+
* @method static VerkooporderStatus SERVICE()
17+
*/
18+
class VerkooporderStatus extends Enum
19+
{
20+
private const INBEHANDELING = 'InBehandeling';
21+
22+
private const UITGEVOERD = 'Uitgevoerd';
23+
24+
private const SERVICE = 'Service';
25+
}

src/Model/V2/Verkooporder.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use SnelstartPHP\Model\SnelstartObject;
1414
use SnelstartPHP\Model\Type\ProcesStatus;
1515
use SnelstartPHP\Model\Type\VerkooporderBtwIngave;
16+
use SnelstartPHP\Model\Type\VerkooporderStatus;
1617
use SnelstartPHP\Snelstart;
1718

1819
final class Verkooporder extends SnelstartObject
@@ -149,6 +150,13 @@ final class Verkooporder extends SnelstartObject
149150
*/
150151
private $totaalInclusiefBtw;
151152

153+
/**
154+
* Status van de order. Als deze niet is opgegeven wordt de default waarde InBehandeling gebruikt.
155+
*
156+
* @var VerkooporderStatus|null
157+
*/
158+
private $verkoopOrderStatus;
159+
152160
/**
153161
* @var string[]
154162
*/
@@ -174,6 +182,7 @@ final class Verkooporder extends SnelstartObject
174182
"verkoopordersjabloon",
175183
"totaalExclusiefBtw",
176184
"totaalInclusiefBtw",
185+
"verkoopOrderStatus",
177186
];
178187

179188
public static function getEditableAttributes(): array
@@ -437,4 +446,16 @@ public function setTotaalInclusiefBtw(Money $totaalInclusiefBtw): self
437446

438447
return $this;
439448
}
449+
450+
public function getVerkoopOrderStatus(): ?VerkooporderStatus
451+
{
452+
return $this->verkoopOrderStatus;
453+
}
454+
455+
public function setVerkoopOrderStatus(?VerkooporderStatus $verkoopOrderStatus): self
456+
{
457+
$this->verkoopOrderStatus = $verkoopOrderStatus;
458+
459+
return $this;
460+
}
440461
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace SnelstartPHP\Tests\Request\V2;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use SnelstartPHP\Model\Type\VerkooporderStatus;
7+
use SnelstartPHP\Model\V2\Verkooporder;
8+
use SnelstartPHP\Request\V2\VerkooporderRequest;
9+
10+
class VerkooporderRequestTest extends TestCase
11+
{
12+
private $verkooporderRequest;
13+
14+
public function setUp(): void {
15+
$this->verkooporderRequest = new VerkooporderRequest();
16+
}
17+
18+
public function testAddVerkooporderHasVerkooporderStatusUitgevoerd(): void {
19+
$verkooporder = new Verkooporder();
20+
$verkooporder->setVerkooporderStatus(VerkooporderStatus::UITGEVOERD());
21+
22+
$expected = [
23+
"relatie" => null,
24+
"procesStatus" => null,
25+
"nummer" => null,
26+
"modifiedOn" => null,
27+
"datum" => null,
28+
"krediettermijn" => null,
29+
"omschrijving" => null,
30+
"betalingskenmerk" => null,
31+
"incassomachtiging" => null,
32+
"afleveradres" => null,
33+
"factuuradres" => null,
34+
"verkooporderBtwIngaveModel" => null,
35+
"kostenplaats" => null,
36+
"regels" => null,
37+
"memo" => null,
38+
"orderreferentie" => null,
39+
"factuurkorting" => null,
40+
"verkoopfactuur" => null,
41+
"verkoopordersjabloon" => null,
42+
"totaalExclusiefBtw" => "0.00",
43+
"totaalInclusiefBtw" => "0.00",
44+
"verkoopOrderStatus" => VerkooporderStatus::UITGEVOERD()->getValue(),
45+
];
46+
$request = $this->verkooporderRequest->add($verkooporder);
47+
48+
$this->assertEquals('POST', $request->getMethod());
49+
$this->assertEquals(json_encode($expected), $request->getBody()->getContents());
50+
}
51+
}

var/doc/v2/verkooporder_add.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
->setKrediettermijn(14)
5050
->setOmschrijving("Week 50")
5151
->setRegels(...$lines)
52+
->setVerkooporderStatus(\SnelstartPHP\Model\Type\VerkooporderStatus::UITGEVOERD())
5253
;
5354

5455
$verkoopboekingConnector = new \SnelstartPHP\Connector\V2\VerkooporderConnector($connection);

0 commit comments

Comments
 (0)