|
@@ -1,16 +1,52 @@
|
|
|
from src.models.nomenclature_group_model import nomenclature_group_model
|
|
|
from src.models.measurement_unit_model import measurement_unit_model
|
|
|
from src.models.nomenclature_model import nomenclature_model
|
|
|
-from src.settings import settings
|
|
|
+from src.errors.error_proxy import error_proxy
|
|
|
+from src.settings.settings import settings
|
|
|
+from src.storage.storage import storage
|
|
|
+from src.validation.validator import validator
|
|
|
|
|
|
#
|
|
|
# Класс для обработки начало работы приложения
|
|
|
#
|
|
|
class start_factory:
|
|
|
__options: settings = None
|
|
|
+ __storage: storage = None
|
|
|
+ __vtor = validator()
|
|
|
|
|
|
- def __init__(self, options: settings) -> None:
|
|
|
- self.__options = options
|
|
|
+ def __init__(self, _options: settings,
|
|
|
+ _storage: storage = None) -> None:
|
|
|
+
|
|
|
+ self.__vtor.check_type(_options, settings)
|
|
|
+ self.__vtor.check_type(_storage, storage)
|
|
|
+ self.__options = _options
|
|
|
+ self.__storage = _storage
|
|
|
+
|
|
|
+ def __save(self, key:str, items: list):
|
|
|
+ """
|
|
|
+ Сохранить данные
|
|
|
+ Args:
|
|
|
+ key (str): ключ доступ
|
|
|
+ items (list): список
|
|
|
+ """
|
|
|
+
|
|
|
+ self.__vtor.check_type(key, str)
|
|
|
+
|
|
|
+ if self.__storage == None:
|
|
|
+ self.__storage = storage()
|
|
|
+
|
|
|
+ self.__storage.data[ key ] = items
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @property
|
|
|
+ def storage(self):
|
|
|
+ """
|
|
|
+ Ссылка на объект хранилище данных
|
|
|
+ Returns:
|
|
|
+ _type_: _description_
|
|
|
+ """
|
|
|
+ return self.__storage
|
|
|
|
|
|
@staticmethod
|
|
|
def create_nomenclature_list():
|
|
@@ -21,9 +57,9 @@ class start_factory:
|
|
|
result = []
|
|
|
|
|
|
|
|
|
- item1 = nomenclature_model("Мука", "Мука пшеничная",
|
|
|
- measurement_unit_model.create_kg(),
|
|
|
- nomenclature_group_model.create_group())
|
|
|
+ item1 = nomenclature_model("Мука", "Мушка пшеничная", measurement_unit_model("грамм"), nomenclature_group_model("name"))
|
|
|
+ item1.group = nomenclature_group_model.create_group()
|
|
|
+ item1.unit = measurement_unit_model.create_kg()
|
|
|
|
|
|
result.append(item1)
|
|
|
|
|
@@ -37,12 +73,17 @@ class start_factory:
|
|
|
Returns:
|
|
|
_type_: _description_
|
|
|
"""
|
|
|
+
|
|
|
+ result = []
|
|
|
if self.__options.is_first_run == True:
|
|
|
self.__options.is_first_run = False
|
|
|
- return start_factory.create_nomenclature_list()
|
|
|
- else:
|
|
|
- items = []
|
|
|
- return items
|
|
|
+
|
|
|
+ # Формируем и зпоминаем номеклатуру
|
|
|
+ result = start_factory.create_nomenclature_list()
|
|
|
+ self.__save(storage.nomenclature_key(), result )
|
|
|
+
|
|
|
+ return result
|
|
|
+
|
|
|
|
|
|
|
|
|
|