From 31223e7d6c1d97dbb23708ad7787f7f64ee3d2b4 Mon Sep 17 00:00:00 2001 From: Jeroen van Oort Date: Thu, 9 Apr 2026 13:19:05 +0200 Subject: [PATCH 1/2] Support the new URL's but don't generate yet for v3 --- generate.php | 6 ++--- generator/Generator.php | 39 +++++++++++++++++++-------------- tests/Feature/GeneratorTest.php | 3 ++- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/generate.php b/generate.php index a45edeb..4345b34 100644 --- a/generate.php +++ b/generate.php @@ -14,14 +14,12 @@ $refresh = in_array('--refresh', $argv ?? [], true); -$setupHasRun = false; - -foreach ($versions as $version) { +foreach ($versions as $version => $url) { echo "Generating API namespace $version...\n"; $generator = new Webparking\Logic4Client\Generator\Generator(); $generator->setRefresh($refresh); - $generator->generate($version); + $generator->generate($version, $url); } echo 'API classes generated at '.now()->toDateTimeString()."...\n"; diff --git a/generator/Generator.php b/generator/Generator.php index a3f1ea7..9bfc4d5 100644 --- a/generator/Generator.php +++ b/generator/Generator.php @@ -13,8 +13,8 @@ class Generator { - public static string $swaggerUrl = 'https://api.logic4server.nl/swagger/index.js'; - public string $remoteApi = 'https://api.logic4server.nl/swagger/%s/swagger.json'; + public static string $scalarUrl = 'https://api.logic4server.nl/scalar/'; + public static string $baseUrl = 'https://api.logic4server.nl/'; public string $localApi = __DIR__.'/../logic4-api-%s.json'; public string $baseDirectory = __DIR__.'/../src/'; @@ -36,28 +36,36 @@ public function setup(): void } } - /** @return array */ + /** @return array version => url */ public static function resolveVersions(): array { - $contents = file_get_contents(self::$swaggerUrl); + $contents = file_get_contents(self::$scalarUrl); Assert::string($contents, 'Could not fetch API documentation'); - preg_match('/configObject = JSON.parse\(\'(.*)\'\);/', $contents, $matches); + preg_match('/initialize\([^,]+,\s*\w+,\s*(\{.+\})\s*,\s*\'/s', $contents, $matches); - $versions = json_decode($matches[1], true, 512, \JSON_THROW_ON_ERROR); + Assert::keyExists($matches, 1, 'Could not find Scalar configuration'); - Assert::keyExists($versions, 'urls', 'Could not find API versions'); + $config = json_decode($matches[1], true, 512, \JSON_THROW_ON_ERROR); - return array_diff( - array_map(static fn ($version) => explode('/', $version['url'], 2)[0], $versions['urls']), - ['latest'], - ); + Assert::keyExists($config, 'sources', 'Could not find API sources'); + + $versions = []; + foreach ($config['sources'] as $source) { + if (preg_match('/Version v(\d+\.\d+)/', $source['title'], $versionMatch) + && !str_starts_with($versionMatch[1], '3.') + ) { + $versions[$versionMatch[1]] = self::$baseUrl.$source['url']; + } + } + + return $versions; } - public function generate(string $version): void + public function generate(string $version, string $remoteUrl): void { - $localFile = $this->downloadApiDocumentation($version); + $localFile = $this->downloadApiDocumentation($version, $remoteUrl); $openapi = Reader::readFromJsonFile($localFile, resolveReferences: false); @@ -96,17 +104,16 @@ public function generate(string $version): void } } - public function downloadApiDocumentation(string $version): string + public function downloadApiDocumentation(string $version, string $remoteUrl): string { $localFile = \sprintf($this->localApi, $this->getVersion($version)); - $remoteFile = \sprintf($this->remoteApi, $version); if ($this->refresh && is_file($localFile)) { unlink($localFile); } if (!is_file($localFile)) { - file_put_contents($localFile, file_get_contents($remoteFile)); + file_put_contents($localFile, file_get_contents($remoteUrl)); } return $localFile; diff --git a/tests/Feature/GeneratorTest.php b/tests/Feature/GeneratorTest.php index d4f43c2..8471ed8 100644 --- a/tests/Feature/GeneratorTest.php +++ b/tests/Feature/GeneratorTest.php @@ -15,8 +15,9 @@ public function testCanDetectApiVersions(): void static::assertNotEmpty($versions); - foreach ($versions as $version) { + foreach ($versions as $version => $url) { static::assertMatchesRegularExpression('/^\d+\.\d+$/', $version); + static::assertStringStartsWith('https://api.logic4server.nl/openapi/', $url); } } } From 69ed80eb74f205b05cc343e3c85a5245328f18f6 Mon Sep 17 00:00:00 2001 From: Jeroen van Oort Date: Thu, 9 Apr 2026 14:22:00 +0200 Subject: [PATCH 2/2] Handle required better: generator takes it into account now --- generator/ComponentClassGenerator.php | 29 +++++---- generator/Helpers.php | 10 ++- generator/RequestClassGenerator.php | 24 +++++--- src/Data/V10/BuyOrderDeliveryRead.php | 2 +- .../CreditorThirdPartyExternalIdentifer.php | 4 +- .../CustomerThirdPartyExternalIdentifer.php | 4 +- src/Data/V10/EmailAttachment.php | 2 +- src/Data/V10/EmailMessage.php | 2 +- src/Data/V10/HRMTimeRegistrationRow.php | 10 +-- src/Data/V10/Order.php | 6 +- src/Data/V10/Payment.php | 6 +- src/Data/V10/ProductStockMutation.php | 2 +- src/Data/V11/Order.php | 6 +- src/Data/V11/Payment.php | 6 +- src/Data/V11/ProductStockMutation.php | 2 +- src/Data/V12/Order.php | 6 +- src/Data/V12/Payment.php | 6 +- src/Data/V13/Order.php | 6 +- src/Data/V13/Payment.php | 6 +- src/Data/V20/Payment.php | 6 +- src/Data/V20/ReturnOrderV2.php | 6 +- src/Requests/V10/BuyOrderDeliveryRequest.php | 8 +-- src/Requests/V10/BuyOrderRequest.php | 14 ++--- src/Requests/V10/DeliveryRequest.php | 10 +-- src/Requests/V10/EmailRequest.php | 33 +++++----- src/Requests/V10/FinancialRequest.php | 26 ++++---- src/Requests/V10/HRMRequest.php | 8 +-- src/Requests/V10/ManagementRequest.php | 33 +++++----- src/Requests/V10/OrderRequest.php | 58 +++++++++--------- src/Requests/V10/PriceListsRequest.php | 4 +- src/Requests/V10/RelationsRequest.php | 12 ++-- src/Requests/V10/StockRequest.php | 8 +-- src/Requests/V10/WebshopRequest.php | 16 ++--- src/Requests/V11/BuyOrderDeliveryRequest.php | 4 +- src/Requests/V11/FinancialRequest.php | 24 ++++---- src/Requests/V11/OrderRequest.php | 34 +++++------ src/Requests/V11/ProductRequest.php | 61 +++++++++---------- src/Requests/V12/OrderRequest.php | 8 +-- src/Requests/V13/OrderRequest.php | 16 ++--- src/Requests/V20/DeliveryRequest.php | 6 +- src/Requests/V20/ProductRequest.php | 4 +- src/Requests/V20/StockRequest.php | 4 +- tests/Feature/OrderDataTest.php | 3 + tests/Feature/OrderRequestTest.php | 2 + 44 files changed, 282 insertions(+), 265 deletions(-) diff --git a/generator/ComponentClassGenerator.php b/generator/ComponentClassGenerator.php index 7e678f1..dca8c2b 100644 --- a/generator/ComponentClassGenerator.php +++ b/generator/ComponentClassGenerator.php @@ -51,6 +51,7 @@ public function resolve(string $name, string $namespace, string $version): strin $typedParameters = []; $arrayParameters = []; $dateParameters = []; + $requiredProperties = $component->required ?? []; foreach ($component->properties as $parameterName => $parameter) { if ($parameter instanceof Reference) { @@ -78,7 +79,9 @@ public function resolve(string $name, string $namespace, string $version): strin } } - $nullable = !\in_array($parameterName, ['Records', 'ValidationMessages'], true) && (($parameter->nullable ?? false) || class_exists($type)); + $isRequired = \in_array($parameterName, $requiredProperties, true); + $nullable = !\in_array($parameterName, ['Records', 'ValidationMessages'], true) + && (($parameter->nullable ?? false) || (class_exists($type) && !$isRequired)); $constructor ->addPromotedParameter($this->propertyName($parameterName)) @@ -90,30 +93,34 @@ public function resolve(string $name, string $namespace, string $version): strin foreach ($component->properties as $property => $propertyObject) { $constructorProperty = $constructor->getParameter($this->propertyName($property)); + $isPropertyRequired = \in_array($property, $requiredProperties, true); $default = $constructorProperty->isNullable() ? ' ?? null' - : match ($constructorProperty->getType()) { - 'int' => ' ?? 0', - 'float' => ' ?? 0.0', - 'bool' => ' ?? false', - 'string' => ' ?? \'\'', - 'array' => ' ?? []', - default => ' ?? null', - }; + : ($isPropertyRequired + ? '' + : match ($constructorProperty->getType()) { + 'int' => ' ?? 0', + 'float' => ' ?? 0.0', + 'bool' => ' ?? false', + 'string' => ' ?? \'\'', + 'array' => ' ?? []', + default => ' ?? null', + }); $assignment = null; $assignmentValue = "\$data['$property']$default"; if ($typedParameter = $typedParameters[$property] ?? null) { $assignment = "\\$typedParameter::make(\$data['$property'])"; } elseif ($arrayParameter = $arrayParameters[$property] ?? null) { - $assignmentValue = "array_map(static fn (array \$item) => \\$arrayParameter::make(\$item), \$data['$property'] ?? [])"; + $arrayDefault = $isPropertyRequired ? '' : ' ?? []'; + $assignmentValue = "array_map(static fn (array \$item) => \\$arrayParameter::make(\$item), \$data['$property']$arrayDefault)"; } elseif (\in_array($property, $dateParameters, true)) { $assignment = \sprintf("\\%s::parse(\$data['%s'])", Carbon::class, $property); } if (null === $assignment) { $assignment = $assignmentValue; - } else { + } elseif ($constructorProperty->isNullable()) { $assignment = "isset(\$data['$property']) ? $assignment : null"; } diff --git a/generator/Helpers.php b/generator/Helpers.php index bb317c5..4d6e3ac 100644 --- a/generator/Helpers.php +++ b/generator/Helpers.php @@ -62,8 +62,10 @@ public static function resolveParameterType(Schema|Reference $property): string } } elseif ('object' === $property->type) { $properties = []; + $requiredProps = $property->required ?? []; foreach ($property->properties as $parameterName => $propertyValue) { - $properties[] = \sprintf('%s?: %s', $parameterName, self::resolveParameterType($propertyValue)); + $separator = \in_array($parameterName, $requiredProps, true) ? ':' : '?:'; + $properties[] = \sprintf('%s%s %s', $parameterName, $separator, self::resolveParameterType($propertyValue)); } $type = \sprintf('array{%s}', implode(', ', $properties)); @@ -76,10 +78,11 @@ public static function resolveParameterType(Schema|Reference $property): string /** * @param Reference[]|Schema[] $properties + * @param string[] $required * * @return array */ - public static function makePhpDoc(array $properties, string $format): array + public static function makePhpDoc(array $properties, string $format, array $required = []): array { $parameters = []; foreach ($properties as $name => $property) { @@ -88,7 +91,8 @@ public static function makePhpDoc(array $properties, string $format): array } if ($property instanceof Schema) { - $parameters[] = \sprintf($format, \sprintf('%s?: %s', $name, self::resolveParameterType($property))); + $separator = \in_array($name, $required, true) ? ':' : '?:'; + $parameters[] = \sprintf($format, \sprintf('%s%s %s', $name, $separator, self::resolveParameterType($property))); } } diff --git a/generator/RequestClassGenerator.php b/generator/RequestClassGenerator.php index 8564e22..3072741 100644 --- a/generator/RequestClassGenerator.php +++ b/generator/RequestClassGenerator.php @@ -53,25 +53,35 @@ public function addMethod(string $httpMethod, string $uri, Operation $operation, $requestParameters['query'][$parameter->name] = \sprintf('{$%s}', $parameter->name); } + $hasRequiredProps = false; + if ($requestSchema instanceof Reference || 'array' === $requestSchema?->type ) { if ($requestSchema instanceof Reference) { - $requestProperties = $requestSchema->resolve()?->properties ?? []; - $parameterDoc = "array{\n".implode("\n", Helpers::makePhpDoc($requestProperties, ' %s,'))."\n}"; + $resolvedSchema = $requestSchema->resolve(); + $requestProperties = $resolvedSchema?->properties ?? []; + $requiredProps = $resolvedSchema?->required ?? []; + $hasRequiredProps = !empty($requiredProps); + $parameterDoc = "array{\n".implode("\n", Helpers::makePhpDoc($requestProperties, ' %s,', $requiredProps))."\n}"; } else { if ($requestSchema->items instanceof Schema) { $parameterDoc = "array<{$requestSchema->items->type}>"; } else { - $requestProperties = $requestSchema->items->resolve()->properties; + $resolvedItems = $requestSchema->items->resolve(); + $requestProperties = $resolvedItems->properties; + $requiredProps = $resolvedItems->required ?? []; - $parameterDoc = "array"; + $parameterDoc = "array"; } } - $method->addParameter('parameters') - ->setType('array') - ->setDefaultValue([]); + $parameterProp = $method->addParameter('parameters') + ->setType('array'); + + if (!$hasRequiredProps) { + $parameterProp->setDefaultValue([]); + } $method ->addComment("@param $parameterDoc \$parameters"); diff --git a/src/Data/V10/BuyOrderDeliveryRead.php b/src/Data/V10/BuyOrderDeliveryRead.php index c84e5db..59942c3 100644 --- a/src/Data/V10/BuyOrderDeliveryRead.php +++ b/src/Data/V10/BuyOrderDeliveryRead.php @@ -37,7 +37,7 @@ public static function make(array $data): self remarks: $data['Remarks'] ?? null, description: $data['Description'] ?? null, branchId: $data['BranchId'] ?? null, - rows: array_map(static fn (array $item) => BuyOrderDeliveryRowRead::make($item), $data['Rows'] ?? []), + rows: array_map(static fn (array $item) => BuyOrderDeliveryRowRead::make($item), $data['Rows']), pickingListNumber: $data['PickingListNumber'] ?? null, ); } diff --git a/src/Data/V10/CreditorThirdPartyExternalIdentifer.php b/src/Data/V10/CreditorThirdPartyExternalIdentifer.php index 4c594dd..9c1e7fa 100644 --- a/src/Data/V10/CreditorThirdPartyExternalIdentifer.php +++ b/src/Data/V10/CreditorThirdPartyExternalIdentifer.php @@ -17,8 +17,8 @@ public function __construct( public static function make(array $data): self { return new self( - creditorId: $data['CreditorId'] ?? 0, - typeId: $data['TypeId'] ?? 0, + creditorId: $data['CreditorId'], + typeId: $data['TypeId'], value: $data['Value'] ?? null, ); } diff --git a/src/Data/V10/CustomerThirdPartyExternalIdentifer.php b/src/Data/V10/CustomerThirdPartyExternalIdentifer.php index e0d4f30..dc7a69a 100644 --- a/src/Data/V10/CustomerThirdPartyExternalIdentifer.php +++ b/src/Data/V10/CustomerThirdPartyExternalIdentifer.php @@ -17,8 +17,8 @@ public function __construct( public static function make(array $data): self { return new self( - debtorId: $data['DebtorId'] ?? 0, - typeId: $data['TypeId'] ?? 0, + debtorId: $data['DebtorId'], + typeId: $data['TypeId'], value: $data['Value'] ?? null, ); } diff --git a/src/Data/V10/EmailAttachment.php b/src/Data/V10/EmailAttachment.php index 50d3762..0a872d8 100644 --- a/src/Data/V10/EmailAttachment.php +++ b/src/Data/V10/EmailAttachment.php @@ -20,7 +20,7 @@ public static function make(array $data): self { return new self( id: $data['Id'] ?? 0, - emailMessageId: $data['EmailMessageId'] ?? 0, + emailMessageId: $data['EmailMessageId'], name: $data['Name'] ?? null, contentId: $data['ContentId'] ?? null, isEmbeddedContent: $data['IsEmbeddedContent'] ?? false, diff --git a/src/Data/V10/EmailMessage.php b/src/Data/V10/EmailMessage.php index 1ba8033..d9300df 100644 --- a/src/Data/V10/EmailMessage.php +++ b/src/Data/V10/EmailMessage.php @@ -48,7 +48,7 @@ public static function make(array $data): self isReplyedOn: isset($data['IsReplyedOn']) ? \Carbon\Carbon::parse($data['IsReplyedOn']) : null, isForwardedOn: isset($data['IsForwardedOn']) ? \Carbon\Carbon::parse($data['IsForwardedOn']) : null, status: isset($data['Status']) ? EmailMessageStatus::make($data['Status']) : null, - toEmailAddresses: array_map(static fn (array $item) => EmailAddress::make($item), $data['ToEmailAddresses'] ?? []), + toEmailAddresses: array_map(static fn (array $item) => EmailAddress::make($item), $data['ToEmailAddresses']), fromEmailAddress: isset($data['FromEmailAddress']) ? EmailAddress::make($data['FromEmailAddress']) : null, CCEmailAddresses: array_map(static fn (array $item) => EmailAddress::make($item), $data['CCEmailAddresses'] ?? []), BCCEmailAddresses: array_map(static fn (array $item) => EmailAddress::make($item), $data['BCCEmailAddresses'] ?? []), diff --git a/src/Data/V10/HRMTimeRegistrationRow.php b/src/Data/V10/HRMTimeRegistrationRow.php index 2e8d447..aaf4e6c 100644 --- a/src/Data/V10/HRMTimeRegistrationRow.php +++ b/src/Data/V10/HRMTimeRegistrationRow.php @@ -9,7 +9,7 @@ class HRMTimeRegistrationRow public function __construct( public int $userId, public ?int $periodId, - public ?\Carbon\Carbon $date, + public \Carbon\Carbon $date, public int $activityId, public ?int $ITSTaskId, public ?int $CRMProjectId, @@ -27,15 +27,15 @@ public function __construct( public static function make(array $data): self { return new self( - userId: $data['UserId'] ?? 0, + userId: $data['UserId'], periodId: $data['PeriodId'] ?? null, - date: isset($data['Date']) ? \Carbon\Carbon::parse($data['Date']) : null, - activityId: $data['ActivityId'] ?? 0, + date: \Carbon\Carbon::parse($data['Date']), + activityId: $data['ActivityId'], ITSTaskId: $data['ITSTaskId'] ?? null, CRMProjectId: $data['CRMProjectId'] ?? null, ITSIssueId: $data['ITSIssueId'] ?? null, description: $data['Description'] ?? null, - minutes: $data['Minutes'] ?? 0, + minutes: $data['Minutes'], createPeriod: $data['CreatePeriod'] ?? false, periodeStatusId: $data['PeriodeStatusId'] ?? null, rowIsAddedToPeriod: $data['RowIsAddedToPeriod'] ?? false, diff --git a/src/Data/V10/Order.php b/src/Data/V10/Order.php index 793c9d3..653138a 100644 --- a/src/Data/V10/Order.php +++ b/src/Data/V10/Order.php @@ -28,7 +28,7 @@ public function __construct( public ?string $lastClickUtmValues, public ?CustomerAddress $deliveryAddress, public ?CustomerAddress $invoiceAddress, - public ?\Carbon\Carbon $creationDate, + public \Carbon\Carbon $creationDate, public ?string $description, public ?string $reference, public ?int $branchId, @@ -72,12 +72,12 @@ public static function make(array $data): self payments: array_map(static fn (array $item) => Payment::make($item), $data['Payments'] ?? []), costCentre: isset($data['CostCentre']) ? DebtorCostCentre::make($data['CostCentre']) : null, accountAddress: isset($data['AccountAddress']) ? CustomerAddress::make($data['AccountAddress']) : null, - orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows'] ?? []), + orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows']), lastClickGclIdValues: $data['LastClickGclIdValues'] ?? null, lastClickUtmValues: $data['LastClickUtmValues'] ?? null, deliveryAddress: isset($data['DeliveryAddress']) ? CustomerAddress::make($data['DeliveryAddress']) : null, invoiceAddress: isset($data['InvoiceAddress']) ? CustomerAddress::make($data['InvoiceAddress']) : null, - creationDate: isset($data['CreationDate']) ? \Carbon\Carbon::parse($data['CreationDate']) : null, + creationDate: \Carbon\Carbon::parse($data['CreationDate']), description: $data['Description'] ?? null, reference: $data['Reference'] ?? null, branchId: $data['BranchId'] ?? null, diff --git a/src/Data/V10/Payment.php b/src/Data/V10/Payment.php index b17b68c..0241d2f 100644 --- a/src/Data/V10/Payment.php +++ b/src/Data/V10/Payment.php @@ -25,9 +25,9 @@ public static function make(array $data): self orderId: $data['OrderId'] ?? null, invoiceId: $data['InvoiceId'] ?? null, amountIncl: $data['AmountIncl'] ?? 0.0, - description: $data['Description'] ?? '', - bookingId: $data['BookingId'] ?? 0, - matchingLedgerId: $data['MatchingLedgerId'] ?? 0, + description: $data['Description'], + bookingId: $data['BookingId'], + matchingLedgerId: $data['MatchingLedgerId'], dateTime: isset($data['DateTime']) ? \Carbon\Carbon::parse($data['DateTime']) : null, ledgerCode: $data['LedgerCode'] ?? null, ); diff --git a/src/Data/V10/ProductStockMutation.php b/src/Data/V10/ProductStockMutation.php index f34e511..ea7df5c 100644 --- a/src/Data/V10/ProductStockMutation.php +++ b/src/Data/V10/ProductStockMutation.php @@ -36,7 +36,7 @@ public static function make(array $data): self productId: $data['ProductId'] ?? 0, amount: $data['Amount'] ?? 0.0, remarks: $data['Remarks'] ?? null, - stockLocationId: $data['StockLocationId'] ?? 0, + stockLocationId: $data['StockLocationId'], stockMutationTypeId: $data['StockMutationTypeId'] ?? 0, ); } diff --git a/src/Data/V11/Order.php b/src/Data/V11/Order.php index 5d23cec..8595ba0 100644 --- a/src/Data/V11/Order.php +++ b/src/Data/V11/Order.php @@ -28,7 +28,7 @@ public function __construct( public ?string $lastClickUtmValues, public ?CustomerAddress $deliveryAddress, public ?CustomerAddress $invoiceAddress, - public ?\Carbon\Carbon $creationDate, + public \Carbon\Carbon $creationDate, public ?string $description, public ?string $reference, public ?int $branchId, @@ -72,12 +72,12 @@ public static function make(array $data): self payments: array_map(static fn (array $item) => Payment::make($item), $data['Payments'] ?? []), costCentre: isset($data['CostCentre']) ? DebtorCostCentre::make($data['CostCentre']) : null, accountAddress: isset($data['AccountAddress']) ? CustomerAddress::make($data['AccountAddress']) : null, - orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows'] ?? []), + orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows']), lastClickGclIdValues: $data['LastClickGclIdValues'] ?? null, lastClickUtmValues: $data['LastClickUtmValues'] ?? null, deliveryAddress: isset($data['DeliveryAddress']) ? CustomerAddress::make($data['DeliveryAddress']) : null, invoiceAddress: isset($data['InvoiceAddress']) ? CustomerAddress::make($data['InvoiceAddress']) : null, - creationDate: isset($data['CreationDate']) ? \Carbon\Carbon::parse($data['CreationDate']) : null, + creationDate: \Carbon\Carbon::parse($data['CreationDate']), description: $data['Description'] ?? null, reference: $data['Reference'] ?? null, branchId: $data['BranchId'] ?? null, diff --git a/src/Data/V11/Payment.php b/src/Data/V11/Payment.php index 660f997..537fa14 100644 --- a/src/Data/V11/Payment.php +++ b/src/Data/V11/Payment.php @@ -25,9 +25,9 @@ public static function make(array $data): self orderId: $data['OrderId'] ?? null, invoiceId: $data['InvoiceId'] ?? null, amountIncl: $data['AmountIncl'] ?? 0.0, - description: $data['Description'] ?? '', - bookingId: $data['BookingId'] ?? 0, - matchingLedgerId: $data['MatchingLedgerId'] ?? 0, + description: $data['Description'], + bookingId: $data['BookingId'], + matchingLedgerId: $data['MatchingLedgerId'], dateTime: isset($data['DateTime']) ? \Carbon\Carbon::parse($data['DateTime']) : null, ledgerCode: $data['LedgerCode'] ?? null, ); diff --git a/src/Data/V11/ProductStockMutation.php b/src/Data/V11/ProductStockMutation.php index 125aae0..e8bb212 100644 --- a/src/Data/V11/ProductStockMutation.php +++ b/src/Data/V11/ProductStockMutation.php @@ -36,7 +36,7 @@ public static function make(array $data): self productId: $data['ProductId'] ?? 0, amount: $data['Amount'] ?? 0.0, remarks: $data['Remarks'] ?? null, - stockLocationId: $data['StockLocationId'] ?? 0, + stockLocationId: $data['StockLocationId'], stockMutationTypeId: $data['StockMutationTypeId'] ?? 0, ); } diff --git a/src/Data/V12/Order.php b/src/Data/V12/Order.php index 2e9272b..358f905 100644 --- a/src/Data/V12/Order.php +++ b/src/Data/V12/Order.php @@ -28,7 +28,7 @@ public function __construct( public ?string $lastClickUtmValues, public ?CustomerAddress $deliveryAddress, public ?CustomerAddress $invoiceAddress, - public ?\Carbon\Carbon $creationDate, + public \Carbon\Carbon $creationDate, public ?string $description, public ?string $reference, public ?int $branchId, @@ -72,12 +72,12 @@ public static function make(array $data): self payments: array_map(static fn (array $item) => Payment::make($item), $data['Payments'] ?? []), costCentre: isset($data['CostCentre']) ? DebtorCostCentre::make($data['CostCentre']) : null, accountAddress: isset($data['AccountAddress']) ? CustomerAddress::make($data['AccountAddress']) : null, - orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows'] ?? []), + orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows']), lastClickGclIdValues: $data['LastClickGclIdValues'] ?? null, lastClickUtmValues: $data['LastClickUtmValues'] ?? null, deliveryAddress: isset($data['DeliveryAddress']) ? CustomerAddress::make($data['DeliveryAddress']) : null, invoiceAddress: isset($data['InvoiceAddress']) ? CustomerAddress::make($data['InvoiceAddress']) : null, - creationDate: isset($data['CreationDate']) ? \Carbon\Carbon::parse($data['CreationDate']) : null, + creationDate: \Carbon\Carbon::parse($data['CreationDate']), description: $data['Description'] ?? null, reference: $data['Reference'] ?? null, branchId: $data['BranchId'] ?? null, diff --git a/src/Data/V12/Payment.php b/src/Data/V12/Payment.php index 46c4e6e..c90be28 100644 --- a/src/Data/V12/Payment.php +++ b/src/Data/V12/Payment.php @@ -25,9 +25,9 @@ public static function make(array $data): self orderId: $data['OrderId'] ?? null, invoiceId: $data['InvoiceId'] ?? null, amountIncl: $data['AmountIncl'] ?? 0.0, - description: $data['Description'] ?? '', - bookingId: $data['BookingId'] ?? 0, - matchingLedgerId: $data['MatchingLedgerId'] ?? 0, + description: $data['Description'], + bookingId: $data['BookingId'], + matchingLedgerId: $data['MatchingLedgerId'], dateTime: isset($data['DateTime']) ? \Carbon\Carbon::parse($data['DateTime']) : null, ledgerCode: $data['LedgerCode'] ?? null, ); diff --git a/src/Data/V13/Order.php b/src/Data/V13/Order.php index 2cc3aa0..d83fd42 100644 --- a/src/Data/V13/Order.php +++ b/src/Data/V13/Order.php @@ -28,7 +28,7 @@ public function __construct( public ?string $lastClickUtmValues, public ?CustomerAddress $deliveryAddress, public ?CustomerAddress $invoiceAddress, - public ?\Carbon\Carbon $creationDate, + public \Carbon\Carbon $creationDate, public ?string $description, public ?string $reference, public ?int $branchId, @@ -72,12 +72,12 @@ public static function make(array $data): self payments: array_map(static fn (array $item) => Payment::make($item), $data['Payments'] ?? []), costCentre: isset($data['CostCentre']) ? DebtorCostCentre::make($data['CostCentre']) : null, accountAddress: isset($data['AccountAddress']) ? CustomerAddress::make($data['AccountAddress']) : null, - orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows'] ?? []), + orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows']), lastClickGclIdValues: $data['LastClickGclIdValues'] ?? null, lastClickUtmValues: $data['LastClickUtmValues'] ?? null, deliveryAddress: isset($data['DeliveryAddress']) ? CustomerAddress::make($data['DeliveryAddress']) : null, invoiceAddress: isset($data['InvoiceAddress']) ? CustomerAddress::make($data['InvoiceAddress']) : null, - creationDate: isset($data['CreationDate']) ? \Carbon\Carbon::parse($data['CreationDate']) : null, + creationDate: \Carbon\Carbon::parse($data['CreationDate']), description: $data['Description'] ?? null, reference: $data['Reference'] ?? null, branchId: $data['BranchId'] ?? null, diff --git a/src/Data/V13/Payment.php b/src/Data/V13/Payment.php index d06b7e0..a18ec9d 100644 --- a/src/Data/V13/Payment.php +++ b/src/Data/V13/Payment.php @@ -25,9 +25,9 @@ public static function make(array $data): self orderId: $data['OrderId'] ?? null, invoiceId: $data['InvoiceId'] ?? null, amountIncl: $data['AmountIncl'] ?? 0.0, - description: $data['Description'] ?? '', - bookingId: $data['BookingId'] ?? 0, - matchingLedgerId: $data['MatchingLedgerId'] ?? 0, + description: $data['Description'], + bookingId: $data['BookingId'], + matchingLedgerId: $data['MatchingLedgerId'], dateTime: isset($data['DateTime']) ? \Carbon\Carbon::parse($data['DateTime']) : null, ledgerCode: $data['LedgerCode'] ?? null, ); diff --git a/src/Data/V20/Payment.php b/src/Data/V20/Payment.php index 5f2e987..3bc2579 100644 --- a/src/Data/V20/Payment.php +++ b/src/Data/V20/Payment.php @@ -25,9 +25,9 @@ public static function make(array $data): self orderId: $data['OrderId'] ?? null, invoiceId: $data['InvoiceId'] ?? null, amountIncl: $data['AmountIncl'] ?? 0.0, - description: $data['Description'] ?? '', - bookingId: $data['BookingId'] ?? 0, - matchingLedgerId: $data['MatchingLedgerId'] ?? 0, + description: $data['Description'], + bookingId: $data['BookingId'], + matchingLedgerId: $data['MatchingLedgerId'], dateTime: isset($data['DateTime']) ? \Carbon\Carbon::parse($data['DateTime']) : null, ledgerCode: $data['LedgerCode'] ?? null, ); diff --git a/src/Data/V20/ReturnOrderV2.php b/src/Data/V20/ReturnOrderV2.php index 8a1c39a..bcbd421 100644 --- a/src/Data/V20/ReturnOrderV2.php +++ b/src/Data/V20/ReturnOrderV2.php @@ -34,7 +34,7 @@ public function __construct( public ?string $lastClickUtmValues, public ?CustomerAddress $deliveryAddress, public ?CustomerAddress $invoiceAddress, - public ?\Carbon\Carbon $creationDate, + public \Carbon\Carbon $creationDate, public ?string $description, public ?string $reference, public ?int $branchId, @@ -84,12 +84,12 @@ public static function make(array $data): self payments: array_map(static fn (array $item) => Payment::make($item), $data['Payments'] ?? []), costCentre: isset($data['CostCentre']) ? DebtorCostCentre::make($data['CostCentre']) : null, accountAddress: isset($data['AccountAddress']) ? CustomerAddress::make($data['AccountAddress']) : null, - orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows'] ?? []), + orderRows: array_map(static fn (array $item) => OrderRow::make($item), $data['OrderRows']), lastClickGclIdValues: $data['LastClickGclIdValues'] ?? null, lastClickUtmValues: $data['LastClickUtmValues'] ?? null, deliveryAddress: isset($data['DeliveryAddress']) ? CustomerAddress::make($data['DeliveryAddress']) : null, invoiceAddress: isset($data['InvoiceAddress']) ? CustomerAddress::make($data['InvoiceAddress']) : null, - creationDate: isset($data['CreationDate']) ? \Carbon\Carbon::parse($data['CreationDate']) : null, + creationDate: \Carbon\Carbon::parse($data['CreationDate']), description: $data['Description'] ?? null, reference: $data['Reference'] ?? null, branchId: $data['BranchId'] ?? null, diff --git a/src/Requests/V10/BuyOrderDeliveryRequest.php b/src/Requests/V10/BuyOrderDeliveryRequest.php index 663cfea..ce176d1 100644 --- a/src/Requests/V10/BuyOrderDeliveryRequest.php +++ b/src/Requests/V10/BuyOrderDeliveryRequest.php @@ -25,14 +25,14 @@ class BuyOrderDeliveryRequest extends Request * Remarks?: string|null, * Description?: string|null, * BranchId?: int|null, - * Rows?: array, + * Rows: array, * PickingListNumber?: string|null, * } $parameters * * @throws Logic4ApiException */ public function createBuyOrderDelivery( - array $parameters = [], + array $parameters, ): StringLogic4Response { return StringLogic4Response::make( $this->buildResponse( @@ -54,14 +54,14 @@ public function createBuyOrderDelivery( * Remarks?: string|null, * Description?: string|null, * BranchId?: int|null, - * Rows?: array, + * Rows: array, * PickingListNumber?: string|null, * } $parameters * * @throws Logic4ApiException */ public function createBuyOrderDeliveryAndOrderMovement( - array $parameters = [], + array $parameters, ): BuyOrderDeliveryAndOrderMovementLogic4Response { return BuyOrderDeliveryAndOrderMovementLogic4Response::make( $this->buildResponse( diff --git a/src/Requests/V10/BuyOrderRequest.php b/src/Requests/V10/BuyOrderRequest.php index 17df08f..37fca9a 100644 --- a/src/Requests/V10/BuyOrderRequest.php +++ b/src/Requests/V10/BuyOrderRequest.php @@ -87,7 +87,7 @@ public function addUpdateBuyOrderRow( * Maak een nieuwe inkooporder. * * @param array{ - * CreditorId?: int, + * CreditorId: int, * DatabaseAdministrationId?: int, * CreatedAt?: string, * BuyOrderRows?: array, @@ -102,7 +102,7 @@ public function addUpdateBuyOrderRow( * @throws Logic4ApiException */ public function createBuyOrder( - array $parameters = [], + array $parameters, ): BuyOrderBaseInfoLogic4Response { return BuyOrderBaseInfoLogic4Response::make( $this->buildResponse( @@ -155,7 +155,7 @@ public function getBuyOrderRowsByFilter( * Haal per artikel openstaande inkoopordersregels op o.b.v. het meegestuurde filter. * * @param array{ - * ProductIds?: array, + * ProductIds: array, * Dropshipment?: bool|null, * MinimumDeliveryDate?: string|null, * } $parameters @@ -163,7 +163,7 @@ public function getBuyOrderRowsByFilter( * @throws Logic4ApiException */ public function getBuyOrderRowsPerProduct( - array $parameters = [], + array $parameters, ): Int32ProductBuyOrderDeliveryRowListDictionaryLogic4Response { return Int32ProductBuyOrderDeliveryRowListDictionaryLogic4Response::make( $this->buildResponse( @@ -207,8 +207,8 @@ public function getBuyOrders( * Wijzig een bestaande inkooporder. * * @param array{ - * Id?: int, - * CreditorId?: int, + * Id: int, + * CreditorId: int, * Remarks?: string|null, * BranchId?: int|null, * BuyOrderClosed?: bool, @@ -218,7 +218,7 @@ public function getBuyOrders( * @throws Logic4ApiException */ public function updateBuyOrder( - array $parameters = [], + array $parameters, ): BuyOrderBaseInfoLogic4Response { return BuyOrderBaseInfoLogic4Response::make( $this->buildResponse( diff --git a/src/Requests/V10/DeliveryRequest.php b/src/Requests/V10/DeliveryRequest.php index e405a39..b6df4cd 100644 --- a/src/Requests/V10/DeliveryRequest.php +++ b/src/Requests/V10/DeliveryRequest.php @@ -15,13 +15,13 @@ class DeliveryRequest extends Request * Maak een nieuwe uitlevering aan o.b.v. opgestuurde orderregels. Het systeem bepaalt automatisch vanaf welke voorraadlocatie de voorraad afgeboekt wordt. * * @param array{ - * DeliveryRows?: array, + * DeliveryRows: array, * } $parameters * * @throws Logic4ApiException */ public function createDeliveryForOrderRows( - array $parameters = [], + array $parameters, ): SalesOrderDeliveryRowLogic4ResponseList { return SalesOrderDeliveryRowLogic4ResponseList::make( $this->buildResponse( @@ -40,8 +40,8 @@ public function createDeliveryForOrderRows( * OrderStatusId?: int|null, * BranchId?: int|null, * WebsiteDomainId?: int|null, - * Skip?: int, - * Take?: int, + * Skip: int, + * Take: int, * } $parameters * * @return \Generator @@ -50,7 +50,7 @@ public function createDeliveryForOrderRows( * * @deprecated Let op! Versie 1.0 is verouderd. Gebruik versie v3.0. - Zoeken op verkooporder uitleveringen. */ - public function getDeliveries(array $parameters = []): \Generator + public function getDeliveries(array $parameters): \Generator { $iterator = $this->paginateRecords('/v1/Delivery/GetDeliveries', $parameters, 'Take', 'Skip'); diff --git a/src/Requests/V10/EmailRequest.php b/src/Requests/V10/EmailRequest.php index 4b85ec2..cd2093d 100644 --- a/src/Requests/V10/EmailRequest.php +++ b/src/Requests/V10/EmailRequest.php @@ -20,7 +20,7 @@ class EmailRequest extends Request /** * @param array{ * Id?: int, - * EmailMessageId?: int, + * EmailMessageId: int, * Name?: string|null, * ContentId?: string|null, * IsEmbeddedContent?: bool, @@ -28,9 +28,8 @@ class EmailRequest extends Request * * @throws Logic4ApiException */ - public function addEmailAttachment( - array $parameters = [], - ): Int32Logic4Response { + public function addEmailAttachment(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->post('/v1/Email/AddEmailAttachment', ['json' => $parameters]), @@ -41,7 +40,7 @@ public function addEmailAttachment( /** * @param array, + * ToEmailAddresses: array, * FromEmailAddress?: array{Name?: string|null, Email?: string|null}, * CCEmailAddresses?: array, * BCCEmailAddresses?: array, @@ -109,7 +108,7 @@ public function addEmailBox(array $parameters = []): BooleanLogic4Response * * @throws Logic4ApiException */ - public function addEmailMessage(array $parameters = []): Int32Logic4Response + public function addEmailMessage(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -158,18 +157,17 @@ public function deleteEmailMessage(int $value): BooleanLogic4Response /** * @param array{ - * EmailIds?: array, + * EmailIds: array, * EmailBoxId?: int|null, * EmailStatusId?: int|null, * IsRead?: bool|null, - * Action?: string, + * Action: string, * } $parameters * * @throws Logic4ApiException */ - public function emailMessagesAction( - array $parameters = [], - ): BooleanLogic4Response { + public function emailMessagesAction(array $parameters): BooleanLogic4Response + { return BooleanLogic4Response::make( $this->buildResponse( $this->getClient()->post('/v1/Email/EmailMessagesAction', ['json' => $parameters]), @@ -179,13 +177,13 @@ public function emailMessagesAction( /** * @param array{ - * EmailMessageId?: int, + * EmailMessageId: int, * } $parameters * * @throws Logic4ApiException */ public function getEmailAttachments( - array $parameters = [], + array $parameters, ): EmailAttachmentLogic4ResponseList { return EmailAttachmentLogic4ResponseList::make( $this->buildResponse( @@ -324,7 +322,7 @@ public function updateEmailBox(array $parameters = []): BooleanLogic4Response * IsReplyedOn?: string|null, * IsForwardedOn?: string|null, * Status?: array{Id?: int, Name?: string|null, Color?: int}, - * ToEmailAddresses?: array, + * ToEmailAddresses: array, * FromEmailAddress?: array{Name?: string|null, Email?: string|null}, * CCEmailAddresses?: array, * BCCEmailAddresses?: array, @@ -335,9 +333,8 @@ public function updateEmailBox(array $parameters = []): BooleanLogic4Response * * @throws Logic4ApiException */ - public function updateEmailMessage( - array $parameters = [], - ): Int32Logic4Response { + public function updateEmailMessage(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->put('/v1/Email/UpdateEmailMessage', ['json' => $parameters]), diff --git a/src/Requests/V10/FinancialRequest.php b/src/Requests/V10/FinancialRequest.php index ff055ca..537efdc 100644 --- a/src/Requests/V10/FinancialRequest.php +++ b/src/Requests/V10/FinancialRequest.php @@ -33,11 +33,11 @@ class FinancialRequest extends Request * FreeValue1?: string|null, * FreeValue2?: string|null, * FreeValue3?: string|null, - * Reference?: string, - * BookingDateTime?: string, - * FinancialBookId?: int, + * Reference: string, + * BookingDateTime: string, + * FinancialBookId: int, * JournalStatusId?: int|null, - * Mutations?: array, + * Mutations: array, * } $parameters * * @throws Logic4ApiException @@ -45,7 +45,7 @@ class FinancialRequest extends Request * @deprecated Let op! Versie 1.0 is verouderd. Gebruik een nieuwere versie. - Financiële dagboekboeking met mutaties aanmaken */ public function addFinancialBookingWithMutations( - array $parameters = [], + array $parameters, ): BooleanLogic4Response { return BooleanLogic4Response::make( $this->buildResponse( @@ -61,17 +61,17 @@ public function addFinancialBookingWithMutations( * FreeValue1?: string|null, * FreeValue2?: string|null, * FreeValue3?: string|null, - * Reference?: string, - * BookingDateTime?: string, - * FinancialBookId?: int, + * Reference: string, + * BookingDateTime: string, + * FinancialBookId: int, * JournalStatusId?: int|null, - * Mutations?: array, + * Mutations: array, * } $parameters * * @throws Logic4ApiException */ public function addFinancialGeneralBookingWithMutations( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -326,14 +326,14 @@ public function postUblInvoiceToBuyBooking( * Voor deze aanroep zijn extra rechten vereist. * * @param array{ - * BookingId?: int, - * StatusId?: int, + * BookingId: int, + * StatusId: int, * } $parameters * * @throws Logic4ApiException */ public function updateFinancialBookingStatus( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V10/HRMRequest.php b/src/Requests/V10/HRMRequest.php index 206cde8..21e6405 100644 --- a/src/Requests/V10/HRMRequest.php +++ b/src/Requests/V10/HRMRequest.php @@ -14,15 +14,15 @@ class HRMRequest extends Request * Voeg urenregistraties toe in batch. * * @param array, + * ProductCodes: array, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -28,7 +28,7 @@ class ManagementRequest extends Request * @throws Logic4ApiException */ public function getProductCollectionSalesInformation( - array $parameters = [], + array $parameters, ): ProductSalesInformationLogic4ResponseList { return ProductSalesInformationLogic4ResponseList::make( $this->buildResponse( @@ -220,7 +220,7 @@ public function getSalesTotalIncludingOrdersAndRepeating( * Top 10 filialen (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -229,7 +229,7 @@ public function getSalesTotalIncludingOrdersAndRepeating( * @throws Logic4ApiException */ public function getTop10Branches( - array $parameters = [], + array $parameters, ): Top10ItemLogic4ResponseList { return Top10ItemLogic4ResponseList::make( $this->buildResponse( @@ -242,7 +242,7 @@ public function getTop10Branches( * Top 10 klanten (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -251,7 +251,7 @@ public function getTop10Branches( * @throws Logic4ApiException */ public function getTop10Debtors( - array $parameters = [], + array $parameters, ): Top10ItemLogic4ResponseList { return Top10ItemLogic4ResponseList::make( $this->buildResponse( @@ -264,7 +264,7 @@ public function getTop10Debtors( * Top 10 productgroepen (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -273,7 +273,7 @@ public function getTop10Debtors( * @throws Logic4ApiException */ public function getTop10Productgroups( - array $parameters = [], + array $parameters, ): Top10ItemLogic4ResponseList { return Top10ItemLogic4ResponseList::make( $this->buildResponse( @@ -286,7 +286,7 @@ public function getTop10Productgroups( * Top 10 artikelen (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -295,7 +295,7 @@ public function getTop10Productgroups( * @throws Logic4ApiException */ public function getTop10Products( - array $parameters = [], + array $parameters, ): Top10ItemLogic4ResponseList { return Top10ItemLogic4ResponseList::make( $this->buildResponse( @@ -308,7 +308,7 @@ public function getTop10Products( * Top 10 provincies (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -317,7 +317,7 @@ public function getTop10Products( * @throws Logic4ApiException */ public function getTop10Provinces( - array $parameters = [], + array $parameters, ): Top10ItemLogic4ResponseList { return Top10ItemLogic4ResponseList::make( $this->buildResponse( @@ -330,7 +330,7 @@ public function getTop10Provinces( * Top 10 medewerkers (dag/week/maand/kwartaal/jaar). * * @param array{ - * TimeFrame?: string, + * TimeFrame: string, * IncludingCurrentPeriod?: bool, * ExcludeDebtorIds?: array, * WebSiteDomainsIds?: array, @@ -338,9 +338,8 @@ public function getTop10Provinces( * * @throws Logic4ApiException */ - public function getTop10Users( - array $parameters = [], - ): Top10ItemLogic4ResponseList { + public function getTop10Users(array $parameters): Top10ItemLogic4ResponseList + { return Top10ItemLogic4ResponseList::make( $this->buildResponse( $this->getClient()->post('/v1/Management/GetTop10Users', ['json' => $parameters]), diff --git a/src/Requests/V10/OrderRequest.php b/src/Requests/V10/OrderRequest.php index fc664b6..a9fd1f0 100644 --- a/src/Requests/V10/OrderRequest.php +++ b/src/Requests/V10/OrderRequest.php @@ -49,16 +49,16 @@ public function addOrderRowSerialNumbers( * OrderId?: int|null, * InvoiceId?: int|null, * AmountIncl?: number, - * Description?: string, - * BookingId?: int, - * MatchingLedgerId?: int, + * Description: string, + * BookingId: int, + * MatchingLedgerId: int, * DateTime?: string|null, * LedgerCode?: int|null, * } $parameters * * @throws Logic4ApiException */ - public function addPayment(array $parameters = []): BooleanLogic4Response + public function addPayment(array $parameters): BooleanLogic4Response { return BooleanLogic4Response::make( $this->buildResponse( @@ -80,12 +80,12 @@ public function addPayment(array $parameters = []): BooleanLogic4Response * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * Totals?: array{AmountEx?: number, VATPercentage?: number, Calc_TotalPayed?: number|null, AmountIncl?: number, IsPaid?: bool, ShippingCost?: number, ShippingCostIncl?: number|null}, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{Type?: array{Id?: int, Name?: string|null}, Province?: array{Id?: int, Name?: string|null}, Email?: string|null, ContactName?: string|null, CompanyName?: string|null, Address1?: string|null, Address2?: string|null, Id?: int|null, DebtorId?: int|null, CreditorId?: int|null, IsMainContact?: bool, IsHidden?: bool|null, OwnContactNumber?: string|null, CountryCode?: string|null, IsoCode?: string|null, City?: string|null, Zipcode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null, TelephoneNumber?: string|null, CountryId?: int, ZoneId?: int}, * InvoiceAddress?: array{Type?: array{Id?: int, Name?: string|null}, Province?: array{Id?: int, Name?: string|null}, Email?: string|null, ContactName?: string|null, CompanyName?: string|null, Address1?: string|null, Address2?: string|null, Id?: int|null, DebtorId?: int|null, CreditorId?: int|null, IsMainContact?: bool, IsHidden?: bool|null, OwnContactNumber?: string|null, CountryCode?: string|null, IsoCode?: string|null, City?: string|null, Zipcode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null, TelephoneNumber?: string|null, CountryId?: int, ZoneId?: int}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -117,7 +117,7 @@ public function addPayment(array $parameters = []): BooleanLogic4Response * * @deprecated Let op! Versie 1.0 is verouderd. Gebruik versie v1.3. - Factuur toevoegen of updaten */ - public function addUpdateInvoice(array $parameters = []): Int32Logic4Response + public function addUpdateInvoice(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -139,12 +139,12 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * Totals?: array{AmountEx?: number, VATPercentage?: number, Calc_TotalPayed?: number|null, AmountIncl?: number, IsPaid?: bool, ShippingCost?: number, ShippingCostIncl?: number|null}, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{Type?: array{Id?: int, Name?: string|null}, Province?: array{Id?: int, Name?: string|null}, Email?: string|null, ContactName?: string|null, CompanyName?: string|null, Address1?: string|null, Address2?: string|null, Id?: int|null, DebtorId?: int|null, CreditorId?: int|null, IsMainContact?: bool, IsHidden?: bool|null, OwnContactNumber?: string|null, CountryCode?: string|null, IsoCode?: string|null, City?: string|null, Zipcode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null, TelephoneNumber?: string|null, CountryId?: int, ZoneId?: int}, * InvoiceAddress?: array{Type?: array{Id?: int, Name?: string|null}, Province?: array{Id?: int, Name?: string|null}, Email?: string|null, ContactName?: string|null, CompanyName?: string|null, Address1?: string|null, Address2?: string|null, Id?: int|null, DebtorId?: int|null, CreditorId?: int|null, IsMainContact?: bool, IsHidden?: bool|null, OwnContactNumber?: string|null, CountryCode?: string|null, IsoCode?: string|null, City?: string|null, Zipcode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null, TelephoneNumber?: string|null, CountryId?: int, ZoneId?: int}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -176,7 +176,7 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * * @deprecated Let op! Versie 1.0 is verouderd. Gebruik versie v1.3. - Order toevoegen of updaten */ - public function addUpdateOrder(array $parameters = []): Int32Logic4Response + public function addUpdateOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -264,11 +264,11 @@ public function createAndProcessInvoiceForOrder( * * @param array{ * Totals?: array{AmountEx?: number, VATPercentage?: number, Calc_TotalPayed?: number|null, AmountIncl?: number, IsPaid?: bool, ShippingCost?: number, ShippingCostIncl?: number|null}, - * OriginalOrderId?: int, - * OriginalOrderDate?: string, - * OriginalOrderZipCode?: string, - * ProblemId?: int, - * SolutionId?: int, + * OriginalOrderId: int, + * OriginalOrderDate: string, + * OriginalOrderZipCode: string, + * ProblemId: int, + * SolutionId: int, * ReceivedReturnOrderDate?: string|null, * ApprovedReturnOrderDate?: string|null, * DebtorId?: int|null, @@ -277,12 +277,12 @@ public function createAndProcessInvoiceForOrder( * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -314,7 +314,7 @@ public function createAndProcessInvoiceForOrder( * * @deprecated Let op! Versie 1.0 is verouderd. Gebruik versie v1.1. - Retourorders toevoegen */ - public function createReturnOrder(array $parameters = []): Int32Logic4Response + public function createReturnOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -786,16 +786,15 @@ public function processInvoice(int $value): Int32Logic4Response * Email wordt standaard niet verstuurd als de debuteur of de betaalmethode facturen via email uit heeft staan. * * @param array{ - * InvoiceId?: int, + * InvoiceId: int, * IgnoreDebtorElectronicInvoicePreference?: bool, * IgnorePaymentTypeElectronicInvoicePreference?: bool, * } $parameters * * @throws Logic4ApiException */ - public function sendEmailForInvoice( - array $parameters = [], - ): Int32Logic4Response { + public function sendEmailForInvoice(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->post('/v1/Orders/SendEmailForInvoice', ['json' => $parameters]), @@ -896,15 +895,14 @@ public function updateInvoiceAddressForOrderOrInvoice( * Update de status van een order. * * @param array{ - * StatusId?: int, - * OrderId?: int, + * StatusId: int, + * OrderId: int, * } $parameters * * @throws Logic4ApiException */ - public function updateOrderStatus( - array $parameters = [], - ): BooleanLogic4Response { + public function updateOrderStatus(array $parameters): BooleanLogic4Response + { return BooleanLogic4Response::make( $this->buildResponse( $this->getClient()->post('/v1/Orders/UpdateOrderStatus', ['json' => $parameters]), diff --git a/src/Requests/V10/PriceListsRequest.php b/src/Requests/V10/PriceListsRequest.php index fc60f66..af651c0 100644 --- a/src/Requests/V10/PriceListsRequest.php +++ b/src/Requests/V10/PriceListsRequest.php @@ -34,14 +34,14 @@ public function getPricelists( /** * @param array{ - * PriceListId?: int, + * PriceListId: int, * ProductStaggeredPrices?: array}>, * } $parameters * * @throws Logic4ApiException */ public function updatePriceListForProducts( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V10/RelationsRequest.php b/src/Requests/V10/RelationsRequest.php index 6fa8f69..81804e1 100644 --- a/src/Requests/V10/RelationsRequest.php +++ b/src/Requests/V10/RelationsRequest.php @@ -202,15 +202,15 @@ public function addUpdateContact(array $parameters = []): Int32Logic4Response * Crediteur externe identifier toevoegen of updaten. * * @param array{ - * CreditorId?: int, - * TypeId?: int, + * CreditorId: int, + * TypeId: int, * Value?: string|null, * } $parameters * * @throws Logic4ApiException */ public function addUpdateCreditorThirdPartyExternalIdentifier( - array $parameters = [], + array $parameters, ): BooleanLogic4Response { return BooleanLogic4Response::make( $this->buildResponse( @@ -280,15 +280,15 @@ public function addUpdateCustomer(array $parameters = []): Int32Logic4Response * Debiteur externe identifier toevoegen of updaten. * * @param array{ - * DebtorId?: int, - * TypeId?: int, + * DebtorId: int, + * TypeId: int, * Value?: string|null, * } $parameters * * @throws Logic4ApiException */ public function addUpdateCustomerThirdPartyExternalIdentifier( - array $parameters = [], + array $parameters, ): BooleanLogic4Response { return BooleanLogic4Response::make( $this->buildResponse( diff --git a/src/Requests/V10/StockRequest.php b/src/Requests/V10/StockRequest.php index 1810f9e..701cecb 100644 --- a/src/Requests/V10/StockRequest.php +++ b/src/Requests/V10/StockRequest.php @@ -31,12 +31,12 @@ class StockRequest extends Request * Maak een voorraadmutatie aan. * * @param array{ - * TypeId?: int, + * TypeId: int, * LedgerId?: int|null, * ProductId?: int, * Amount?: number, * Remarks?: string|null, - * StockLocationId?: int, + * StockLocationId: int, * StockMutationTypeId?: int, * } $parameters * @@ -45,7 +45,7 @@ class StockRequest extends Request * @deprecated Let op! Versie 1.0 is verouderd. Gebruik versie v2.0. - Voorraadmutatie aanmaken */ public function createProductStockMutation( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -63,7 +63,7 @@ public function createProductStockMutation( * Amount?: number, * Timestamp?: string, * Remarks?: string|null, - * StockLocationId?: int, + * StockLocationId: int, * StockMutationTypeId?: int, * }> $parameters * diff --git a/src/Requests/V10/WebshopRequest.php b/src/Requests/V10/WebshopRequest.php index 246209b..b30db46 100644 --- a/src/Requests/V10/WebshopRequest.php +++ b/src/Requests/V10/WebshopRequest.php @@ -96,8 +96,8 @@ public function getVisitorBehaviorForDebtor(array $parameters = []): \Generator * Verkrijg de betaalmethodes van een WebshopUser. * * @param array{ - * DebtorId?: int, - * ShippingMethodId?: int, + * DebtorId: int, + * ShippingMethodId: int, * ShowOnlySelectedPaymentMethodDebtor?: bool|null, * TotalPrice?: number, * ShowOnlyAfterPayments?: bool|null, @@ -106,7 +106,7 @@ public function getVisitorBehaviorForDebtor(array $parameters = []): \Generator * @throws Logic4ApiException */ public function getWebshopCheckOutPaymentMethods( - array $parameters = [], + array $parameters, ): PaymentMethodLogic4ResponseList { return PaymentMethodLogic4ResponseList::make( $this->buildResponse( @@ -216,14 +216,14 @@ public function getWebshopUser( * Verkrijg het nog te besteden bedrag voor een webshopgebruiker van een jaarbudget. * * @param array{ - * WebshopUserId?: int, + * WebshopUserId: int, * IgnoreOrderstatusIds?: array, * } $parameters * * @throws Logic4ApiException */ public function getWebshopUserAvailableBudget( - array $parameters = [], + array $parameters, ): DecimalNullableLogic4Response { return DecimalNullableLogic4Response::make( $this->buildResponse( @@ -236,8 +236,8 @@ public function getWebshopUserAvailableBudget( * Verkrijg webshopgebruiker o.b.v. meegestuurde credentials. * * @param array{ - * UserName?: string, - * Password?: string, + * UserName: string, + * Password: string, * WebsiteDomainId?: int|null, * IgnorePasswordCheck?: bool, * } $parameters @@ -245,7 +245,7 @@ public function getWebshopUserAvailableBudget( * @throws Logic4ApiException */ public function getWebshopUserByLogin( - array $parameters = [], + array $parameters, ): WebshopUserLogic4Response { return WebshopUserLogic4Response::make( $this->buildResponse( diff --git a/src/Requests/V11/BuyOrderDeliveryRequest.php b/src/Requests/V11/BuyOrderDeliveryRequest.php index 1afec34..ada3e62 100644 --- a/src/Requests/V11/BuyOrderDeliveryRequest.php +++ b/src/Requests/V11/BuyOrderDeliveryRequest.php @@ -23,14 +23,14 @@ class BuyOrderDeliveryRequest extends Request * Remarks?: string|null, * Description?: string|null, * BranchId?: int|null, - * Rows?: array, + * Rows: array, * PickingListNumber?: string|null, * } $parameters * * @throws Logic4ApiException */ public function createBuyOrderDeliveryAndOrderMovement( - array $parameters = [], + array $parameters, ): BuyOrderDeliveryAndOrderMovementLogic4Response { return BuyOrderDeliveryAndOrderMovementLogic4Response::make( $this->buildResponse( diff --git a/src/Requests/V11/FinancialRequest.php b/src/Requests/V11/FinancialRequest.php index ab0de04..298e377 100644 --- a/src/Requests/V11/FinancialRequest.php +++ b/src/Requests/V11/FinancialRequest.php @@ -14,22 +14,22 @@ class FinancialRequest extends Request * Maak een financiele inkoop dagboekboeking met mutaties aan. * * @param array{ - * Description?: string, + * Description: string, * FinancialCostCenterId?: int|null, * FreeValue1?: string|null, * FreeValue2?: string|null, * FreeValue3?: string|null, - * Reference?: string, - * BookingDateTime?: string, - * FinancialBookId?: int, + * Reference: string, + * BookingDateTime: string, + * FinancialBookId: int, * JournalStatusId?: int|null, - * Mutations?: array, + * Mutations: array, * } $parameters * * @throws Logic4ApiException */ public function addFinancialBuyBookingWithMutations( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -42,22 +42,22 @@ public function addFinancialBuyBookingWithMutations( * Maak een financiele verkoop dagboekboeking met mutaties aan. * * @param array{ - * Description?: string, + * Description: string, * FinancialCostCenterId?: int|null, * FreeValue1?: string|null, * FreeValue2?: string|null, * FreeValue3?: string|null, - * Reference?: string, - * BookingDateTime?: string, - * FinancialBookId?: int, + * Reference: string, + * BookingDateTime: string, + * FinancialBookId: int, * JournalStatusId?: int|null, - * Mutations?: array, + * Mutations: array, * } $parameters * * @throws Logic4ApiException */ public function addFinancialSaleBookingWithMutations( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V11/OrderRequest.php b/src/Requests/V11/OrderRequest.php index f7001c6..3d573d0 100644 --- a/src/Requests/V11/OrderRequest.php +++ b/src/Requests/V11/OrderRequest.php @@ -27,12 +27,12 @@ class OrderRequest extends Request * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -64,7 +64,7 @@ class OrderRequest extends Request * * @deprecated Let op! Versie 1.1 is verouderd. Gebruik versie v1.3. - Factuur toevoegen of updaten */ - public function addUpdateInvoice(array $parameters = []): Int32Logic4Response + public function addUpdateInvoice(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -86,12 +86,12 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -123,7 +123,7 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * * @deprecated Let op! Versie 1.1 is verouderd. Gebruik versie v1.3. - Order toevoegen of updaten */ - public function addUpdateOrder(array $parameters = []): Int32Logic4Response + public function addUpdateOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -199,11 +199,11 @@ public function addUpdateOrderRow(array $parameters = []): Int32Logic4Response * * @param array{ * Totals?: array{ShippingCost?: number, ShippingCostIncl?: number|null}, - * OriginalOrderId?: int, - * OriginalOrderDate?: string, - * OriginalOrderZipCode?: string, - * ProblemId?: int, - * SolutionId?: int, + * OriginalOrderId: int, + * OriginalOrderDate: string, + * OriginalOrderZipCode: string, + * ProblemId: int, + * SolutionId: int, * ReceivedReturnOrderDate?: string|null, * ApprovedReturnOrderDate?: string|null, * DebtorId?: int|null, @@ -212,12 +212,12 @@ public function addUpdateOrderRow(array $parameters = []): Int32Logic4Response * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -247,7 +247,7 @@ public function addUpdateOrderRow(array $parameters = []): Int32Logic4Response * * @throws Logic4ApiException */ - public function createReturnOrder(array $parameters = []): Int32Logic4Response + public function createReturnOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V11/ProductRequest.php b/src/Requests/V11/ProductRequest.php index e054645..ada0319 100644 --- a/src/Requests/V11/ProductRequest.php +++ b/src/Requests/V11/ProductRequest.php @@ -32,8 +32,8 @@ class ProductRequest extends Request { /** * @param array{ - * ProductCode?: string, - * ProductDescription1?: string, + * ProductCode: string, + * ProductDescription1: string, * ProductDescription2?: string|null, * BrandId?: int, * ProductGroup1?: int, @@ -44,7 +44,7 @@ class ProductRequest extends Request * Suppliers?: array}>, * Barcode1?: string|null, * Barcode2?: string|null, - * ExtraBarcodes?: array, + * ExtraBarcodes?: array, * VendorCode?: string|null, * StatusId?: int, * VisibleOnWebshopFrom?: string|null, @@ -81,7 +81,7 @@ class ProductRequest extends Request * * @throws Logic4ApiException */ - public function addProduct(array $parameters = []): Int32Logic4Response + public function addProduct(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -569,15 +569,14 @@ public function getUnits(): ProductUnitLogic4ResponseList /** * @param array{ - * SupplierId?: int, - * ProductId?: int, + * SupplierId: int, + * ProductId: int, * } $parameters * * @throws Logic4ApiException */ - public function removeProductSupplier( - array $parameters = [], - ): Int32Logic4Response { + public function removeProductSupplier(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->delete('/v1.1/Products/RemoveProductSupplier', ['json' => $parameters]), @@ -589,14 +588,14 @@ public function removeProductSupplier( * Voor deze aanroep zijn extra rechten vereist. * * @param array{ - * SupplierId?: int, - * ProductId?: int, + * SupplierId: int, + * ProductId: int, * } $parameters * * @throws Logic4ApiException */ public function setActiveProductSupplier( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -663,9 +662,9 @@ public function updateProduct(array $parameters = []): Int32Logic4Response /** * @param array{ - * ProductId?: int, + * ProductId: int, * TypeId?: int|null, - * Barcode?: string, + * Barcode: string, * Quantity?: int, * UnitId?: int|null, * } $parameters @@ -673,7 +672,7 @@ public function updateProduct(array $parameters = []): Int32Logic4Response * @throws Logic4ApiException */ public function updateProductAddExtraBarcode( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -712,13 +711,13 @@ public function updateProductImage( * @param array{ * ProductGroup1Id?: int, * BrandId?: int, - * ProductId?: int, + * ProductId: int, * } $parameters * * @throws Logic4ApiException */ public function updateProductMainGroupAndBrand( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -732,14 +731,13 @@ public function updateProductMainGroupAndBrand( * * @param array{ * ProductPrices?: array, - * ProductId?: int, + * ProductId: int, * } $parameters * * @throws Logic4ApiException */ - public function updateProductPrices( - array $parameters = [], - ): Int32Logic4Response { + public function updateProductPrices(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->post('/v1.1/Products/UpdateProductPrices', ['json' => $parameters]), @@ -749,14 +747,14 @@ public function updateProductPrices( /** * @param array{ - * ProductId?: int, - * Barcode?: string, + * ProductId: int, + * Barcode: string, * } $parameters * * @throws Logic4ApiException */ public function updateProductRemoveExtraBarcode( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -812,15 +810,14 @@ public function updateProductSEOInformation( * RepackagingQty?: int|null, * RepackagingUnitId?: int|null, * InternalNote?: string|null, - * SupplierId?: int, - * ProductId?: int, + * SupplierId: int, + * ProductId: int, * } $parameters * * @throws Logic4ApiException */ - public function updateProductSupplier( - array $parameters = [], - ): Int32Logic4Response { + public function updateProductSupplier(array $parameters): Int32Logic4Response + { return Int32Logic4Response::make( $this->buildResponse( $this->getClient()->post('/v1.1/Products/UpdateProductSupplier', ['json' => $parameters]), @@ -830,15 +827,15 @@ public function updateProductSupplier( /** * @param array{ - * ProductId?: int, - * SupplierId?: int, + * ProductId: int, + * SupplierId: int, * ProductPrices?: array, * } $parameters * * @throws Logic4ApiException */ public function updateProductSupplierProductPrice( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V12/OrderRequest.php b/src/Requests/V12/OrderRequest.php index 771a6c8..ef4bd2b 100644 --- a/src/Requests/V12/OrderRequest.php +++ b/src/Requests/V12/OrderRequest.php @@ -25,12 +25,12 @@ class OrderRequest extends Request * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -62,7 +62,7 @@ class OrderRequest extends Request * * @deprecated Let op! Versie 1.2 is verouderd. Gebruik versie v1.3. - Order toevoegen of updaten */ - public function addUpdateOrder(array $parameters = []): Int32Logic4Response + public function addUpdateOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V13/OrderRequest.php b/src/Requests/V13/OrderRequest.php index 52ee8e8..5697163 100644 --- a/src/Requests/V13/OrderRequest.php +++ b/src/Requests/V13/OrderRequest.php @@ -24,12 +24,12 @@ class OrderRequest extends Request * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -59,7 +59,7 @@ class OrderRequest extends Request * * @throws Logic4ApiException */ - public function addUpdateInvoice(array $parameters = []): Int32Logic4Response + public function addUpdateInvoice(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( @@ -83,12 +83,12 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * PaymentMethod?: array{Id?: int, Description?: string|null, MaxAmount?: number|null, SelectKey?: string|null}, * ShippingMethod?: array{Id?: int, Name?: string|null, ExportCode?: string|null}, * CheckForOrderCostAndPaymentRegulation?: bool, - * OrderStatus?: array{Id?: int, Value?: string|null}, - * OrderRows?: array, + * OrderStatus: array{Id?: int, Value?: string|null}, + * OrderRows: array, * AcceptTermsAndConditions?: bool, * DeliveryAddress?: array{TelephoneNumber?: string|null, Email?: string|null, Street2?: string|null, HouseNumber2?: string|null, HouseNumberAddition2?: string|null, Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, * InvoiceAddress?: array{Id?: int|null, ProvinceId?: int|null, ContactName?: string|null, CompanyName?: string|null, PostalCode?: string|null, City?: string|null, CountryCode?: string|null, Street?: string|null, HouseNumber?: string|null, HouseNumberAddition?: string|null}, - * CreationDate?: string, + * CreationDate: string, * Description?: string|null, * Reference?: string|null, * BranchId?: int|null, @@ -118,7 +118,7 @@ public function addUpdateInvoice(array $parameters = []): Int32Logic4Response * * @throws Logic4ApiException */ - public function addUpdateOrder(array $parameters = []): Int32Logic4Response + public function addUpdateOrder(array $parameters): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/src/Requests/V20/DeliveryRequest.php b/src/Requests/V20/DeliveryRequest.php index 5464791..bd81b84 100644 --- a/src/Requests/V20/DeliveryRequest.php +++ b/src/Requests/V20/DeliveryRequest.php @@ -20,8 +20,8 @@ class DeliveryRequest extends Request * OrderStatusId?: int|null, * BranchId?: int|null, * WebsiteDomainId?: int|null, - * SkipRecords?: int, - * TakeRecords?: int, + * SkipRecords: int, + * TakeRecords: int, * ShowAPIMovements?: bool, * } $parameters * @@ -29,7 +29,7 @@ class DeliveryRequest extends Request * * @throws Logic4ApiException */ - public function getDeliveries(array $parameters = []): \Generator + public function getDeliveries(array $parameters): \Generator { $iterator = $this->paginateRecords('/v2/Delivery/GetDeliveries', $parameters); diff --git a/src/Requests/V20/ProductRequest.php b/src/Requests/V20/ProductRequest.php index 701b25d..76be0f4 100644 --- a/src/Requests/V20/ProductRequest.php +++ b/src/Requests/V20/ProductRequest.php @@ -16,13 +16,13 @@ class ProductRequest extends Request * Verkrijg de afmetingen van meerdere artikelen. * * @param array{ - * ProductIds?: array, + * ProductIds: array, * } $parameters * * @throws Logic4ApiException */ public function getProductDimensions( - array $parameters = [], + array $parameters, ): ProductDimensionsLogic4ResponseList { return ProductDimensionsLogic4ResponseList::make( $this->buildResponse( diff --git a/src/Requests/V20/StockRequest.php b/src/Requests/V20/StockRequest.php index 4658d8e..af49956 100644 --- a/src/Requests/V20/StockRequest.php +++ b/src/Requests/V20/StockRequest.php @@ -20,14 +20,14 @@ class StockRequest extends Request * ProductId?: int, * Amount?: number, * Remarks?: string|null, - * StockLocationId?: int, + * StockLocationId: int, * StockMutationTypeId?: int, * } $parameters * * @throws Logic4ApiException */ public function createProductStockMutation( - array $parameters = [], + array $parameters, ): Int32Logic4Response { return Int32Logic4Response::make( $this->buildResponse( diff --git a/tests/Feature/OrderDataTest.php b/tests/Feature/OrderDataTest.php index 65257ad..c2ee96d 100644 --- a/tests/Feature/OrderDataTest.php +++ b/tests/Feature/OrderDataTest.php @@ -14,11 +14,14 @@ public function testMakeOrderWithMinimalValues(): void $order = Order::make([ 'Id' => 12, 'DebtorId' => 55, + 'CreationDate' => '2024-01-15T10:00:00', + 'OrderRows' => [], ]); static::assertSame(12, $order->id); static::assertSame(55, $order->debtorId); static::assertSame([], $order->orderRows); static::assertNull($order->totals); + static::assertSame('2024-01-15 10:00:00', $order->creationDate->toDateTimeString()); } } diff --git a/tests/Feature/OrderRequestTest.php b/tests/Feature/OrderRequestTest.php index 4038dea..a661beb 100644 --- a/tests/Feature/OrderRequestTest.php +++ b/tests/Feature/OrderRequestTest.php @@ -66,6 +66,8 @@ public function testPostReturnOrders(): void [ 'DebtorId' => 51, 'Id' => 9912, + 'CreationDate' => '2024-03-01T12:00:00', + 'OrderRows' => [], ], ], 'RecordsCounter' => 1,