Пример #1
0
 } elseif ($id <= 0) {
     $image = '/bitrix/images/sale/sale_payments/' . $request->get('ACTION_FILE') . '.png';
     if (\Bitrix\Main\IO\File::isFileExists($documentRoot . $image)) {
         $fields['LOGOTIP'] = CFile::MakeFileArray($image);
         $fields['LOGOTIP']['MODULE_ID'] = "sale";
         CFile::SaveForDB($fields, 'LOGOTIP', 'sale/paysystem/logotip');
     }
 }
 $data = PaySystem\Manager::getHandlerDescription($request->get('ACTION_FILE'));
 if ($id > 0) {
     $result = PaySystemActionTable::update($id, $fields);
     if (!$result->isSuccess()) {
         $errorMessage .= join(',', $result->getErrorMessages()) . ".<br>";
     }
 } else {
     $result = PaySystemActionTable::add($fields);
     if (!$result->isSuccess()) {
         $errorMessage .= join(',', $result->getErrorMessages());
     } else {
         $id = $result->getId();
         if ($id > 0) {
             $fields = array('PARAMS' => serialize(array('BX_PAY_SYSTEM_ID' => $id)), 'PAY_SYSTEM_ID' => $id);
             $result = PaySystemActionTable::update($id, $fields);
             if (!$result->isSuccess()) {
                 $errorMessage .= join(',', $result->getErrorMessages());
             }
             $service = PaySystem\Manager::getObjectById($id);
             $currency = $service->getCurrency();
             if ($currency) {
                 $params = array('SERVICE_ID' => $id, 'SERVICE_TYPE' => Restrictions\Manager::SERVICE_TYPE_PAYMENT, 'PARAMS' => array('CURRENCY' => $currency));
                 Restrictions\Manager::getClassesList();
Пример #2
0
 /**
  * @return int
  */
 public static function add()
 {
     $id = self::getId(false);
     if ($id > 0) {
         return $id;
     }
     $result = 0;
     $res = PaySystemTable::add(array('NAME' => Loc::getMessage('ORDER_PS_INNER_NAME'), 'DESCRIPTION' => Loc::getMessage('ORDER_PS_INNER_DESCRIPTION'), 'SORT' => 10, 'LID' => '', 'CURRENCY' => ''));
     if ($res->isSuccess()) {
         $cacheManager = \Bitrix\Main\Application::getInstance()->getManagedCache();
         $cacheManager->set(self::CACHE_ID, $res->getId());
         $res = PaySystemActionTable::add(array('PAY_SYSTEM_ID' => $res->getId(), 'PERSON_TYPE_ID' => 0, 'NAME' => Loc::getMessage('ORDER_PS_INNER_NAME'), 'ACTION_FILE' => self::ACTION_FILE_TEXT));
         if ($res->isSuccess()) {
             $result = $res->getId();
         }
     }
     return $result;
 }
 function Add($fields)
 {
     if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y') {
         if (!CSalePaySystemAction::CheckFields("ADD", $fields)) {
             return false;
         }
         if (isset($fields['ACTION_FILE'])) {
             $map = self::getOldToNewHandlersMap();
             if (isset($map[$fields['ACTION_FILE']])) {
                 $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']];
             }
         }
         $fields['PSA_NAME'] = $fields['NAME'];
         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['PAY_SYSTEM_ID']) && $fields['PAY_SYSTEM_ID'] > 0) {
             $dbRes = PaySystemActionTable::getById($fields['PAY_SYSTEM_ID']);
             $data = $dbRes->fetch();
             if ($data['ACTION_FILE'] != '') {
                 $result = PaySystemActionTable::add($fields);
             } else {
                 $result = PaySystemActionTable::update($fields['PAY_SYSTEM_ID'], $fields);
             }
         } else {
             $result = PaySystemActionTable::add($fields);
         }
         if ($result->isSuccess()) {
             if ($fields['PARAMS']) {
                 $params = unserialize($fields['PARAMS']);
                 if (!isset($params['BX_PAY_SYSTEM_ID'])) {
                     $params['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $result->getId());
                     PaySystemActionTable::update($result->getId(), array('PARAMS' => serialize($params)));
                     $consumers = \Bitrix\Sale\BusinessValue::getConsumers();
                     if (!isset($consumers['PAYSYSTEM_' . $result->getId()])) {
                         \Bitrix\Sale\BusinessValue::addConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE']));
                     } else {
                         \Bitrix\Sale\BusinessValue::changeConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE']));
                     }
                 }
                 $params = self::prepareParamsForBusVal($result->getId(), $fields);
                 foreach ($params as $item) {
                     \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']);
                 }
             }
             if (isset($fields['PERSON_TYPE_ID']) && $fields['PERSON_TYPE_ID'] > 0) {
                 $fields = array("SERVICE_ID" => $result->getId(), "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);
             }
             return $result->getId();
         }
         return false;
     } else {
         global $DB;
         $arFields = $fields;
         if (!CSalePaySystemAction::CheckFields("ADD", $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");
         $arInsert = $DB->PrepareInsert("b_sale_pay_system_action", $arFields);
         $strSql = "INSERT INTO b_sale_pay_system_action(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $ID = IntVal($DB->LastID());
         return $ID;
     }
 }