1
0
mirror of synced 2024-11-22 05:16:09 +03:00

sending delivery types without pay systems

This commit is contained in:
Grisha Pomadchin 2013-08-15 18:49:08 +04:00
parent b1b2d685db
commit ca6e71d55f
3 changed files with 69 additions and 10 deletions

View File

@ -21,7 +21,7 @@ class intaro_intarocrm extends CModule
var $PARTNER_NAME;
var $PARTNER_URI;
var $INTARO_CRM_API;
var $INTARO_CRM_EXPORT = 'intarocrm';
var $INTARO_CRM_EXPORT = 'intarocrm';
var $CRM_API_HOST_OPTION = 'api_host';
var $CRM_API_KEY_OPTION = 'api_key';
@ -423,7 +423,7 @@ class intaro_intarocrm extends CModule
$arResult['bitrixOrderTypesList'][] = $arOrderTypesList;
} while ($arOrderTypesList = $dbOrderTypesList->Fetch());
}
//bitrix deliveryTypesList
$dbDeliveryTypesList = CSaleDelivery::GetList(
array(
@ -523,6 +523,11 @@ class intaro_intarocrm extends CModule
$_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $this->MODULE_ID . '/install/step1.php'
);
}
// api load
$api_host = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString($this->MODULE_ID, $this->CRM_API_KEY_OPTION, 0);
$this->INTARO_CRM_API = new \IntaroCrm\RestApi($api_host, $api_key);
//bitrix orderTypesList -- personTypes
$dbOrderTypesList = CSalePersonType::GetList(
@ -559,13 +564,50 @@ class intaro_intarocrm extends CModule
false,
array()
);
//form delivery types ids arr
$deliveryTypesArr = array();
if ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch()) {
do {
$deliveryTypesArr[$arDeliveryTypesList['ID']] = htmlspecialchars(trim($_POST['delivery-type-' . $arDeliveryTypesList['ID']]));
} while ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch());
if (htmlspecialchars(trim($_POST['delivery-types-export'])) == 'true') {
if ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch()) {
do {
$deliveryTypesArr[$arDeliveryTypesList['ID']] = htmlspecialchars(trim($_POST['delivery-type-' . $arDeliveryTypesList['ID']]));
} while ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch());
}
} else {
// send to intaro crm and save
if ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch()) {
do {
// parse id
$arId = array();
$resultDeliveryTypeId = 0;
if (strpos($arDeliveryTypesList['ID'], ":") !== false)
$arId = explode(":", $arDeliveryTypesList['ID']);
if ($arId)
$resultDeliveryTypeId = $arId[0];
else
$resultDeliveryTypeId = $arDeliveryTypesList['ID'];
$deliveryTypesArr[$arDeliveryTypesList['ID']] = $resultDeliveryTypeId;
// send to crm
$this->INTARO_CRM_API->deliveryTypeEdit(array(
'code' => $resultDeliveryTypeId,
'name' => ICrmOrderActions::toJSON($arDeliveryTypesList['NAME']),
'defaultCost' => $arDeliveryTypesList['PRICE'],
'description' => ICrmOrderActions::toJSON($arDeliveryTypesList['DESCRIPTION']),
'paymentTypes' => ''
));
// error pushing customer
if (($this->INTARO_CRM_API->getStatusCode() != 200) || ($this->INTARO_CRM_API->getStatusCode() != 201)) {
//handle err
self::eventLog('install/index.php', 'IntaroCrm\RestApi::deliveryTypeEdit', $this->INTARO_CRM_API->getLastError());
}
} while ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch());
}
}
//bitrix paymentTypesList

View File

@ -93,6 +93,13 @@ $defaultPayment = array(
return false;
});
$('input[name="delivery-types-export"]').click(function() {
if($(this).val() === 'true')
$('tr.delivery-types').hide('slow');
else if($(this).val() === 'false')
$('tr.delivery-types').show('show');
});
});
</script>
@ -124,8 +131,16 @@ $defaultPayment = array(
<tr class="heading">
<td colspan="2"><b><?php echo GetMessage('DELIVERY_TYPES_LIST'); ?></b></td>
</tr>
<tr class="heading">
<td width="50%" class="adm-detail-content-cell-l">
<label><input type="radio" name="delivery-types-export" value="true" checked> <?php echo GetMessage('DELIV_TYPES_EXPORT'); ?></label>
</td>
<td width="50%" class="adm-detail-content-cell-r">
<label><input type="radio" name="delivery-types-export" value="false"> <?php echo GetMessage('DELIV_TYPES_EXPORT_F'); ?></label>
</td>
</tr>
<?php foreach($arResult['bitrixDeliveryTypesList'] as $bitrixDeliveryType): ?>
<tr>
<tr class="delivery-types" style="display: none;">
<td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixDeliveryType['ID']; ?>">
<?php echo $bitrixDeliveryType['NAME']; ?>
</td>
@ -175,7 +190,7 @@ $defaultPayment = array(
<select name="payment-status-<?php echo $bitrixPaymentStatus['ID']; ?>" class="typeselect">
<option value="" selected=""></option>
<?php foreach($arResult['paymentGroupList'] as $orderStatusGroup): if(!empty($orderStatusGroup['statuses'])) : ?>
<optgroup label="<?php echo $orderStatusGroup['name']; ?>">
<optgroup label="<?php echo $APPLICATION->ConvertCharset($orderStatusGroup['name'], 'utf-8', SITE_CHARSET); ?>">
<?php foreach($orderStatusGroup['statuses'] as $payment): ?>
<option value="<?php echo $arResult['paymentList'][$payment]['code']; ?>"
<?php if ($defaultPayStatuses[$bitrixPaymentStatus['ID']] == $arResult['paymentList'][$payment]['code']) echo 'selected'; ?>>

View File

@ -15,4 +15,6 @@ $MESS ['INFO_2'] = 'В случае, если вы не нашли подход
$MESS ['URL_1'] = 'Администрирование';
$MESS ['INFO_3'] = 'После этого подгрузите новые значения, нажав кнопку «Обновить справочники»';
$MESS ['UPDATE_CATS'] = 'Обновить справочники';
$MESS ['MESS_5'] = 'Произошла ошибка сервера, обратитесь в Интаро Софт.';
$MESS ['MESS_5'] = 'Произошла ошибка сервера, обратитесь в Интаро Софт.';
$MESS ['DELIV_TYPES_EXPORT'] = 'Выгрузить список доставок из 1С-Битрикс';
$MESS ['DELIV_TYPES_EXPORT_F'] = 'Настроить соответствие доставок 1С-Битрикс и IntaroCRM';