|  | @@ -1,16 +1,52 @@
 | 
											
												
													
														|  |  from src.models.nomenclature_group_model import nomenclature_group_model
 |  |  from src.models.nomenclature_group_model import nomenclature_group_model
 | 
											
												
													
														|  |  from src.models.measurement_unit_model import measurement_unit_model
 |  |  from src.models.measurement_unit_model import measurement_unit_model
 | 
											
												
													
														|  |  from src.models.nomenclature_model import nomenclature_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:
 |  |  class start_factory:
 | 
											
												
													
														|  |      __options: settings = None
 |  |      __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
 |  |      @staticmethod
 | 
											
												
													
														|  |      def create_nomenclature_list():
 |  |      def create_nomenclature_list():
 | 
											
										
											
												
													
														|  | @@ -21,9 +57,9 @@ class start_factory:
 | 
											
												
													
														|  |          result = []
 |  |          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)
 |  |          result.append(item1)
 | 
											
												
													
														|  |          
 |  |          
 | 
											
										
											
												
													
														|  | @@ -37,12 +73,17 @@ class start_factory:
 | 
											
												
													
														|  |          Returns:
 |  |          Returns:
 | 
											
												
													
														|  |              _type_: _description_
 |  |              _type_: _description_
 | 
											
												
													
														|  |          """
 |  |          """
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        result = []
 | 
											
												
													
														|  |          if self.__options.is_first_run == True:
 |  |          if self.__options.is_first_run == True:
 | 
											
												
													
														|  |              self.__options.is_first_run = False
 |  |              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
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          
 |  |          
 | 
											
												
													
														|  |          
 |  |          
 | 
											
												
													
														|  |      
 |  |      
 |