def make_window(master=None, db_connection=None): if master: root = Toplevel(master) else: root = Tk() root.title('Importar Nota Fiscal Eletronica') root.geometry('350x120') frm = Frame(root) frm.pack(fill=X) lbl = LabelFrame(frm, text="Enviar saída para:") lbl.pack(fill=X) option = StringVar(root) #option.set('Arquivo *.csv') option.set('Banco de Dados') optMenu = OptionMenu(lbl, option, 'Banco de Dados', 'Arquivo *.csv') optMenu.pack(fill=X) Button(frm, text='Importar uma Nota Fiscal', command=(lambda output=option, conn=db_connection: send_invoice( output, conn=conn))).pack(fill=X) Button(frm, text='Importar Lote de Notas Fiscais', command=(lambda output=option: send_invoices(output))).pack(fill=X) Button(frm, text='Sair', command=root.quit).pack(fill=X) if master: show_modal_win(root) else: root.mainloop()
def make_window(master=None): padx = 3 pady = 3 if master: win = tk.Toplevel(master) else: win = tk.Tk() win.title('Download Notas Fiscais') frm = tk.Frame(win) frm.pack(fill=tk.X) #primeira linha do Form - Label e Entry frm2 = tk.Frame(frm) frm2.grid(row=0, column=0, sticky='w') tk.Label(frm2, text='Chave:').pack(side=tk.LEFT, fill=tk.X) win.entry_key_nfce = tk.Entry(frm2, width=45) win.entry_key_nfce.pack(side=tk.LEFT, fill=tk.X, expand=tk.YES, padx=padx, pady=pady) #botão submit win.btSubmit = tk.Button(frm, text='Buscar') win.btSubmit.grid(row=0, column=1, sticky='e', padx=padx, pady=pady) win.btSubmit.config(command=(lambda: search_button(win)), state='disabled') #Text para mostrar o log do sistema win.text_logger = ScrolledText(frm, width=50, height=30) win.text_logger.grid(row=1, column=0, columnspan=2, padx=padx, pady=pady, sticky='ew') frm.columnconfigure(0, weight=1) #preparando para iniciar o selenium win.logger = get_logger('invoice_scrapper') win.logger.addHandler(ScrolledTextHandler(win.text_logger)) win.drive = None win.site = sefaz_ba_site #win.browser_type = 'phanton' win.browser_type = 'firefox' win.solved_captcha = False #após a janela abrir, dispara o initialize win.after(20, (lambda w=win: initialize(w))) if not master: win.eval('tk::PlaceWindow %s center' % win.winfo_pathname(win.winfo_id())) if master: show_modal_win(win) else: win.mainloop() win.drive.close()
def search_invoice(master): win = tk.Toplevel(master) win.conn = master.conn win.title('Consultar Nota Fiscal') fields_f_invoice = fields_form_invoice.set_visible({ 'data_emissao': True, 'hora_emissao': True, 'nu_nfce': True, 'cnpj': True, 'estabelecimento': True, 'vl_total': True, 'button_1': True }) f = FormSimpleSearch(win, fields_search_invoice, fields_f_invoice) f.pack() show_modal_win(win)
def make_window(master=None, Frame=None, title=None, resizable=True, **kwargs): if master: root = tk.Toplevel(master) root.conn = master.conn else: root = tk.Tk() root.conn = nfce_db.get_engine_bd().connect() if title: root.title(title) #if Frame: if kwargs: f = Frame(root, root.conn, **kwargs) else: f = Frame(root, root.conn) f.pack(fill=tk.X) if not resizable: root.resizable(False, False) if master: show_modal_win(root) else: root.mainloop() return
def make_dialog_captcha(path): def close_dialog(): if entry_capcha.get(): dialog.captcha_solution = entry_capcha.get() dialog.destroy() else: showwarning('Captcha', 'Você deve informar o captcha') dialog = tk.Toplevel() dialog.captcha_solution = '' frm1 = tk.Frame(dialog) frm1.pack(fill=tk.BOTH, expand=tk.YES) tk.Label(frm1, text='Digite o Captcha:').pack(side=tk.LEFT, fill=tk.BOTH, expand=tk.YES) entry_capcha = tk.Entry(frm1) entry_capcha.pack(side=tk.LEFT, fill=tk.X, expand=tk.YES) image = get_image(path) tk.Button(dialog, image=image, command=close_dialog).pack(fill=tk.BOTH, expand=tk.YES) dialog.image = image show_modal_win(dialog) return dialog.captcha_solution
def products_images_search(master=None): ''' Abre janela para procurar e mostrar as imagens salvas no bd ''' def submit(): ean_code = entry_ean.get() if ean_code: result = get_product_from_db(db_connection, ean_code, True) if result: if result['img_produto']: img = Image.open(io.BytesIO(result['img_produto'])) img = img.resize((200, 200), Image.ANTIALIAS) win.bt1.image = ImageTk.PhotoImage(img) win.bt1.config(image=win.bt1.image) else: change_image(win.bt1, '') if result['img_barcode']: img = Image.open(io.BytesIO(result['img_barcode'])) img = img.resize((200, 200), Image.ANTIALIAS) win.bt2.image = ImageTk.PhotoImage(img) win.bt2.config(image=win.bt2.image) label_product.config(text=result['ds_produto']) else: change_image(win.bt2, '') else: showwarning('Teste Imagens', 'Cógigo não encontrado') change_image(win.bt1, '') change_image(win.bt2, '') label_product.config(text='') else: showwarning('Teste Imagens', 'Informe o Código') padx = 3 pady = 3 engine = nfce_db.get_engine_bd() db_connection = engine.connect() if master: win = tk.Toplevel(master) else: win = tk.Tk() win.title('Teste Imagens / Blob Mysql') frm = tk.Frame(win) frm.pack(fill=tk.X, expand=tk.YES) tk.Label(frm, text="Digite Ean:").pack(side=tk.LEFT) entry_ean = tk.Entry(frm) entry_ean.pack(side=tk.LEFT, fill=tk.X, expand=tk.YES) frm = tk.Frame(win) frm.pack(fill=tk.X) label_product = tk.Label(frm, width=40, anchor="w", justify=tk.LEFT) label_product.pack(side=tk.LEFT) button_submit = tk.Button(frm, text='Search', command=submit) button_submit.pack(side=tk.RIGHT) frm = tk.Frame(win) frm.pack(fill=tk.X) win.bt1 = tk.Button(frm) win.bt1.image = None change_image(win.bt1, '') win.bt1.grid(row=2, column=0, sticky='ew', padx=padx, pady=pady) win.bt2 = tk.Button(frm) win.bt2.image = None change_image(win.bt2, '') win.bt2.grid(row=2, column=1, sticky='ew', padx=padx, pady=pady) if master: show_modal_win(win) else: win.eval('tk::PlaceWindow %s center' % win.winfo_pathname(win.winfo_id())) win.mainloop()
def make_window(master=None): ''' Cria a janela principal, onde se vai importar os produtos. ''' padx = 3 pady = 3 if master: win = tk.Toplevel(master) else: win = tk.Tk() win.title('Importar Dados do Produto') frm = tk.Frame(win) frm.pack(fill=tk.X) #primeira linha do Form - Label e Entry frm2 = tk.Frame(frm) frm2.grid(row=0, column=0, sticky='w') tk.Label(frm2, text='Código EAN:').pack(side=tk.LEFT, fill=tk.X) win.entCodeProduct = tk.Entry(frm2) win.entCodeProduct.pack(side=tk.LEFT, fill=tk.X, expand=tk.YES, padx=padx, pady=pady) #botão submit win.btSubmit = tk.Button(frm, text='Buscar') win.btSubmit.grid(row=0, column=1, sticky='e', padx=padx, pady=pady) win.btSubmit.config(state='disabled') #Text para mostrar o log do sistema win.text_logger = ScrolledText(frm, width=50, height=10) win.text_logger.grid(row=1, column=0, columnspan=2, padx=padx, pady=pady) win.entry_produto = tk.Entry(frm) win.entry_produto.grid(row=2, column=0, columnspan=2, sticky='ew', padx=padx, pady=pady) frmImg = tk.Frame(frm) frmImg.grid(row=3, column=0, columnspan=2, sticky='ew') frmImg.columnconfigure(0, weight=1) frmImg.columnconfigure(1, weight=1) photo = get_image('data/products/blank.png') width = 200 height = 200 win.bt1 = tk.Button(frmImg, image=photo, width=width, height=height) win.bt1.image = photo win.bt1.grid(row=0, column=0, sticky='ew', padx=padx, pady=pady) win.bt2 = tk.Button(frmImg, image=photo) win.bt2.image = photo win.bt2.grid(row=0, column=1, sticky='ew', padx=padx, pady=pady) win.btSubmit.config(command=(lambda: search_button(win))) win.entCodeProduct.focus_set() if not master: win.eval('tk::PlaceWindow %s center' % win.winfo_pathname(win.winfo_id())) win.logger = make_logger(win.text_logger) win.site = bluesoft_site win.drive = None win.browser_type = 'phanton' win.browser_type = 'firefox' win.after(20, (lambda w=win: initialize(w))) if master: show_modal_win(win) else: win.mainloop() win.drive.close()