1
0
mirror of synced 2025-01-09 18:47:12 +03:00
DeliveryModuleBundle/Model/Request/RequestSave.php

145 lines
3.6 KiB
PHP
Raw Normal View History

2019-12-26 17:47:33 +03:00
<?php
namespace RetailCrm\DeliveryModuleBundle\Model;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation as Serializer;
class RequestSave
{
/**
* Идентификатор доставки в службе доставки. Передается если требуется отредактировать уже оформленную доставку
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("deliveryId")
* @Serializer\Type("string")
*/
public $deliveryId;
/**
* Id заказа
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("order")
* @Serializer\Type("string")
*/
public $order;
/**
* Номер заказа
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("orderNumber")
* @Serializer\Type("string")
*/
public $orderNumber;
/**
* Код магазина
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("site")
* @Serializer\Type("string")
*/
public $site;
/**
* Название магазина
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("siteName")
* @Serializer\Type("string")
*/
public $siteName;
/**
* Наименование юр.лица
* @var string
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("legalEntity")
* @Serializer\Type("string")
*/
public $legalEntity;
/**
* Покупатель
* @var Customer
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("customer")
* @Serializer\Type("RetailCrm\DeliveryModuleBundle\Model\Customer")
*/
public $customer;
/**
* Менеджер, работающий с покупателем
* @var Manager
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("manager")
* @Serializer\Type("RetailCrm\DeliveryModuleBundle\Model\Manager")
*/
public $manager;
/**
* Набор упаковок
* @var RetailCrm\DeliveryModuleBundle\Model\Package[]
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("packages")
* @Serializer\Type("array<RetailCrm\DeliveryModuleBundle\Model\Package>")
*/
public $packages;
/**
* Данные доставки
* @var RetailCrm\DeliveryModuleBundle\Model\SaveDeliveryData
*
* @Serializer\Groups({"request"})
* @Serializer\SerializedName("delivery")
* @Serializer\Type("RetailCrm\DeliveryModuleBundle\Model\SaveDeliveryData")
*/
public $delivery;
/**
* Валюта
* @var string $currency
*
* @Serializer\Groups({"request", "calculate"})
* @Serializer\SerializedName("currency")
* @Serializer\Type("string")
*/
public $currency;
public function getFullDeclaredValue()
{
$result = 0;
foreach ($this->packages as $package) {
foreach ($package->items as $item) {
$result += $item->declaredValue * $item->quantity;
}
}
return $result;
}
public function getFullItemsCodValue()
{
$result = 0;
foreach ($this->packages as $package) {
foreach ($package->items as $item) {
$result += $item->cod * $item->quantity;
}
}
return $result;
}
}