Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sale/lib/paysystem/ |
Upload File : |
<?php namespace Bitrix\Sale\PaySystem; use Bitrix\Sale; class PaymentMarker { private Service $service; private Sale\Payment $payment; private Sale\Order $order; /** * @param Service $service * @param Sale\Payment $payment */ public function __construct(Service $service, Sale\Payment $payment) { $this->service = $service; $this->payment = $payment; $this->order = $payment->getOrder(); } /** * Marks payment using errors from \Bitrix\Sale\PaySystem\ServiceResult * * @param ServiceResult $result * @return $this */ public function mark(ServiceResult $result): PaymentMarker { if ($result->isSuccess()) { return $this; } $markerResult = new Sale\Result(); $markerResult->addWarnings($result->getErrors()); $this->addMarker($markerResult); $this->payment->setField('MARKED', 'Y'); return $this; } /** * Saves order * * @return Sale\Result */ public function save(): Sale\Result { return $this->order->save(); } private function addMarker(Sale\Result $markerResult): void { /** @var Sale\EntityMarker $markerClassName */ $markerClassName = $this->getEntityMarkerClassName(); $markerClassName::addMarker($this->order, $this->payment, $markerResult); } private function getEntityMarkerClassName() { $registry = Sale\Registry::getInstance($this->service->getField('ENTITY_REGISTRY_TYPE')); return $registry->getEntityMarkerClassName(); } }