1
0
Fork 0
mirror of synced 2025-04-11 21:21:00 +00:00

ref #75292 Правка при сделанной отгрузке в заказе плюс тесты

This commit is contained in:
Максим Кузнецов 2023-01-19 15:27:16 +03:00
parent 3267e72b7c
commit c7df054bd7
2 changed files with 39 additions and 1 deletions

View file

@ -1734,7 +1734,7 @@ class RetailCrmHistory
$basket = $order->getBasket();
foreach ($shipmentCollection as $shipment) {
if (!$shipment->isSystem()) {
if (!$shipment->isSystem() && !$shipment->isShipped()) {
$reserved = false;
if ($shipment->needReservation()) {

View file

@ -1,5 +1,6 @@
<?php
use Bitrix\Sale\Order;
/**
* Class RetailCrmHistory_v5Test
*/
@ -50,6 +51,43 @@ class RetailCrmHistory_v5Test extends \BitrixTestCase
}
}
public function testShipmentItemReset(): void
{
$shipmentCollection = $this->createMock(\Bitrix\Sale\ShipmentCollection::class);
$shipmentCollection->method('resetCollection')
->willReturn(true);
$shipmentCollection->method('tryUnreserve')
->willReturn(true);
$shipmentCollection->method('tryReserve')
->willReturn(true);
$shipment = $this->createMock(\Bitrix\Sale\Shipment::class);
$shipment->method('getShipmentItemCollection')
->willReturn($shipmentCollection);
$shipment->method('needReservation')
->willReturn(true);
$shipment->method('isShipped')
->willReturn(true);
$shipment->method('isSystem')
->willReturn(false);
$shipmentCollection->method('getIterator')
->willReturn(new \ArrayObject([$shipment]));
$order = $this->createMock(\Bitrix\Sale\Order::class);
$order->method('getShipmentCollection')
->willReturn($shipmentCollection);
$order->method('getBasket')
->willReturn(true);
$this->assertEquals(null, RetailCrmHistory::shipmentItemReset($order));
$shipment->method('isShipped')
->willReturn(false);
$this->assertEquals(null, RetailCrmHistory::shipmentItemReset($order));
}
private function getCustomers(): array
{
return [