function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     if (!CSalePaySystemAction::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"])) {
         $arFields["LOGOTIP"]["MODULE_ID"] = "sale";
     }
     CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip");
     $strUpdate = $DB->PrepareUpdate("b_sale_pay_system_action", $arFields);
     $strSql = "UPDATE b_sale_pay_system_action SET " . $strUpdate . " WHERE ID = " . $ID . "";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     return $ID;
 }
Esempio n. 2
0
 function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     if (!CSalePaySystemAction::CheckFields("UPDATE", $arFields)) {
         return false;
     }
     $strUpdate = $DB->PrepareUpdate("b_sale_pay_system_action", $arFields);
     $strSql = "UPDATE b_sale_pay_system_action SET " . $strUpdate . " WHERE ID = " . $ID . "";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     return $ID;
 }
 function Update($id, $fields)
 {
     if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y') {
         $id = (int) $id;
         if (isset($fields['ACTION_FILE'])) {
             $map = self::getOldToNewHandlersMap();
             if (isset($map[$fields['ACTION_FILE']])) {
                 $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']];
             }
         }
         if (!CSalePaySystemAction::CheckFields("UPDATE", $fields)) {
             return false;
         }
         if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"])) {
             $fields["LOGOTIP"]["MODULE_ID"] = "sale";
         }
         CFile::SaveForDB($fields, "LOGOTIP", "sale/paysystem/logotip");
         if (isset($fields['PARAMS'])) {
             $params = unserialize($fields['PARAMS']);
             if (!isset($params['BX_PAY_SYSTEM_ID'])) {
                 $params['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $id);
             }
             $fields['PARAMS'] = serialize($params);
         }
         $result = PaySystemActionTable::update($id, $fields);
         if ($result->isSuccess()) {
             if (array_key_exists('PARAMS', $fields)) {
                 $params = self::prepareParamsForBusVal($id, $fields);
                 foreach ($params as $item) {
                     \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']);
                 }
             }
             if ($fields['PERSON_TYPE_ID']) {
                 $params = array('filter' => array("SERVICE_ID" => $id, "SERVICE_TYPE" => \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::SERVICE_TYPE_PAYMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Services\\PaySystem\\Restrictions\\PersonType'));
                 $dbRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList($params);
                 if ($data = $dbRes->fetch()) {
                     $restrictionId = $data['ID'];
                 } else {
                     $restrictionId = 0;
                 }
                 $fields = array("SERVICE_ID" => $id, "SERVICE_TYPE" => \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::SERVICE_TYPE_PAYMENT, "SORT" => 100, "PARAMS" => array('PERSON_TYPE_ID' => array($fields['PERSON_TYPE_ID'])));
                 \Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::save($fields, $restrictionId);
             }
             return $id;
         }
         return false;
     } else {
         global $DB;
         $arFields = $fields;
         $ID = IntVal($id);
         if (!CSalePaySystemAction::CheckFields("UPDATE", $arFields)) {
             return false;
         }
         if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"])) {
             $arFields["LOGOTIP"]["MODULE_ID"] = "sale";
         }
         CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip");
         $strUpdate = $DB->PrepareUpdate("b_sale_pay_system_action", $arFields);
         $strSql = "UPDATE b_sale_pay_system_action SET " . $strUpdate . " WHERE ID = " . $ID . "";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         return $ID;
     }
 }