project/read.txt
2025-11-08 09:16:13 +05:00

180 lines
8.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Файл с партнёрами: Partners_import.xlsx
Файл с типами продукции: Product_type_import.xlsx
Файл с продуктами: Products_import.xlsx
Файл с продажами: Partner_products_import.xlsx
def check_database():
"""
Проверяет количество записей в основных таблицах базы данных.
Функция подключается к SQLite базе данных 'partners.db' и выводит
количество записей в таблицах: PartnerType, Partner, ProductType,
Product, Sale.
Входные параметры:
Нет
Выходные параметры:
Нет
Действия:
- Выводит в консоль количество записей каждой таблицы
- Автоматически закрывает соединение с базой данных
"""
def load_data_from_files():
"""
Загружает данные из Excel файлов в базу данных.
Функция выполняет загрузку данных из Excel файлов в соответствующие таблицы
базы данных SQLite. Подключается к БД, создает курсор для выполнения запросов
и осуществляет импорт данных.
Входные параметры:
Нет
Выходные параметры:
Нет
Действия:
- Устанавливает соединение с базой данных 'partners.db'
- Создает курсор для выполнения SQL-запросов
- Загружает данные из Excel файлов в таблицы БД
- Фиксирует изменения в базе данных
- Закрывает соединение с БД
"""
def get_partners(db_path='partners.db', sort_by='rating', ascending=False):
"""
Получает список партнеров из базы данных с агрегированной информацией о продажах.
Функция выполняет запрос к базе данных для получения информации о партнерах,
включая данные об их типе, рейтинге и общем количестве проданных товаров.
Результаты могут быть отсортированы по различным полям.
Входные параметры:
db_path (str): Путь к файлу базы данных. По умолчанию 'partners.db'
sort_by (str): Поле для сортировки результатов. По умолчанию 'rating'
ascending (bool): Направление сортировки.
True - по возрастанию, False - по убыванию.
По умолчанию False (по убыванию)
Выходные параметры:
list: Список кортежей с данными о партнерах или None в случае ошибки
Возвращаемые данные включают:
- Тип партнера
- Наименование партнера
- Директор
- Электронная почта
- Телефон
- Юридический адрес
- ИНН
- Рейтинг
- Дата создания
- Общее количество проданных товаров
Исключения:
Обрабатывает исключения базы данных и возвращает None в случае ошибки
"""
def create_tables(db_connection):
"""
Создает все необходимые таблицы в базе данных.
Функция выполняет создание таблиц в базе данных согласно предопределенной
схеме. Использует переданное соединение с БД для выполнения SQL-запросов
создания таблиц.
Входные параметры:
db_connection (sqlite3.Connection): Объект соединения с базой данных
Выходные параметры:
None
Действия:
- Создает курсор для выполнения SQL-запросов
- Выполняет SQL-запросы на создание таблиц
- Фиксирует изменения в базе данных
- Не закрывает соединение с БД (оставляя это вызывающей стороне)
"""
def calculate_discount(total_quantity):
"""
Рассчитывает размер скидки на основе общего количества проданных товаров.
Функция определяет процент скидки в зависимости от объема продаж
по заданной градации.
Входные параметры:
total_quantity (int): Общее количество проданных товаров
Выходные параметры:
tuple: Кортеж содержащий:
- discount_percent (int): Процент скидки (0-15)
- discount_description (str): Текстовое описание скидки
Примеры возвращаемых значений:
(15, '15% (более 300000 ед.)')
(10, '10% (50000-300000 ед.)')
(5, '5% (10000-50000 ед.)')
(0, '0% (до 10000 ед.)')
"""
def get_sales_history(db_path='partners.db', limit=50, sort_by='date_desc'):
"""
Получает историю реализации продукции с разными вариантами сортировки.
Функция выполняет запрос к базе данных для получения детальной истории
продаж, включая информацию о партнерах, продукции и финансовых показателях.
Поддерживает различные варианты сортировки результатов.
Входные параметры:
db_path (str): Путь к файлу базы данных. По умолчанию 'partners.db'
limit (int): Ограничение количества возвращаемых записей. По умолчанию 50
sort_by (str): Критерий сортировки результатов. Доступные варианты:
'date_desc' - по дате продажи (убывание)
'date_asc' - по дате продажи (возрастание)
'quantity_desc' - по количеству (убывание)
'amount_desc' - по общей сумме (убывание)
По умолчанию 'date_desc'
Выходные параметры:
list: Список кортежей с данными о продажах или None в случае ошибки
Возвращаемые данные включают:
- Дата продажи
- Наименование партнера
- Наименование продукции
- Артикул продукции
- Количество проданных единиц
- Цена за единицу
- Общая сумма продажи
- Тип продукции
Исключения:
Обрабатывает исключения базы данных и возвращает None в случае ошибки
"""
def simple_choice(options):
"""
Выводит меню выбора опций и запрашивает ввод пользователя.
Функция отображает пронумерованный список доступных опций в формате меню
и возвращает выбранный пользователем номер опции.
Входные параметры:
options (list): Список строк с названиями опций для выбора
Выходные параметры:
int: Номер выбранной опции (от 1 до количества опций)
Действия:
- Выводит заголовок меню
- Отображает все опции с нумерацией
- Запрашивает ввод пользователя
- Возвращает выбранный номер
"""