本文整理汇总了PHP中CSaleUserAccount::Add方法的典型用法代码示例。如果您正苦于以下问题:PHP CSaleUserAccount::Add方法的具体用法?PHP CSaleUserAccount::Add怎么用?PHP CSaleUserAccount::Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSaleUserAccount
的用法示例。
在下文中一共展示了CSaleUserAccount::Add方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: OnBeforeUserRegisterHandler
function OnBeforeUserRegisterHandler(&$arFields)
{
CModule::IncludeModule('sale');
//создаём профиль
//PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль
$arProfileFields = array(
"NAME" => "Профиль покупателя (".$arFields['LOGIN'].')',
"USER_ID" => $arFields['ID'],
"PERSON_TYPE_ID" => 1
);
/**
* Добавляем счет пользователя
* @var array
*/
$arFields = array(
"USER_ID" => $arFields['ID'],
"CURRENCY" => "RUB",
"CURRENT_BUDGET" => 0
);
$accountID = CSaleUserAccount::Add($arFields);
$PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields);
//если профиль создан
if ($PROFILE_ID) {
//формируем массив свойств
$PROPS = array(
array(
"USER_PROPS_ID" => $PROFILE_ID,
"ORDER_PROPS_ID" => 2,
"NAME" => "Адрес доставки",
"VALUE" => $arFields['PERSONAL_STREET']
),
array(
"USER_PROPS_ID" => $PROFILE_ID,
"ORDER_PROPS_ID" => 1,
"NAME" => "Ф.И.О.",
"VALUE" => $arFields['LAST_NAME'].' '.$arFields['NAME'].' '.$arFields['SECOND_NAME']
)
);
//добавляем значения свойств к созданному ранее профилю
foreach ($PROPS as $prop) {
CSaleOrderUserPropsValue::Add($prop);
}
}
}
示例2: UpdateAccount
//.........这里部分代码省略.........
*
* @param string $notes = ""]]]
*
* @return int <p>Метод возвращает код пользовательского счета или <i>false</i> в
* случае ошибки.</p> <p></p><div class="note"> <b>Замечания:</b> <ul> <li>Деньги
* снимаются только со счета той же валюты, которая передается
* параметром в метод. Счета пользователя в другой валюте не
* затрагиваются.</li> <li>Если счета в данной валюте раньше у
* пользователя не было, то он автоматически создастся (и будет
* возвращен код созданного счета).</li> </ul> </div> <a name="examples"></a>
*
* <h4>Example</h4>
* <pre>
* <?
* // Напишем функцию обратного вызова, которая будет вызываться при изменении
* // флага "Доставка разрешена" заказа и добавлять (или снимать) 100 USD на счет
*
* function MyDeliveryOrderCallback($productID, $userID, $bPaid, $orderID)
* {
* global $DB;
*
* // Обработаем входные параметры
* $productID = IntVal($productID); // Код заказанного товара
* $userID = IntVal($userID); // Код пользователя-покупателя
* $bPaid = ($bPaid ? True : False); // Устанавливается или снимается флаг доставки
* $orderID = IntVal($orderID); // Код заказа
*
* if ($userID <= 0)
* return False;
*
* if ($orderID <= 0)
* return False;
*
* // Внесем (снимем) деньги на счет
* if (!CSaleUserAccount::UpdateAccount(
* $userID,
* ($bPaid ? 100 : -100),
* "USD",
* "MANUAL",
* $orderID
* ))
* return False;
*
* return True;
* }
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/sale/classes/csaleuseraccount/csaleuseraccount.updateaccount.php
* @author Bitrix
*/
public static function UpdateAccount($userID, $sum, $currency, $description = "", $orderID = 0, $notes = "", $paymentId = null)
{
global $DB, $APPLICATION;
$userID = (int) $userID;
if ($userID <= 0) {
$APPLICATION->ThrowException(GetMessage("SKGU_EMPTYID"), "EMPTY_USER_ID");
return False;
}
$dbUser = CUser::GetByID($userID);
if (!$dbUser->Fetch()) {
$APPLICATION->ThrowException(str_replace("#ID#", $userID, GetMessage("SKGU_NO_USER")), "ERROR_NO_USER_ID");
return False;
}
$sum = (double) str_replace(",", ".", $sum);
$currency = trim($currency);
if ($currency === '') {
$APPLICATION->ThrowException(GetMessage("SKGU_EMPTY_CUR"), "EMPTY_CURRENCY");
return False;
}
$orderID = (int) $orderID;
$paymentId = (int) $paymentId;
if (!CSaleUserAccount::Lock($userID, $currency)) {
$APPLICATION->ThrowException(GetMessage("SKGU_ACCOUNT_NOT_WORK"), "ACCOUNT_NOT_LOCKED");
return False;
}
$currentBudget = 0.0;
$result = false;
$dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $userID, "CURRENCY" => $currency));
if ($arUserAccount = $dbUserAccount->Fetch()) {
$currentBudget = floatval($arUserAccount["CURRENT_BUDGET"]);
$arFields = array("CURRENT_BUDGET" => $arUserAccount["CURRENT_BUDGET"] + $sum);
$result = CSaleUserAccount::Update($arUserAccount["ID"], $arFields);
} else {
$currentBudget = floatval($sum);
$arFields = array("USER_ID" => $userID, "CURRENT_BUDGET" => $sum, "CURRENCY" => $currency, "LOCKED" => "Y", "DATE_LOCKED" => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID))));
$result = CSaleUserAccount::Add($arFields);
}
if ($result) {
if (isset($GLOBALS["SALE_USER_ACCOUNT"]["SALE_USER_ACCOUNT_CACHE_" . $userID . "_" . $currency])) {
unset($GLOBALS["SALE_USER_ACCOUNT"]["SALE_USER_ACCOUNT_CACHE_" . $userID . "_" . $currency]);
}
$arFields = array("USER_ID" => $userID, "TRANSACT_DATE" => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID))), "CURRENT_BUDGET" => $currentBudget, "AMOUNT" => $sum > 0 ? $sum : -$sum, "CURRENCY" => $currency, "DEBIT" => $sum > 0 ? "Y" : "N", "ORDER_ID" => $orderID > 0 ? $orderID : False, "PAYMENT_ID" => $paymentId > 0 ? $paymentId : false, "DESCRIPTION" => strlen($description) > 0 ? $description : False, "NOTES" => strlen($notes) > 0 ? $notes : False, "EMPLOYEE_ID" => $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : False);
CSaleUserTransact::Add($arFields);
}
CSaleUserAccount::UnLock($userID, $currency);
return $result;
}
示例3: __IncludeLang
}
__IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__), $lang));
$dbPerson = CSalePersonType::GetList(array());
if (!$dbPerson->Fetch()) {
//Person Types
$arGeneralInfo["personType"]["fiz"] = CSalePersonType::Add(array("LID" => $siteID, "NAME" => GetMessage("SALE_WIZARD_PERSON_1"), "SORT" => "100"));
$arGeneralInfo["personType"]["ur"] = CSalePersonType::Add(array("LID" => $siteID, "NAME" => GetMessage("SALE_WIZARD_PERSON_2"), "SORT" => "150"));
//currecny to site
$dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => 1));
if (!$dbUserAccount->Fetch()) {
if ($bRus) {
CSaleLang::Add(array("LID" => $siteID, "CURRENCY" => "RUB"));
CSaleUserAccount::Add(array("USER_ID" => 1, "CURRENT_BUDGET" => 1000, "CURRENCY" => "RUB"));
} else {
CSaleLang::Add(array("LID" => $siteID, "CURRENCY" => "USD"));
CSaleUserAccount::Add(array("USER_ID" => 1, "CURRENT_BUDGET" => 100, "CURRENCY" => "USD"));
}
}
//Sale administrators
$userGroupID = "";
$dbGroup = CGroup::GetList($by = "", $order = "", array("STRING_ID" => "sale_administrator"));
if ($arGroup = $dbGroup->Fetch()) {
$userGroupID = $arGroup["ID"];
} else {
$group = new CGroup();
$arFields = array("ACTIVE" => "Y", "C_SORT" => 800, "NAME" => GetMessage("SALE_WIZARD_ADMIN_SALE"), "DESCRIPTION" => GetMessage("SALE_WIZARD_ADMIN_SALE_DESCR"), "USER_ID" => array(), "STRING_ID" => "sale_administrator");
$userGroupID = $group->Add($arFields);
}
if (IntVal($userGroupID) > 0) {
DemoSiteUtil::SetFilePermission(array($siteID, "/bitrix/admin"), array($userGroupID => "R"));
CSaleGroupAccessToSite::Add(array("SITE_ID" => $siteID, "GROUP_ID" => $userGroupID));
示例4: UpdateAccount
function UpdateAccount($userID, $sum, $currency, $description = "", $orderID = 0, $notes = "")
{
global $DB;
$userID = IntVal($userID);
if ($userID <= 0) {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGU_EMPTYID"), "EMPTY_USER_ID");
return False;
}
$dbUser = CUser::GetByID($userID);
if (!$dbUser->Fetch()) {
$GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $userID, GetMessage("SKGU_NO_USER")), "ERROR_NO_USER_ID");
return False;
}
$sum = str_replace(",", ".", $sum);
$sum = DoubleVal($sum);
$currency = Trim($currency);
if (strlen($currency) <= 0) {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGU_EMPTY_CUR"), "EMPTY_CURRENCY");
return False;
}
$orderID = IntVal($orderID);
if (!CSaleUserAccount::Lock($userID, $currency)) {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGU_ACCOUNT_NOT_WORK"), "ACCOUNT_NOT_LOCKED");
return False;
}
$result = false;
$dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $userID, "CURRENCY" => $currency));
if ($arUserAccount = $dbUserAccount->Fetch()) {
$arFields = array("CURRENT_BUDGET" => $arUserAccount["CURRENT_BUDGET"] + $sum);
$result = CSaleUserAccount::Update($arUserAccount["ID"], $arFields);
} else {
$arFields = array("USER_ID" => $userID, "CURRENT_BUDGET" => $sum, "CURRENCY" => $currency, "LOCKED" => "Y", "DATE_LOCKED" => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID))));
$result = CSaleUserAccount::Add($arFields);
}
if ($result) {
$arFields = array("USER_ID" => $userID, "TRANSACT_DATE" => date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID))), "AMOUNT" => $sum > 0 ? $sum : -$sum, "CURRENCY" => $currency, "DEBIT" => $sum > 0 ? "Y" : "N", "ORDER_ID" => $orderID > 0 ? $orderID : False, "DESCRIPTION" => strlen($description) > 0 ? $description : False, "NOTES" => strlen($notes) > 0 ? $notes : False, "EMPLOYEE_ID" => $GLOBALS["USER"]->IsAuthorized() ? $GLOBALS["USER"]->GetID() : False);
CSaleUserTransact::Add($arFields);
}
CSaleUserAccount::UnLock($userID, $currency);
return $result;
}