PageRenderTime 61ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 1ms

/bitrix/modules/sale/admin/account_edit.php

https://bitbucket.org/ayerspro/uchef
PHP | 310 lines | 272 code | 38 blank | 0 comment | 61 complexity | fb414006e3e38ae273e424245ca54dda MD5 | raw file
Possible License(s): Apache-2.0
  1. <?
  2. use Bitrix\Main\Loader;
  3. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  4. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");
  5. $saleModulePermissions = $APPLICATION->GetGroupRight("sale");
  6. if ($saleModulePermissions=="D")
  7. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  8. Loader::includeModule('sale');
  9. IncludeModuleLangFile(__FILE__);
  10. ClearVars();
  11. $errorMessage = "";
  12. $bVarsFromForm = false;
  13. $ID = IntVal($ID);
  14. if ($_SERVER['REQUEST_METHOD']=="POST" && strlen($Update)>0 && $saleModulePermissions>="U" && check_bitrix_sessid())
  15. {
  16. if ($ID <= 0)
  17. {
  18. if ($saleModulePermissions < "W")
  19. $errorMessage .= GetMessage("SAE_NO_PERMS2ADD").".<br>";
  20. $USER_ID = IntVal($USER_ID);
  21. if ($USER_ID <= 0)
  22. $errorMessage .= GetMessage("SAE_EMPTY_USER").".<br>";
  23. $CURRENCY = Trim($CURRENCY);
  24. if (strlen($CURRENCY) <= 0)
  25. $errorMessage .= GetMessage("SAE_EMPTY_CURRENCY").".<br>";
  26. if ($errorMessage == '')
  27. {
  28. $arFilter = array(
  29. "USER_ID" => $USER_ID,
  30. "CURRENCY" => $CURRENCY
  31. );
  32. $num = CSaleUserAccount::GetList(
  33. array(),
  34. $arFilter,
  35. array()
  36. );
  37. if (IntVal($num) > 0)
  38. $errorMessage .= str_replace("#USER#", $USER_ID, str_replace("#CURRENCY#", $CURRENCY, GetMessage("SAE_ALREADY_EXISTS"))).".<br>";
  39. }
  40. if ($errorMessage == '')
  41. {
  42. $OLD_BUDGET = 0.0;
  43. }
  44. }
  45. else
  46. {
  47. if (!($arOldUserAccount = CSaleUserAccount::GetByID($ID)))
  48. $errorMessage .= str_replace("#ID#", $ID, GetMessage("SAE_NO_ACCOUNT")).".<br>";
  49. if ($errorMessage == '')
  50. {
  51. $USER_ID = $arOldUserAccount["USER_ID"];
  52. $CURRENCY = $arOldUserAccount["CURRENCY"];
  53. $OLD_BUDGET = DoubleVal($arOldUserAccount["CURRENT_BUDGET"]);
  54. }
  55. }
  56. $currentLocked = "";
  57. if ($errorMessage == '')
  58. {
  59. $dbUserAccount = CSaleUserAccount::GetList(
  60. array(),
  61. array("USER_ID" => $USER_ID, "CURRENCY" => $CURRENCY)
  62. );
  63. $arUserAccount = $dbUserAccount->Fetch();
  64. if (is_array($arUserAccount))
  65. $currentLocked = $arUserAccount["LOCKED"];
  66. $allowUpdate = false;
  67. $CURRENT_BUDGET = str_replace(",", ".", $CURRENT_BUDGET);
  68. $CURRENT_BUDGET = (float)$CURRENT_BUDGET;
  69. if ($ID > 0)
  70. {
  71. $updateSum = $CURRENT_BUDGET - $OLD_BUDGET;
  72. $allowUpdate = ($updateSum != 0);
  73. }
  74. else
  75. {
  76. $updateSum = $CURRENT_BUDGET;
  77. $allowUpdate = true;
  78. }
  79. if ($allowUpdate)
  80. {
  81. if (!CSaleUserAccount::UpdateAccount($USER_ID, $updateSum, $CURRENCY, "MANUAL", 0, $CHANGE_REASON))
  82. {
  83. if ($ex = $APPLICATION->GetException())
  84. $errorMessage .= $ex->GetString().".<br>";
  85. else
  86. $errorMessage .= GetMessage("SAE_ERROR_SAVING").".<br>";
  87. }
  88. }
  89. }
  90. if ($errorMessage == '' AND $currentLocked != "")
  91. {
  92. if($_POST["UNLOCK"] == "Y")
  93. CSaleUserAccount::UnLock($USER_ID, $CURRENCY);
  94. if($_POST["UNLOCK"] == "N" OR ($currentLocked == "Y" AND !isset($_POST["UNLOCK"])))
  95. CSaleUserAccount::Lock($USER_ID, $CURRENCY);
  96. }
  97. if ($errorMessage == '')
  98. {
  99. $arUserAccount = CSaleUserAccount::GetByUserID($USER_ID, $CURRENCY);
  100. if (DoubleVal($arUserAccount["CURRENT_BUDGET"]) != $CURRENT_BUDGET)
  101. $errorMessage .= GetMessage("SAE_ERROR_SAVING_SUM").".<br>";
  102. }
  103. if ($errorMessage == '')
  104. {
  105. $ID = IntVal($arUserAccount["ID"]);
  106. $arFields = array(
  107. "NOTES" => ((strlen($NOTES) > 0) ? $NOTES : False)
  108. );
  109. if (!CSaleUserAccount::Update($ID, $arFields))
  110. {
  111. if ($ex = $APPLICATION->GetException())
  112. $errorMessage .= $ex->GetString().".<br>";
  113. else
  114. $errorMessage .= GetMessage("SAE_ERROR_SAVING_COMMENT").".<br>";
  115. }
  116. }
  117. if ($errorMessage == '')
  118. {
  119. if (strlen($apply) <= 0)
  120. LocalRedirect("/bitrix/admin/sale_account_admin.php?lang=".LANGUAGE_ID.GetFilterParams("filter_", false));
  121. }
  122. else
  123. {
  124. $bVarsFromForm = true;
  125. }
  126. }
  127. if ($ID > 0)
  128. $APPLICATION->SetTitle(GetMessage("SAE_UPDATING"));
  129. else
  130. $APPLICATION->SetTitle(GetMessage("SAE_ADDING"));
  131. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  132. $dbAccount = CSaleUserAccount::GetList(
  133. array(),
  134. array("ID" => $ID),
  135. false,
  136. false,
  137. array("ID", "USER_ID", "CURRENT_BUDGET", "CURRENCY", "LOCKED", "NOTES", "TIMESTAMP_X", "DATE_LOCKED", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")
  138. );
  139. if (!$dbAccount->ExtractFields("str_"))
  140. {
  141. if ($saleModulePermissions < "W")
  142. $errorMessage .= GetMessage("SAE_NO_PERMS2ADD").".<br>";
  143. $ID = 0;
  144. }
  145. if ($bVarsFromForm)
  146. $DB->InitTableVarsForEdit("b_sale_user_account", "", "str_");
  147. $aMenu = array(
  148. array(
  149. "TEXT" => GetMessage("SAEN_2FLIST"),
  150. "LINK" => "/bitrix/admin/sale_account_admin.php?lang=".LANGUAGE_ID.GetFilterParams("filter_"),
  151. "ICON" => "btn_list",
  152. "TITLE" => GetMessage("SAEN_2FLIST_TITLE"),
  153. )
  154. );
  155. if ($ID > 0 && $saleModulePermissions >= "U")
  156. {
  157. $aMenu[] = array("SEPARATOR" => "Y");
  158. $aMenu[] = array(
  159. "TEXT" => GetMessage("SAEN_NEW_ACCOUNT"),
  160. "LINK" => "/bitrix/admin/sale_account_edit.php?lang=".LANGUAGE_ID.GetFilterParams("filter_"),
  161. "ICON" => "btn_new",
  162. "TITLE" => GetMessage("SAEN_NEW_ACCOUNT_TITLE"),
  163. );
  164. if ($saleModulePermissions >= "W")
  165. {
  166. $aMenu[] = array(
  167. "TEXT" => GetMessage("SAEN_DELETE_ACCOUNT"),
  168. "LINK" => "javascript:if(confirm('".GetMessage("SAEN_DELETE_ACCOUNT_CONFIRM")."')) window.location='/bitrix/admin/sale_account_admin.php?ID=".$ID."&action=delete&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."#tb';",
  169. "WARNING" => "Y",
  170. "ICON" => "btn_delete"
  171. );
  172. }
  173. }
  174. $context = new CAdminContextMenu($aMenu);
  175. $context->Show();
  176. if ($errorMessage != '')
  177. CAdminMessage::ShowMessage(Array("DETAILS"=>$errorMessage, "TYPE"=>"ERROR", "MESSAGE"=>GetMessage("SAE_ERROR"), "HTML"=>true));
  178. ?>
  179. <form method="POST" action="<?echo $APPLICATION->GetCurPage()?>?ID=<?=$ID?>&lang=<?=LANGUAGE_ID ?>" name="form1">
  180. <?echo GetFilterHiddens("filter_");?>
  181. <input type="hidden" name="Update" value="Y">
  182. <?=bitrix_sessid_post()?><?
  183. $aTabs = array(
  184. array("DIV" => "edit1", "TAB" => GetMessage("SAEN_TAB_ACCOUNT"), "ICON" => "sale", "TITLE" => GetMessage("SAEN_TAB_ACCOUNT_DESCR"))
  185. );
  186. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  187. $tabControl->Begin();
  188. $tabControl->BeginNextTab();
  189. if ($ID > 0):?>
  190. <tr>
  191. <td width="40%">ID:</td>
  192. <td width="60%"><?=$ID?></td>
  193. </tr>
  194. <tr>
  195. <td><?echo GetMessage("SAE_TIMESTAMP")?></td>
  196. <td><?=$str_TIMESTAMP_X?></td>
  197. </tr>
  198. <?endif;?>
  199. <tr class="adm-detail-required-field">
  200. <td width="40%"><?echo GetMessage("SAE_USER1")?></td>
  201. <td width="60%">
  202. <?if ($ID > 0):?>
  203. <input type="hidden" name="USER_ID" value="<?=$str_USER_ID?>">
  204. [<a title="<?echo GetMessage("SAE_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?=$str_USER_ID?>"><?=$str_USER_ID?></a>] (<?=$str_USER_LOGIN?>) <?=$str_USER_NAME?> <?=$str_USER_LAST_NAME?>
  205. <?else:?>
  206. <?echo FindUserID("USER_ID", $str_USER_ID);?>
  207. <?endif;?>
  208. </td>
  209. </tr>
  210. <tr class="adm-detail-required-field">
  211. <td><?echo GetMessage("SAE_SUM")?></td>
  212. <td>
  213. <input type="text" name="CURRENT_BUDGET" size="10" maxlength="20" value="<?= roundEx($str_CURRENT_BUDGET, SALE_VALUE_PRECISION) ?>">
  214. <?
  215. if ($ID > 0)
  216. {
  217. ?>
  218. <input type="hidden" name="CURRENCY" value="<?= $str_CURRENCY ?>">
  219. <?= $str_CURRENCY ?>
  220. <?
  221. }
  222. else
  223. {
  224. echo CCurrency::SelectBox("CURRENCY", $str_CURRENCY, "", false, "", "");
  225. }
  226. ?>
  227. </td>
  228. </tr>
  229. <?if ($ID > 0 && $str_LOCKED=="Y"):?>
  230. <tr>
  231. <td><?echo GetMessage("SAE_UNLOCK")?></td>
  232. <td>
  233. <input type="checkbox" name="UNLOCK" value="Y"<?if ($str_LOCKED != "Y") echo " disabled"?>>
  234. <?
  235. if ($str_LOCKED=="Y")
  236. echo GetMessage("SAE_LOCKED").$str_DATE_LOCKED.")";
  237. ?>
  238. </td>
  239. </tr>
  240. <?endif;
  241. if ($ID > 0 && $str_LOCKED=="N"):?>
  242. <tr>
  243. <td><?echo GetMessage("SAE_LOCK")?></td>
  244. <td>
  245. <input type="checkbox" name="UNLOCK" value="N"<?if ($str_LOCKED != "N") echo " disabled"?>>
  246. </td>
  247. </tr>
  248. <?endif;?>
  249. <tr>
  250. <td valign="top"><?echo GetMessage("SAE_NOTES")?></td>
  251. <td valign="top">
  252. <textarea name="NOTES" rows="3" cols="40"><?= $str_NOTES ?></textarea>
  253. </td>
  254. </tr>
  255. <tr>
  256. <td valign="top"><?echo GetMessage("SAE_OSN")?><br><small><?echo GetMessage("SAE_OSN_NOTE")?></small></td>
  257. <td valign="top">
  258. <textarea name="CHANGE_REASON" rows="3" cols="40"><?= htmlspecialcharsEx($CHANGE_REASON) ?></textarea>
  259. </td>
  260. </tr>
  261. <?
  262. $tabControl->EndTab();
  263. $tabControl->Buttons(
  264. array(
  265. "disabled" => ($saleModulePermissions < "U"),
  266. "back_url" => "/bitrix/admin/sale_account_admin.php?lang=".LANGUAGE_ID.GetFilterParams("filter_")
  267. )
  268. );
  269. $tabControl->End();
  270. ?>
  271. </form>
  272. <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");