Add Phase 18 automatic stock item voucher preparation

This commit is contained in:
A R R R Associates
2026-08-23 18:45:21 +05:30
parent 1111a52917
commit 67ebd587e9
13 changed files with 1705 additions and 31 deletions
@@ -65,6 +65,13 @@ class AccountingVoucherDraft(CommonBase):
order_by="AccountingVoucherLine.line_no",
)
items: Mapped[list["AccountingVoucherItemLine"]] = relationship(
"AccountingVoucherItemLine",
back_populates="draft",
cascade="all, delete-orphan",
order_by="AccountingVoucherItemLine.line_no",
)
class AccountingVoucherLine(CommonBase):
__tablename__ = "accounting_voucher_lines"
@@ -79,3 +86,30 @@ class AccountingVoucherLine(CommonBase):
line_note: Mapped[str] = mapped_column(Text, nullable=False, default="")
draft: Mapped[AccountingVoucherDraft] = relationship("AccountingVoucherDraft", back_populates="lines")
class AccountingVoucherItemLine(CommonBase):
__tablename__ = "accounting_voucher_item_lines"
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
draft_id: Mapped[int] = mapped_column(
ForeignKey("accounting_voucher_drafts.id", ondelete="CASCADE"),
nullable=False,
index=True,
)
line_no: Mapped[int] = mapped_column(Integer, nullable=False, default=1)
stock_item_name: Mapped[str] = mapped_column(String(255), nullable=False, index=True)
hsn_sac: Mapped[str] = mapped_column(String(30), nullable=False, default="", index=True)
quantity: Mapped[float] = mapped_column(Float, nullable=False, default=0)
unit: Mapped[str] = mapped_column(String(40), nullable=False, default="")
rate: Mapped[float] = mapped_column(Float, nullable=False, default=0)
amount: Mapped[float] = mapped_column(Float, nullable=False, default=0)
dr_cr: Mapped[str] = mapped_column(String(2), nullable=False)
accounting_ledger_name: Mapped[str] = mapped_column(String(255), nullable=False, default="")
godown_name: Mapped[str] = mapped_column(String(255), nullable=False, default="")
source_item_json: Mapped[str] = mapped_column(Text, nullable=False, default="{}")
draft: Mapped[AccountingVoucherDraft] = relationship(
"AccountingVoucherDraft",
back_populates="items",
)