Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
 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
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
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))
Пример #9
0
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)
Пример #10
0
 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]))
Пример #11
0
 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
Пример #12
0
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)
Пример #13
0
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)
Пример #14
0
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)
Пример #15
0
 def count_salesmans(self):
     query = DbQuerries.COUNT_SALESMANS
     res = self.execute_query_get(query)
     logger.info("On count_salesmans -- result {}".format(res))
     return res
Пример #16
0
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'))
Пример #17
0
def login_manager():
    logger.info("Web - manager role selected")
    return render_template('manager.html')
Пример #18
0
 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
Пример #19
0
 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()
Пример #20
0
 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
Пример #21
0
 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
Пример #22
0
 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
Пример #23
0
 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
Пример #24
0
 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
Пример #25
0
def home():
    logger.info("Web - selecting user role")
    return render_template('position_selection_new.html')
Пример #26
0
def login_salesman():
    logger.info("Web - salesman role selected")
    return render_template('salesman.html')
Пример #27
0
 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
Пример #28
0
 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
Пример #29
0
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))
Пример #30
0
 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]))