diff --git a/main.py b/main.py index 73bc7da..32e1694 100644 --- a/main.py +++ b/main.py @@ -3,7 +3,7 @@ import pandas as pd import os import sys import openpyxl -#61125 +#611255 def create_tables(db_connection): """Создает все необходимые таблицы в базе данных""" diff --git a/read.txt b/read.txt index c72280b..6da0c40 100644 --- a/read.txt +++ b/read.txt @@ -2,3 +2,178 @@ Файл с типами продукции: 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 до количества опций) + + Действия: + - Выводит заголовок меню + - Отображает все опции с нумерацией + - Запрашивает ввод пользователя + - Возвращает выбранный номер + """ + +