Files
barker/barker/barker/models/settle_option.py
T
tanshu cb3657615a Chore: Updated fastapi and pydantic
Refactor: Removed mapped_column name string in models
Refactor: Moved from postgres.uuid to uuid in models
Fix: Schemas use Daf (Decimal as float to hack around pydantic v2 sending decimals as strings.)
2023-08-17 22:09:20 +05:30

48 lines
1.5 KiB
Python

from barker.models.reporting_level import ReportingLevel
from barker.models.voucher_type import VoucherType
from sqlalchemy import Boolean, Enum, Integer, Text
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.sql import expression
from ..db.base_class import reg
@reg.mapped_as_dataclass(unsafe_hash=True)
class SettleOption:
__tablename__ = "settle_options"
id: Mapped[int] = mapped_column(Integer, primary_key=True)
name: Mapped[str] = mapped_column(Text, unique=True, nullable=False)
voucher_type: Mapped[VoucherType] = mapped_column(Enum(VoucherType), nullable=False)
reporting_level: Mapped[ReportingLevel] = mapped_column(Enum(ReportingLevel), nullable=False)
has_reason: Mapped[bool] = mapped_column(Boolean, nullable=False, server_default=expression.false())
is_fixture: Mapped[bool] = mapped_column(Boolean, nullable=False, server_default=expression.false())
def __init__(self, name=None, voucher_type=None, reporting_level=None, has_reason=None, is_fixture=None, id_=None):
self.id = id_
self.name = name
self.voucher_type = voucher_type
self.reporting_level = reporting_level
self.has_reason = has_reason
self.is_fixture = is_fixture
@classmethod
def UNSETTLED(cls):
return 1
@classmethod
def ROUND_OFF(cls):
return 7
@classmethod
def AMOUNT(cls):
return 8
@classmethod
def VOID(cls):
return 9
@classmethod
def CANCEL(cls):
return 12