|
@@ -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
|