Исправление отправки заказа в црм систему (#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
|
## 2023-01-10 v.6.1.13
|
||||||
- Изменение метода обновления полей программы лояльности в административной панели
|
- Изменение метода обновления полей программы лояльности в административной панели
|
||||||
|
@ -1 +1 @@
|
|||||||
- Изменение логики обновления полей программы лояльности в административной панели
|
- исправление отправки заказа в црм систему
|
@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
$arModuleVersion = [
|
$arModuleVersion = [
|
||||||
'VERSION' => '6.1.14',
|
'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
|
public function OnSaleOrderSavedHandler(Event $event): void
|
||||||
{
|
{
|
||||||
|
if (self::$disableSaleHandler === true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
/** @var Order $order */
|
||||||
|
$order = $event->getParameter('ENTITY');
|
||||||
|
|
||||||
|
// TODO: Replace old call with a new one.
|
||||||
|
$saveResult = RetailCrmEvent::orderSave($order);
|
||||||
|
Utils::handleApiErrors($saveResult);
|
||||||
|
|
||||||
$isBonusInput = (
|
$isBonusInput = (
|
||||||
!empty($_POST['bonus-input'])
|
!empty($_POST['bonus-input'])
|
||||||
&& !empty($_POST['available-bonuses'])
|
&& !empty($_POST['available-bonuses'])
|
||||||
@ -135,7 +146,7 @@ class EventsHandlers
|
|||||||
|
|
||||||
$isDataForLoyaltyDiscount = isset($_POST['calculate-items-input'], $_POST['loyalty-discount-input']);
|
$isDataForLoyaltyDiscount = isset($_POST['calculate-items-input'], $_POST['loyalty-discount-input']);
|
||||||
|
|
||||||
if (self::$disableSaleHandler === true || !($isDataForLoyaltyDiscount || $isBonusInput) ) {
|
if (!($isDataForLoyaltyDiscount || $isBonusInput) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,12 +155,6 @@ class EventsHandlers
|
|||||||
|
|
||||||
/* @var OrderLoyaltyDataService $orderLoyaltyDataService */
|
/* @var OrderLoyaltyDataService $orderLoyaltyDataService */
|
||||||
$orderLoyaltyDataService = ServiceLocator::get(OrderLoyaltyDataService::class);
|
$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'];
|
$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