88 lines
3.8 KiB
Plaintext
88 lines
3.8 KiB
Plaintext
Файл с партнерами: Partners_import.xlsx
|
||
Файл с типами продукции: Product_type_import.xlsx
|
||
Файл с продуктами: Products_import.xlsx
|
||
Файл с продажами: Partner_products_import.xlsx
|
||
|
||
|
||
def create_tables(db_connection):
|
||
"""Создает все необходимые таблицы в базе данных"""
|
||
|
||
# Добавляем сортировку
|
||
if sort_by == 'discount':
|
||
query += " ORDER BY total_quantity"
|
||
elif sort_by == 'rating'....
|
||
|
||
# Добавляем колонки со скидкой
|
||
if not df.empty:
|
||
df['Скидка'] = df['total_quantity'].apply(lambda x: calculate_discount(x)[0])
|
||
df['Текст_скидки'] = df['total_quantity'].apply(lambda x: calculate_discount(x)[1])
|
||
|
||
def get_sales_history(db_path='partners.db', limit=50, sort_by='date_desc'):
|
||
"""Получает историю реализации продукции с разными вариантами сортировки"""
|
||
|
||
# Добавляем сортировку по дате
|
||
if sort_by == 'date_desc':
|
||
query += " ORDER BY s.sale_date DESC, s.created_at DESC"
|
||
elif sort_by == 'date_asc':
|
||
query += " ORDER BY s.sale_date ASC, s.created_at ASC"
|
||
|
||
def print_partner_cards(partners_df):
|
||
"""Выводит карточки партнеров в красивом формате"""
|
||
|
||
def print_sales_cards(sales_df):
|
||
"""Выводит карточки истории реализации в виде таблицы"""
|
||
|
||
# Заголовок таблицы
|
||
headers = ["Дата", "Партнер", "Продукция", "Артикул", "Кол-во", "Цена", "Сумма"]
|
||
print("║ {:<12} {:<18} {:<59} {:<3} {:>9} {:>8} {:>13} ║
|
||
|
||
# Данные таблицы
|
||
for index, row in sales_df.iterrows():
|
||
date = str(row['Дата продажи'])[:10]
|
||
partner = row['Партнер']
|
||
product = row['Продукция']
|
||
|
||
# Итоги
|
||
total_quantity = sales_df['Количество'].sum()
|
||
total_amount = sales_df['Общая сумма'].sum()
|
||
|
||
def simple_choice(options):
|
||
"""Упрощенная функция выбора"""
|
||
|
||
def check_database():
|
||
"""Проверяет загруженные данные в базе"""
|
||
|
||
def load_data_from_files():
|
||
"""Загружает данные из Excel файлов в базу данных"""
|
||
|
||
# Запрос имен файлов
|
||
print("\n📁 Введите имена файлов:")
|
||
partners_file = input("Файл с партнерами: ")
|
||
product_type_file = input("Файл с типами продукции: ")
|
||
products_file = input("Файл с продуктами: ")
|
||
sales_file = input("Файл с продажами: ")
|
||
|
||
# 1. Загрузка типов партнеров
|
||
print("\n1. 📊 Загрузка типов партнеров...") ниже идут 2, 3, 4, 5
|
||
|
||
for _, row in sales_df.iterrows():
|
||
# Находим ID продукта
|
||
|
||
# Находим ID партнера
|
||
cursor.execute("SELECT id FROM Partner WHERE name = ?", (row['Наименование партнера'],))
|
||
partner_result = cursor.fetchone()
|
||
|
||
# Получаем цену продажи
|
||
cursor.execute("SELECT min_partner_price FROM Product WHERE id = ?", (product_id,))
|
||
min_price_result = cursor.fetchone()
|
||
|
||
# Преобразуем дату
|
||
sale_date = pd.to_datetime(row['Дата продажи']).strftime('%Y-%m-%d')
|
||
|
||
# Вставляем продажу
|
||
cursor.execute("""INSERT INTO Sale
|
||
(product_id, partner_id, quantity, sale_date, sale_price)
|
||
VALUES (?, ?, ?, ?, ?)""",
|
||
|
||
def display_menu():
|
||
"""Главное меню программы""" |