Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\AmazonVendorDF\Data;
|
||||
|
||||
class PurchaseOrderItem
|
||||
{
|
||||
/** @var string */
|
||||
private $itemSequenceNumber;
|
||||
/** @var string */
|
||||
private $buyerProductIdentifier;
|
||||
/** @var string */
|
||||
private $vendorProductIdentifier;
|
||||
/** @var string */
|
||||
private $title;
|
||||
/** @var Quantity */
|
||||
private $quantity;
|
||||
/** @var Price */
|
||||
private $price;
|
||||
/** @var float */
|
||||
private $taxRate;
|
||||
|
||||
public function __construct(
|
||||
string $itemSequenceNumber,
|
||||
string $buyerProductIdentifier,
|
||||
string $vendorProductIdentifier,
|
||||
string $title,
|
||||
Quantity $quantity,
|
||||
Price $price,
|
||||
float $taxRate
|
||||
) {
|
||||
$this->itemSequenceNumber = $itemSequenceNumber;
|
||||
$this->buyerProductIdentifier = $buyerProductIdentifier;
|
||||
$this->vendorProductIdentifier = $vendorProductIdentifier;
|
||||
$this->title = $title;
|
||||
$this->quantity = $quantity;
|
||||
$this->price = $price;
|
||||
$this->taxRate = $taxRate;
|
||||
}
|
||||
|
||||
public function getItemSequenceNumber(): string
|
||||
{
|
||||
return $this->itemSequenceNumber;
|
||||
}
|
||||
|
||||
public function getBuyerProductIdentifier(): string
|
||||
{
|
||||
return $this->buyerProductIdentifier;
|
||||
}
|
||||
|
||||
public function getVendorProductIdentifier(): string
|
||||
{
|
||||
return $this->vendorProductIdentifier;
|
||||
}
|
||||
|
||||
public function setVendorProductIdentifier(string $vendorProductIdentifier): void
|
||||
{
|
||||
$this->vendorProductIdentifier = $vendorProductIdentifier;
|
||||
}
|
||||
|
||||
public function getQuantity(): Quantity
|
||||
{
|
||||
return $this->quantity;
|
||||
}
|
||||
|
||||
public function getPrice(): Price
|
||||
{
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
public function getTitle(): string
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
public function getTaxRate(): float
|
||||
{
|
||||
return $this->taxRate;
|
||||
}
|
||||
|
||||
public function reject(string $code): AcknowledgementItem
|
||||
{
|
||||
return new AcknowledgementItem($this, $code);
|
||||
}
|
||||
|
||||
public function accept(): AcknowledgementItem
|
||||
{
|
||||
return new AcknowledgementItem($this, AcknowledgementItem::CODE_ACCEPTED);
|
||||
}
|
||||
|
||||
public static function fromPurchaseOrderResponse(array $data): self
|
||||
{
|
||||
return new static(
|
||||
$data['itemSequenceNumber'],
|
||||
$data['buyerProductIdentifier'],
|
||||
$data['vendorProductIdentifier'],
|
||||
$data['title'],
|
||||
Quantity::fromArray($data['orderedQuantity']),
|
||||
new Price($data['netPrice']['currencyCode'], $data['netPrice']['amount']),
|
||||
(float)$data['taxDetails']['taxLineItem'][0]['taxRate']
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user