visualizarOrdemMecanico.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. from tkinter import *
  2. from tkinter import ttk
  3. from tkinter.font import BOLD
  4. import TabOrd as ordem
  5. class verOrdensMecanico():
  6. def __init__(self):
  7. self.janelaVerOrd = Tk()
  8. self.janelaVerOrd.title('Gerenciar Ordem_MEC')
  9. self.janelaVerOrd.geometry('1600x900')
  10. self.janelaVerOrd.config(bg='#484848')
  11. self.janelaVerOrd.state('zoomed')
  12. self.janelaVerOrd.iconbitmap('automotivo.ico')
  13. # ==========| SEÇÕES | =========== #
  14. self.frameTop = Frame(self.janelaVerOrd, bg='#484848')
  15. self.frameMid = Frame(self.janelaVerOrd, bg='#484848')
  16. # self.frameBot = Frame(self.janelaVerOrc, bg='#484848')
  17. self.frameTop.pack(pady=(20, 0))
  18. self.frameMid.pack()
  19. # self.frameBot.pack()
  20. self.wrapper_trv = LabelFrame(
  21. self.frameMid, text=' Ordens Cadastradas ', bg='#484848', fg='white', font=('Roboto', 10, BOLD))
  22. self.wrapper_filtrar = LabelFrame(
  23. self.frameMid, text=' Pesquisar ', bg='#484848', fg='white', font=('Roboto', 10, BOLD))
  24. self.frameRodape = Frame(self.janelaVerOrd, bg='#484848')
  25. self.wrapper_trv.pack(fill='both', expand='yes', padx=20, pady=10)
  26. self.wrapper_filtrar.pack(fill='both', expand='yes', padx=20, pady=10)
  27. self.frameRodape.pack(fill='both', expand='yes', padx=20, pady=10)
  28. # =========| TOP |========= #
  29. self.titulo = Label(self.frameTop, text='Ordens de Serviços',
  30. bg='#484848', fg='white', font=('Roboto', 20, BOLD))
  31. self.titulo.pack(padx=20, pady=10)
  32. # ========| MIDDLE |======== #
  33. # =======| TREEVIEW |======== #
  34. self.cabecalho = ('#', 'cliente', 'carro', 'cpf_cliente',
  35. 'mecanico', 'cpf_mec', 'valor', 'descricao', 'status')
  36. self.trv = ttk.Treeview(
  37. self.wrapper_trv, selectmode='browse', columns=self.cabecalho, show='headings')
  38. self.trv.column('#', width=10)
  39. self.trv.column('cliente', width=150, anchor='center')
  40. self.trv.column('carro', width=150, anchor='center')
  41. self.trv.column('cpf_cliente', width=150, anchor='center')
  42. self.trv.column('mecanico', width=150, anchor='center')
  43. self.trv.column('cpf_mec', width=150, anchor='center')
  44. self.trv.column('valor', width=150, anchor='center')
  45. self.trv.column('descricao', width=300)
  46. self.trv.column('status', width=100, anchor='center')
  47. self.trv.heading('#', text='#')
  48. self.trv.heading('cliente', text='Cliente')
  49. self.trv.heading('carro', text='Carro')
  50. self.trv.heading('cpf_cliente', text='CPF Cliente')
  51. self.trv.heading('mecanico', text='Mecânico')
  52. self.trv.heading('cpf_mec', text='CPF Mec')
  53. self.trv.heading('valor', text='Valor R$')
  54. self.trv.heading('descricao', text='Descrição do Serviço')
  55. self.trv.heading('status', text='Status')
  56. self.trv.bind('<Double 1>', self.pegar_linhaBind)
  57. self.trv.pack(pady=10)
  58. self.popular()
  59. # =========| CAMPO DE BUSCA |======== #
  60. self.lblChave = Label(self.wrapper_filtrar,
  61. text='Palavra-chave', bg='#484848', fg='white')
  62. self.lblChave.pack(side='left', padx=6, pady=10)
  63. self.entBusca = Entry(self.wrapper_filtrar, textvariable='filtro')
  64. self.entBusca.pack(side='left', padx=6, pady=10, ipadx=15)
  65. self.btn_procurar = Button(
  66. self.wrapper_filtrar, text='Procurar', command=self.procurar, bg='#484848', fg='white')
  67. self.btn_mostrar = Button(
  68. self.wrapper_filtrar, text='Mostrar Todos', command=self.popular, bg='#484848', fg='white')
  69. self.btn_procurar.pack(side='left', padx=6, pady=10, ipadx=20)
  70. self.btn_mostrar.pack(side='left', padx=6, pady=10, ipadx=20)
  71. self.btn_procurar.bind("<Enter>", self.hoverIn1)
  72. self.btn_procurar.bind("<Leave>", self.hoverOut)
  73. self.btn_mostrar.bind("<Enter>", self.hoverIn1)
  74. self.btn_mostrar.bind("<Leave>", self.hoverOut)
  75. # ===========| BOTTOM |=========== #
  76. # ===========| VOLTAR |=========== #
  77. self.btn_voltar = Button(
  78. self.frameRodape, text='Voltar', command=self.voltar, bg='#484848', fg='white')
  79. self.btn_voltar.pack(side='right', padx=6, pady=10, ipadx=30)
  80. self.btn_voltar.bind("<Enter>", self.hoverIn3)
  81. self.btn_voltar.bind("<Leave>", self.hoverOut)
  82. self.varDeArmaz = ''
  83. mainloop()
  84. # ===========| FUNÇÕES |============ #
  85. def pegar_linhaBind(self, event):
  86. return self.pegar_linha()
  87. def pegar_linha(self):
  88. for item in self.trv.selection():
  89. self.id = self.trv.item(item, 'values')
  90. ident = self.id
  91. self.varDeArmaz = ident
  92. def popular(self):
  93. self.trv.delete(*self.trv.get_children())
  94. for i in ordem.populate(self):
  95. self.trv.insert('', 'end', values=i)
  96. def status(self):
  97. state = 'Finalizada'
  98. tupla = self.varDeArmaz
  99. lista1 = []
  100. for i in tupla:
  101. lista1.append(i)
  102. idordem = lista1[0]
  103. ordem.update(state, idordem)
  104. self.popular()
  105. self.varDeArmaz = ''
  106. def concluir(self):
  107. return self.status()
  108. def excluir(self):
  109. tupla = self.varDeArmaz
  110. pickingID = []
  111. for i in tupla:
  112. pickingID.append(i)
  113. idordem = pickingID[0]
  114. ordem.delete_aprov(idordem)
  115. self.popular()
  116. self.varDeArmaz = ''
  117. def procurar(self):
  118. chave = self.entBusca.get()
  119. self.trv.delete(*self.trv.get_children())
  120. for i in ordem.filtrar(chave):
  121. self.trv.insert('', END, values=i)
  122. def voltar(self):
  123. self.janelaVerOrd.destroy()
  124. return
  125. def hoverIn1(self, event): # verde
  126. event.widget.config(bg="#3CB371", fg="white", relief=GROOVE)
  127. def hoverIn3(self, event): # vermelho
  128. event.widget.config(bg="#8B0000", fg="white", relief=GROOVE)
  129. def hoverOut(self, event):
  130. event.widget.config(bg='#484848', fg="#e1e3db", relief=RAISED)
  131. app = verOrdensMecanico()