soapApiClient = $soapApiClient; $this->logger = $logger; $this->coreHelper = $coreHelper; } /** * Set stored until for packet. * * @param Order $order Order ID. * @param string|null $packetId Packet ID. * @param \DateTimeImmutable $storedUntil Stored until. * * @return null|string */ public function setStoredUntil( Order $order, ?string $packetId, \DateTimeImmutable $storedUntil ): ?string { $request = new Soap\Request\PacketSetStoredUntil( $packetId, $storedUntil, $this->coreHelper ); $result = $this->soapApiClient->packetSetStoredUntil( $request ); $errorMessage = null; if ( ! $result->hasFault() ) { $record = new Log\Record(); $record->action = Log\Record::ACTION_STORED_UNTIL_CHANGE; $record->status = Log\Record::STATUS_SUCCESS; $record->orderId = $order->getNumber(); $record->title = __( 'Packet set stored until success', 'packeta' ); $record->params = [ 'orderId' => $order->getNumber(), 'packetId' => $packetId, ]; $this->logger->add( $record ); } if ( $result->hasFault() ) { $record = new Log\Record(); $record->action = Log\Record::ACTION_STORED_UNTIL_CHANGE; $record->status = Log\Record::STATUS_ERROR; $record->orderId = $order->getNumber(); $record->title = __( 'Packet set stored until error', 'packeta' ); $record->params = [ 'orderId' => $order->getNumber(), 'packetId' => $packetId, 'errorMessage' => $result->getFaultString(), ]; $this->logger->add( $record ); $errorMessage = $result->getFaultString(); } $order->updateApiErrorMessage( $errorMessage ); return $errorMessage; } }