public static function budget($user_id) { CModule::IncludeModule("sale"); global $USER; if (!$user_id) { $user_id = $USER->GetID(); } $dbAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $user_id), false, false, array("CURRENT_BUDGET", "CURRENCY")); if ($arAccount = $dbAccount->Fetch()) { return $arAccount["CURRENT_BUDGET"]; } else { return false; } }
} else { $arAdditionalFields = array( "PAY_VOUCHER_NUM" => ((strlen($PAY_VOUCHER_NUM) > 0) ? $PAY_VOUCHER_NUM : false), "PAY_VOUCHER_DATE" => ((strlen($PAY_VOUCHER_DATE) > 0) ? $PAY_VOUCHER_DATE : false) ); $bWithdraw = true; $bPay = true; if ($PAY_CURRENT_ACCOUNT == "Y") { $dbUserAccount = CSaleUserAccount::GetList( array(), array( "USER_ID" => $arOrder["USER_ID"], "CURRENCY" => $arOrder["CURRENCY"], ) ); if ($arUserAccount = $dbUserAccount->Fetch()) { if (floatval($arUserAccount["CURRENT_BUDGET"]) >= $arOrder["PRICE"]) $bPay = false; } } if ($PAYED == "N" && $PAY_FROM_ACCOUNT_BACK != "Y") $bWithdraw = false; if (!CSaleOrder::PayOrder($ID, $PAYED, $bWithdraw, $bPay, 0, $arAdditionalFields)) { if ($ex = $APPLICATION->GetException())
} } $arFields["ID"] = $val["ID"]; $arFields["TITLE"] = $val["NAME"]; $arFields["DESCRIPTION"] = $val["DESCRIPTION"]; $arDeliveryResult[] = $arFields; } } } $arResult["DELIVERY"] = $arDeliveryResult; $arResult["DELIVERY_CHECHED_DESC"] = $deliveryCheckDesc; /* * paysystem */ $userAccount = ""; $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $currentUserId, "CURRENCY" => $arResult["CURRENCY"], "LOCKED" => "N")); if ($arUserAccount = $dbUserAccount->GetNext()) { if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) > 0) { $userAccount = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arResult["CURRENCY"]); } } $arPaySystem = CSalePaySystem::DoLoadPaySystems($PERSON_TYPE); $arNewPaySystem = array(); $paysystemDesc = ""; $arNewPaySystem[0] = array("ID" => "", "NAME" => GetMessage("SBB_SELECT_PAYSYSTEM"), "CHECKED" => "Y"); foreach ($arPaySystem as $key => $val) { $arNewPaySystem[$key]["ID"] = $val["ID"]; $arNewPaySystem[$key]["NAME"] = $val["NAME"]; $arNewPaySystem[$key]["DESCRIPTION"] = $val["DESCRIPTION"]; $arNewPaySystem[$key]["ACTIVE"] = $val["ACTIVE"]; if ($_POST["PAYSYSTEM_ID"] == $key) {
function fGetPayFromAccount($USER_ID, $CURRENCY) { $arResult = array("PAY_MESSAGE" => GetMessage("NEWO_PAY_FROM_ACCOUNT_NO")); $dbUserAccount = CSaleUserAccount::GetList( array(), array( "USER_ID" => $USER_ID, "CURRENCY" => $CURRENCY, ) ); if ($arUserAccount = $dbUserAccount->GetNext()) { if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) > 0) { $arResult["PAY_BUDGET"] = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $CURRENCY); $arResult["PAY_MESSAGE"] = str_replace("#MONEY#", $arResult["PAY_BUDGET"], GetMessage("NEWO_PAY_FROM_ACCOUNT_YES")); $arResult["CURRENT_BUDGET"] = $arUserAccount["CURRENT_BUDGET"]; } } return $arResult; }
function getOrderInfoDetail($orderId) { if (!$orderId) { return false; } if (!$GLOBALS["USER"]->IsAuthorized()) { return false; } $arFilter["ID"] = $orderId; $saleModulePermissions = $GLOBALS["APPLICATION"]->GetGroupRight("sale"); if ($saleModulePermissions == "D") { $arFilter["USER_ID"] = IntVal($GLOBALS["USER"]->GetID()); } elseif ($saleModulePermissions != "W") { $arFilter["STATUS_PERMS_GROUP_ID"] = $GLOBALS["USER"]->GetUserGroupArray(); $arFilter[">=STATUS_PERMS_PERM_VIEW"] = "Y"; } $arOrder = array(); $dbOrder = CSaleOrder::GetList(array(), $arFilter); $arOrder = $dbOrder->GetNext(); if (!$arOrder) { return false; } $arOrder["STATUS"] = CSaleStatus::GetLangByID($arOrder["STATUS_ID"]); $arOrder["STATUS_NAME"] = $arOrder["STATUS"]["NAME"]; $arOrder["PRICE_IN_ALL_NUM"] = floatval($arOrder["~PRICE"] + floatval($arOrder["~PRICE_DELIVERY"])); $arOrder["PRICE_IN_ALL"] = SaleFormatCurrency($arOrder["PRICE_IN_ALL_NUM"], $arOrder["CURRENCY"]); $arOrder["PRICE_STR"] = SaleFormatCurrency($arOrder["PRICE"], $arOrder["CURRENCY"]); $arOrder["PERSON_TYPE"] = CSalePersonType::GetByID($arOrder["PERSON_TYPE_ID"]); $arOrder["PERSON_TYPE_NAME"] = htmlspecialcharsbx($arOrder["PERSON_TYPE"]["NAME"]); $arOrder = self::getOrderProps($arOrder); $arOrder["DELIVERY_NAME"] = self::getDeliveriesInfo(array($arOrder["DELIVERY_ID"])); $arOrder["DELIVERY_NAME"] = $arOrder["DELIVERY_NAME"][$arOrder["DELIVERY_ID"]]; $arPaySys = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"], $arOrder["PERSON_TYPE_ID"]); $arOrder["PAY_SYSTEM_NAME"] = $arPaySys["NAME"]; $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $arOrder["USER_ID"], "CURRENCY" => $arOrder["CURRENCY"], "LOCKED" => "N")); $arUserAccount = $dbUserAccount->GetNext(); $arOrder["CURRENT_BUDGET"] = $arUserAccount["CURRENT_BUDGET"] ? $arUserAccount["CURRENT_BUDGET"] : 0; $arOrder["CURRENT_BUDGET_STRING"] = SaleFormatCurrency($arOrder["CURRENT_BUDGET"], $arOrder["CURRENCY"]); return $arOrder; }
} foreach ($arItem as $tmpKey => $value) { if (strpos($tmpKey, "PROPERTY_", 0) === 0 && strrpos($tmpKey, "_VALUE") == strlen($tmpKey) - 6) { $code = str_replace(array("PROPERTY_", "_VALUE"), "", $tmpKey); $propData = $arIblockProps[$code]; $arCols[$tmpKey] = getIblockProps($value, $propData, array("WIDTH" => 110, "HEIGHT" => 110)); } } $arResult["GRID"]["ROWS"][$arItem["ID"]] = array("id" => $arItem["ID"], "data" => $arItem, "actions" => array(), "columns" => $arCols, "editable" => true); } unset($arItem); } /* Tax Begin */ $orderTotalSum = $arResult["ORDER_PRICE"] + $arResult["DELIVERY_PRICE"] + $arResult["TAX_PRICE"] - $arResult["DISCOUNT_PRICE"]; if ($arParams["PAY_FROM_ACCOUNT"] == "Y") { $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $USER->GetID(), "CURRENCY" => $arResult["BASE_LANG_CURRENCY"])); if ($arUserAccount = $dbUserAccount->GetNext()) { if ($arUserAccount["CURRENT_BUDGET"] <= 0) { $arResult["PAY_FROM_ACCOUNT"] = "N"; } else { if ($arParams["ONLY_FULL_PAY_FROM_ACCOUNT"] == "Y") { if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) >= DoubleVal($orderTotalSum)) { $arResult["PAY_FROM_ACCOUNT"] = "Y"; $arResult["CURRENT_BUDGET_FORMATED"] = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arResult["BASE_LANG_CURRENCY"]); $arResult["USER_ACCOUNT"] = $arUserAccount; } else { $arResult["PAY_FROM_ACCOUNT"] = "N"; } } else { $arResult["PAY_FROM_ACCOUNT"] = "Y"; $arResult["CURRENT_BUDGET_FORMATED"] = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arResult["BASE_LANG_CURRENCY"]);
die; } $this->setFramemode(false); if (!CModule::IncludeModule("sale")) { ShowError(GetMessage("SALE_MODULE_NOT_INSTALL")); return; } if (!CBXFeatures::IsFeatureEnabled('SaleAccounts')) { return; } if (!$USER->IsAuthorized()) { $APPLICATION->AuthForm(GetMessage("SALE_ACCESS_DENIED"), false, false, 'N', false); } $arParams["SET_TITLE"] = $arParams["SET_TITLE"] == "N" ? "N" : "Y"; if ($arParams["SET_TITLE"] == 'Y') { $APPLICATION->SetTitle(GetMessage("SPA_TITLE")); } $dbAccountList = CSaleUserAccount::GetList(array("CURRENCY" => "ASC"), array("USER_ID" => IntVal($USER->GetID())), false, false, array("ID", "CURRENT_BUDGET", "CURRENCY", "TIMESTAMP_X")); if ($arAccountList = $dbAccountList->GetNext()) { $arResultTmp = array(); $arResult["DATE"] = str_replace("#DATE#", date(CDatabase::DateFormatToPHP(CSite::GetDateFormat("SHORT", SITE_ID))), GetMessage("SPA_MY_ACCOUNT")); do { $arResultTmp["CURRENCY"] = CCurrencyLang::GetByID($arAccountList["CURRENCY"], LANGUAGE_ID); $arResultTmp["ACCOUNT_LIST"] = $arAccountList; $arResultTmp["INFO"] = str_replace("#CURRENCY#", $arResultTmp["CURRENCY"]["CURRENCY"] . " (" . $arResultTmp["CURRENCY"]["FULL_NAME"] . ")", str_replace("#SUM#", SaleFormatCurrency($arAccountList["CURRENT_BUDGET"], $arAccountList["CURRENCY"]), GetMessage("SPA_IN_CUR"))); $arResult["ACCOUNT_LIST"][] = $arResultTmp; } while ($arAccountList = $dbAccountList->GetNext()); } else { $arResult["ERROR_MESSAGE"] = GetMessage("SPA_NO_ACCOUNT"); } $this->IncludeComponentTemplate();
} if ($arParams['PAY_IMMED']) { if (isset($arParams['PERSON_TYPE']) && $arParams['PERSON_TYPE'] > 0) { $arResult['PAY_SYSTEMS'] = array(); $dbPaySysAction = CSalePaySystemAction::GetList(array(), array('PS_ACTIVE' => 'Y', 'PERSON_TYPE_ID' => $arParams['PERSON_TYPE']), false, false, array('*')); while ($arPaySysAction = $dbPaySysAction->fetch()) { if (intval($arPaySysAction['LOGOTIP']) > 0) { $arPaySysAction['LOGOTIP'] = CFile::GetFileArray($arPaySysAction['LOGOTIP']); } $arResult['PAY_SYSTEMS'][$arPaySysAction['PAY_SYSTEM_ID']] = $arPaySysAction; } } else { $arParams['PAY_IMMED'] = false; } } $rsAcc = CSaleUserAccount::GetList(array('CURRENCY' => 'ASC'), array('USER_ID' => $USER->GetID()), false, false, array('ID', 'CURRENT_BUDGET', 'CURRENCY', 'LOCKED')); while ($arAcc = $rsAcc->GetNext(true, false)) { if (empty($arParams['ALLOWED_CURRENCY']) || in_array($arAcc['CURRENCY'], $arParams['ALLOWED_CURRENCY'])) { $arAcc['CURRENT_BUDGET_FORMATED'] = SaleFormatCurrency($arAcc['CURRENT_BUDGET'], $arAcc['CURRENCY']); $arResult['ACCOUNT'][$arAcc['CURRENCY']] = $arAcc; } } foreach ($arResult['ACCOUNT'] as $curr => &$arAcc) { if (empty($arAcc)) { $arAcc = array('CURRENT_BUDGET' => 0.0, 'CURRENCY' => $curr, 'CURRENT_BUDGET_FORMATED' => SaleFormatCurrency(0, $curr)); } } if ($_REQUEST['prepaid_money'] != '' && check_bitrix_sessid()) { $arResult['MONEY_OFF'] = round($arResult['REQUEST_AMOUNT'] + $arResult['REQUEST_AMOUNT'] / 100 * $arParams['COMISSION'], 2); if ($arResult['REQUEST_AMOUNT'] <= 0 || $arResult['REQUEST_ACCOUNT'] == '') { $arResult['ERROR'] = GetMessage('SPT_ERROR_REQUIRED_AMOUNT');
echo $arResult["arUser"]["WORK_PHONE"]; ?> " /></td> </tr> </tbody> </table> <div style="margin-top:10px;"><input type="submit" name="save" value="<?php echo $arResult["ID"] > 0 ? GetMessage("MAIN_SAVE") : GetMessage("MAIN_ADD"); ?> "> <input type="reset" value="<?php echo GetMessage('MAIN_RESET'); ?> "></div> </form> </div> </div> </div> </div> <div class="balance-div"> <?php $dsd = CSaleUserAccount::GetList(array(), array("USER_ID" => $USER->GetID()), false, false, array("CURRENT_BUDGET", "CURRENCY")); $userAcc = $dsd->GetNext(); ?> <span class="bonus-title">Бонусов доступно: </span><br><br><span class="bonus-balance"><?php echo intval($userAcc['CURRENT_BUDGET']); ?> </span><br> <span class="smallnotes-balance">Бонусы начисляются за каждую покупку.</span> </div> <div class="clear"></div>
public static function OnBeforeUserDelete($userID) { $userID = IntVal($userID); $bCanDelete = True; $dbUserAccounts = CSaleUserAccount::GetList(array(), array("USER_ID" => $userID, "!CURRENT_BUDGET" => 0), false, false, array("ID")); if ($arUserAccount = $dbUserAccounts->Fetch()) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#USER_ID#", $userID, GetMessage("UA_ERROR_USER")), "ERROR_UACCOUNT"); return False; } return $bCanDelete; }
} if (strlen($lang) <= 0) { $lang = "ru"; } $bRus = false; if ($lang == "ru") { $bRus = true; } __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 {
} } $arFields["ID"] = $val["ID"]; $arFields["TITLE"] = $val["NAME"]; $arFields["DESCRIPTION"] = $val["DESCRIPTION"]; $arDeliveryResult[] = $arFields; } } } $arResult["DELIVERY"] = $arDeliveryResult; $arResult["DELIVERY_CHECHED_DESC"] = $deliveryCheckDesc; /* * paysystem */ $userAccount = ""; $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => IntVal($USER->GetID()), "CURRENCY" => $arResult["CURRENCY"], "LOCKED" => "N")); if ($arUserAccount = $dbUserAccount->GetNext()) { if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) > 0) { $userAccount = SaleFormatCurrency($arUserAccount["CURRENT_BUDGET"], $arResult["CURRENCY"]); } } $arPaySystem = CSalePaySystem::DoLoadPaySystems($PERSON_TYPE); $arNewPaySystem = array(); $paysystemDesc = ""; $arNewPaySystem[0] = array("ID" => "", "NAME" => GetMessage("SBB_SELECT_PAYSYSTEM"), "CHECKED" => "Y"); foreach ($arPaySystem as $key => $val) { $arNewPaySystem[$key]["ID"] = $val["ID"]; $arNewPaySystem[$key]["NAME"] = $val["NAME"]; $arNewPaySystem[$key]["DESCRIPTION"] = $val["DESCRIPTION"]; $arNewPaySystem[$key]["ACTIVE"] = $val["ACTIVE"]; if ($_POST["PAYSYSTEM_ID"] == $key) {
$fieldValue .= "</a>"; } else { $fieldValue .= 0; } } $row->AddField("TRANSACT", $fieldValue); $arActions = array(); $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("SAA_UPDATE_ALT"), "ACTION" => $lAdmin->ActionRedirect("sale_account_edit.php?ID=" . $f_ID . "&lang=" . LANG . GetFilterParams("filter_")), "DEFAULT" => true); if ($saleModulePermissions >= "W") { $arActions[] = array("SEPARATOR" => true); $arActions[] = array("ICON" => "delete", "TEXT" => GetMessage("SAA_DELETE_ALT"), "ACTION" => "if(confirm('" . GetMessage('SAA_DELETE_CONFIRM') . "')) " . $lAdmin->ActionDoGroup($f_ID, "delete")); } $row->AddActions($arActions); } $arFooterArray = array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $dbResultList->SelectedRowsCount())); $dbAccountCurrency = CSaleUserAccount::GetList(array("CURRENCY" => "ASC"), $arFilter, array("CURRENCY", "SUM" => "CURRENT_BUDGET"), false, array("CURRENCY", "SUM" => "CURRENT_BUDGET")); while ($arAccountCurrency = $dbAccountCurrency->Fetch()) { $arFooterArray[] = array("title" => GetMessage("SAA_ITOG") . " " . $arAccountCurrency["CURRENCY"] . ":", "value" => SaleFormatCurrency($arAccountCurrency["CURRENT_BUDGET"], $arAccountCurrency["CURRENCY"])); } $order_sum = ""; foreach ($arFooterArray as $val) { $order_sum .= $val["title"] . " " . $val["value"] . "<br />"; } $lAdmin->sEpilogContent = "<script>setTimeout(function(){if (document.getElementById('order_sum'))document.getElementById('order_sum').innerHTML = '" . CUtil::JSEscape($order_sum) . "';}, 10);</script>"; $lAdmin->AddGroupActionTable(array("delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), "unlock" => GetMessage("SAAN_UNLOCK_DO"))); $aContext = array(); if ($saleModulePermissions >= "W") { $aContext = array(array("TEXT" => GetMessage("SAAN_ADD_NEW"), "LINK" => "sale_account_edit.php?lang=" . LANG . GetFilterParams("filter_"), "TITLE" => GetMessage("SAAN_ADD_NEW_ALT"), "ICON" => "btn_new")); } $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode();
if (strlen($errorMessage) <= 0) { if (strlen($apply) <= 0) { LocalRedirect("/bitrix/admin/sale_account_admin.php?lang=" . LANG . GetFilterParams("filter_", false)); } } else { $bVarsFromForm = true; } } require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/prolog.php"; if ($ID > 0) { $APPLICATION->SetTitle(GetMessage("SAE_UPDATING")); } else { $APPLICATION->SetTitle(GetMessage("SAE_ADDING")); } require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; $dbAccount = CSaleUserAccount::GetList(array(), array("ID" => $ID), false, false, array("ID", "USER_ID", "CURRENT_BUDGET", "CURRENCY", "LOCKED", "NOTES", "TIMESTAMP_X", "DATE_LOCKED", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")); if (!$dbAccount->ExtractFields("str_")) { if ($saleModulePermissions < "W") { $errorMessage .= GetMessage("SAE_NO_PERMS2ADD") . ".<br>"; } $ID = 0; } if ($bVarsFromForm) { $DB->InitTableVarsForEdit("b_sale_user_account", "", "str_"); } ?> <?php $aMenu = array(array("TEXT" => GetMessage("SAEN_2FLIST"), "LINK" => "/bitrix/admin/sale_account_admin.php?lang=" . LANG . GetFilterParams("filter_"), "ICON" => "btn_list", "TITLE" => GetMessage("SAEN_2FLIST_TITLE"))); if ($ID > 0 && $saleModulePermissions >= "U") { $aMenu[] = array("SEPARATOR" => "Y");