diff --git a/CHANGELOG.md b/CHANGELOG.md index 39309fe..ccc62cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,6 @@ All notable changes to pyCOREPOS will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## v0.3.4 (2025-01-15) - -### Fix - -- misc. cleanup for sales batch models -- add more enums for batch discount type, editor UI - ## v0.3.3 (2025-01-13) ### Fix diff --git a/corepos/db/office_op/model.py b/corepos/db/office_op/model.py index 6087f67..16bbc57 100644 --- a/corepos/db/office_op/model.py +++ b/corepos/db/office_op/model.py @@ -1636,9 +1636,7 @@ class BatchType(Base): """ __tablename__ = 'batchType' - # nb. this is *not* autoincrement for some reason; must - # calculate new ID manually based on max existing - id = sa.Column('batchTypeID', sa.Integer(), nullable=False, primary_key=True, autoincrement=False) + id = sa.Column('batchTypeID', sa.Integer(), primary_key=True, autoincrement=False, nullable=False) description = sa.Column('typeDesc', sa.String(length=50), nullable=True) @@ -1648,7 +1646,7 @@ class BatchType(Base): special_order_eligible = sa.Column('specialOrderEligible', sa.Boolean(), nullable=True, default=True) - editor_ui = sa.Column('editorUI', sa.SmallInteger(), nullable=True, default=True) + editor_ui = sa.Column('editorUI', sa.Boolean(), nullable=True, default=True) allow_single_store = sa.Column('allowSingleStore', sa.Boolean(), nullable=True, default=False) @@ -1663,6 +1661,9 @@ class Batch(Base): Represents a batch. """ __tablename__ = 'batches' + __table_args__ = ( + sa.ForeignKeyConstraint(['batchType'], ['batchType.batchTypeID']), + ) id = sa.Column('batchID', sa.Integer(), primary_key=True, autoincrement=True, nullable=False) @@ -1672,8 +1673,7 @@ class Batch(Base): name = sa.Column('batchName', sa.String(length=80), nullable=True) - batch_type_id = sa.Column('batchType', sa.Integer(), - sa.ForeignKey('batchType.batchTypeID'), nullable=True) + batch_type_id = sa.Column('batchType', sa.Integer(), nullable=True) batch_type = orm.relationship(BatchType) discount_type = sa.Column('discountType', sa.Integer(), nullable=True) @@ -1695,18 +1695,16 @@ class BatchItem(Base): Represents a batch "list" item. """ __tablename__ = 'batchList' + __table_args__ = ( + sa.ForeignKeyConstraint(['batchID'], ['batches.batchID']), + ) id = sa.Column('listID', sa.Integer(), primary_key=True, autoincrement=True, nullable=False) - batch_id = sa.Column('batchID', sa.Integer(), - sa.ForeignKey('batches.batchID'), nullable=True) + batch_id = sa.Column('batchID', sa.Integer(), nullable=True) batch = orm.relationship(Batch, backref=orm.backref('items')) upc = sa.Column(sa.String(length=13), nullable=True) - product = orm.relationship( - Product, - primaryjoin=Product.upc == upc, - foreign_keys=[upc]) sale_price = sa.Column('salePrice', sa.Numeric(precision=9, scale=3), nullable=True) diff --git a/corepos/enum.py b/corepos/enum.py index 93780c3..28e33ea 100644 --- a/corepos/enum.py +++ b/corepos/enum.py @@ -34,33 +34,14 @@ class CoreDbType(str, Enum): office_arch = 'office_arch' -BATCH_DISCOUNT_TYPE_TRACKING = -1 BATCH_DISCOUNT_TYPE_PRICE_CHANGE = 0 BATCH_DISCOUNT_TYPE_SALE_EVERYONE = 1 BATCH_DISCOUNT_TYPE_SALE_RESTRICTED = 2 -BATCH_DISCOUNT_TYPE_SLIDING_PERCENT = 3 -BATCH_DISCOUNT_TYPE_SLIDING_AMOUNT = 5 BATCH_DISCOUNT_TYPE = OrderedDict([ - (BATCH_DISCOUNT_TYPE_PRICE_CHANGE, "None (Change regular price)"), + (BATCH_DISCOUNT_TYPE_PRICE_CHANGE, "Price Change"), (BATCH_DISCOUNT_TYPE_SALE_EVERYONE, "Sale for everyone"), - (BATCH_DISCOUNT_TYPE_SALE_RESTRICTED, "Sale for Members"), - (BATCH_DISCOUNT_TYPE_SLIDING_PERCENT, "Sliding % Off for Members"), - (BATCH_DISCOUNT_TYPE_SLIDING_AMOUNT, "Sliding $ Off for Members"), - (BATCH_DISCOUNT_TYPE_TRACKING, "Tracking (does not change any prices)"), -]) - - -BATCH_EDITOR_UI_STANDARD = 1 -BATCH_EDITOR_UI_PAIRED_SALE = 2 -BATCH_EDITOR_UI_PARTIAL = 3 -BATCH_EDITOR_UI_TRACKING = 4 - -BATCH_EDITOR_UI = OrderedDict([ - (BATCH_EDITOR_UI_STANDARD, "Standard"), - (BATCH_EDITOR_UI_PAIRED_SALE, "Paired Sale"), - (BATCH_EDITOR_UI_PARTIAL, "Partial"), - (BATCH_EDITOR_UI_TRACKING, "Tracking"), + (BATCH_DISCOUNT_TYPE_SALE_RESTRICTED, "Member/Owner only sale"), ]) diff --git a/pyproject.toml b/pyproject.toml index 143843f..a59e830 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "pyCOREPOS" -version = "0.3.4" +version = "0.3.3" description = "Python Interface to CORE POS" readme = "README.md" authors = [{name = "Lance Edgar", email = "lance@edbob.org"}]