Add cash payment compliance and accounting tools
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
revision = "20260903_cash_payment_rules"
|
||||||
|
down_revision = "20260902_ws_enrollment_secret"
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
op.create_table(
|
||||||
|
"accounting_cash_payment_rule_settings",
|
||||||
|
sa.Column("id", sa.Integer(), primary_key=True, autoincrement=True),
|
||||||
|
sa.Column("tenant_id", sa.Integer(), sa.ForeignKey("tenants.id", ondelete="CASCADE"), nullable=False),
|
||||||
|
sa.Column("cash_limit", sa.Float(), nullable=False, server_default="10000"),
|
||||||
|
sa.Column("effective_from", sa.Date(), nullable=False, server_default="2017-04-01"),
|
||||||
|
sa.Column("split_window_days", sa.Integer(), nullable=False, server_default="3"),
|
||||||
|
sa.Column("near_limit_percent", sa.Float(), nullable=False, server_default="80"),
|
||||||
|
sa.Column("max_allocation_days", sa.Integer(), nullable=False, server_default="5"),
|
||||||
|
sa.Column("updated_by_user_id", sa.Integer(), sa.ForeignKey("users.id", ondelete="SET NULL"), nullable=True),
|
||||||
|
sa.Column("created_at_utc", sa.DateTime(), nullable=False, server_default=sa.text("CURRENT_TIMESTAMP")),
|
||||||
|
sa.Column("updated_at_utc", sa.DateTime(), nullable=False, server_default=sa.text("CURRENT_TIMESTAMP")),
|
||||||
|
sa.UniqueConstraint("tenant_id", name="uq_cash_payment_rule_settings_tenant"),
|
||||||
|
)
|
||||||
|
op.create_index("ix_cash_payment_rule_settings_tenant", "accounting_cash_payment_rule_settings", ["tenant_id"], unique=False)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_index("ix_cash_payment_rule_settings_tenant", table_name="accounting_cash_payment_rule_settings")
|
||||||
|
op.drop_table("accounting_cash_payment_rule_settings")
|
||||||
Reference in New Issue
Block a user