Advertisement
webmanix

relatorio cigarro atualizado

Sep 25th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. import psycopg2
  2. import termcolor
  3. import sys
  4.  
  5. if len(sys.argv) > 1:
  6. option = sys.argv[1]
  7. else:
  8. print("1 - Resumo\n2 - Cigarros em falta/acabando\n3 - Reposicao")
  9. option = raw_input()
  10.  
  11. conn = psycopg2.connect('dbname=cigarro host=10.40.140.25 user=postgres password=postgres')
  12. cur = conn.cursor()
  13.  
  14. connmatriz = psycopg2.connect('dbname=matrizpitstop host=10.40.140.25 user=postgres password=postgres')
  15. curmatriz = connmatriz.cursor()
  16.  
  17. curmatriz.execute("SELECT codigo_barra, nome, preco_unit, grid FROM produto WHERE grupo = 12912 "
  18. " order by nome")
  19.  
  20. table_produto = {}
  21.  
  22. alternate = True
  23.  
  24. for a in curmatriz:
  25. table_produto[a[0]] = a[1:]
  26.  
  27. cur.execute('SELECT produto, estoque, quant, '
  28. ' last_turn, '
  29. ' (select empresa from estoque where estoque = id),'
  30. ' (select nome from estoque where estoque = id) '
  31. 'FROM saldos '
  32. 'WHERE estoque > 99')
  33.  
  34. table_saldos = {}
  35.  
  36. for a in cur:
  37. table_saldos[a[0]] = a[1:]
  38.  
  39. for produto in table_saldos.items():
  40. curmatriz.execute("SELECT sum(quantidade) FROM lancto WHERE "
  41. " hora > '%s' and operacao in ('C', 'V', 'DF') and "
  42. " produto = %d "
  43. " AND empresa = %d" %
  44. (produto[1][2], table_produto[produto[0]][2], table_saldos[produto[0]][3]))
  45.  
  46. lbuffer = curmatriz.fetchone()
  47.  
  48. if lbuffer is None:
  49. venda = 0
  50. else:
  51. venda = lbuffer[0]
  52.  
  53. if venda is None:
  54. venda = 0
  55.  
  56. saldo = produto[1][1] - venda
  57.  
  58. if produto[0] in table_produto:
  59. nome_produto = table_produto[produto[0]][0]
  60. else:
  61. nome_produto = "Produto invalido"
  62.  
  63. outp = "[%s] %s %s\tAnterior = %d\tVendas = %d\tAtual = %d" % \
  64. (table_saldos[produto[0]][4], produto[0].ljust(8), nome_produto.ljust(55), produto[1][1], venda, saldo)
  65.  
  66. if option == '1':
  67. if saldo < 5:
  68. outp = termcolor.colored(outp, 'red')
  69.  
  70. print(outp)
  71.  
  72. if option == '2':
  73. if saldo < 10:
  74. print(outp)
  75.  
  76.  
  77. if option == '3':
  78. curmatriz.execute("SELECT sum(quantidade) FROM lancto WHERE "
  79. " produto = (select grid from produto where codigo_barra = '%s') "
  80. " AND data > current_timestamp - interval '7' day "
  81. " AND operacao in ('C', 'V', 'DF') "
  82. " AND empresa = %d" % (produto[0], table_saldos[produto[0]][3]))
  83.  
  84. lbuffer = curmatriz.fetchone()
  85.  
  86. if lbuffer[0] is None:
  87. media = 0
  88.  
  89. if saldo > 5:
  90. continue
  91. else:
  92. media = lbuffer[0] / 7
  93.  
  94. if saldo > media:
  95. continue
  96.  
  97. if alternate:
  98. outp = termcolor.colored(outp, 'white', attrs=['dark'])
  99. alternate = not alternate
  100. else:
  101. alternate = not alternate
  102.  
  103. cur.execute("SELECT quant FROM saldos WHERE "
  104. " produto = '%s' and estoque = %d" %
  105. (produto[0], table_saldos[produto[0]][0] / 100))
  106.  
  107. lbuffer = cur.fetchone()
  108.  
  109. if lbuffer is not None:
  110. outp += termcolor.colored("/%d" % lbuffer[0], 'yellow')
  111. else:
  112. outp += termcolor.colored("/?", 'red')
  113.  
  114. outp += termcolor.colored("\t%.1f/dia" % (media), 'green')
  115.  
  116. print(outp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement