Advertisement
Guest User

Untitled

a guest
Dec 24th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.54 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import pymssql
  4. import sys
  5. import locale
  6. reload(sys)
  7. sys.setdefaultencoding('utf-8')
  8. server = "ip"
  9. user = "sa"
  10. password = "password"
  11. database = "base"
  12.  
  13.  
  14. def get_sum_for_terminals(acceptor_id, cursor):
  15. banknotes = ["5000", "2000", "1000", "500", "200", "100", "50"]
  16. total_sum = 0
  17. for banknote_value in banknotes:
  18. cursor.execute("SELECT (denomination * count) FROM acceptorsupplies WHERE id = (SELECT MAX(id) FROM acceptorsupplies WHERE denomination = '%s.000000' AND Acceptorid='%s' )" % (banknote_value, acceptor_id))
  19. banknote_sum = cursor.fetchall()
  20. if banknote_sum:
  21. total_sum += int(banknote_sum[0][0])
  22. return total_sum
  23.  
  24. def get_acceptor_id(terminal_id, cursor):
  25. cursor.execute("SELECT id FROM acceptor WHERE terminalid = '%s'" % terminal_id)
  26. acceptor_id = cursor.fetchall()[0][0]
  27. return acceptor_id
  28.  
  29. def get_cards_in(terminal_id, cursor):
  30. cursor.execute('''SELECT cardin.count - cardout.dispensecount - cardout.rejectcount
  31. FROM carddispensersuppliesin as cardin
  32. LEFT JOIN CardDispenserSuppliesOut as cardout on cardin.TerminalId = cardout.TerminalId
  33. WHERE cardin.id = (SELECT max(id) FROM carddispensersuppliesin WHERE terminalid = '%s')
  34. AND cardout.id = (SELECT max(id) FROM CardDispenserSuppliesOut WHERE terminalid = '%s')''' % (terminal_id, terminal_id))
  35. cards_in = cursor.fetchall()[0][0]
  36. return cards_in
  37.  
  38. def get_cards_out(terminal_id, cursor):
  39. cursor.execute("SELECT dispensecount FROM carddispensersuppliesout WHERE id = (SELECT max(id) FROM carddispensersuppliesout WHERE terminalid = '%s')" % terminal_id)
  40. cards_out = cursor.fetchall()[0][0]
  41. return cards_out
  42.  
  43. def get_cards_bad(terminal_id, cursor):
  44. cursor.execute("SELECT rejectcount FROM carddispensersuppliesout WHERE id = (SELECT max(id) FROM carddispensersuppliesout WHERE terminalid = '%s')" % terminal_id)
  45. cards_bad = cursor.fetchall()[0][0]
  46. return cards_bad
  47.  
  48. def get_online_status(terminal_id, cursor):
  49. cursor.execute("SELECT count(*) FROM TerminalOnline WHERE terminalid = '%s' and EndTime > dateadd(minute,-181, getdate())" % terminal_id)
  50. online_status = cursor.fetchall()[0][0]
  51. return online_status
  52. def stat():
  53. conn = pymssql.connect(server, user, password, database)
  54. cursor = conn.cursor()
  55. cursor.execute("SELECT id FROM terminal WHERE isenabled = 'True' AND isremoved = 'False'")
  56. terminals = cursor.fetchall()
  57.  
  58. terminal_names = {1: 'Term1', 2: 'Term2', 6: 'Term3', 7: 'Term4', 9: 'Term5', 10: 'Term6', 11: 'Term7', 12: 'Term8', 13: 'Term9', 14: 'Term10', 15: 'Term11', 16: 'Term12', 17: 'Term13'}
  59. term_id_acc_id = {}
  60. for terminal_id in terminals:
  61. term_id_acc_id[terminal_id] = [get_acceptor_id(terminal_id, cursor)]
  62.  
  63. acc_id_sum = {}
  64. for acceptor_id in term_id_acc_id.values():
  65. acc_id_sum[acceptor_id[0]] = [get_sum_for_terminals(acceptor_id[0], cursor)]
  66.  
  67. term_id_cards_in = {}
  68. for terminal_id in terminals:
  69. term_id_cards_in[terminal_id] = [get_cards_in(terminal_id[0], cursor)]
  70.  
  71. term_id_cards_out = {}
  72. for terminal_id in terminals:
  73. term_id_cards_out[terminal_id] = [get_cards_out(terminal_id, cursor)]
  74.  
  75. term_id_cards_bad = {}
  76. for terminal_id in terminals:
  77. term_id_cards_bad[terminal_id] = [get_cards_bad(terminal_id, cursor)]
  78.  
  79. total_sum = 0
  80. for acc_id, sum in acc_id_sum.items():
  81. total_sum += sum[0]
  82.  
  83. online_status = {}
  84. for terminal_id in terminals:
  85. if int(get_online_status(terminal_id, cursor)) == 0:
  86. if terminal_names.has_key(terminal_id[0]):
  87. term_name = terminal_names[terminal_id[0]]
  88. online_status[term_name] = [get_online_status(terminal_id, cursor)]
  89.  
  90. total_shit = []
  91. term_id_sum = {}
  92. for term_id, acc_id in term_id_acc_id.items():
  93. for acc_id_2, sum in acc_id_sum.items():
  94. if acc_id[0] == acc_id_2:
  95. for term_id_2, cards_in in term_id_cards_in.items():
  96. if term_id_2 == term_id:
  97. for term_id_3, cards_out in term_id_cards_out.items():
  98. if term_id_3 == term_id:
  99. for term_id_4,cards_bad in term_id_cards_bad.items():
  100. if term_id_4 == term_id:
  101. if terminal_names.has_key(term_id[0]):
  102. term_name = terminal_names[term_id[0]]
  103. #total_shit.append([term_name, sum[0], '11', cards_out[0],cards_bad[0]])
  104. total_shit.append([term_name, sum[0], cards_in[0], cards_out[0],cards_bad[0]])
  105. cursor.close()
  106. return total_shit, total_sum, online_status
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement