<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } if (!CModule::IncludeModule('sale')) { ShowError(GetMessage("SMOT_SALE_NOT_INSTALLED")); return; } if (!CModule::IncludeModule('mobileapp')) { ShowError("SMOT_MOBILEAPP_NOT_INSTALLED"); return; } if (isset($_REQUEST['id'])) { $orderId = $_REQUEST['id']; } else { return; } $bUserCanViewOrder = CSaleOrder::CanUserViewOrder($orderId, $GLOBALS["USER"]->GetUserGroupArray(), $GLOBALS["USER"]->GetID()); if (!$bUserCanViewOrder) { echo ShowError(GetMessage("SMOT_NO_PERMS2VIEW")); return; } $arResult["ORDER"] = CSaleMobileOrderUtils::getOrderInfoDetail($orderId); $arResult["TYPES"] = array("ORDER_PAY" => GetMessage("SMOT_TR_TYPE_PAYMENT"), "CC_CHARGE_OFF" => GetMessage("SMOT_TR_TYPE_FROM_CARD"), "OUT_CHARGE_OFF" => GetMessage("SMOT_TR_TYPE_INPUT"), "ORDER_UNPAY" => GetMessage("SMOT_TR_TYPE_CANCEL_PAYMENT"), "ORDER_CANCEL_PART" => GetMessage("SMOT_TR_TYPE_CANCEL_SEMIPAYMENT"), "MANUAL" => GetMessage("SMOT_TR_TYPE_HAND"), "DEL_ACCOUNT" => GetMessage("SMOT_TR_TYPE_DELETE"), "AFFILIATE" => GetMessage("SMOT_MOBILEAPP_NOT_INSTALLED")); $dbTransact = CSaleUserTransact::GetList(array("TRANSACT_DATE" => "DESC"), array("ORDER_ID" => $orderId), false, false, array("ID", "USER_ID", "AMOUNT", "CURRENCY", "DEBIT", "ORDER_ID", "DESCRIPTION", "NOTES", "TIMESTAMP_X", "TRANSACT_DATE")); while ($arTransact = $dbTransact->Fetch()) { $arTransact["AMOUNT_PREPARED"] = ($arTransact["DEBIT"] == "Y" ? "+" : "-") . SaleFormatCurrency($arTransact["AMOUNT"], $arTransact["CURRENCY"]); $arResult["TRANSACTS"][] = $arTransact; } $this->IncludeComponentTemplate();
function _Delete($ID) { global $DB; $ID = IntVal($ID); $bSuccess = True; foreach (GetModuleEvents("sale", "OnBeforeOrderDelete", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } $DB->StartTransaction(); if ($bSuccess) { $dbBasket = CSaleBasket::GetList(array(), array("ORDER_ID" => $ID)); while ($arBasket = $dbBasket->Fetch()) { $bSuccess = CSaleBasket::Delete($arBasket["ID"]); if (!$bSuccess) { break; } } } if ($bSuccess) { $dbRecurring = CSaleRecurring::GetList(array(), array("ORDER_ID" => $ID)); while ($arRecurring = $dbRecurring->Fetch()) { $bSuccess = CSaleRecurring::Delete($arRecurring["ID"]); if (!$bSuccess) { break; } } } if ($bSuccess) { $bSuccess = CSaleOrderPropsValue::DeleteByOrder($ID); } if ($bSuccess) { $bSuccess = CSaleOrderTax::DeleteEx($ID); } if ($bSuccess) { $bSuccess = CSaleUserTransact::DeleteByOrder($ID); } if ($bSuccess) { unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]); } if ($bSuccess) { $bSuccess = $DB->Query("DELETE FROM b_sale_order WHERE ID = " . $ID . "", true); } if ($bSuccess) { $DB->Commit(); } else { $DB->Rollback(); } foreach (GetModuleEvents("sale", "OnOrderDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $bSuccess)); } return $bSuccess; }
$arResult['REQUEST_DATE_TO'] = trim($_REQUEST['date_to']); if (CModule::IncludeModule('currency')) { $rsCurrency = CCurrency::GetList($by = 'name', $order = 'desc', LANGUAGE_ID); while ($arCurrency = $rsCurrency->Fetch()) { $arResult['CURRENCY'][$arCurrency['CURRENCY']] = $arCurrency['FULL_NAME']; } if (count($arResult['CURRENCY']) == 1) { $arResult['CURRENCY'] = array(); } } $arFilter = array('USER_ID' => $USER->GetID()); if ($arResult['REQUEST_CURR'] != '') { $arFilter['CURRENCY'] = $arResult['REQUEST_CURR']; } if ($arResult['REQUEST_DATE_FROM'] != '') { $arFilter['>=TRANSACT_DATE'] = $arResult['REQUEST_DATE_FROM']; } if ($arResult['REQUEST_DATE_TO'] != '') { $arFilter['<=TRANSACT_DATE'] = $arResult['REQUEST_DATE_TO']; } $rsTransacts = CSaleUserTransact::GetList(array('TRANSACT_DATE' => 'DESC', 'ID' => 'DESC'), $arFilter, false, false, array('AMOUNT', 'CURRENCY', 'DEBIT', 'DESCRIPTION', 'NOTES', 'ORDER_ID', 'TRANSACT_DATE')); $rsTransacts->NavStart($arParams['PAGE_COUNT']); while ($arTransact = $rsTransacts->GetNext()) { $arTransact['AMOUNT_FORMATED'] = SaleFormatCurrency($arTransact['AMOUNT'], $arTransact['CURRENCY']); $arResult['ITEMS'][] = $arTransact; } $arResult['NAV_STRING'] = $rsTransacts->GetPageNavStringEx($navComponentObject, GetMessage('NP_TITLE'), $arParams['PAGER_TEMPLATE']); if ($arParams['SET_TITLE'] == 'Y') { $APPLICATION->SetTitle(GetMessage('SPT_TITLE')); } $this->IncludeComponentTemplate();
if (strlen($filter_user) > 0) { $arFilter["%USER_USER"] = $filter_user; } if (strlen($filter_currency) > 0) { $arFilter["CURRENCY"] = $filter_currency; } if (strlen($filter_transact_date_from) > 0) { $arFilter[">=TRANSACT_DATE"] = Trim($filter_transact_date_from); } if (strlen($filter_transact_date_to) > 0) { $arFilter["<=TRANSACT_DATE"] = Trim($filter_transact_date_to); } if (IntVal($filter_order_id) > 0) { $arFilter["ORDER_ID"] = IntVal($filter_order_id); } $dbTransactList = CSaleUserTransact::GetList(array($by => $order), $arFilter, false, array("nPageSize" => CAdminResult::GetNavSize($sTableID)), array("*")); $dbTransactList = new CAdminResult($dbTransactList, $sTableID); $dbTransactList->NavStart(); $lAdmin->NavText($dbTransactList->GetNavPrint(GetMessage("STA_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "TRANSACT_DATE", "content" => GetMessage("STA_TRANS_DATE1"), "sort" => "transact_date", "default" => true), array("id" => "USER_ID", "content" => GetMessage('STA_USER1'), "sort" => "user_id", "default" => true), array("id" => "AMOUNT", "content" => GetMessage("STA_SUM"), "sort" => "amount", "default" => true), array("id" => "ORDER_ID", "content" => GetMessage("STA_ORDER"), "sort" => "order_id", "default" => true), array("id" => "TYPE", "content" => GetMessage("STA_TYPE"), "sort" => "description", "default" => true), array("id" => "DESCR", "content" => GetMessage("STA_DESCR"), "sort" => "", "default" => true))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arTransact = $dbTransactList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arTransact); $row->AddField("ID", $f_ID); $row->AddField("TRANSACT_DATE", $f_TRANSACT_DATE); $fieldValue = "[<a href=\"/bitrix/admin/user_edit.php?ID=" . $f_USER_ID . "&lang=" . LANG . "\" title=\"" . GetMessage("STA_USER_INFO") . "\">" . $f_USER_ID . "</a>] "; $fieldValue .= htmlspecialcharsEx($arTransact["USER_NAME"] . (strlen($arTransact["USER_NAME"]) <= 0 || strlen($arTransact["USER_LAST_NAME"]) <= 0 ? "" : " ") . $arTransact["USER_LAST_NAME"]) . "<br>"; $fieldValue .= htmlspecialcharsEx($arTransact["USER_LOGIN"]) . " "; $fieldValue .= "<a href=\"mailto:" . htmlspecialcharsEx($arTransact["USER_EMAIL"]) . "\" title=\"" . GetMessage("STA_MAILTO") . "\">" . htmlspecialcharsEx($arTransact["USER_EMAIL"]) . "</a>"; $row->AddField("USER_ID", $fieldValue); $row->AddField("AMOUNT", ($arTransact["DEBIT"] == "Y" ? "+" : "-") . SaleFormatCurrency($arTransact["AMOUNT"], $arTransact["CURRENCY"]) . "<br><small>" . ($arTransact["DEBIT"] == "Y" ? GetMessage("STA_TO_ACCOUNT") : GetMessage("STA_FROM_ACCOUNT")) . "</small>");
function _Delete($ID) { global $DB, $USER_FIELD_MANAGER; $ID = IntVal($ID); $bSuccess = True; foreach(GetModuleEvents("sale", "OnBeforeOrderDelete", true) as $arEvent) if (ExecuteModuleEventEx($arEvent, Array($ID))===false) return false; $DB->StartTransaction(); if ($bSuccess) { $dbBasket = CSaleBasket::GetList(array(), array("ORDER_ID" => $ID)); while ($arBasket = $dbBasket->Fetch()) { if (CSaleBasketHelper::isSetItem($arBasket)) // set items are deleted when parent is deleted continue; $bSuccess = CSaleBasket::Delete($arBasket["ID"]); if (!$bSuccess) break; } } if ($bSuccess) { $dbRecurring = CSaleRecurring::GetList(array(), array("ORDER_ID" => $ID)); while ($arRecurring = $dbRecurring->Fetch()) { $bSuccess = CSaleRecurring::Delete($arRecurring["ID"]); if (!$bSuccess) break; } } if ($bSuccess) $bSuccess = CSaleOrderPropsValue::DeleteByOrder($ID); if ($bSuccess) $bSuccess = CSaleOrderTax::DeleteEx($ID); if($bSuccess) $bSuccess = CSaleUserTransact::DeleteByOrder($ID); if ($bSuccess) unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_".$ID]); if ($bSuccess) $bSuccess = $DB->Query("DELETE FROM b_sale_order WHERE ID = ".$ID."", true); if ($bSuccess) $USER_FIELD_MANAGER->Delete("ORDER", $ID); if ($bSuccess) $DB->Commit(); else $DB->Rollback(); foreach(GetModuleEvents("sale", "OnOrderDelete", true) as $arEvent) ExecuteModuleEventEx($arEvent, Array($ID, $bSuccess)); return $bSuccess; }
/** * <p>Метод изменяет параметры транзакции в соответствии с параметрами из массива arFields. Метод динамичный.</p> * * * @param int $ID Код изменяемой транзакции. * * @param array $arFields Ассоциативный массив новых параметров новой транзакции с * ключами: <ul> <li> <b> USER_ID</b> - код пользователя;</li> <li> <b> AMOUNT</b> - сумма;</li> * <li> <b> CURRENCY</b> - валюта суммы;</li> <li> <b> DEBIT</b> - "Y", если занесение денег * на счет, и "N", если списание денег со счета;</li> <li> <b> DESCRIPTION</b> - * описание;</li> <li> <b> ORDER_ID</b> - код заказа, если транзакция относится к * заказу;</li> <li> <b> EMPLOYEE_ID</b> - код пользователя, осуществившего * транзакцию;</li> <li> <b> TRANSACT_DATE</b> - дата транзакции.</li> </ul> * * @return int <p>Метод возвращает код измененной транзакции или <i>false</i> в случае * ошибки.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csaleusertransact/csaleusertransact.update.php * @author Bitrix */ public static function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); if ($ID <= 0) { return False; } $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSaleUserTransact::CheckFields("UPDATE", $arFields, $ID)) { return false; } $strUpdate = $DB->PrepareUpdate("b_sale_user_transact", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($strUpdate) > 0) { $strUpdate .= ", "; } $strUpdate .= $key . "=" . $value . " "; } $strSql = "UPDATE b_sale_user_transact SET " . $strUpdate . " WHERE ID = " . $ID . " "; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $ID; }
$filter_transact_date_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"])); $arFilter["<=TRANSACT_DATE"] = $filter_transact_date_to; } else { $filter_transact_date_to = ""; } } $nPageSize = CAdminResult::GetNavSize($sTableID); $dbTransactList = CSaleUserTransact::GetList(array($by => $order), $arFilter, false, array("nPageSize" => $nPageSize), array("*")); $dbTransactList = new CAdminResult($dbTransactList, $sTableID); $dbTransactList->NavStart(); $lAdmin->NavText($dbTransactList->GetNavPrint(GetMessage("STA_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "TRANSACT_DATE", "content" => GetMessage("STA_TRANS_DATE1"), "sort" => "transact_date", "default" => true), array("id" => "USER_ID", "content" => GetMessage('STA_USER1'), "sort" => "user_id", "default" => true), array("id" => "AMOUNT", "content" => GetMessage("STA_SUM"), "sort" => "amount", "default" => true), array("id" => "ORDER_ID", "content" => GetMessage("STA_ORDER"), "sort" => "order_id", "default" => true), array("id" => "TYPE", "content" => GetMessage("STA_TYPE"), "sort" => "description", "default" => true), array("id" => "DESCR", "content" => GetMessage("STA_DESCR"), "sort" => "", "default" => true))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); $LOCAL_TRANS_USER_CACHE = array(); if (in_array("DESCR", $arVisibleColumns)) { $dbTransactList1 = CSaleUserTransact::GetList(array($by => $order), $arFilter, false, array("nPageSize" => $nPageSize), array("ID", "EMPLOYEE_ID")); $arTrUsers = array(); while ($arTransact = $dbTransactList1->Fetch()) { $tmpTrans[] = $arTransact; if (IntVal($arTransact["EMPLOYEE_ID"]) > 0 && !in_array($arTransact["EMPLOYEE_ID"], $arTrUsers)) { $arTrUsers[] = $arTransact["EMPLOYEE_ID"]; } } if (!empty($arTrUsers)) { $dbUser = CUser::GetList($by = "ID", $or = "ASC", array("ID" => implode(' || ', array_keys($arTrUsers))), array("FIELDS" => array("ID", "LOGIN", "NAME", "LAST_NAME"))); while ($arUser = $dbUser->Fetch()) { $LOCAL_TRANS_USER_CACHE[$arUser["ID"]] = htmlspecialcharsEx($arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"] . " (" . $arUser["LOGIN"] . ")"); } } } while ($arTransact = $dbTransactList->NavNext(true, "f_")) {
/** * @param Sale\Order $order * @return int */ public static function getUserBudgetTransForOrder(Sale\Order $order) { $ignoreTypes = array(static::BUDGET_TYPE_ORDER_PAY); $sumTrans = 0; if ($order->getId() > 0) { $resTrans = \CSaleUserTransact::GetList(array("TRANSACT_DATE" => "DESC"), array("ORDER_ID" => $order->getId()), false, false, array("AMOUNT", "CURRENCY", "DEBIT")); while ($transactDat = $resTrans->Fetch()) { if ($transactDat['DEBIT'] == "Y") { $sumTrans += $transactDat['AMOUNT']; } else { $sumTrans -= $transactDat['AMOUNT']; } } } if ($userBudgetPool = static::getUserBudgetPool($order->getUserId())) { foreach ($userBudgetPool->get() as $userBudgetDat) { if (in_array($userBudgetDat['TYPE'], $ignoreTypes)) { continue; } $sumTrans += $userBudgetDat['SUM']; } } return $sumTrans; }
/** * <p>Метод изменяет сумму на счете пользователя с кодом userID. Метод динамичный.</p> * * * @param int $userID Код пользователя. </h * * @param double $sum Величина изменения суммы на счете. Для увеличения суммы на счете * величина должна быть со знаком "+" или без знака, а для уменьшения - * со знаком "-". * * @param string $currency Валюта суммы. * * @param $string Описание причины изменения суммы. * * @param descriptio $n = ""[ Код заказа, если изменение суммы относится к заказу. * * @param int $orderID = 0[ Произвольное текстовое описание. * * @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; }
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; }
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("SAA_NAV"))); $lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "USER_ID", "content" => GetMessage("SAA_USER1"), "sort" => "user_id", "default" => true), array("id" => "CURRENT_BUDGET", "content" => GetMessage('SAA_SUM'), "sort" => "current_budget", "default" => true), array("id" => "LOCKED", "content" => GetMessage("SAAN_LOCK_ACCT"), "sort" => "locked", "default" => true), array("id" => "TRANSACT", "content" => GetMessage("SAAN_TRANSACT"), "sort" => "", "default" => true))); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arAccount = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arAccount, "sale_account_edit.php?ID=" . $f_ID . "&lang=" . LANG . GetFilterParams("filter_"), GetMessage("SAA_UPDATE_ALT")); $row->AddField("ID", $f_ID); $fieldValue = "[<a href=\"/bitrix/admin/user_edit.php?ID=" . $f_USER_ID . "&lang=" . LANG . "\" title=\"" . GetMessage("SAA_USER_INFO") . "\">" . $f_USER_ID . "</a>] "; $fieldValue .= htmlspecialcharsEx($arAccount["USER_NAME"] . (strlen($arAccount["USER_NAME"]) <= 0 || strlen($arAccount["USER_LAST_NAME"]) <= 0 ? "" : " ") . $arAccount["USER_LAST_NAME"]) . "<br>"; $fieldValue .= htmlspecialcharsEx($arAccount["USER_LOGIN"]) . " "; $fieldValue .= "<a href=\"mailto:" . htmlspecialcharsEx($arAccount["USER_EMAIL"]) . "\" title=\"" . GetMessage("SAA_MAILTO") . "\">" . htmlspecialcharsEx($arAccount["USER_EMAIL"]) . "</a>"; $row->AddField("USER_ID", $fieldValue); $row->AddField("CURRENT_BUDGET", SaleFormatCurrency($arAccount["CURRENT_BUDGET"], $arAccount["CURRENCY"])); $row->AddField("LOCKED", $arAccount["LOCKED"] != "Y" ? GetMessage("SAA_NO") : GetMessage("SAA_YES")); $fieldValue = ""; if (in_array("TRANSACT", $arVisibleColumns)) { $numTrans = CSaleUserTransact::GetList(array(), array("USER_ID" => $f_USER_ID, "CURRENCY" => $f_CURRENCY), array()); if (IntVal($numTrans) > 0) { $fieldValue .= "<a href=\"sale_transact_admin.php?lang=" . LANG . "&filter_user_id=" . $f_USER_ID . "&filter_currency=" . $f_CURRENCY . "&set_filter=Y\" title=\"" . GetMessage("SAA_TRANS_TITLE") . "\">"; $fieldValue .= IntVal($numTrans); $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")); }