Skip to content

terovaleriya/ppl_inventory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект «Складской учёт»

Структура базы данных

Схема

Командный интерфейс

Без параметров (вывод подсказки)

$ ./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-receivess, list-movements)

А также:

  • один итоговый отчёт (Команды report и month-report)
  • три текущих параметра финансово-хозяйственной деятельности (Команда month-report)

Возможным отклонением от заданния является использования 2 библиотек:

  • tabulate для рисования красивых табличек.
  • click для построения командного интерфейса.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages