feat(crm): expose quote approver setting get/save APIs
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
ffbb5e36b3
commit
8646f33587
1 file changed
+39
-1
@@ -7,7 +7,7 @@ from fastapi import Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import get_db
|
||||
from app.core.menu_guard import require_admin_or_super_admin
|
||||
from app.core.menu_guard import require_admin_or_super_admin, require_menu_code
|
||||
from app.core.response import error_response, success_response
|
||||
from app.core.tenant_context import get_tenant_no
|
||||
from app.crud.crm.data_scope_helpers import crm_user_info
|
||||
@@ -33,6 +33,7 @@ from app.crud.crm.quote import (
|
||||
total_pages as quote_total_pages,
|
||||
update_quote,
|
||||
)
|
||||
from app.crud.crm.quote_approver_setting import get_setting, save_setting
|
||||
from app.crud.crm.quote_approval import (
|
||||
approve_quote,
|
||||
list_quote_approvals,
|
||||
@@ -46,6 +47,7 @@ from app.crud.crm.quote_product import (
|
||||
update_quote_product,
|
||||
)
|
||||
from app.crud.crm.quote_share_log import list_share_logs, share_log_statistics
|
||||
from app.schemas.crm.quote_approver_setting import QuoteApproverSettingSaveBody
|
||||
from app.schemas.crm.quote import (
|
||||
QuoteAcceptBody,
|
||||
QuoteApprovalApproveBody,
|
||||
@@ -711,3 +713,39 @@ def register_quote_routes(router):
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
@router.post("/quote-approver-setting/get")
|
||||
async def quote_approver_setting_get(
|
||||
_user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
data = get_setting(db, tenant_no=tenant_no)
|
||||
return success_response(data or {"approverIds": [], "status": "1"})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
@router.post("/quote-approver-setting/save")
|
||||
async def quote_approver_setting_save(
|
||||
body: QuoteApproverSettingSaveBody,
|
||||
_user: dict = Depends(require_menu_code("crm:quote:approverSetting")),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
user_id = _user.get("user_id", "") or _user.get("id", "")
|
||||
dept_id = _user.get("dept_id", "") or _user.get("create_dept_id", "") or ""
|
||||
data = save_setting(
|
||||
db,
|
||||
tenant_no=tenant_no,
|
||||
approver_ids=body.approverIds or [],
|
||||
status=body.status or "0",
|
||||
user_id=user_id,
|
||||
dept_id=dept_id,
|
||||
)
|
||||
return success_response(data, message="保存成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
Reference in new issue
Block a user