Add support for importing MemberEquityPayment from CORE-POS DB
SQL only, no API for now
This commit is contained in:
parent
35e24422a2
commit
a57f29fe1a
8 changed files with 248 additions and 15 deletions
|
@ -0,0 +1,57 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
"""add MemberEquityPayment extension
|
||||
|
||||
Revision ID: 08d879bbe118
|
||||
Revises: b025df7cf41b
|
||||
Create Date: 2023-09-06 17:44:43.874500
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '08d879bbe118'
|
||||
down_revision = 'b025df7cf41b'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import rattail.db.types
|
||||
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
# corepos_member_equity_payment
|
||||
op.create_table('corepos_member_equity_payment',
|
||||
sa.Column('uuid', sa.String(length=32), nullable=False),
|
||||
sa.Column('corepos_card_number', sa.Integer(), nullable=False),
|
||||
sa.Column('corepos_transaction_number', sa.String(length=50), nullable=True),
|
||||
sa.Column('corepos_transaction_id', sa.Integer(), nullable=True),
|
||||
sa.Column('corepos_department_number', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['uuid'], ['member_equity_payment.uuid'], name='corepos_member_equity_payment_fk_payment'),
|
||||
sa.PrimaryKeyConstraint('uuid')
|
||||
)
|
||||
op.create_table('corepos_member_equity_payment_version',
|
||||
sa.Column('uuid', sa.String(length=32), autoincrement=False, nullable=False),
|
||||
sa.Column('corepos_card_number', sa.Integer(), autoincrement=False, nullable=True),
|
||||
sa.Column('corepos_transaction_number', sa.String(length=50), autoincrement=False, nullable=True),
|
||||
sa.Column('corepos_transaction_id', sa.Integer(), autoincrement=False, nullable=True),
|
||||
sa.Column('corepos_department_number', sa.Integer(), autoincrement=False, nullable=True),
|
||||
sa.Column('transaction_id', sa.BigInteger(), autoincrement=False, nullable=False),
|
||||
sa.Column('end_transaction_id', sa.BigInteger(), nullable=True),
|
||||
sa.Column('operation_type', sa.SmallInteger(), nullable=False),
|
||||
sa.PrimaryKeyConstraint('uuid', 'transaction_id')
|
||||
)
|
||||
op.create_index(op.f('ix_corepos_member_equity_payment_version_end_transaction_id'), 'corepos_member_equity_payment_version', ['end_transaction_id'], unique=False)
|
||||
op.create_index(op.f('ix_corepos_member_equity_payment_version_operation_type'), 'corepos_member_equity_payment_version', ['operation_type'], unique=False)
|
||||
op.create_index(op.f('ix_corepos_member_equity_payment_version_transaction_id'), 'corepos_member_equity_payment_version', ['transaction_id'], unique=False)
|
||||
|
||||
|
||||
def downgrade():
|
||||
|
||||
# corepos_member_equity_payment
|
||||
op.drop_index(op.f('ix_corepos_member_equity_payment_version_transaction_id'), table_name='corepos_member_equity_payment_version')
|
||||
op.drop_index(op.f('ix_corepos_member_equity_payment_version_operation_type'), table_name='corepos_member_equity_payment_version')
|
||||
op.drop_index(op.f('ix_corepos_member_equity_payment_version_end_transaction_id'), table_name='corepos_member_equity_payment_version')
|
||||
op.drop_table('corepos_member_equity_payment_version')
|
||||
op.drop_table('corepos_member_equity_payment')
|
|
@ -25,7 +25,8 @@ Database schema extensions for CORE-POS integration
|
|||
"""
|
||||
|
||||
from .stores import CoreStore
|
||||
from .people import CorePerson, CoreCustomer, CoreCustomerShopper, CoreMember
|
||||
from .people import (CorePerson, CoreCustomer, CoreCustomerShopper,
|
||||
CoreMember, CoreMemberEquityPayment)
|
||||
from .products import (CoreDepartment, CoreSubdepartment,
|
||||
CoreVendor, CoreProduct, CoreProductCost)
|
||||
|
||||
|
|
|
@ -178,3 +178,54 @@ class CoreMember(model.Base):
|
|||
return str(self.member)
|
||||
|
||||
CoreMember.make_proxy(model.Member, '_corepos', 'corepos_account_id')
|
||||
|
||||
|
||||
class CoreMemberEquityPayment(model.Base):
|
||||
"""
|
||||
CORE-specific extensions to
|
||||
:class:`~rattail:rattail.db.model.MemberEquityPayment`.
|
||||
"""
|
||||
__tablename__ = 'corepos_member_equity_payment'
|
||||
__table_args__ = (
|
||||
sa.ForeignKeyConstraint(['uuid'], ['member_equity_payment.uuid'],
|
||||
name='corepos_member_equity_payment_fk_payment'),
|
||||
)
|
||||
__versioned__ = {}
|
||||
|
||||
uuid = model.uuid_column(default=None)
|
||||
payment = orm.relationship(
|
||||
model.MemberEquityPayment,
|
||||
doc="""
|
||||
Reference to the actual payment record, which this one extends.
|
||||
""",
|
||||
backref=orm.backref(
|
||||
'_corepos',
|
||||
uselist=False,
|
||||
cascade='all, delete-orphan',
|
||||
doc="""
|
||||
Reference to the CORE-POS extension record for this payment.
|
||||
"""))
|
||||
|
||||
corepos_card_number = sa.Column(sa.Integer(), nullable=False, doc="""
|
||||
``stockpurchases.card_no`` value for this payment, within CORE-POS.
|
||||
""")
|
||||
|
||||
corepos_transaction_number = sa.Column(sa.String(length=50), nullable=True, doc="""
|
||||
``stockpurchases.trans_num`` value for this payment, within CORE-POS.
|
||||
""")
|
||||
|
||||
corepos_transaction_id = sa.Column(sa.Integer(), nullable=True, doc="""
|
||||
``stockpurchases.trans_id`` value for this payment, within CORE-POS.
|
||||
""")
|
||||
|
||||
corepos_department_number = sa.Column(sa.Integer(), nullable=True, doc="""
|
||||
``stockpurchases.dept`` value for this payment, within CORE-POS.
|
||||
""")
|
||||
|
||||
def __str__(self):
|
||||
return str(self.payment)
|
||||
|
||||
CoreMemberEquityPayment.make_proxy(model.MemberEquityPayment, '_corepos', 'corepos_card_number')
|
||||
CoreMemberEquityPayment.make_proxy(model.MemberEquityPayment, '_corepos', 'corepos_transaction_number')
|
||||
CoreMemberEquityPayment.make_proxy(model.MemberEquityPayment, '_corepos', 'corepos_transaction_id')
|
||||
CoreMemberEquityPayment.make_proxy(model.MemberEquityPayment, '_corepos', 'corepos_department_number')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue