def __init__(self, master, init_file_name, scale): """Initiate all variables for the register program""" try: init_file = open(init_file_name) except IOError: print "Couldn't find initiation file for configuring register" self.employee_discount_enabled = False self.values_dict = ReadSettings.get_values_from_init_file(init_file) print self.values_dict # Radio variable for #self.radio_variable = Tkinter.IntVar() #self.radio_variable.set(0) # Set to grove initially self.scale = scale self.master = master self.cashierVar = Tkinter.StringVar() self.cashierVar.set(self.values_dict["register_name"]) self.cart = [] self.items = [] self.products = [] self.categories = [] self.prod_cats = [] self.prod_prices = [] self.deals = [] self.deal_prices = [] self.current_category_id = 1 self.start_time = time.time() cursor, conn = DatabaseConnect.connect(self.values_dict) # Early exit if can't connect to database if cursor is None: tkMessageBox.showwarning("Database Error", "Could not connect to database, check errors on terminal") new_ip_address = tkSimpleDialog.askstring("Manual ip address entry", "Enter ip address of host to connect to (127.0.0.1 if can't connect to network)") if new_ip_address is not None: self.values_dict["database_path"] = new_ip_address cursor, conn = DatabaseConnect.connect(self.values_dict) print "Tried connecting to manual ip address " + new_ip_address if cursor is None: tkMessageBox.showwarning("Manual ip entry failure", "Failed to connect to manual ip address, closing") master.destroy() return else: master.destroy() return # read product ordering in category preferences self.category_order_dict = read_category_order.read_category_order() self.products_db_cursor = cursor self.products_db_connect = conn self.update_info_from_database() self.transaction_number = 0 self.read_products_categories_constants() application_height = int(self.values_dict["application_height"]) application_width = int(self.values_dict["application_width"]) self.edible_tax_rate = float(self.values_dict["edible_tax_rate"]) self.nonedible_tax_rate = float(self.values_dict["nonedible_tax_rate"]) self.products_width = int(self.values_dict["products_width"]) self.cart_width = int(self.values_dict["cart_width"]) # Inside products frame, eventually read these from a file information_height = int(self.values_dict["information_height"]) categories_height = int(self.values_dict["categories_height"]) items_height = int(self.values_dict["items_height"]) debug_height = int(self.values_dict["debug_height"]) #Inside cart frame cart_info_height = int(self.values_dict["cart_info_height"]) cart_items_height = int(self.values_dict["cart_items_height"]) totals_height = int(self.values_dict["totals_height"]) payment_type_height = int(self.values_dict["payment_type_height"]) #Receipt info self.receipt_chars_per_inch = int(self.values_dict["receipt_chars_per_inch"]) print self.receipt_chars_per_inch self.master.resizable(False,False) self.products_frames = 0 self.cart_frames = 0 self.master_frame = Tkinter.Frame(master) self.master_frame.grid() # EXP --- #self.secondary_cart = Tkinter.Toplevel(master) #self.secondary_cart.title("Customer Cart View") #self.secondary_cart.resizable(False,False) #self.secondary_cart.protocol("WM_DELETE_WINDOW", self.secondary_cart.iconify) #self.secondary_cart.grid() #self.secondary_cart_frames = 0 # EXP --- #Removed functionality, possibly read later but not unless necessary self._shift_is_pressed = False self.master_frame.bind_all("<Shift_L>", self._shift_pressed) self.master_frame.bind_all("<KeyRelease-Shift_L>", self._shift_released) assert application_height == information_height + categories_height + items_height + debug_height assert application_height == cart_info_height + cart_items_height + totals_height + payment_type_height assert application_width == self.products_width + self.cart_width if CART_RIGHT: products_frame_column = 0 cart_frame_column = 1 else: products_frame_column = 1 cart_frame_column = 0 self.products_frame = add_frame(self.master_frame, self.products_width, application_height, "gray", 0, products_frame_column) self.cart_frame = add_frame(self.master_frame, self.cart_width, application_height, "gray", 0, cart_frame_column) # Products frame additions self.information_frame = self.add_products_frame(information_height, self.values_dict["information_frame_color"]) self.category_frame = self.add_products_frame(categories_height, self.values_dict["categories_frame_color"]) self.items_frame = self.add_products_frame(items_height, self.values_dict["items_frame_color"]) self.debug_frame = self.add_products_frame(debug_height, self.values_dict["debug_frame_color"]) # Cart frame additions self.payment_type_frame = self.add_cart_frame(payment_type_height, self.values_dict["payment_type_frame_color"]) self.cart_info_frame = self.add_cart_frame(cart_info_height, self.values_dict["cart_info_frame_color"]) self.cart_items_frame = self.add_cart_frame(cart_items_height, self.values_dict["cart_items_frame_color"]) self.totals_frame = self.add_cart_frame(totals_height, self.values_dict["totals_frame_color"]) # EXP --- # Secondary cart additions # self.secondary_cart_items_frame = self.add_secondary_cart_frame(cart_items_height, self.values_dict["cart_items_frame_color"]) # self.secondary_totals_frame = self.add_secondary_cart_frame(totals_height, "gray") # EXP --- #self.update_admin_frame() self.update_category_frame() self.update_products_frame() self.update_cart() self.update_payment_frame() self.update_debug_frame()
max_trans_number = max_transaction_number_row[0] if max_trans_number is None: max_trans_number = 1 else: return max_trans_number + 1 try: init_file_name = "settings.txt" init_file = open(init_file_name) except: print "Couldn't open settings.txt" values_dict = ReadSettings.get_values_from_init_file(init_file) try: cursor, conn = DatabaseConnect.connect(values_dict) except: print "Error connecting to database" # Insert into database for f in os.listdir("UnsavedTrans"): max_trans_num = get_max_transaction_number(cursor) file_path = os.getcwd() + "/UnsavedTrans/" + f open_f = open(file_path) transaction_statements = open_f.read() open_f.close() clean_statements = transaction_statements.replace("-1,", str(max_trans_num) + ",") print clean_statements for l in clean_statements.split("\n"): cursor.execute(l) conn.commit() os.remove(file_path)