Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. # -*- encoding:utf-8 -*-
  2. import sys
  3. import os.path
  4. import fdb
  5. import shutil
  6. import urllib2
  7. import os
  8. import json
  9. import time
  10. from datetime import datetime
  11. from PyQt4 import QtGui, QtCore
  12. from configuracao import Ui_configuracao
  13. from terminal import Ui_Terminal
  14. from PyQt4.QtCore import *
  15. from PyQt4.QtGui import *
  16.  
  17. try:
  18. _fromUtf8 = QtCore.QString.fromUtf8
  19. except AttributeError:
  20. def _fromUtf8(s):
  21. return s
  22. class Terminal(QtGui.QMainWindow):
  23. def __init__(self):
  24. QtGui.QMainWindow.__init__(self)
  25. self.ui = Ui_Terminal()
  26. self.ui.setupUi(self)
  27. self.ui.pushButton.clicked.connect(self.abrirConfig)
  28. self.ui.pushButton_2.clicked.connect(self.tt)
  29.  
  30.  
  31. def tt(self):
  32. if(os.path.isfile('configuracao.txt')):
  33. f = open("configuracao.txt");
  34. ler = f.readlines()
  35. self.ApiKey = ler[0].replace('\n','')
  36. self.ApiUrl = ler[1].replace('\n','')
  37. self.CaminhoBD = ler[2].replace('\n','')
  38. self.PastaTemp = ler[4].replace('\n','')
  39. self.NomeBD = ler[3].replace('\n','')
  40. if(os.path.isfile(self.CaminhoBD+'/'+self.NomeBD)):
  41. if(os.path.isfile(self.PastaTemp+'/'+self.NomeBD)):
  42. os.remove(self.PastaTemp+'/'+self.NomeBD)
  43. self.ui.terminalText.setText("Copiando BD")
  44. try:
  45. shutil.copy(self.CaminhoBD+'/'+self.NomeBD,self.PastaTemp)
  46. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Copia Finalizada")))
  47. except:
  48. self.ui.terminalText.setText(_fromUtf8("Erro ao copiar banco de dados"))
  49.  
  50. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Conexão com BD")))
  51. self.con = fdb.connect(dsn=self.PastaTemp+'/'+self.NomeBD, user='sysdba', password='masterkey')
  52. self.cur = self.con.cursor()
  53. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Conexão Feita")))
  54. self.atualizar()
  55. else:
  56. self.ui.terminalText.setText(_fromUtf8("Banco de dados não existe"))
  57. else:
  58. self.ui.terminalText.setText(_fromUtf8("As configurações ainda não foram feitas, por favor faze-las"))
  59.  
  60. def atualizar(self,continuar = None):
  61. now = datetime.now()
  62.  
  63. if(os.path.isfile('primeiro.txt')):
  64. data = str(now.day)+'.'+str(now.month)+'.'+str(now.year)
  65. if(continuar == None):
  66. self.cur.execute("select codprod,dt_movimento FROM mvgeral WHERE dt_movimento >= '"+data+"' ORDER BY codprod ASC")
  67. else:
  68. self.cur.execute("select codprod,dt_movimento FROM mvgeral WHERE codprod >= '"+continuar+"' and dt_movimento >= '"+data+"' ORDER BY codprod ASC")
  69. todos = self.cur.fetchall()
  70. x = 0;
  71. lista = []
  72. for item in todos:
  73. if(item[0] not in lista):
  74. if(x == 0):
  75. self.ui.terminalText.setPlainText("")
  76.  
  77. self.cur.execute("SELECT codprod,estoque FROM compprod WHERE codprod = '"+item[0]+"'")
  78. i = self.cur.fetchall()
  79. self.cur.execute("select codprod,descricao FROM produto WHERE codprod = '"+item[0]+"'")
  80. i2 = self.cur.fetchall()
  81. nome = i2[0][1]
  82. nome = nome.replace(" ","+")
  83. nome = nome.replace("/","")
  84. nome = nome.replace("?","")
  85. nome = nome.replace("%","porcent")
  86. if(nome != '' and item[0] is not None and len(i)> 0):
  87. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Atualizando "+str(item[0])+" - "+str(i2[0][1]))))
  88. try:
  89. ur = urllib2.urlopen(self.ApiUrl+'api/'+str(self.ApiKey)+'/'+str(item[0])+'/'+str(nome)+'/'+str(i[0][1])+'/UN/S').read()
  90. lista.append(item[0])
  91. except:
  92. self.atualizar(item[0])
  93. if(x < 20):
  94. x = x+1
  95. else:
  96. x = 0
  97. os.remove(self.PastaTemp+'/'+self.NomeBD)
  98. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Atualizacão Realizada com sucesso")))
  99. else:
  100. if(continuar == None):
  101. self.cur.execute("select codprod,descricao FROM produto ORDER BY codprod ASC")
  102. else:
  103. self.cur.execute("select codprod,descricao FROM produto WHERE codprod >= "+continuar+" ORDER BY codprod ASC")
  104. todos = self.cur.fetchall()
  105. x = 0
  106. for item in todos:
  107. if(x == 0):
  108. self.ui.terminalText.setText('')
  109. self.cur.execute("select codprod,estoque FROM compprod WHERE codprod = '"+item[0]+"'")
  110. i = self.cur.fetchall()
  111. nome = item[1]
  112. self.ui.terminalText.setText(item[0])
  113. if(nome != '' and item[0] is not None and len(i)> 0):
  114. nome = nome.replace(" ","+")
  115. nome = nome.replace("/","")
  116. nome = nome.replace("?","")
  117. nome = nome.replace("%","porcent")
  118. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Atualizando "+str(item[0])+" - "+str(item[1]))))
  119. try:
  120. ur = urllib2.urlopen(self.ApiUrl+'api/'+str(self.ApiKey)+'/'+str(item[0])+'/'+str(nome)+'/'+str(i[0][1])+'/UN/S').read()
  121. except:
  122. self.atualizar(item[0])
  123. if(x < 20):
  124. x = x+1
  125. else:
  126. x = 0
  127. arq = open('primeiro.txt','w')
  128. arq.write("true")
  129. arq.close()
  130. os.remove(self.PastaTemp+'/'+self.NomeBD)
  131. os.system('cls' if os.name == 'nt' else 'clear')
  132. self.ui.terminalText.setText(_fromUtf8(("Atualização Realizada com sucesso")))
  133. self.ui.terminalText.setText(self.ui.terminalText.text()+"\n"+_fromUtf8(("Proxima atualização em 2 horas")))
  134. time.sleep(7200)
  135. self.atualizar()
  136.  
  137. def abrirConfig(self):
  138. programa=ConfiguracaoTela()
  139. programa.show()
  140. programa.exec_()
  141.  
  142.  
  143. class ConfiguracaoTela(QtGui.QMainWindow):
  144. def __init__(self, parent=None):
  145. super(ConfiguracaoTela, self).__init__(parent)
  146. self.ui = Ui_configuracao()
  147. self.ui.setupUi(self)
  148. if(os.path.isfile('configuracao.txt')):
  149. f = open("configuracao.txt")
  150. ler = f.readlines()
  151. if(len(ler) == 5):
  152. self.ui.apikey.setText(ler[0].replace('\n',''))
  153. self.ui.apiurl.setText(ler[1].replace('\n',''))
  154. self.ui.caminhobd.setText(ler[2].replace('\n',''))
  155. self.ui.nomebd.setText(ler[3].replace('\n',''))
  156. self.ui.pastatemp.setText(ler[4].replace('\n',''))
  157. self.ui.pushButton.clicked.connect(self.salvarForm)
  158. def salvarForm(self):
  159. self.ui.labelmsg.setStyleSheet(_fromUtf8("background:#f0ad4e;\n"
  160. "padding:5px;\n"
  161. "color:#fff;\n"
  162. "width:100%;\n"
  163. "text-align:center;"))
  164. self.ui.labelmsg.setText(_fromUtf8("Aguarde, salvando arquivo"))
  165. texto = self.ui.apikey.text()+'\n'+self.ui.apiurl.text()+'\n'+self.ui.caminhobd.text()+'\n'+self.ui.nomebd.text()+'\n'+self.ui.pastatemp.text();
  166. arq = open("configuracao.txt", "w")
  167. arq.write(texto)
  168. arq.close()
  169. self.ui.labelmsg.setStyleSheet(_fromUtf8("background:#5cb85c;\n"
  170. "padding:5px;\n"
  171. "color:#fff;\n"
  172. "width:100%;\n"
  173. "text-align:center;"))
  174. self.ui.labelmsg.setText(_fromUtf8("Configuração salva com sucesso"))
  175.  
  176.  
  177. app = QtGui.QApplication(sys.argv)
  178.  
  179. app.setApplicationName('terminal')
  180. programa=Terminal()
  181. programa.show()
  182. sys.exit(app.exec_())
  183.  
  184. """
  185. app = QtGui.QApplication(sys.argv)
  186.  
  187. app.setApplicationName('configuracao')
  188. programa=ConfiguracaoTela()
  189. programa.show()
  190. sys.exit(app.exec_())
  191. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement