ref #75292 Правка при сделанной отгрузке в заказе плюс тесты
This commit is contained in:
parent
3267e72b7c
commit
c7df054bd7
2 changed files with 39 additions and 1 deletions
|
@ -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()) {
|
||||
|
|
|
@ -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 [
|
||||
|
|
Loading…
Add table
Reference in a new issue