|  | @@ -0,0 +1,110 @@
 | 
											
												
													
														|  | 
 |  | +import datetime
 | 
											
												
													
														|  | 
 |  | +from src.models.measurement_unit_model import measurement_unit_model
 | 
											
												
													
														|  | 
 |  | +from src.models.nomenclature_model import nomenclature_model
 | 
											
												
													
														|  | 
 |  | +from src.models.warehouse_model import warehouse_model
 | 
											
												
													
														|  | 
 |  | +from src.models.abstract_reference import abstract_reference
 | 
											
												
													
														|  | 
 |  | +from src.validation.validator import validator
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +class transaction_model(abstract_reference):
 | 
											
												
													
														|  | 
 |  | +    def __init__(self, name=None):
 | 
											
												
													
														|  | 
 |  | +        super().__init__(name)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @staticmethod
 | 
											
												
													
														|  | 
 |  | +    def create(
 | 
											
												
													
														|  | 
 |  | +        name,
 | 
											
												
													
														|  | 
 |  | +        warehouse,
 | 
											
												
													
														|  | 
 |  | +        nomenclature,
 | 
											
												
													
														|  | 
 |  | +        amount,
 | 
											
												
													
														|  | 
 |  | +        transactionType,
 | 
											
												
													
														|  | 
 |  | +        measurementUnit,
 | 
											
												
													
														|  | 
 |  | +        timeSpan,
 | 
											
												
													
														|  | 
 |  | +    ):
 | 
											
												
													
														|  | 
 |  | +        obj = transaction_model(name)
 | 
											
												
													
														|  | 
 |  | +        obj.__vtor = validator()
 | 
											
												
													
														|  | 
 |  | +        obj.warehouse = warehouse
 | 
											
												
													
														|  | 
 |  | +        obj.nomenclature = nomenclature
 | 
											
												
													
														|  | 
 |  | +        obj.amount = amount
 | 
											
												
													
														|  | 
 |  | +        obj.transaction_type = transactionType
 | 
											
												
													
														|  | 
 |  | +        obj.measurement_unit = measurementUnit
 | 
											
												
													
														|  | 
 |  | +        obj.time_span = timeSpan
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return obj
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __warehouse = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def warehouse(self):
 | 
											
												
													
														|  | 
 |  | +        """Склад"""
 | 
											
												
													
														|  | 
 |  | +        return self.__warehouse
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @warehouse.setter
 | 
											
												
													
														|  | 
 |  | +    def warehouse(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Склад"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_type(value, warehouse_model)
 | 
											
												
													
														|  | 
 |  | +        self.__warehouse = value
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __nomenclature = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def nomenclature(self):
 | 
											
												
													
														|  | 
 |  | +        """Номенклатура"""
 | 
											
												
													
														|  | 
 |  | +        return self.__nomenclature
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @nomenclature.setter
 | 
											
												
													
														|  | 
 |  | +    def nomenclature(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Номенклатура"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_type(value, nomenclature_model)
 | 
											
												
													
														|  | 
 |  | +        self.__nomenclature = value
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __amount = 0
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def amount(self):
 | 
											
												
													
														|  | 
 |  | +        """Количество товара"""
 | 
											
												
													
														|  | 
 |  | +        return self.__amount
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @amount.setter
 | 
											
												
													
														|  | 
 |  | +    def amount(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Количество товара"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_number(value)
 | 
											
												
													
														|  | 
 |  | +        self.__amount = value
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __transactionType = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def transaction_type(self):
 | 
											
												
													
														|  | 
 |  | +        """Тип транзакции"""
 | 
											
												
													
														|  | 
 |  | +        return self.__transactionType
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @transaction_type.setter
 | 
											
												
													
														|  | 
 |  | +    def transaction_type(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Тип транзакции"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_type(value, int)
 | 
											
												
													
														|  | 
 |  | +        self.__transactionType = value
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __measurementUnit = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def measurement_unit(self):
 | 
											
												
													
														|  | 
 |  | +        """Единица измерения"""
 | 
											
												
													
														|  | 
 |  | +        return self.__measurementUnit
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @measurement_unit.setter
 | 
											
												
													
														|  | 
 |  | +    def measurement_unit(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Единица измерения"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_type(value, measurement_unit_model)
 | 
											
												
													
														|  | 
 |  | +        self.__measurementUnit = value
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    __timeSpan = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @property
 | 
											
												
													
														|  | 
 |  | +    def time_span(self):
 | 
											
												
													
														|  | 
 |  | +        """Период"""
 | 
											
												
													
														|  | 
 |  | +        return self.__timeSpan
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @time_span.setter
 | 
											
												
													
														|  | 
 |  | +    def time_span(self, value):
 | 
											
												
													
														|  | 
 |  | +        """Период"""
 | 
											
												
													
														|  | 
 |  | +        self.__vtor.check_type(value, datetime.datetime)
 | 
											
												
													
														|  | 
 |  | +        self.__timeSpan = value
 |