feat: credit_limit 加 grant_orgid 授予机构字段,支持多租户
credit_limit 新增 grant_orgid 字段,区分「客户所属机构(orgid)」 与「授予信用的机构(grant_orgid)」。多租户下,操作员为客户授信时: - orgid = 客户机构ID - grant_orgid = 操作员所属机构ID 修改: - models/credit_limit.json: 加 grant_orgid 字段(VARCHAR(32), default 0) + 索引 - creditlimit.py: get_credit_stats/get_all_customer_credits: WHERE orgid → WHERE grant_orgid set_credit_limit: 加 grant_orgid 参数 - set_customer_credit.dspy: 写入时 orgid=客户orgid, grant_orgid=操作员orgid; 三处UPDATE同步加 grant_orgid - credit_summary.dspy: WHERE orgid → WHERE grant_orgid get_my_credit_list(客户自看)保持按 cl.orgid 过滤不变。
This commit is contained in:
parent
17554a1038
commit
bda9e7fc00
@ -17,7 +17,7 @@ async def get_credit_stats(sor, orgid):
|
||||
COUNT(CASE WHEN status = 'active' THEN 1 END) as active_count,
|
||||
COUNT(CASE WHEN status = 'expired' THEN 1 END) as expired_count
|
||||
FROM credit_limit
|
||||
WHERE orgid = ${orgid}$
|
||||
WHERE grant_orgid = ${orgid}$
|
||||
"""
|
||||
recs = await sor.sqlExe(sql, {'orgid': orgid})
|
||||
if recs and len(recs) > 0:
|
||||
@ -71,7 +71,7 @@ async def get_all_customer_credits(sor, orgid, status_filter=None):
|
||||
Get all customer credit limits for management view.
|
||||
For distributor sales to see all their customers' credit status.
|
||||
"""
|
||||
where_clause = "WHERE cl.orgid = ${orgid}$"
|
||||
where_clause = "WHERE cl.grant_orgid = ${orgid}$"
|
||||
params = {'orgid': orgid, 'sort': 'update_at desc'}
|
||||
if status_filter and status_filter != 'all':
|
||||
where_clause += " AND cl.status = ${status}$"
|
||||
@ -145,7 +145,7 @@ async def update_used_credit(sor, accid, new_used_amount):
|
||||
debug(f'Updated credit for {accid}: used={new_used}, available={new_available}')
|
||||
|
||||
async def set_credit_limit(sor, accountid, orgid, credit_limit_amount,
|
||||
valid_from=None, valid_to=None, created_by=None, remark=None):
|
||||
grant_orgid='0', valid_from=None, valid_to=None, created_by=None, remark=None):
|
||||
"""
|
||||
Set or update credit limit for an account.
|
||||
If a credit limit already exists, update it; otherwise create new.
|
||||
@ -181,6 +181,7 @@ async def set_credit_limit(sor, accountid, orgid, credit_limit_amount,
|
||||
'id': new_id,
|
||||
'accountid': accountid,
|
||||
'orgid': orgid,
|
||||
'grant_orgid': grant_orgid or '0',
|
||||
'credit_limit': credit_limit_amount,
|
||||
'used_credit': 0,
|
||||
'available_credit': credit_limit_amount,
|
||||
|
||||
@ -29,6 +29,14 @@
|
||||
"length": 32,
|
||||
"nullable": "no"
|
||||
},
|
||||
{
|
||||
"name": "grant_orgid",
|
||||
"title": "授予机构ID",
|
||||
"type": "str",
|
||||
"length": 32,
|
||||
"nullable": "no",
|
||||
"default": "0"
|
||||
},
|
||||
{
|
||||
"name": "credit_limit",
|
||||
"title": "信用额度",
|
||||
@ -114,6 +122,11 @@
|
||||
"idxtype": "index",
|
||||
"idxfields": ["orgid"]
|
||||
},
|
||||
{
|
||||
"name": "idx_credit_limit_grant_orgid",
|
||||
"idxtype": "index",
|
||||
"idxfields": ["grant_orgid"]
|
||||
},
|
||||
{
|
||||
"name": "idx_credit_limit_status",
|
||||
"idxtype": "index",
|
||||
|
||||
@ -13,7 +13,7 @@ async with db.sqlorContext(dbname) as sor:
|
||||
COUNT(CASE WHEN status = 'active' THEN 1 END) as active_count,
|
||||
COUNT(CASE WHEN status = 'expired' THEN 1 END) as expired_count
|
||||
FROM credit_limit
|
||||
WHERE orgid = ${orgid}$
|
||||
WHERE grant_orgid = ${orgid}$
|
||||
"""
|
||||
recs = await sor.sqlExe(sql, {'orgid': orgid})
|
||||
if recs and len(recs) > 0:
|
||||
|
||||
@ -101,6 +101,8 @@ async with db.sqlorContext(dbname) as sor:
|
||||
UPDATE credit_limit
|
||||
SET credit_limit = ${credit_limit}$,
|
||||
available_credit = ${credit_limit}$ - used_credit,
|
||||
orgid = ${orgid}$,
|
||||
grant_orgid = ${grant_orgid}$,
|
||||
valid_from = ${valid_from}$,
|
||||
valid_to = ${valid_to}$,
|
||||
remark = ${remark}$,
|
||||
@ -109,6 +111,8 @@ async with db.sqlorContext(dbname) as sor:
|
||||
"""
|
||||
await sor.sqlExe(sql, {
|
||||
'credit_limit': credit_limit_amount,
|
||||
'orgid': customer_orgid,
|
||||
'grant_orgid': orgid,
|
||||
'valid_from': valid_from,
|
||||
'valid_to': valid_to,
|
||||
'remark': remark,
|
||||
@ -120,6 +124,7 @@ async with db.sqlorContext(dbname) as sor:
|
||||
UPDATE credit_limit
|
||||
SET credit_limit = ${credit_limit}$,
|
||||
available_credit = ${credit_limit}$ - used_credit,
|
||||
grant_orgid = ${grant_orgid}$,
|
||||
valid_from = ${valid_from}$,
|
||||
valid_to = ${valid_to}$,
|
||||
remark = ${remark}$,
|
||||
@ -128,6 +133,7 @@ async with db.sqlorContext(dbname) as sor:
|
||||
"""
|
||||
await sor.sqlExe(sql, {
|
||||
'credit_limit': credit_limit_amount,
|
||||
'grant_orgid': orgid,
|
||||
'valid_from': valid_from,
|
||||
'valid_to': valid_to,
|
||||
'remark': remark,
|
||||
@ -141,7 +147,8 @@ async with db.sqlorContext(dbname) as sor:
|
||||
data = {
|
||||
'id': new_id,
|
||||
'accountid': accountid,
|
||||
'orgid': orgid,
|
||||
'orgid': customer_orgid,
|
||||
'grant_orgid': orgid,
|
||||
'credit_limit': credit_limit_amount,
|
||||
'used_credit': 0,
|
||||
'available_credit': credit_limit_amount,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user