Server IP : 85.193.89.191 / Your IP : 3.17.75.190 Web Server : Apache System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : bitrix ( 600) PHP Version : 8.1.27 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/bitrix/www/bitrix/modules/sale/lib/ |
Upload File : |
<?php namespace Bitrix\Sale; use Bitrix\Main; use Bitrix\Sale\Internals\CollectableEntity; Main\Localization\Loc::loadMessages(__FILE__); /** * Class PayableShipmentItem * @package Bitrix\Sale */ class PayableShipmentItem extends PayableItem { public static function getRegistryEntity() : string { return Registry::ENTITY_PAYABLE_SHIPMENT; } public static function getEntityType() : string { return Registry::ENTITY_SHIPMENT; } public function getPrice(): float { /** @var Shipment $shipment */ $shipment = $this->getEntityObject(); if ($shipment) { return $shipment->getPrice(); } return 0; } public function getEntityObject() { if ($this->item === null) { /** @var Payment $payment */ $payment = $this->collection->getPayment(); $this->item = $payment->getOrder()->getShipmentCollection()->getItemById( $this->getField('ENTITY_ID') ); } return $this->item; } public static function create(PayableItemCollection $collection, CollectableEntity $entity) { if (!$entity instanceof Shipment) { throw new Main\SystemException( Main\Localization\Loc::getMessage( 'SALE_PAYABLE_ITEM_INCOMPATIBLE_TYPE', ['#CLASS#' => Shipment::class] ) ); } $item = parent::create($collection, $entity); $item->setFieldNoDemand('QUANTITY', 1); return $item; } protected function onFieldModify($name, $oldValue, $value) { if ($name === 'QUANTITY') { if ($value !== 1) { $result = new Result(); return $result->addError( new Main\Error( Main\Localization\Loc::getMessage('SALE_PAYABLE_ITEM_SHIPMENT_QUANTITY_ERROR') ) ); } } return parent::onFieldModify($name, $oldValue, $value); } /** * @return null|string * @internal * */ public static function getEntityEventName() { return 'SalePayableShipmentEntity'; } }