Files
arrr-erp/alembic/versions/20260823_automatic_stock_item_voucher_phase18.py
T
2026-08-23 18:45:21 +05:30

57 lines
2.0 KiB
Python

"""Phase 18 Automatic Source Driven Stock Item Voucher Engine.
Revision ID: 20260823_auto_stock_voucher_p18
Revises: 20260823_native_voucher_engine_p17
"""
from alembic import op
import sqlalchemy as sa
revision = "20260823_auto_stock_voucher_p18"
down_revision = "20260823_native_voucher_engine_p17"
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
"accounting_voucher_item_lines",
sa.Column("id", sa.Integer(), primary_key=True),
sa.Column(
"draft_id",
sa.Integer(),
sa.ForeignKey("accounting_voucher_drafts.id", ondelete="CASCADE"),
nullable=False,
),
sa.Column("line_no", sa.Integer(), nullable=False, server_default="1"),
sa.Column("stock_item_name", sa.String(255), nullable=False),
sa.Column("hsn_sac", sa.String(30), nullable=False, server_default=""),
sa.Column("quantity", sa.Float(), nullable=False, server_default="0"),
sa.Column("unit", sa.String(40), nullable=False, server_default=""),
sa.Column("rate", sa.Float(), nullable=False, server_default="0"),
sa.Column("amount", sa.Float(), nullable=False, server_default="0"),
sa.Column("dr_cr", sa.String(2), nullable=False),
sa.Column("accounting_ledger_name", sa.String(255), nullable=False, server_default=""),
sa.Column("godown_name", sa.String(255), nullable=False, server_default=""),
sa.Column("source_item_json", sa.Text(), nullable=False, server_default="{}"),
)
op.create_index(
"ix_accounting_voucher_item_lines_draft_id",
"accounting_voucher_item_lines",
["draft_id"],
)
op.create_index(
"ix_accounting_voucher_item_lines_stock_item_name",
"accounting_voucher_item_lines",
["stock_item_name"],
)
op.create_index(
"ix_accounting_voucher_item_lines_hsn_sac",
"accounting_voucher_item_lines",
["hsn_sac"],
)
def downgrade():
op.drop_table("accounting_voucher_item_lines")