def manage_sales(): salesman_list = [i[0] for i in db.get_salesmans_names()] # print("salesman_list {}".format(salesman_list)) salesman_count = db.count_salesmans()[0][0] # print("salesman_count {}".format(salesman_count)) bill_count = [ db.salesnumber_of_salesman(salesman)[0][0] for salesman in salesman_list ] # print("bill counts {} ".format(bill_count)) # total_sum_salesman = [db.salessum_of_manager(salesman)[0][0] for salesman in salesman_list] total_sum_salesman = [ round(db.salessum_of_salesman(salesman)[0][0], 2) for salesman in salesman_list ] # print("total sum for every salesman {} ".format(total_sum_salesman)) total_number_of_sales = sum(bill_count) # print("total number of sales {} ".format(total_number_of_sales)) total_sum = round(sum(total_sum_salesman), 2) # print("total sum {} ".format(total_sum)) data = [[salesman_list[i], bill_count[i], total_sum_salesman[i]] for i in range(salesman_count)] data.append(['Total', total_number_of_sales, total_sum]) print("data {}".format(data)) logger.info('Web -- manager requested sales data {} '.format(data)) return render_template('manager_sales.html', table_rows=data)
def select_beverage(name): to_send = db.get_beverage_types() logger.info("Web - beverage selection") # print('beverages from bd {} '.format(to_send)) return render_template('beverage_selection.html', to_send=to_send, name=name)
def addit_bill(name, addit, bev): if addit in addit_types and bev in bev_types: # print('additional selected in GET {} '.format(addit)) logger.info("Web - requesting bill") return render_template('items_selected_bill.html', additional=addit, beverage=bev, name=name)
def salessum_of_salesman(self, salesman_name): query = 'SELECT SUM(bill) FROM sales where name = ?' param = salesman_name, res = self.execute_query_get(query, param) if self.execute_query_get(query, param)[0][0] == None: res = [(0, )] logger.info("On salessum_of_manager -- result {}".format(res)) return res
def check_user_in_db(self, user_name): name = user_name query = 'SELECT * FROM employees WHERE name = ?' param = name, result = self.execute_query_get(query, param) logger.info('User {} '.format( user_name, 'exists' if result else 'does not exist')) return bool(result)
def check_salesman_in_db(self, salesman_name): name = salesman_name query = 'SELECT * FROM employees WHERE name = ? and position = 1' param = name, result = self.execute_query_get(query, param) logger.info('Salesman {} '.format( salesman_name, 'exists' if result else 'does not exist')) return bool(result)
def check_manager_in_db(self, manager_name): name = manager_name query = 'SELECT * FROM employees WHERE name = ? and position = 2' param = name, result = self.execute_query_get(query, param) logger.info('Manager {} '.format( manager_name, 'exists' if result else 'does not exist')) return bool(result)
def send_bill(name, addit, bev): bev_price = db.get_beverage_price(bev)[0][0] addit_price = db.get_additinal_price(addit)[0][0] bill = bev_price + addit_price date = time.strftime('%Y-%m-%d %H:%M:%S') bill_info = (name, bill, date) db.send_bill_to_db(bill_info) logger.info("order sent to db, bill {}".format(bill_info)) return redirect(url_for('select_beverage', name=name))
def additionals_to_beverages(name, bev): if bev in bev_types: # print('beverage selected in GET {} '.format(bev)) to_send1 = db.get_additionals_types() # print('additionals from bd {} '.format(to_send1)) logger.info("Web - additionals selection") return render_template('additional_selection.html', to_send1=to_send1, beverage=bev, name=name)
def add_user(self, user_info): if not self.check_user_in_db(user_info): query = 'INSERT INTO employees (name, position) VALUES (?,?)' param = user_info self.execute_query_post(query, param) logger.info( 'User {} position: {} was successfully added to db!'.format( user_info[0], user_info[1])) else: print('User {} already exist'.format(user_info[1]))
def execute_query_get(self, query, param=None): info = 'Executing get query: {}, {}'.format(query, param) logger.info(info) with self.conn: if param: self.cursor.execute(query, param) else: self.cursor.execute(query) result = self.cursor.fetchall() logger.info('query successful') return result
def get_bill(name, addit, bev): bev_price = db.get_beverage_price(bev)[0][0] # print("beverage price {}".format(bev_price)) addit_price = db.get_additinal_price(addit)[0][0] # print("additional price {}".format(addit_price)) bill = bev_price + addit_price # print("bill {}".format(bill)) logger.info("Web - for beverage {} and additional {} price {} ".format( bev, addit, bill)) return render_template('bill.html', bill=bill, additional=addit, beverage=bev, name=name)
def update_ios_version(project: Path, releases: List[Release], output_version: str = None): pbxproj_path = project / 'ios' / f'{project.name}.xcodeproj' / 'project.pbxproj' last_release = releases[0] logger.info(f'Last version found: {last_release.version}') _major, _minor, _patch = last_release.version.split('.') text = pbxproj_path.read_text() text = re.sub(r'(MARKETING_VERSION) = \d+\.\d+(\.\d+)?;', fr'\1 = {_major}.{_minor}.{_patch};', text) text = re.sub(r'(CURRENT_PROJECT_VERSION) = \d+;', fr'\1 = {last_release.version_code};', text) pbxproj_path.write_text(text) logger.info(f'Project.pbxproj updated @{pbxproj_path}') if output_version: logger.info(f'Creating version file @{output_version}') with open(output_version, 'w') as f: f.write(last_release.version)
def update_android_version(project: Path, versions: List[Release], output_version: str = None): build_file = project / 'android' / 'app' / 'build.gradle' last_version = versions[0].version logger.info(f'Last version found: {last_version}') _major, _minor, _patch = last_version.split('.') text = build_file.read_text() replacements = [ ('ext.versionMajor', _major), ('ext.versionMinor', _minor), ('ext.versionPatch', _patch) ] for _to_replace, _version in replacements: text = re.sub(rf'{re.escape(_to_replace)} = \d+', f'{_to_replace} = {_version}', text) build_file.write_text(text) logger.info(f'Build file updated @{build_file}') if output_version: logger.info(f'Creating version file @{output_version}') with open(output_version, 'w') as f: f.write(last_version)
def count_salesmans(self): query = DbQuerries.COUNT_SALESMANS res = self.execute_query_get(query) logger.info("On count_salesmans -- result {}".format(res)) return res
def validate_manager(): _mname = request.form['mname'] logger.info('Web -- manager from site {} '.format(_mname)) if db.check_manager_in_db((_mname)): return redirect(url_for('manage_sales'))
def login_manager(): logger.info("Web - manager role selected") return render_template('manager.html')
def get_salesmans_names(self): query = DbQuerries.SALESMAN_NAMES res = self.execute_query_get(query) logger.info("On get_salesmans_names -- result {}".format(res)) return res
def execute_query_post(self, query, param): info = 'Executing post query: {}, {}'.format(query, param) logger.info(info) self.cursor.execute(query, param) logger.info('post query successful') self.conn.commit()
def get_beverage_price(self, bev): query = 'SELECT price_bev from beverage_type where bev_type = ?' param = bev, res = self.execute_query_get(query, param) logger.info("On get_beverage_price -- result {}".format(res)) return res
def get_additinal_price(self, addit): query = 'SELECT price_addit from additionals_type where addit_type = ?' param = addit, res = self.execute_query_get(query, param) logger.info("On get_additinal_price -- result {}".format(res)) return res
def get_beverage_types(self): query = DbQuerries.BEVERAGE_TYPES res = self.execute_query_get(query) logger.info("On get_beverage_types -- result {}".format(res)) return res
def get_additionals_types(self): query = DbQuerries.ADDITIONALS_TYPES res = self.execute_query_get(query) logger.info("On get_additionals_types -- result {}".format(res)) return res
def total_sum(self): query = 'SELECT SUM(bill) FROM sales' res = self.execute_query_get(query) logger.info("On total sum -- result {}".format(res)) return res
def home(): logger.info("Web - selecting user role") return render_template('position_selection_new.html')
def login_salesman(): logger.info("Web - salesman role selected") return render_template('salesman.html')
def total_number_of_sales(self): query = 'SELECT COUNT(*) FROM sales' res = self.execute_query_get(query) logger.info("On total_number_of_sales -- result {}".format(res)) return res
def salesnumber_of_salesman(self, salesman_name): query = 'SELECT COUNT(*) FROM sales where name = ?' param = salesman_name, res = self.execute_query_get(query, param) logger.info("On salesnumber_of_salesman -- result {}".format(res)) return res
def validate_salesman(): name = request.form['sname'] logger.info("Web - salesman {} logged in".format(name)) if db.check_salesman_in_db(name): return redirect(url_for('select_beverage', name=name))
def send_bill_to_db(self, bill_info): query = 'INSERT INTO sales (name, bill, salesdate) VALUES (?, ?, ?)' self.execute_query_post(query, bill_info) logger.info('Salesman {}, bill {}.'.format(bill_info[0], bill_info[1]))