Исправление отправки заказа в црм систему (#275)
This commit is contained in:
parent
656c076195
commit
6a07f5220b
@ -1,5 +1,5 @@
|
||||
## 2023-01-20 v.6.1.14
|
||||
- Исправление ошибки изменения отгрузки при её завершении
|
||||
## 2023-01-24 v.6.1.14
|
||||
- Исправление обновления и отправки заказа в црм систему
|
||||
|
||||
## 2023-01-10 v.6.1.13
|
||||
- Изменение метода обновления полей программы лояльности в административной панели
|
||||
|
@ -1 +1 @@
|
||||
- Изменение логики обновления полей программы лояльности в административной панели
|
||||
- исправление отправки заказа в црм систему
|
@ -2,5 +2,5 @@
|
||||
|
||||
$arModuleVersion = [
|
||||
'VERSION' => '6.1.14',
|
||||
'VERSION_DATE' => '2023-01-20 17:00:00'
|
||||
'VERSION_DATE' => '2023-01-24 14:30:00'
|
||||
];
|
||||
|
@ -127,7 +127,18 @@ class EventsHandlers
|
||||
*/
|
||||
public function OnSaleOrderSavedHandler(Event $event): void
|
||||
{
|
||||
if (self::$disableSaleHandler === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
/** @var Order $order */
|
||||
$order = $event->getParameter('ENTITY');
|
||||
|
||||
// TODO: Replace old call with a new one.
|
||||
$saveResult = RetailCrmEvent::orderSave($order);
|
||||
Utils::handleApiErrors($saveResult);
|
||||
|
||||
$isBonusInput = (
|
||||
!empty($_POST['bonus-input'])
|
||||
&& !empty($_POST['available-bonuses'])
|
||||
@ -135,7 +146,7 @@ class EventsHandlers
|
||||
|
||||
$isDataForLoyaltyDiscount = isset($_POST['calculate-items-input'], $_POST['loyalty-discount-input']);
|
||||
|
||||
if (self::$disableSaleHandler === true || !($isDataForLoyaltyDiscount || $isBonusInput) ) {
|
||||
if (!($isDataForLoyaltyDiscount || $isBonusInput) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -144,12 +155,6 @@ class EventsHandlers
|
||||
|
||||
/* @var OrderLoyaltyDataService $orderLoyaltyDataService */
|
||||
$orderLoyaltyDataService = ServiceLocator::get(OrderLoyaltyDataService::class);
|
||||
/** @var Order $order */
|
||||
$order = $event->getParameter('ENTITY');
|
||||
|
||||
// TODO: Replace old call with a new one.
|
||||
$saveResult = RetailCrmEvent::orderSave($order);
|
||||
Utils::handleApiErrors($saveResult);
|
||||
|
||||
$bonusFloat = (float) $_POST['bonus-input'];
|
||||
|
||||
|
60
tests/lib/component/handlers/EventsHandlersTest.php
Normal file
60
tests/lib/component/handlers/EventsHandlersTest.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
use Intaro\RetailCrm\Component\Handlers\EventsHandlers;
|
||||
use Bitrix\Main\EventManager;
|
||||
|
||||
class EventsHandlersTest extends \BitrixTestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
COption::SetOptionString('intaro.retailcrm', 'api_version', 'v5');
|
||||
CModule::IncludeModule('intaro.retailcrm');
|
||||
}
|
||||
|
||||
/**
|
||||
* @runInSeparateProcess
|
||||
* @preserveGlobalState disabled
|
||||
*/
|
||||
public function testOnSaleOrderSavedHandler()
|
||||
{
|
||||
$order = \Bitrix\Sale\Order::create('s1', 2, 'RUB');
|
||||
$order->setPersonTypeId(2);
|
||||
|
||||
$event = $this->createMock(\Bitrix\Main\Event::class);
|
||||
$event->method('getParameter')->willReturn($order);
|
||||
|
||||
$spy = \Mockery::spy('overload:' .RetailCrmEvent::class);
|
||||
|
||||
$onSaleOrderSaved = new EventsHandlers();
|
||||
$onSaleOrderSaved->OnSaleOrderSavedHandler($event);
|
||||
|
||||
//Проверяет, был ли вызван метод класса. Если метод не вызывался, выдает ошибку теста
|
||||
//Если метод вызывался, ошибку не выдает, но phpunit выдает сообщение об отсутствии тестов
|
||||
$spy->shouldHaveReceived('orderSave');
|
||||
self::assertTrue(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @runInSeparateProcess
|
||||
* @preserveGlobalState disabled
|
||||
*/
|
||||
public function testOnSaleOrderNotSavedHandler()
|
||||
{
|
||||
$order = \Bitrix\Sale\Order::create('s1', 2, 'RUB');
|
||||
$order->setPersonTypeId(2);
|
||||
|
||||
$event = $this->createMock(\Bitrix\Main\Event::class);
|
||||
$event->method('getParameter')->willReturn($order);
|
||||
|
||||
$spy = \Mockery::spy('overload:' .RetailCrmEvent::class);
|
||||
|
||||
$onSaleOrderSaved = new EventsHandlers();
|
||||
$onSaleOrderSaved::$disableSaleHandler = true;
|
||||
$onSaleOrderSaved->OnSaleOrderSavedHandler($event);
|
||||
|
||||
$spy->shouldNotHaveReceived('orderSave');
|
||||
self::assertTrue(true);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user