mirror of
https://github.com/beak-insights/felicity-lims.git
synced 2025-02-23 00:12:54 +08:00
246 lines
13 KiB
Python
246 lines
13 KiB
Python
"""added billing
|
|
|
|
Revision ID: 9e7323692f03
|
|
Revises: 1b3226667bb5
|
|
Create Date: 2023-12-17 07:37:43.738011
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.dialects import postgresql
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '9e7323692f03'
|
|
down_revision = '1b3226667bb5'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table('voucher',
|
|
sa.Column('name', sa.String(), nullable=False),
|
|
sa.Column('usage_limit', sa.Integer(), nullable=False),
|
|
sa.Column('used', sa.Integer(), nullable=False),
|
|
sa.Column('start_date', sa.DateTime(), nullable=False),
|
|
sa.Column('end_date', sa.DateTime(), nullable=False),
|
|
sa.Column('once_per_customer', sa.Boolean(), nullable=False),
|
|
sa.Column('once_per_order', sa.Boolean(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid'),
|
|
sa.UniqueConstraint('name')
|
|
)
|
|
op.create_index(op.f('ix_voucher_uid'), 'voucher', ['uid'], unique=False)
|
|
op.create_table('voucher_code',
|
|
sa.Column('code', sa.String(length=20), nullable=False),
|
|
sa.Column('voucher_uid', sa.String(), nullable=False),
|
|
sa.Column('usage_limit', sa.Integer(), nullable=False),
|
|
sa.Column('used', sa.Integer(), nullable=False),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid'),
|
|
sa.UniqueConstraint('code')
|
|
)
|
|
op.create_index(op.f('ix_voucher_code_uid'), 'voucher_code', ['uid'], unique=False)
|
|
op.create_table('profile_discount',
|
|
sa.Column('profile_uid', sa.String(), nullable=False),
|
|
sa.Column('name', sa.String(), nullable=False),
|
|
sa.Column('discount_type', sa.String(), nullable=False),
|
|
sa.Column('value_type', sa.String(), nullable=False),
|
|
sa.Column('start_date', sa.DateTime(), nullable=False),
|
|
sa.Column('end_date', sa.DateTime(), nullable=False),
|
|
sa.Column('voucher_uid', sa.String(), nullable=True),
|
|
sa.Column('value_percent', sa.Float(), nullable=True),
|
|
sa.Column('value_amount', sa.Float(), nullable=True),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['profile_uid'], ['profile.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_profile_discount_uid'), 'profile_discount', ['uid'], unique=False)
|
|
op.create_table('profile_price',
|
|
sa.Column('profile_uid', sa.String(), nullable=True),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('amount', sa.Float(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['profile_uid'], ['profile.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_profile_price_uid'), 'profile_price', ['uid'], unique=False)
|
|
op.create_table('analysis_discount',
|
|
sa.Column('analysis_uid', sa.String(), nullable=False),
|
|
sa.Column('name', sa.String(), nullable=False),
|
|
sa.Column('discount_type', sa.String(), nullable=False),
|
|
sa.Column('value_type', sa.String(), nullable=False),
|
|
sa.Column('start_date', sa.DateTime(), nullable=False),
|
|
sa.Column('end_date', sa.DateTime(), nullable=False),
|
|
sa.Column('voucher_uid', sa.String(), nullable=True),
|
|
sa.Column('value_percent', sa.Float(), nullable=True),
|
|
sa.Column('value_amount', sa.Float(), nullable=True),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['analysis_uid'], ['analysis.uid'], ),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['voucher_uid'], ['voucher.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_analysis_discount_uid'), 'analysis_discount', ['uid'], unique=False)
|
|
op.create_table('analysis_price',
|
|
sa.Column('analysis_uid', sa.String(), nullable=True),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('amount', sa.Float(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['analysis_uid'], ['analysis.uid'], ),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_analysis_price_uid'), 'analysis_price', ['uid'], unique=False)
|
|
op.create_table('test_bill',
|
|
sa.Column('bill_id', sa.String(), nullable=False),
|
|
sa.Column('patient_uid', sa.String(), nullable=True),
|
|
sa.Column('client_uid', sa.String(), nullable=True),
|
|
sa.Column('is_active', sa.Boolean(), nullable=False),
|
|
sa.Column('to_confirm', sa.Boolean(), nullable=False),
|
|
sa.Column('partial', sa.Boolean(), nullable=False),
|
|
sa.Column('total_charged', sa.Float(), nullable=False),
|
|
sa.Column('total_paid', sa.Float(), nullable=False),
|
|
sa.Column('json_content', postgresql.JSONB(astext_type=sa.Text()), nullable=True),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['client_uid'], ['client.uid'], ),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['patient_uid'], ['patient.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_test_bill_uid'), 'test_bill', ['uid'], unique=False)
|
|
op.create_table('voucher_customer',
|
|
sa.Column('patient_uid', sa.String(), nullable=False),
|
|
sa.Column('voucher_code_uid', sa.String(), nullable=False),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['patient_uid'], ['patient.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['voucher_code_uid'], ['voucher_code.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_voucher_customer_uid'), 'voucher_customer', ['uid'], unique=False)
|
|
op.create_table('test_bill_invoice',
|
|
sa.Column('test_bill_uid', sa.String(), nullable=True),
|
|
sa.Column('json_content', postgresql.JSONB(astext_type=sa.Text()), nullable=True),
|
|
sa.Column('pdf_content', sa.LargeBinary(), nullable=True),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_test_bill_invoice_uid'), 'test_bill_invoice', ['uid'], unique=False)
|
|
op.create_table('test_bill_item',
|
|
sa.Column('test_bill_uid', sa.String(), nullable=False),
|
|
sa.Column('analysis_request_uid', sa.String(), nullable=False),
|
|
sa.ForeignKeyConstraint(['analysis_request_uid'], ['analysis_request.uid'], ),
|
|
sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ),
|
|
sa.PrimaryKeyConstraint('test_bill_uid', 'analysis_request_uid')
|
|
)
|
|
op.create_table('test_bill_transaction',
|
|
sa.Column('test_bill_uid', sa.String(), nullable=True),
|
|
sa.Column('kind', sa.String(), nullable=False),
|
|
sa.Column('amount', sa.Float(), nullable=False),
|
|
sa.Column('notes', sa.String(), nullable=True),
|
|
sa.Column('is_success', sa.Boolean(), nullable=False),
|
|
sa.Column('processed', sa.Boolean(), nullable=False),
|
|
sa.Column('message', sa.String(), nullable=True),
|
|
sa.Column('action_required', sa.Boolean(), nullable=False),
|
|
sa.Column('action_message', sa.String(), nullable=True),
|
|
sa.Column('uid', sa.String(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=True),
|
|
sa.Column('created_by_uid', sa.String(), nullable=True),
|
|
sa.Column('updated_at', sa.DateTime(), nullable=True),
|
|
sa.Column('updated_by_uid', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['created_by_uid'], ['user.uid'], ),
|
|
sa.ForeignKeyConstraint(['test_bill_uid'], ['test_bill.uid'], ),
|
|
sa.ForeignKeyConstraint(['updated_by_uid'], ['user.uid'], ),
|
|
sa.PrimaryKeyConstraint('uid')
|
|
)
|
|
op.create_index(op.f('ix_test_bill_transaction_uid'), 'test_bill_transaction', ['uid'], unique=False)
|
|
op.add_column('laboratory_setting', sa.Column('allow_billing', sa.Boolean(), nullable=True))
|
|
op.add_column('laboratory_setting', sa.Column('allow_auto_billing', sa.Boolean(), nullable=True))
|
|
op.add_column('laboratory_setting', sa.Column('currency', sa.String(), nullable=True))
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_column('laboratory_setting', 'currency')
|
|
op.drop_column('laboratory_setting', 'allow_auto_billing')
|
|
op.drop_column('laboratory_setting', 'allow_billing')
|
|
op.drop_index(op.f('ix_test_bill_transaction_uid'), table_name='test_bill_transaction')
|
|
op.drop_table('test_bill_transaction')
|
|
op.drop_table('test_bill_item')
|
|
op.drop_index(op.f('ix_test_bill_invoice_uid'), table_name='test_bill_invoice')
|
|
op.drop_table('test_bill_invoice')
|
|
op.drop_index(op.f('ix_voucher_customer_uid'), table_name='voucher_customer')
|
|
op.drop_table('voucher_customer')
|
|
op.drop_index(op.f('ix_test_bill_uid'), table_name='test_bill')
|
|
op.drop_table('test_bill')
|
|
op.drop_index(op.f('ix_analysis_price_uid'), table_name='analysis_price')
|
|
op.drop_table('analysis_price')
|
|
op.drop_index(op.f('ix_analysis_discount_uid'), table_name='analysis_discount')
|
|
op.drop_table('analysis_discount')
|
|
op.drop_index(op.f('ix_profile_price_uid'), table_name='profile_price')
|
|
op.drop_table('profile_price')
|
|
op.drop_index(op.f('ix_profile_discount_uid'), table_name='profile_discount')
|
|
op.drop_table('profile_discount')
|
|
op.drop_index(op.f('ix_voucher_code_uid'), table_name='voucher_code')
|
|
op.drop_table('voucher_code')
|
|
op.drop_index(op.f('ix_voucher_uid'), table_name='voucher')
|
|
op.drop_table('voucher')
|
|
# ### end Alembic commands ###
|