$ ./cli.py
Простой CLI для нашего складского учета
Использование: cli.py [OPTIONS] COMMAND [ARGS]...
Опции:
--help Показывает это сообщение
Комманды:
add-customer Зарегистрировать нового покупателя
delete-customer Удалить покупателя
dispatch Ввести убытие товара
list-customers Вывести список всех покупателей
list-dispatches Вывести список всех убытий
list-movements Вывести все передвижеия товаров
list-products Вывести список всех товаров
list-receives Вывести список всех поступлений
month-report Вывести отчет с группировкой по месяцам
plan-dispatch Спланировать открузку товара
receive Ввести поступление товара
report Вывести отчет по стоимости и количеству
$ ./cli.py list-customers
+----------------------+-----+
| ФИО | № |
|----------------------+-----|
| Виталий Брагилевский | 1 |
| Иван Крузенштерн | 2 |
+----------------------+-----+
$ ./cli.py list-products
+-----------+-----------------+-----------------+
| Артикул | Наименованиее | Ед. измерения |
|-----------+-----------------+-----------------|
| F-01 | Макароны | Упаковка |
| F-02 | Вино | Бутылка |
| F-03 | Пармезан | Килограмм |
| F-04 | Клюква сушеная | Упаковка |
| F-05 | Чай | Упаковка |
| F-06 | Рис | Упаковка |
+-----------+-----------------+-----------------+
./cli.py receive
Артикул: F-02
Цена: 100
Количеество: 10
./cli.py list-receives
+-----------+----------------------------+--------+--------------+-----+
| Артикул | Дата | Цена | Количество | № |
|-----------+----------------------------+--------+--------------+-----|
| F-02 | 2019-11-09 07:24:06.986143 | 100 | 10 | 1 |
| F-02 | 2019-11-09 07:25:55.003677 | 150 | 5 | 2 |
| F-02 | 2019-11-09 07:26:07.836691 | 200 | 8 | 3 |
+-----------+----------------------------+--------+--------------+-----+
./cli.py plan-dispatch
Артикул: F-02
Количеество: 11
Доступно для заказа: 11 из 11
Цена на единицу продукции: 104.54
Стоимость всей партии: 1150.00
+-----+----------------------------+------+--------+--------------+-----------+
| № | Дата | | Цена | Количество | Остаток |
|-----+----------------------------+------+--------+--------------+-----------|
| 1 | 2019-11-09 07:24:06.986143 | F-02 | 100 | 10 | 10 |
| 2 | 2019-11-09 07:25:55.003677 | F-02 | 150 | 1 | 5 |
+-----+----------------------------+------+--------+--------------+-----------+
./cli.py dispatch
ID покупателя: 2
Артикул: F-02
Количеество: 11
./cli.py list-dispatches
+----+-----------+----------------------------+---------+--------------+-----+
| | Артикул | Дата | Цена | Количество | № |
|----+-----------+----------------------------+---------+--------------+-----|
| 2 | F-02 | 2019-11-09 07:29:40.728194 | 104.545 | 11 | 1 |
+----+-----------+----------------------------+---------+--------------+-----+
Для одного убытия может быть несколько записей
./cli.py list-movements
+-----------+------------+------------+----------------------------+--------+--------------+-----+
| Артикул | Приход № | Расход № | Дата | Цена | Количество | № |
|-----------+------------+------------+----------------------------+--------+--------------+-----|
| F-02 | 1 | | 2019-11-09 07:24:06.986143 | 100 | 10 | 1 |
| F-02 | 2 | | 2019-11-09 07:25:55.003677 | 150 | 5 | 2 |
| F-02 | 3 | | 2019-11-09 07:26:07.836691 | 200 | 8 | 3 |
| F-02 | 1 | 1 | 2019-11-09 07:29:40.728194 | 100 | 10 | 4 |
| F-02 | 2 | 1 | 2019-11-09 07:29:40.728194 | 150 | 1 | 5 |
+-----------+------------+------------+----------------------------+--------+--------------+-----+
./cli.py report
Общая стоимость всех находящихся на складе товаров: 2200
Количество различных артикулов: 2
+-----------+-------------------+----------------+--------------+
| Артикул | Общая стоимость | Средняя Цена | Количество |
|-----------+-------------------+----------------+--------------|
| F-02 | 2200 | 183 | 12 |
+-----------+-------------------+----------------+--------------+
./cli.py month-report
+-------+----------+-----------+------------+-------------+--------------+------------------+----------+
| П/У | Период | Артикул | Ср. цена | Мин. цена | Макс. цена | Среднее кол-во | Кол-во |
|-------+----------+-----------+------------+-------------+--------------+------------------+----------|
| -> | 11-2019 | F-02 | 145 | 100 | 200 | 7.66667 | 23 |
| <- | 11-2019 | F-02 | 104 | 100 | 150 | 5.5 | 11 |
+-------+----------+-----------+------------+-------------+--------------+------------------+----------+
Все пункты задания выполнены:
- поступление на склад партии товара (Команда
receive
) - убытие определённого количества единиц товара; (Команда
dispatch
) - общая стоимость всех находящихся на складе товаров; (Команда
report
) - общая стоимость всех имеющихся в наличии единиц конкретного товара (Команда
report
) - стоимость требуемых к расходу единиц товара (с учётом того, что требуемое количество может происходить из разных партий) (Команда
plan-dispatch
) - общее количество имеющихся в наличии единиц конкретного товара (Команда
report
) - перечень товаров с указанием количества имеющихся в наличии единиц и их общей стоимостью (Команда
report
) - история поступлений и убытий (Команды
list-dispatches
,list-receives
s,list-movements
)
А также:
- один итоговый отчёт (Команды
report
иmonth-report
) - три текущих параметра финансово-хозяйственной деятельности (Команда
month-report
)
Возможным отклонением от заданния является использования 2 библиотек:
tabulate
для рисования красивых табличек.click
для построения командного интерфейса.