optional payment total in the order, WIP: really simple updater system
This commit is contained in:
parent
cf8a8eb0ab
commit
2ca3caa900
8 changed files with 75 additions and 5 deletions
|
@ -350,6 +350,36 @@ class RetailcrmConfigProvider
|
|||
return static::getOption(RetailcrmConstants::CRM_ORDER_LAST_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* getSendPaymentAmount
|
||||
*
|
||||
* @return bool|string|null
|
||||
*/
|
||||
public static function getSendPaymentAmount()
|
||||
{
|
||||
return static::getOption(RetailcrmConstants::SEND_PAYMENT_AMOUNT);
|
||||
}
|
||||
|
||||
/**
|
||||
* setSendPaymentAmount
|
||||
*
|
||||
* @param string $value
|
||||
*/
|
||||
public static function setSendPaymentAmount($value)
|
||||
{
|
||||
static::setOption(RetailcrmConstants::SEND_PAYMENT_AMOUNT, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if payment amount should be sent from CMS to retailCRM.
|
||||
*
|
||||
* @return bool|string|null
|
||||
*/
|
||||
public static function shouldSendPaymentAmount()
|
||||
{
|
||||
return static::getSendPaymentAmount() === 'Y';
|
||||
}
|
||||
|
||||
/**
|
||||
* setLastOrderId
|
||||
*
|
||||
|
|
|
@ -77,4 +77,5 @@ class RetailcrmConstants
|
|||
const CANCEL_PROPERTY_CODE = 'INTAROCRM_IS_CANCELED';
|
||||
const CRM_INTEGRATION_DELIVERY = 'integration_delivery';
|
||||
const CRM_SHIPMENT_DEDUCTED = 'shipment_deducted';
|
||||
const SEND_PAYMENT_AMOUNT = 'send_payment_amount';
|
||||
}
|
||||
|
|
|
@ -486,8 +486,7 @@ class RetailCrmEvent
|
|||
|
||||
if (!empty($arPayment['PAY_SYSTEM_ID']) && isset($optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']])) {
|
||||
$paymentToCrm = array(
|
||||
'type' => $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']],
|
||||
'amount' => $arPayment['SUM']
|
||||
'type' => $optionsPaymentTypes[$arPayment['PAY_SYSTEM_ID']]
|
||||
);
|
||||
|
||||
if (!empty($arPayment['ID'])) {
|
||||
|
@ -510,6 +509,10 @@ class RetailCrmEvent
|
|||
if (!empty($arPayment['ORDER_ID'])) {
|
||||
$paymentToCrm['order']['externalId'] = $arPayment['ORDER_ID'];
|
||||
}
|
||||
|
||||
if (RetailcrmConfigProvider::shouldSendPaymentAmount()) {
|
||||
$paymentToCrm['amount'] = $arPayment['SUM'];
|
||||
}
|
||||
} else {
|
||||
RCrmActions::eventLog('RetailCrmEvent::paymentSave', 'payments', 'OrderID = ' . $arPayment['ID'] . '. Payment not found.');
|
||||
return false;
|
||||
|
|
|
@ -255,18 +255,25 @@ class RetailCrmOrder
|
|||
foreach ($arFields['PAYMENTS'] as $payment) {
|
||||
if (!empty($payment['PAY_SYSTEM_ID']) && isset($arParams['optionsPayTypes'][$payment['PAY_SYSTEM_ID']])) {
|
||||
$pm = array(
|
||||
'type' => $arParams['optionsPayTypes'][$payment['PAY_SYSTEM_ID']],
|
||||
'amount' => $payment['SUM']
|
||||
'type' => $arParams['optionsPayTypes'][$payment['PAY_SYSTEM_ID']]
|
||||
);
|
||||
|
||||
if (!empty($payment['ID'])) {
|
||||
$pm['externalId'] = RCrmActions::generatePaymentExternalId($payment['ID']);
|
||||
}
|
||||
|
||||
if (!empty($payment['DATE_PAID'])) {
|
||||
$pm['paidAt'] = new \DateTime($payment['DATE_PAID']);
|
||||
}
|
||||
|
||||
if (!empty($arParams['optionsPayment'][$payment['PAID']])) {
|
||||
$pm['status'] = $arParams['optionsPayment'][$payment['PAID']];
|
||||
}
|
||||
|
||||
if (RetailcrmConfigProvider::shouldSendPaymentAmount()) {
|
||||
$pm['amount'] = $payment['SUM'];
|
||||
}
|
||||
|
||||
$payments[] = $pm;
|
||||
} else {
|
||||
RCrmActions::eventLog(
|
||||
|
|
|
@ -75,6 +75,7 @@ $MESS ['ORDER_NUMBERS'] = 'Транслировать номера заказо
|
|||
$MESS ['CRM_API_VERSION'] = 'Версия API клиента';
|
||||
$MESS ['CURRENCY'] = 'Валюта, устанавливаемая в заказе при выгрузке из CRM';
|
||||
$MESS ['ORDER_DIMENSIONS'] = 'Передавать габариты и вес товаров в заказе';
|
||||
$MESS ['SEND_PAYMENT_AMOUNT'] = 'Передавать сумму оплаты в заказе';
|
||||
|
||||
$MESS ['INVENTORIES_UPLOAD'] = 'Включить выгрузку остатков в разрезе складов';
|
||||
$MESS ['INVENTORIES'] = 'Склады';
|
||||
|
|
|
@ -344,8 +344,8 @@ if (isset($_POST['Update']) && ($_POST['Update'] == 'Y')) {
|
|||
}
|
||||
//order numbers
|
||||
$orderNumbers = htmlspecialchars(trim($_POST['order-numbers'])) ? htmlspecialchars(trim($_POST['order-numbers'])) : 'N';
|
||||
|
||||
$orderDimensions = htmlspecialchars(trim($_POST[$CRM_DIMENSIONS])) ? htmlspecialchars(trim($_POST[$CRM_DIMENSIONS])) : 'N';
|
||||
$sendPaymentAmount = htmlspecialchars(trim($_POST[RetailcrmConstants::SEND_PAYMENT_AMOUNT])) ? htmlspecialchars(trim($_POST[RetailcrmConstants::SEND_PAYMENT_AMOUNT])) : 'N';
|
||||
|
||||
//stores
|
||||
$bitrixStoresArr = array();
|
||||
|
@ -567,6 +567,7 @@ if (isset($_POST['Update']) && ($_POST['Update'] == 'Y')) {
|
|||
COption::SetOptionString($mid, $CRM_UA, $ua);
|
||||
COption::SetOptionString($mid, $CRM_UA_KEYS, serialize(RCrmActions::clearArr($uaKeys)));
|
||||
COption::SetOptionString($mid, $CRM_DIMENSIONS, $orderDimensions);
|
||||
RetailcrmConfigProvider::setSendPaymentAmount($sendPaymentAmount);
|
||||
|
||||
COption::SetOptionString($mid, $CRM_DISCOUNT_ROUND, $discount_round);
|
||||
COption::SetOptionString($mid, $CRM_PURCHASE_PRICE_NULL, $purchasePrice_null);
|
||||
|
@ -1202,6 +1203,15 @@ if (isset($_POST['Update']) && ($_POST['Update'] == 'Y')) {
|
|||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="option-head option-other-top option-other-bottom">
|
||||
<b>
|
||||
<label>
|
||||
<input class="addr" type="checkbox" name="<?php echo RetailcrmConstants::SEND_PAYMENT_AMOUNT; ?>" value="Y" <?php if(RetailcrmConfigProvider::shouldSendPaymentAmount()) echo "checked"; ?>> <?php echo GetMessage('SEND_PAYMENT_AMOUNT'); ?>
|
||||
</label>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="option-head option-other-top option-other-bottom">
|
||||
<b>
|
||||
|
|
5
intaro.retailcrm/update/updater-5.5.0.php
Normal file
5
intaro.retailcrm/update/updater-5.5.0.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
if (!RetailcrmConfigProvider::shouldSendPaymentAmount()) {
|
||||
RetailcrmConfigProvider::setSendPaymentAmount('Y');
|
||||
}
|
13
intaro.retailcrm/updater.php
Normal file
13
intaro.retailcrm/updater.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
if(!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog'))
|
||||
return;
|
||||
|
||||
include_once __DIR__ . '/install/version.php';
|
||||
|
||||
$rcrmCurrentUpdateFile = __DIR__ . '/update/' . sprintf('updater-%s.php', $arModuleVersion['VERSION']);
|
||||
|
||||
if (file_exists($rcrmCurrentUpdateFile)) {
|
||||
include_once $rcrmCurrentUpdateFile;
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue