2022-10-21 10:46:09 +02:00
|
|
|
<?php
|
|
|
|
|
2023-02-28 13:36:25 +01:00
|
|
|
/*
|
|
|
|
* SPDX-FileCopyrightText: 2022 Andreas Palm
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2022-10-21 10:46:09 +02:00
|
|
|
namespace Xentral\Carrier\SendCloud\Data;
|
|
|
|
|
|
|
|
class ParcelCreation extends ParcelBase
|
|
|
|
{
|
|
|
|
public ?int $SenderAddressId = null;
|
|
|
|
|
2024-03-19 18:13:30 +01:00
|
|
|
// const DEFAUlT_LENGTH = 150;
|
|
|
|
|
2023-03-31 10:21:08 +02:00
|
|
|
public function toApiRequest(): array
|
|
|
|
{
|
2024-03-19 18:13:30 +01:00
|
|
|
|
|
|
|
define("DEFAULT_LENGTH", 150);
|
|
|
|
|
2023-03-31 10:21:08 +02:00
|
|
|
$data = [
|
2024-03-19 18:13:30 +01:00
|
|
|
'name' => substr($this->Name, 0, 75),
|
|
|
|
'company_name' => substr($this->CompanyName, 0, 50),
|
|
|
|
'address' => substr($this->Address, 0, 75),
|
|
|
|
'address_2' => substr($this->Address2, 0, 75),
|
|
|
|
'house_number' => substr($this->HouseNumber, 0, 20),
|
|
|
|
'city' => substr($this->City, 0, 30),
|
|
|
|
'postal_code' => substr($this->PostalCode, 0, 12),
|
|
|
|
'telephone' => substr($this->Telephone, 0, 20),
|
2022-10-21 10:46:09 +02:00
|
|
|
'request_label' => $this->RequestLabel,
|
2024-03-19 18:13:30 +01:00
|
|
|
'email' => substr($this->EMail, 0, DEFAULT_LENGTH),
|
|
|
|
'country' => substr($this->Country, 0, DEFAULT_LENGTH),
|
2022-10-21 10:46:09 +02:00
|
|
|
'shipment' => ['id' => $this->ShippingMethodId],
|
|
|
|
'weight' => number_format($this->Weight / 1000, 3, '.', null),
|
2024-03-19 18:13:30 +01:00
|
|
|
'order_number' => substr($this->OrderNumber, 0, 50),
|
2022-10-21 10:46:09 +02:00
|
|
|
'total_order_value_currency' => $this->TotalOrderValueCurrency,
|
|
|
|
'total_order_value' => number_format($this->TotalOrderValue, 2, '.', null),
|
2024-03-19 18:13:30 +01:00
|
|
|
'country_state' => substr($this->CountryState, 0, DEFAULT_LENGTH),
|
|
|
|
'sender_address' => substr($this->SenderAddressId, 0, DEFAULT_LENGTH),
|
|
|
|
'external_reference' => substr($this->ExternalReference, 0, DEFAULT_LENGTH),
|
2022-10-29 21:38:28 +02:00
|
|
|
'total_insured_value' => $this->TotalInsuredValue ?? 0,
|
2023-03-31 10:21:08 +02:00
|
|
|
'parcel_items' => array_map(fn(ParcelItem $item) => $item->toApiRequest(), $this->ParcelItems),
|
2022-10-21 10:46:09 +02:00
|
|
|
'is_return' => $this->IsReturn,
|
|
|
|
'length' => $this->Length,
|
|
|
|
'width' => $this->Width,
|
|
|
|
'height' => $this->Height,
|
|
|
|
];
|
2024-03-19 18:13:30 +01:00
|
|
|
if ($this->CustomsInvoiceNr !== null) {
|
|
|
|
$data['customs_invoice_nr'] = substr($this->CustomsInvoiceNr, 0, 40);
|
|
|
|
}
|
|
|
|
if ($this->CustomsShipmentType !== null) {
|
|
|
|
$data['customs_shipment_type'] = substr($this->CustomsShipmentType, 0, DEFAULT_LENGTH);
|
|
|
|
}
|
|
|
|
|
2023-03-31 10:21:08 +02:00
|
|
|
return $data;
|
|
|
|
}
|
2024-03-19 18:13:30 +01:00
|
|
|
}
|