-
Notifications
You must be signed in to change notification settings - Fork 0
/
placement_goods.py
85 lines (66 loc) · 2.38 KB
/
placement_goods.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import random
class Goods:
"""
Класс, описывающий товары.
При инициализации объекта на вход подаётся список товаров, пользователем.
"""
def __init__(self, goods: list):
self._goods = goods
def get_goods(self):
return self._goods
class Stocks:
"""
Класс, описывающий склад.
"""
def __init__(self, name: str, amount_goods: int, goods: list):
"""
При инициализации склада, формируется словарь с товарами.
:param name: Наименование склада.
:param amount_goods: Количество хранимого товара на складе.
"""
self.__goods = goods
self.__good = None
self.__name = name
self.__amount_goods = self.__set_amount_goods(amount_goods)
self.__stock = dict()
def __set_amount_goods(self, amount: int) -> int:
"""
Сеттер, проверяющий введённое количество товара и в зависимости от проверки устанавливает значение.
:param amount: Количество товара, введённое пользователем.
:return: Установленное значение.
"""
if amount > len(self.__goods):
return len(self.__goods)
else:
return amount
def get_stock(self) -> dict:
"""
Метод возвращающий скрытый атрибут
:return: Список со словарями описывающий Склад.
"""
self.__stock['name'] = self.__name
self.__stock['all_limit'] = random.randint(10, 500)
self.__stock['transportation_cost'] = 0.01
self.__good = random.sample(self.__goods, k=self.__amount_goods)
for good in self.__good:
limit = random.randint(10, 500)
self.__stock[good] = {
'limit': limit if limit < self.__stock['all_limit'] else self.__stock['all_limit'],
'rate': random.randint(1, 100),
}
return self.__stock
def __str__(self):
return self.__name
class Clients:
pass
new_goods = [
'K1', 'K2', 'K3', 'K4', 'K5',
'K6', 'K7', 'K8', 'K9', 'K10',
'K11', 'K12', 'K13', 'K14', 'K15',
'K16', 'K17', 'K18', 'K19', 'K20'
]
stocks = list()
k = Goods(goods=new_goods)
for stock in range(1, 11):
stocks.append(Stocks(name=f'C{stock}', amount_goods=random.randint(1, 20), goods=k.get_goods()).get_stock())
# print(stocks)