Merge branch 'development' of https://git.aduanasoft.com/ADUANASOFT/anexo76 into feature/tablas_nuevas_partes
This commit is contained in:
@@ -74,6 +74,12 @@ class MovementType(str, Enum):
|
||||
EXPIRATION = "expiration" # Balance cancelled due to deadline
|
||||
REGIME_CHANGE_OUT = "regime_chg_out" # Eg. temporary → definitive (exit side)
|
||||
|
||||
# ── Reversal (annuls a prior ENTRY — used when un-processing an invoice) ─
|
||||
# Inserting ENTRY_VOID with the same quantity as the original ENTRY leaves
|
||||
# the net balance at zero, preventing any further discharges against that
|
||||
# lot. A fresh ENTRY is created when the invoice is re-processed.
|
||||
ENTRY_VOID = "entry_void"
|
||||
|
||||
|
||||
# Which movement types reduce the balance (sign = -1)
|
||||
NEGATIVE_MOVEMENTS = {
|
||||
@@ -85,6 +91,7 @@ NEGATIVE_MOVEMENTS = {
|
||||
MovementType.TRANSFER_OUT,
|
||||
MovementType.EXPIRATION,
|
||||
MovementType.REGIME_CHANGE_OUT,
|
||||
MovementType.ENTRY_VOID,
|
||||
}
|
||||
|
||||
# Which types count toward "used" (CANTUSADA in Anexo 24 report)
|
||||
|
||||
@@ -56,7 +56,7 @@ class FaLineItemCreateDTO(BaseModel):
|
||||
subitem_number: Optional[int] = Field(0, description="Número de subpartida")
|
||||
|
||||
# Special flags
|
||||
download: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
discharge: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
own_equipment: Optional[bool] = Field(None, description="Equipo propio")
|
||||
omit_annex31: Optional[bool] = Field(None, description="Omitir en Anexo 31")
|
||||
|
||||
@@ -108,7 +108,7 @@ class FaLineItemUpdateDTO(BaseModel):
|
||||
subitem_number: Optional[int] = Field(None, description="Número de subpartida")
|
||||
|
||||
# Special flags
|
||||
download: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
discharge: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
own_equipment: Optional[bool] = Field(None, description="Equipo propio")
|
||||
omit_annex31: Optional[bool] = Field(None, description="Omitir en Anexo 31")
|
||||
|
||||
@@ -156,7 +156,7 @@ class FaLineItemResponseDTO(BaseModel):
|
||||
subitem_number: Optional[int] = Field(None, description="Número de subpartida")
|
||||
|
||||
# Special flags
|
||||
download: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
discharge: Optional[bool] = Field(None, description="Indicador de descarga")
|
||||
own_equipment: Optional[bool] = Field(None, description="Equipo propio")
|
||||
omit_annex31: Optional[bool] = Field(None, description="Omitir en Anexo 31")
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ class FaLineItem(Base, TenantScopedMixin, TimestampMixin):
|
||||
subitem_number: Mapped[Optional[int]] = mapped_column(Integer) # SUBPARTIDA
|
||||
|
||||
# Special flags
|
||||
download: Mapped[Optional[bool]] = mapped_column(Boolean) # DESCARGA
|
||||
discharge: Mapped[Optional[bool]] = mapped_column(Boolean) # DESCARGA
|
||||
own_equipment: Mapped[Optional[bool]] = mapped_column(Boolean) # EQUIPOPROPIO
|
||||
omit_annex31: Mapped[Optional[bool]] = mapped_column(Boolean) # OMITITENANEXO31
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ class FaLineItemService:
|
||||
query = query.filter(
|
||||
FaLineItem.own_equipment == filters["own_equipment"]
|
||||
)
|
||||
if filters.get("download") is not None:
|
||||
query = query.filter(FaLineItem.download == filters["download"])
|
||||
if filters.get("discharge") is not None:
|
||||
query = query.filter(FaLineItem.discharge == filters["discharge"])
|
||||
|
||||
total = query.count()
|
||||
items = query.offset(skip).limit(limit).all()
|
||||
@@ -146,7 +146,7 @@ class FaLineItemService:
|
||||
search_invoice=fa_line_item_data.search_invoice,
|
||||
search_line=fa_line_item_data.search_line,
|
||||
search_type=fa_line_item_data.search_type,
|
||||
download=fa_line_item_data.download,
|
||||
discharge=fa_line_item_data.discharge,
|
||||
own_equipment=fa_line_item_data.own_equipment,
|
||||
omit_annex31=fa_line_item_data.omit_annex31,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user