1
0
Fork 0
mirror of synced 2025-04-18 16:41:02 +00:00

Remove status from integration payment (#192)

This commit is contained in:
RenCurs 2021-04-19 15:38:09 +03:00 committed by DmitreyZl
parent 392751b027
commit 6ac636915e
8 changed files with 97 additions and 5 deletions

View file

@ -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));
}

View file

@ -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()) {

View file

@ -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>

View file

@ -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';

View file

@ -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)';

View file

@ -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'] = 'Для интеграционных оплат статус не передаётся';

View file

@ -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'] = 'Сохранить';

View file

@ -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'
]]
],
]];
}
}