|
|
@@ -35,6 +35,7 @@ from app.crud.crm.supplier_info import get_supplier_info
|
|
|
from app.models.crm_models import CrmContract, CrmCustomer, CrmQuote, CrmQuoteApproval
|
|
|
from app.models.models import SysUser
|
|
|
from app.services.crm_quote_pdf import generate_quote_pdf
|
|
|
+from app.services.crm.list_sort import resolve_datetime_order_by
|
|
|
from app.crud.crm.data_scope_helpers import apply_crm_owner_scope, ensure_crm_owner_row_in_scope
|
|
|
|
|
|
_FMT = "%Y-%m-%d %H:%M:%S"
|
|
|
@@ -350,7 +351,19 @@ def _build_quote_filters(
|
|
|
)
|
|
|
)
|
|
|
|
|
|
- return q.order_by(CrmQuote.create_time.desc())
|
|
|
+ default_order = CrmQuote.create_time.desc()
|
|
|
+ whitelist = {
|
|
|
+ "quoteDate": CrmQuote.quote_date,
|
|
|
+ "expireDate": CrmQuote.expire_date,
|
|
|
+ "lastViewTime": CrmQuote.last_view_time,
|
|
|
+ "createTime": CrmQuote.create_time,
|
|
|
+ "updateTime": CrmQuote.update_time,
|
|
|
+ }
|
|
|
+ sort_field = _get_field(filters, "sort_field", "sortField")
|
|
|
+ sort_order = _get_field(filters, "sort_order", "sortOrder")
|
|
|
+ return q.order_by(
|
|
|
+ resolve_datetime_order_by(sort_field, sort_order, whitelist, default_order)
|
|
|
+ )
|
|
|
|
|
|
|
|
|
def _fill_contract_linked_count(db: Session, rows: List[Dict[str, Any]]) -> None:
|