Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@vasilukwolf
Last active March 24, 2017 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vasilukwolf/995446e77fedf29014d5bfa640734b94 to your computer and use it in GitHub Desktop.
Save vasilukwolf/995446e77fedf29014d5bfa640734b94 to your computer and use it in GitHub Desktop.
Аналог
<?
// Частное лицо
AddEventHandler("sale", "OnOrderSave", "OnOrderSaveHandler");
function OnOrderSaveHandler($ID, $arFields, $arOrder, $isNew)
{
if($arFields['PERSON_TYPE_ID'] == 1)
{
$arOrderPropVals = array();
$db_vals = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $ID, 'ORDER_PROPS_ID' => array(19, 15)));
while($arVals = $db_vals->Fetch())
{
$arOrderPropVals[ $arVals['CODE'] ] = $arVals;
}
$PRIVATE_PERSON_ID = 32;
$ar = CSaleOrderProps::GetByID($PRIVATE_PERSON_ID);
if($arOrderPropVals)
{
$PRIVATE_PERSON_VALUE = 'Частное лицо (' . $arOrderPropVals['FAMIL']['VALUE'] . ' ' . $arOrderPropVals['CONTACT_PERSON']['VALUE'] . ')';
$arNewProp = array(
'ORDER_ID' => $ID,
'ORDER_PROPS_ID' => $ar['ID'],
'NAME' => $ar['NAME'],
'CODE' => $ar['CODE'],
'VALUE' => $PRIVATE_PERSON_VALUE,
);
Bitrix\Sale\Internals\OrderPropsValueTable::Add($arNewProp);
}
}
}
<?
\Bitrix\Main\EventManager::getInstance()->
addEventHandler("sale", "OnSaleOrderSaved", "OnSHandler");
function OnSHandler(Bitrix\Main\Event $event) {
global $DB;
#https://dev.1c-bitrix.ru/api_d7/bitrix/sale/events/order_saved.php
$order = $event->getParameter("ENTITY");
$values = $order->getFields()->getValues();
$value = $values['PERSON_TYPE_ID'];
$value_id = $values['ID'];
if ($value == 1) {
$arOrderPropVals = array();
$db_vals = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $value_id, 'ORDER_PROPS_ID' => array(19, 15)));
while ($arVals = $db_vals->Fetch()) {
$arOrderPropVals[$arVals['CODE']] = $arVals;
}
$PRIVATE_PERSON_ID = 32;
$ar = CSaleOrderProps::GetByID($PRIVATE_PERSON_ID);
if ($arOrderPropVals) {
$PRIVATE_PERSON_VALUE = 'Частное лицо(' . $arOrderPropVals['FAMIL']['VALUE'] . ' ' . $arOrderPropVals['CONTACT_PERSON']['VALUE'] . ')';
$arNewProp = array(
'ORDER_ID' => $value_id,
'ORDER_PROPS_ID' => $ar['ID'],
'NAME' => $ar['NAME'],
'CODE' => $ar['CODE'],
'VALUE' => $PRIVATE_PERSON_VALUE,
);
$strSql = "INSERT INTO `b_sale_order_props_value`
SET `ORDER_ID`=" . $value_id . ",
`ORDER_PROPS_ID`=" . $ar['ID'] . ",
`NAME`='PRIVATE_PERSON',
`VALUE`='" . $PRIVATE_PERSON_VALUE . "'
ON DUPLICATE KEY UPDATE `NAME`='PRIVATE_PERSON',
`VALUE`='" . $PRIVATE_PERSON_VALUE . "';";
$res = $DB->Query($strSql, false, $err_mess . __LINE__);
// Bitrix\Sale\Internals\OrderPropsValueTable::Add($arNewProp);
file_put_contents(
"/home/bitrix/ext_www/host.svarbi.ru/event.log2"
, print_r($arNewProp, true), FILE_APPEND | LOCK_EX
);
return $res;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment