Add LikeCode
and ProductLikeCode
models
This commit is contained in:
parent
87fd5367a1
commit
4b971c289e
|
@ -270,6 +270,41 @@ class TaxRateComponent(Base):
|
|||
|
||||
description = sa.Column(sa.String(length=50), nullable=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.description or ""
|
||||
|
||||
|
||||
class LikeCode(Base):
|
||||
"""
|
||||
Represents a "like code" for sake of product pricing.
|
||||
"""
|
||||
__tablename__ = 'likeCodes'
|
||||
|
||||
likeCode = sa.Column(sa.Integer(), primary_key=True, autoincrement=False, nullable=False)
|
||||
id = orm.synonym('likeCode')
|
||||
|
||||
description = sa.Column('likeCodeDesc', sa.String(length=50), nullable=True)
|
||||
|
||||
strict = sa.Column(sa.Boolean(), nullable=True, default=False)
|
||||
|
||||
organic = sa.Column(sa.Boolean(), nullable=True, default=False)
|
||||
|
||||
preferred_vendor_id = sa.Column('preferredVendorID', sa.Integer(), nullable=True, default=0)
|
||||
|
||||
multi_vendor = sa.Column('multiVendor', sa.Boolean(), nullable=True, default=False)
|
||||
|
||||
sort_retail = sa.Column('sortRetail', sa.String(length=255), nullable=True)
|
||||
|
||||
sort_internal = sa.Column('sortInternal', sa.String(length=255), nullable=True)
|
||||
|
||||
products = association_proxy(
|
||||
'_products', 'product',
|
||||
creator=lambda p: ProductLikeCode(product=p),
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.description or ""
|
||||
|
||||
|
||||
class Product(Base):
|
||||
"""
|
||||
|
@ -388,6 +423,11 @@ class Product(Base):
|
|||
|
||||
current_origin_id = sa.Column(sa.Integer(), nullable=True, default=0)
|
||||
|
||||
like_code = association_proxy(
|
||||
'_like_code', 'like_code',
|
||||
creator=lambda lc: ProductLikeCode(like_code=lc),
|
||||
)
|
||||
|
||||
@property
|
||||
def full_description(self):
|
||||
fields = ['brand', 'description', 'size']
|
||||
|
@ -399,6 +439,42 @@ class Product(Base):
|
|||
return self.description or ''
|
||||
|
||||
|
||||
class ProductLikeCode(Base):
|
||||
"""
|
||||
Represents the association between a product and like code.
|
||||
"""
|
||||
__tablename__ = 'upcLike'
|
||||
__table_args__ = (
|
||||
sa.ForeignKeyConstraint(['likeCode'], ['likeCodes.likeCode']),
|
||||
)
|
||||
|
||||
upc = sa.Column(sa.String(length=13), primary_key=True, nullable=False)
|
||||
product = orm.relationship(
|
||||
Product,
|
||||
primaryjoin=Product.upc == orm.foreign(upc),
|
||||
doc="""
|
||||
Reference to the product to which this association applies.
|
||||
""",
|
||||
backref=orm.backref(
|
||||
'_like_code',
|
||||
uselist=False,
|
||||
doc="""
|
||||
Reference to the like code association for the product.
|
||||
"""))
|
||||
|
||||
like_code_id = sa.Column('likeCode', sa.Integer(), nullable=True)
|
||||
like_code = orm.relationship(
|
||||
LikeCode,
|
||||
doc="""
|
||||
Reference to the LikeCode to which this association applies.
|
||||
""",
|
||||
backref=orm.backref(
|
||||
'_products',
|
||||
doc="""
|
||||
List of product associations for this like code.
|
||||
"""))
|
||||
|
||||
|
||||
class ProductFlag(Base):
|
||||
"""
|
||||
Represents a product flag attribute.
|
||||
|
|
Loading…
Reference in a new issue