1
0
mirror of synced 2024-11-25 14:56: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_NAME;
var $PARTNER_URI; var $PARTNER_URI;
var $INTARO_CRM_API; var $INTARO_CRM_API;
var $INTARO_CRM_EXPORT = 'intarocrm'; var $INTARO_CRM_EXPORT = 'intarocrm';
var $CRM_API_HOST_OPTION = 'api_host'; var $CRM_API_HOST_OPTION = 'api_host';
var $CRM_API_KEY_OPTION = 'api_key'; var $CRM_API_KEY_OPTION = 'api_key';
@ -423,7 +423,7 @@ class intaro_intarocrm extends CModule
$arResult['bitrixOrderTypesList'][] = $arOrderTypesList; $arResult['bitrixOrderTypesList'][] = $arOrderTypesList;
} while ($arOrderTypesList = $dbOrderTypesList->Fetch()); } while ($arOrderTypesList = $dbOrderTypesList->Fetch());
} }
//bitrix deliveryTypesList //bitrix deliveryTypesList
$dbDeliveryTypesList = CSaleDelivery::GetList( $dbDeliveryTypesList = CSaleDelivery::GetList(
array( array(
@ -523,6 +523,11 @@ class intaro_intarocrm extends CModule
$_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/' . $this->MODULE_ID . '/install/step1.php' $_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 //bitrix orderTypesList -- personTypes
$dbOrderTypesList = CSalePersonType::GetList( $dbOrderTypesList = CSalePersonType::GetList(
@ -559,13 +564,50 @@ class intaro_intarocrm extends CModule
false, false,
array() array()
); );
//form delivery types ids arr //form delivery types ids arr
$deliveryTypesArr = array(); $deliveryTypesArr = array();
if ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch()) {
do { if (htmlspecialchars(trim($_POST['delivery-types-export'])) == 'true') {
$deliveryTypesArr[$arDeliveryTypesList['ID']] = htmlspecialchars(trim($_POST['delivery-type-' . $arDeliveryTypesList['ID']])); if ($arDeliveryTypesList = $dbDeliveryTypesList->Fetch()) {
} while ($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 //bitrix paymentTypesList

View File

@ -93,6 +93,13 @@ $defaultPayment = array(
return false; 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> </script>
@ -124,8 +131,16 @@ $defaultPayment = array(
<tr class="heading"> <tr class="heading">
<td colspan="2"><b><?php echo GetMessage('DELIVERY_TYPES_LIST'); ?></b></td> <td colspan="2"><b><?php echo GetMessage('DELIVERY_TYPES_LIST'); ?></b></td>
</tr> </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): ?> <?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']; ?>"> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixDeliveryType['ID']; ?>">
<?php echo $bitrixDeliveryType['NAME']; ?> <?php echo $bitrixDeliveryType['NAME']; ?>
</td> </td>
@ -175,7 +190,7 @@ $defaultPayment = array(
<select name="payment-status-<?php echo $bitrixPaymentStatus['ID']; ?>" class="typeselect"> <select name="payment-status-<?php echo $bitrixPaymentStatus['ID']; ?>" class="typeselect">
<option value="" selected=""></option> <option value="" selected=""></option>
<?php foreach($arResult['paymentGroupList'] as $orderStatusGroup): if(!empty($orderStatusGroup['statuses'])) : ?> <?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): ?> <?php foreach($orderStatusGroup['statuses'] as $payment): ?>
<option value="<?php echo $arResult['paymentList'][$payment]['code']; ?>" <option value="<?php echo $arResult['paymentList'][$payment]['code']; ?>"
<?php if ($defaultPayStatuses[$bitrixPaymentStatus['ID']] == $arResult['paymentList'][$payment]['code']) echo 'selected'; ?>> <?php if ($defaultPayStatuses[$bitrixPaymentStatus['ID']] == $arResult['paymentList'][$payment]['code']) echo 'selected'; ?>>

View File

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