Remove status from integration payment (#192)
This commit is contained in:
parent
392751b027
commit
6ac636915e
8 changed files with 97 additions and 5 deletions
|
@ -460,7 +460,6 @@ class RCrmActions
|
|||
|
||||
case 'paymentEditByExternalId':
|
||||
return self::proxy($api, 'ordersPaymentEdit', $method, array($params, 'externalId', $site));
|
||||
|
||||
default:
|
||||
return self::proxy($api, $methodApi, $method, array($params, $site));
|
||||
}
|
||||
|
|
|
@ -274,6 +274,7 @@ class RetailCrmOrder
|
|||
$order['weight'] = $weight;
|
||||
}
|
||||
|
||||
$integrationPayment = RetailcrmConfigProvider::getIntegrationPaymentTypes();
|
||||
//payments
|
||||
$payments = [];
|
||||
foreach ($arFields['PAYMENTS'] as $payment) {
|
||||
|
@ -291,7 +292,9 @@ class RetailCrmOrder
|
|||
}
|
||||
|
||||
if (!empty($arParams['optionsPayment'][$payment['PAID']])) {
|
||||
$pm['status'] = $arParams['optionsPayment'][$payment['PAID']];
|
||||
if (array_search($arParams['optionsPayTypes'][$payment['PAY_SYSTEM_ID']], $integrationPayment) === false) {
|
||||
$pm['status'] = $arParams['optionsPayment'][$payment['PAID']];
|
||||
}
|
||||
}
|
||||
|
||||
if (RetailcrmConfigProvider::shouldSendPaymentAmount()) {
|
||||
|
|
|
@ -233,7 +233,8 @@ else{
|
|||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<tr class="heading">
|
||||
<td colspan="2"><b><?php echo GetMessage('PAYMENT_TYPES_LIST'); ?></b></td>
|
||||
<td colspan="2"><b><?php echo GetMessage('PAYMENT_TYPES_LIST'); ?></b>
|
||||
<p><small><?php echo GetMessage('INTEGRATION_PAYMENT_LIST');?></small></p></td>
|
||||
</tr>
|
||||
<?php foreach($arResult['bitrixPaymentTypesList'] as $bitrixPaymentType): ?>
|
||||
<tr>
|
||||
|
@ -246,7 +247,9 @@ else{
|
|||
<?php foreach($arResult['paymentTypesList'] as $paymentType): ?>
|
||||
<option value="<?php echo $paymentType['code']; ?>"
|
||||
<?php if($defaultPayTypes[$bitrixPaymentType['ID']] == $paymentType['code']) echo 'selected'; ?>>
|
||||
<?php echo $APPLICATION->ConvertCharset($paymentType['name'], 'utf-8', SITE_CHARSET); ?>
|
||||
<?php
|
||||
$nameType = isset($paymentType['integrationModule']) ? $APPLICATION->ConvertCharset($paymentType['name'] . GetMessage('INTEGRATIONS'), 'utf-8', SITE_CHARSET) : $APPLICATION->ConvertCharset($paymentType['name'], 'utf-8', SITE_CHARSET);
|
||||
echo $nameType;?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
@ -364,4 +367,4 @@ else{
|
|||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -20,3 +20,5 @@ $MESS ['MESS_5'] = 'A server error occurred, please contact Intaro Software.';
|
|||
$MESS ['DELIV_TYPES_EXPORT'] = 'Export a list of delivery types from 1C-Bitrix';
|
||||
$MESS ['DELIV_TYPES_EXPORT_F'] = 'Set the correspondence between 1C-Bitrix and RetailCRM delivery types';
|
||||
$MESS ['STATUS_NOT_SETTINGS'] ='Cannot find suitable statuses in Bitrix';
|
||||
$MESS ['INTEGRATIONS'] = ' (integration)';
|
||||
$MESS ['INTEGRATION_PAYMENT_LIST'] = 'The status will not be transferred for integration payments';
|
||||
|
|
|
@ -94,3 +94,5 @@ $MESS['PHONE_REQUIRED'] = "In the main module settings «Phone Number is require
|
|||
$MESS['CHANGE_SHIPMENT_STATUS_FROM_CRM'] = "Change the shipment status when corresponding flag is received from RetailCRM";
|
||||
$MESS ['ONLINE_CONSULTANT'] = 'Activate Online Consultant';
|
||||
$MESS ['ONLINE_CONSULTANT_LABEL'] = 'Online Consultant script';
|
||||
$MESS ['INTEGRATION_PAYMENT_LIST'] = 'The status will not be transferred for integration payments';
|
||||
$MESS ['INTEGRATIONS'] = ' (integration)';
|
||||
|
|
|
@ -20,3 +20,5 @@ $MESS ['MESS_5'] = 'Произошла ошибка сервера, обрати
|
|||
$MESS ['DELIV_TYPES_EXPORT'] = 'Выгрузить список доставок из 1С-Битрикс';
|
||||
$MESS ['DELIV_TYPES_EXPORT_F'] = 'Настроить соответствие доставок 1С-Битрикс и RetailCRM';
|
||||
$MESS ['STATUS_NOT_SETTINGS'] ='Не найдены подходящие статусы в Битрикс';
|
||||
$MESS ['INTEGRATIONS'] = ' (интеграционная)';
|
||||
$MESS ['INTEGRATION_PAYMENT_LIST'] = 'Для интеграционных оплат статус не передаётся';
|
||||
|
|
|
@ -22,6 +22,8 @@ $MESS ['ORDER_CUSTOM'] = 'Кастомные поля';
|
|||
$MESS ['ORDER_UPLOAD'] = 'Повторная выгрузка заказов';
|
||||
$MESS ['ORDER_NUMBER'] = 'Номера заказов: ';
|
||||
$MESS ['ORDER_UPLOAD_INFO'] = 'Для загрузки всех заказов нажмите кнопку «Начать выгрузку». Или перечислите необходимые ID заказов через запятую, интервалы через тире. Например: 1, 3, 5-10, 12, 13... и т.д.';
|
||||
$MESS ['INTEGRATION_PAYMENT_LIST'] = 'Для интеграционных оплат статус не передаётся';
|
||||
$MESS ['INTEGRATIONS'] = ' (интеграционная)';
|
||||
|
||||
$MESS ['ICRM_OPTIONS_SUBMIT_TITLE'] = 'Сохранить настройки';
|
||||
$MESS ['ICRM_OPTIONS_SUBMIT_VALUE'] = 'Сохранить';
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* Class RetailCrmOrderTest
|
||||
*/
|
||||
use \Bitrix\Main\Loader;
|
||||
use \Bitrix\Main\Application;
|
||||
|
||||
class RetailCrmOrderTest extends BitrixTestCase
|
||||
{
|
||||
|
@ -17,9 +18,15 @@ class RetailCrmOrderTest extends BitrixTestCase
|
|||
{
|
||||
parent::setUp();
|
||||
|
||||
$cache = Application::getInstance()->getManagedCache();
|
||||
$cache->clean('b_option:intaro.retailcrm');
|
||||
|
||||
$this->retailCrmOrder = \Mockery::mock('RetailCrmOrder');
|
||||
COption::SetOptionString('intaro.retailcrm', 'api_version', 'v5');
|
||||
CModule::IncludeModule('intaro.retailcrm');
|
||||
|
||||
RetailcrmConfigProvider::setPaymentTypes(['bitrixPayment' => 'crmPayment']);
|
||||
RetailcrmConfigProvider::setIntegrationPaymentTypes(['crmPayment']);
|
||||
}
|
||||
|
||||
public function testModuleInstalled()
|
||||
|
@ -169,4 +176,76 @@ class RetailCrmOrderTest extends BitrixTestCase
|
|||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $arFields
|
||||
* @param array $arParams
|
||||
* @param string $methodApi
|
||||
* @param array $expected
|
||||
*
|
||||
* @dataProvider orderSendProvider
|
||||
*/
|
||||
public function testOrderSend($arFields, $arParams, $methodApi, $expected)
|
||||
{
|
||||
$orderSend = RetailCrmOrder::orderSend(
|
||||
$arFields,
|
||||
new stdClass(),
|
||||
$arParams,
|
||||
false,
|
||||
null,
|
||||
$methodApi
|
||||
);
|
||||
|
||||
$this->assertEquals($expected['payments'][0], $orderSend['payments'][0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
public function orderSendProvider()
|
||||
{
|
||||
$arFields = [
|
||||
'ID' => 1,
|
||||
'NUMBER' => 1,
|
||||
'USER_ID' => 1,
|
||||
'STATUS_ID' => 1,
|
||||
'PERSON_TYPE_ID' => 'individual',
|
||||
'DATE_INSERT' => '2015-02-22 00:00:00',
|
||||
'USER_DESCRIPTION' => 'userComment',
|
||||
'COMMENTS' => 'managerComment',
|
||||
'PRICE_DELIVERY' => '100',
|
||||
'PROPS' => ['properties' => []],
|
||||
'DELIVERYS' => [[
|
||||
'id' => 'test',
|
||||
'service' => 'service'
|
||||
]],
|
||||
'BASKET' => [],
|
||||
'PAYMENTS' => [[
|
||||
'ID' => 1,
|
||||
'PAY_SYSTEM_ID' => 'bitrixPayment',
|
||||
'SUM' => 1000,
|
||||
'DATE_PAID' => '2021-02-08 10:36:16',
|
||||
'PAID' => 'paid'
|
||||
]]
|
||||
];
|
||||
$arParams = [
|
||||
'optionsPayTypes' => ['bitrixPayment' => 'crmPayment'],
|
||||
'optionsPayment' => ['paid' => 'Y']
|
||||
];
|
||||
|
||||
return [[
|
||||
'arFields' => $arFields,
|
||||
'arParams' => $arParams,
|
||||
'methodApi' => 'ordersCreate',
|
||||
'expected' => [
|
||||
'number' => strval($arFields['NUMBER']),
|
||||
'externalId' => strval($arFields['ID']),
|
||||
'payments' => [[
|
||||
'type' => $arParams['optionsPayTypes'][$arFields['PAYMENTS'][0]['PAY_SYSTEM_ID']],
|
||||
'externalId' => RCrmActions::generatePaymentExternalId($arFields['PAYMENTS'][0]['ID']),
|
||||
'paidAt' => '2021-02-08 10:36:16'
|
||||
]]
|
||||
],
|
||||
]];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue