fix(estimates): allow approved estimate revocation
This commit is contained in:
parent
31bdc1047d
commit
8d37eb29b3
14 changed files with 295 additions and 8 deletions
|
|
@ -33,7 +33,7 @@ class RepairEstimateRepository:
|
|||
select(RepairEstimate)
|
||||
.options(selectinload(RepairEstimate.items))
|
||||
.where(RepairEstimate.repair_id == repair_id)
|
||||
.where(RepairEstimate.status.in_(["sent", "approved", "declined"]))
|
||||
.where(RepairEstimate.status.in_(["sent", "approved", "declined", "revoked"]))
|
||||
.order_by(RepairEstimate.sent_at.desc().nullslast(), RepairEstimate.created_at.desc(), RepairEstimate.id.desc())
|
||||
.limit(1)
|
||||
)
|
||||
|
|
@ -123,3 +123,14 @@ class RepairEstimateRepository:
|
|||
@staticmethod
|
||||
def count_declined(db: Session) -> int:
|
||||
return db.scalar(select(func.count(RepairEstimate.id)).where(RepairEstimate.status == "declined")) or 0
|
||||
|
||||
@staticmethod
|
||||
def count_revoked_today(db: Session) -> int:
|
||||
today = datetime.now(UTC).date()
|
||||
return db.scalar(
|
||||
select(func.count(RepairEstimate.id))
|
||||
.join(RepairEstimateEvent, RepairEstimateEvent.estimate_id == RepairEstimate.id)
|
||||
.where(RepairEstimate.status == "revoked")
|
||||
.where(RepairEstimateEvent.event_type == "revoked")
|
||||
.where(func.date(RepairEstimateEvent.created_at) == today)
|
||||
) or 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue