api.agents.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /*
  3. * Backport of existing contragent mechanics
  4. */
  5. function zbs_AgentAssignedGetDataFast($login, $address) {
  6. $allassigns = zbs_AgentAssignGetAllData();
  7. $allassignsStrict = zbs_AgentAssignStrictGetAllData();
  8. $assigned_agent = zbs_AgentAssignCheckLoginFast($login, $allassigns, $address, $allassignsStrict);
  9. $result = zbs_ContrAhentGetData($assigned_agent);
  10. return($result);
  11. }
  12. function zbs_AgentAssignGetAllData() {
  13. $query = "SELECT * from `ahenassign`";
  14. $allassigns = simple_queryall($query);
  15. return($allassigns);
  16. }
  17. function zbs_AgentAssignStrictGetAllData() {
  18. $result = array();
  19. $query = "SELECT * from `ahenassignstrict`";
  20. $all = simple_queryall($query);
  21. if (!empty($all)) {
  22. foreach ($all as $io => $each) {
  23. $result[$each['login']] = $each['agentid'];
  24. }
  25. }
  26. return ($result);
  27. }
  28. function zbs_AgentAssignCheckLoginFast($login, $allassigns, $address, $allassignsstrict) {
  29. global $us_config;
  30. $alter_cfg = $us_config;
  31. $result = array();
  32. //быстренько проверяем нету ли принудительной привязки по логину
  33. if (isset($allassignsstrict[$login])) {
  34. $result = $allassignsstrict[$login];
  35. return ($result);
  36. }
  37. // если пользователь куда-то заселен
  38. if (!empty($address)) {
  39. // возвращаем дефолтного агента если присваиваний нет вообще
  40. if (empty($allassigns)) {
  41. $result = $alter_cfg['DEFAULT_ASSIGN_AGENT'];
  42. } else {
  43. //если какие-то присваивалки есть
  44. $useraddress = $address;
  45. // проверяем для каждой присваивалки попадает ли она под нашего абонента
  46. foreach ($allassigns as $io => $eachassign) {
  47. if (strpos($useraddress, $eachassign['streetname']) !== false) {
  48. $result = $eachassign['ahenid'];
  49. break;
  50. } else {
  51. // и если не нашли - возвращаем умолчательного
  52. $result = $alter_cfg['DEFAULT_ASSIGN_AGENT'];
  53. }
  54. }
  55. }
  56. } else {
  57. //если пользователь бомжует - возвращаем тоже умолчательного
  58. $result = $alter_cfg['DEFAULT_ASSIGN_AGENT'];
  59. }
  60. // если присваивание выключено возвращаем умолчального
  61. if (!$alter_cfg['AGENTS_ASSIGN']) {
  62. $result = $alter_cfg['DEFAULT_ASSIGN_AGENT'];
  63. }
  64. return($result);
  65. }
  66. function zbs_ContrAhentGetData($id) {
  67. $id=vf($id);
  68. $query="SELECT * from `contrahens` WHERE `id`='".$id."'";
  69. $result=simple_query($query);
  70. return($result);
  71. }
  72. ?>